bfd27c1b8f
fix(autoplan): publication guard accepts real Claude Code journals ( #3007 , #3009 , #2968 , #2977 , #2986 , #3006 )
...
The guard required a session journal to start with a user message, but
Claude Code starts it with SessionStart hook attachments (and a forked
compacted session starts with a compact_boundary), so every phase was
denied for anyone with a SessionStart hook. Windows path spellings
(C:/, /c/, drive case) were rejected too.
- Reader accepts the captured startup, compact, clear and fork shapes
(claude 2.1.284 fixture), computes root uniqueness over every
candidate, and returns typed reason codes instead of one string.
- Hard denials (competing root, foreign cwd, sidechain, agent, cycle,
malformed, identity) say what happened and how to run the reviews by
hand; unflushed journals still retry.
- A well-formed, stable journal whose root shape is unrecognized now
warns ('phase publication was NOT verified') and continues, without
overriding Claude Code's own permission check; no bypass switch.
- Windows paths fold before validation, so '..' is still rejected.
- Periodic drift canary runs the reader on fresh journals from the
pinned claude.
Co-authored-by: Charles M Berg <77517285+CharlesBerg85@users.noreply.github.com >
Co-authored-by: laurenbdaniels-coder <264343335+laurenbdaniels-coder@users.noreply.github.com >
Co-authored-by: Jordan Mayer <176445995+maydaycyber@users.noreply.github.com >
Co-authored-by: elmesery-dev <elmesery.dev@gmail.com >
2026-10-02 15:06:08 +00:00
..
2026-09-29 08:58:49 -07:00
2026-10-01 13:55:16 -07:00
2026-09-25 13:27:07 -04:00
2026-08-15 22:20:30 -07:00
2026-08-29 10:10:35 -07:00
2026-09-06 08:54:25 -07:00
2026-09-24 01:53:58 -04:00
2026-09-25 13:27:07 -04:00
2026-10-01 13:55:16 -07:00
2026-09-22 14:57:52 -04:00
2026-09-29 08:58:49 -07:00
2026-09-29 08:58:49 -07:00
2026-09-22 14:57:52 -04:00
2026-10-01 13:55:16 -07:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-09-14 14:32:45 -07:00
2026-09-05 14:45:28 -07:00
2026-09-09 08:57:21 -07:00
2026-04-19 17:50:31 +08:00
2026-09-29 06:07:35 -07:00
2026-08-29 09:06:54 -07:00
2026-05-26 16:50:03 -07:00
2026-08-27 09:50:31 -07:00
2026-05-26 16:50:03 -07:00
2026-08-31 08:55:30 -07:00
2026-06-07 19:13:24 -07:00
2026-10-01 13:55:16 -07:00
2026-09-22 14:57:52 -04:00
2026-10-01 13:55:16 -07:00
2026-09-29 08:58:49 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 11:57:48 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 11:57:48 -07:00
2026-10-01 11:57:48 -07:00
2026-10-01 11:57:48 -07:00
2026-10-01 11:57:48 -07:00
2026-09-22 14:57:52 -04:00
2026-10-01 11:57:48 -07:00
2026-10-01 13:55:16 -07:00
2026-09-26 18:57:53 -04:00
2026-09-22 14:57:52 -04:00
2026-10-01 13:55:16 -07:00
2026-09-26 18:57:53 -04:00
2026-09-25 12:06:45 -04:00
2026-10-01 13:55:16 -07:00
2026-09-22 14:57:52 -04:00
2026-09-29 08:58:49 -07:00
2026-09-25 12:06:45 -04:00
2026-09-14 15:14:58 -07:00
2026-09-14 15:14:58 -07:00
2026-10-01 13:55:16 -07:00
2026-09-29 06:07:35 -07:00
2026-10-01 11:57:48 -07:00
2026-10-01 11:57:48 -07:00
2026-09-29 06:07:35 -07:00
2026-10-01 13:55:16 -07:00
2026-09-14 14:32:45 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-08-24 08:55:58 -07:00
2026-09-14 14:32:45 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-09-14 14:32:45 -07:00
2026-10-01 13:55:16 -07:00
2026-09-22 14:57:52 -04:00
2026-08-28 11:43:13 -07:00
2026-10-02 14:49:15 +00:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-09-22 14:57:52 -04:00
2026-10-01 13:55:16 -07:00
2026-09-28 13:09:52 -07:00
2026-10-01 11:57:48 -07:00
2026-10-01 13:55:16 -07:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-10-01 13:55:16 -07:00
2026-09-14 14:32:45 -07:00
2026-09-29 06:07:35 -07:00
2026-09-14 14:32:45 -07:00
2026-09-22 14:57:52 -04:00
2026-09-29 08:58:49 -07:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-09-29 08:58:49 -07:00
2026-09-14 15:14:58 -07:00
2026-10-01 13:55:16 -07:00
2026-09-24 01:53:58 -04:00
2026-10-01 13:55:16 -07:00
2026-09-22 14:57:52 -04:00
2026-09-14 14:32:45 -07:00
2026-09-24 01:53:58 -04:00
2026-09-22 14:57:52 -04:00
2026-10-01 13:55:16 -07:00
2026-09-14 14:32:45 -07:00
2026-09-22 14:57:52 -04:00
2026-09-29 08:58:49 -07:00
2026-09-29 08:58:49 -07:00
2026-10-01 13:55:16 -07:00
2026-09-14 14:32:45 -07:00
2026-10-01 13:55:16 -07:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-10-01 11:57:48 -07:00
2026-09-14 14:32:45 -07:00
2026-09-29 06:07:35 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-09-29 06:07:35 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-09-29 08:58:49 -07:00
2026-09-29 08:58:49 -07:00
2026-08-29 09:06:54 -07:00
2026-08-29 09:06:54 -07:00
2026-09-29 08:58:49 -07:00
2026-04-24 01:38:21 -07:00
2026-09-29 06:07:35 -07:00
2026-09-23 08:54:53 -04:00
2026-10-01 13:55:16 -07:00
2026-09-28 16:00:12 -07:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-09-29 06:07:35 -07:00
2026-10-01 13:55:16 -07:00
2026-09-24 01:53:58 -04:00
2026-09-29 06:07:35 -07:00
2026-09-26 18:57:53 -04:00
2026-09-29 06:07:35 -07:00
2026-08-14 09:28:56 -07:00
2026-09-29 06:07:35 -07:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-09-22 14:57:52 -04:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00
2026-09-29 14:35:00 -07:00
2026-09-25 13:27:07 -04:00
2026-09-06 08:54:25 -07:00
2026-09-29 08:58:49 -07:00
2026-10-02 15:06:08 +00:00
2026-08-15 22:20:30 -07:00
2026-10-01 11:57:48 -07:00
2026-09-22 14:57:52 -04:00
2026-10-01 13:55:16 -07:00
2026-10-01 13:55:16 -07:00