mirror of
https://github.com/garrytan/gstack.git
synced 2026-11-01 14:34:42 +01:00
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>