Andrei Eternal
244b2d53f4
start of hooks engine ( #13276 )
...
(Experimental)
This PR adds a first MVP for hooks, with SessionStart and Stop
The core design is:
- hooks live in a dedicated engine under codex-rs/hooks
- each hook type has its own event-specific file
- hook execution is synchronous and blocks normal turn progression while
running
- matching hooks run in parallel, then their results are aggregated into
a normalized HookRunSummary
On the AppServer side, hooks are exposed as operational metadata rather
than transcript-native items:
- new live notifications: hook/started, hook/completed
- persisted/replayed hook results live on Turn.hookRuns
- we intentionally did not add hook-specific ThreadItem variants
Hooks messages are not persisted, they remain ephemeral. The context
changes they add are (they get appended to the user's prompt)
2026-03-10 04:11:31 +00:00
..
2026-02-10 20:09:31 -08:00
2026-03-01 13:43:37 -08:00
2026-03-06 00:03:39 +00:00
2026-02-09 23:10:26 -08:00
2026-03-06 00:03:39 +00:00
2026-03-06 17:30:17 -08:00
2026-03-06 17:30:17 -08:00
2026-03-06 17:30:17 -08:00
2026-03-06 17:30:17 -08:00
2026-03-06 17:30:17 -08:00
2026-03-06 17:30:17 -08:00
2026-03-06 17:30:17 -08:00
2026-03-06 17:30:17 -08:00
2026-03-06 17:30:17 -08:00
2026-03-08 17:38:01 -07:00
2026-03-09 18:16:54 -07:00
2026-03-09 18:16:54 -07:00
2026-02-11 17:16:27 -08:00
2026-02-05 20:04:01 +00:00
2026-02-05 23:31:04 +00:00
2026-02-25 02:11:51 -08:00
2026-02-25 02:11:51 -08:00
2026-02-25 02:11:51 -08:00
2026-02-25 02:11:51 -08:00
2026-02-20 22:26:14 +00:00
2026-02-10 20:09:31 -08:00
2026-03-10 04:11:31 +00:00
2026-03-10 04:11:31 +00:00
2026-03-04 16:54:38 -08:00
2026-03-04 16:54:38 -08:00
2026-02-02 17:41:55 -08:00
2026-02-09 20:48:58 -08:00
2026-02-13 16:26:32 -08:00
2026-02-26 22:02:57 -08:00
2026-02-17 11:02:23 -08:00
2026-03-05 21:58:50 -05:00
2026-03-06 06:45:00 +00:00
2026-03-06 19:39:35 -05:00
2026-03-06 19:39:35 -05:00
2026-03-09 12:40:25 -07:00
2026-03-09 12:40:25 -07:00
2026-03-07 01:33:46 +00:00
2026-03-04 16:54:38 -08:00
2026-02-27 12:45:59 -08:00
2026-03-03 17:01:00 -08:00
2026-02-09 13:30:38 -08:00
2026-02-17 14:53:58 -08:00
2026-02-03 14:09:37 -08:00
2026-02-17 11:05:22 -08:00
2026-02-17 14:53:58 -08:00
2026-02-17 14:53:58 -08:00
2026-02-25 13:14:30 -08:00
2026-02-03 18:15:55 -08:00
2026-02-03 18:15:55 -08:00
2026-03-09 18:16:54 -07:00
2026-03-09 18:16:54 -07:00
2026-02-25 09:59:41 +00:00
2026-03-04 16:54:38 -08:00
2026-03-03 15:56:11 -08:00
2026-03-04 16:54:38 -08:00
2026-03-04 16:54:38 -08:00
2026-02-25 09:59:10 -08:00
2026-02-25 09:59:10 -08:00
2026-02-25 09:59:10 -08:00
2026-02-25 09:59:10 -08:00
2026-02-25 09:59:10 -08:00
2026-03-09 18:16:54 -07:00
2026-03-09 18:16:54 -07:00
2026-03-04 16:54:38 -08:00
2026-03-04 16:54:38 -08:00
2026-03-09 18:16:54 -07:00
2026-03-09 18:16:54 -07:00
2026-02-18 15:20:03 -08:00
2026-02-17 14:53:58 -08:00
2026-03-04 16:54:38 -08:00
2026-02-25 13:14:30 -08:00
2026-02-25 13:14:30 -08:00
2026-03-04 16:54:38 -08:00
2026-03-04 16:54:38 -08:00
2026-03-09 18:16:54 -07:00
2026-03-04 16:54:38 -08:00
2026-02-06 00:35:04 +00:00
2026-02-06 00:35:04 +00:00
2026-02-18 13:03:16 -08:00
2026-03-08 18:07:46 -07:00
2026-02-18 13:03:16 -08:00