Skip to content

0.1.3 - live observation

Choose a tag to compare

@moongioh moongioh released this 13 Jul 05:35

hscope --watch keeps the circuit live while a session runs — and withholds judgment on the turn that is still running. It observes only: no hook in your session, nothing is blocked, and a violation on screen is one a human has to act on.

Added

  • hscope --watch (and hscope ingest --watch): 2s mtime scan → hash only the files that moved → re-judge only those sessions. The viewer polls /api/meta and refreshes itself, silently. Without --watch, no polling at all.
  • A turn in flight is shown, not judged — no terminal stop_reason and the transcript was written to within 15 min. Judging it would fire the verification gate on the very turn about to run the check, and its streamed token usage is not final until the last record lands. It is judged the moment the turn ends — or once its liveness window lapses, if you interrupt it. A verdict deferred must not become a verdict skipped.
  • verify_watch — 24 assertions, including the mutation case: with the in-flight guard off, the false verdicts really do fire. verify_all is now 20 harnesses.

Fixed

  • A half-written last line of a live transcript counts as truncated_tail, not bad_lines — it is the normal state of a running session. Damage on any other line (and a broken last line in a file that did end in a newline) still counts.

Verified against

hscope doctor holds every invariant over a 289-session corpus spanning Claude Code 2.1.165 … 2.1.207 (29 harness versions).

On PyPI and npm this follows 0.1.1 — 0.1.2 was cut in the repo but never uploaded, so its discovery-metadata pass ships here.