You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tests + docs:
- acceptance_test.go: end-to-end matrix over the terminal-state scenarios
(complete/partial/failed/skipped/cancelled/waive, plus a cancelled
mid-run row where selected is a strict superset of the outcome sets);
provider-transition resume case starts from a PARTIAL run and asserts
the resume flips it to complete with parent_session_id intact and an
unchanged artifact checksum (input identity retained);
TestManifestNeverLeaksSecrets is the canonical secret guard.
- manifest_test.go: TestManifestSchemaLock pins the literal schema
version (1) and the top-level JSON key set. The standalone Finalize
test was folded into the acceptance matrix (failure-class + artifact
columns).
- emit_run_result_test.go: no-files manifest case folded into the
legacy-status regression table.
- agent/manifest_test.go: newManifestAgent helper replaces three copies
of the Args literal.
- docs: run-manifest schema, state->exit-code mapping, --waive flag;
files invariant stated with the superset wording; commit-mode range
fields documented.
Hardening:
- viewer/store.go: peekSession read only the last JSONL line for
session_end; run_manifest is now the last line, so the session-list
fast path lost duration/files/failures. Checks the last two lines;
regression test fails on the old code.
- manifest.go: cancelled run whose only covered items are waives is
partial, not failed; ManifestFiles doc corrected (selected is a
superset); Finalize made idempotent (written-once guard).
- session logging to stderr: the [ocr session] messages went to stdout,
which carries the --format json payload; all four sites now use
os.Stderr.
- redactRemoteURL (nee stripURLUserinfo) also strips query/fragment, so
?access_token=... can never reach the manifest; scp-style remotes
still pass through (they fail url.Parse and carry no password).
Verified E2E.
- scanFingerprint hashes mode\0path\0content (ScanItem.Content is
already in memory), matching the diff path's content-sensitive
fingerprint.
- scan dispatch goroutines now recover from panics, record the item as
failed with class "panic", and let Finalize still write the manifest,
mirroring the diff-review dispatch. Panic row added to the scan
parity table.
- session.ArtifactChecksum: the sort/join/sha256 tail duplicated in the
agent and scan recordSelectionAndArtifact now lives in one place so
the fingerprint-join convention cannot diverge.
- computeRulesHash hashes the resolver's resolved rule layers (new
rules.UserLayers accessor) instead of re-reading the top-level
rule.json bytes: rule entries that reference files (e.g. team.md)
are expanded to content by rules.NewResolver, so editing a referenced
file now changes rules_hash even though rule.json's bytes do not.
Test locks referenced-file edit -> hash change.
- scan executeSubtask drains the async CommentWorkerPool before reading
CommentsForPath and persisting review_item_done; without the per-file
Await the checkpoint could persist an incomplete comment set while
async code_comment workers were still running (the diff path already
had this Await).
- filterLargeDiffs/filterLargeScans record each dropped oversized file
as failed with class skipped_limit (plus a warning), so the
manifest's selected denominator includes pre-filtered files: a
partially filtered run is partial, an all-filtered run is failed
with per-file failures rather than an empty "skipped". Two agent
table rows + a scan filter test lock this.
- persist.go/history.go: corrected stale close-ownership comments
(WriteSessionEnd no longer closes the file; flushAndClose does).
Full go test ./... green (2037); -race green on session/agent/scan/
llmloop/cmd; make check clean. E2E: failing review persists
... -> session_end -> run_manifest with state=failed and
class=provider_error; no-diff review emits valid skipped JSON with the
manifest; a remote with userinfo+query credentials is fully redacted.
0 commit comments