Project status
Repository, release, and evidence state from the deterministic machine-readable control snapshot.
Git and CI state
Exact immutable identifiers and the current security-analysis state.
567bffb3cb2253eb7beecbdf318824abdc8981b0567bffb3cb2253eb7beecbdf318824abdc8981b0567bffb3cb2253eb7beecbdf318824abdc8981b0Release target
What this candidate supports—and what it explicitly does not claim.
Supported deployment boundary
- supervised, explicitly authorized isolated-lab assessment
- Python 3.12+ POSIX macOS/Linux controller
- V1 CLI with Docker sandbox by default
- localhost-only FastAPI console with server-owned live mode
- Phase 2A transactional audit diagnostics and local consistency anchor
Unsupported deployment modes
- unattended, scheduled, or 24/7 operation
- V2 continuous mode as a supported product
- production or regulated deployment
- network-exposed or multi-user service
- local JSON anchor represented as WORM
- Windows-hosted audit writing
Completed milestones
Milestones are tied to repository evidence, not roadmap checkboxes.
Phase 1 safety freeze
Phase 2A transactional audit hardening
CodeQL enablement and alert closure
Copilot repository safety context
Release-closeout recovery and V2 isolation
Out-of-band HMAC signer and operational V2 agents
Layer-1 overlap deny, squash-merge CI, and DOM fixture inventory
Phase roadmap
NOW closes before NEXT begins. LATER and DEFERRED do not imply current capability.
NOW
- COMPLETE — supervised V1 release closeout merged as b75af239c441204699114ce34970e37b394b3c21
- COMPLETE — out-of-band HMAC signer and operational V2 agents merged as 025492456d4e3ca8363d7210abd43d605373b663
NEXT
- COMPLETE — bounded operational V2 foundation (PR #18)
- COMPLETE — HMAC signing moved out of the orchestrator (PR #18 / issue #4)
- COMPLETE — Layer-1 overlap deny, squash-merge CI, DOM fixture inventory (PR #26)
LATER
- Independently administered WORM evidence store (issue #23)
- Playwright execution of the DOM fixture inventory against a live console (issue #24)
DEFERRED
- Unattended continuous service
- Production, regulated, network-exposed, or multi-user deployment
Blocker matrix
Release gates and deferred constraints are separated so future scope cannot masquerade as a current blocker.
| Item | State | Impact | Owner |
|---|---|---|---|
| Release verification | closed | none; all local, PR, review, merge, post-merge CI, and CodeQL gates passed for NOW | completed |
| Out-of-band signer | closed | Unix-socket signer landed in PR #18; independently administered WORM remains later | PR #18 |
| Operational V2 lifecycle | closed as experimental | continuous mode remains experimental and unsupported | PR #18 |
| Layer-1 overlap deny and squash-merge CI | closed | parent CIDR cannot scan a /32 carve-out; control-docs topology accepts one-parent squash-merges | PR #26 |
Next exact action
One executable action owns the NOW gate.
Architecture
Supported V1 architecture from operator input through transactional audit.
- 01Operator CLI or localhost-only console
- 02Fail-closed guardrail: scope, tool firewall, arguments, budget, time, audit, output
- 03Docker sandbox by default; approved local exception only
- 04Read-only network, host, AD, and web collectors
- 05Optional AI analysis; never an authorization source
- 06Deterministic V1 chaining and CSV/Markdown/JSON reports
- 07Transactional Phase 2A audit log plus local non-WORM consistency anchor
V1 execution flow
V1 is operator-invoked and bounded. V2 remains incomplete and opt-in experimental.
V1 execution flow
- 01operator supplies explicit targets and profile
- 02target scope is normalized and checked
- 03high-risk mode requires exact approval
- 04guardrail authorizes the tool and arguments
- 05sandbox executes a bounded collector
- 06output is sanitized and normalized
- 07planner may propose the next bounded profile
- 08findings and proof-tagged paths are reported
- 09every decision and execution boundary is audited
V2 experimental flow
- 01specialized agent proposals from evidence
- 02operator-supplied targets and collector observations
- 03experimental EvidenceGraph
- 04asset-bound correlation
- 05checksummed atomic graph persistence
- 06gated ContinuousRunner
- 07no supported CLI or unattended loop
Test and security evidence
Local and GitHub gates are visible without converting pending work into a claim.
- 292-test hash-locked Python 3.12 release-closeout regression passed
- 51 focused release, V2, web, and audit tests passed
- 123 audit persistence, filesystem, anchor, CLI, and concurrency tests passed
- Ruff comparison found no new or changed findings; every changed Python file passed
- Bandit found no medium- or high-severity issue
- Dependency audit found no known vulnerability
- Clean sdist, wheel build, locked wheel install, and CLI smoke passed
- Phase 1 redirect, request-body, peer, live-mode, and DOM boundaries preserved
- Phase 2A strict replay, locking, durability, diagnostics, and recovery preserved
- PR CI and CodeQL passed on reviewed head 8f1fed7d88c821f926c332ea691f151c58d73dbd
- post-merge main CI 30523751828 and CodeQL 30523751784 passed
- post-merge open CodeQL alerts: 0
- exactly one independent read-only review completed; all three findings were resolved before merge
- PR #18 CI fix: Bandit B108 closed by user-private signer socket default
- PR #18 CI fix: cryptography 50.0.0 hash-locked for PYSEC-2026-3552
- 315-test hash-locked Python 3.12 suite passed locally after the CI fixes
- PR #18 merged to main as 025492456d4e3ca8363d7210abd43d605373b663
- Layer-1 deny matching uses overlaps() so a parent CIDR cannot scan a /32 carve-out
- Packed integer/hex tokens that are not IPv4 deny instead of crashing
- Control-docs CI accepts one-parent squash-merges onto main
- DOM fixture inventory and static-console textContent contract landed
- PR #26 squash-merged to main as 567bffb3cb2253eb7beecbdf318824abdc8981b0
Decisions
Release rationale, roadmap gates, operations, rollback, and recovery evidence live in the versioned control pack.
Operations and rollback
Use the runbook for release verification, audit recovery, Phase 1/V2 incompatibility, and rollback. No deployment was performed.