Repository navigation
Conversation
…e + nextest filter (E5) Rows checked against a cargo-tree oracle. Core crate, Cargo.lock, Cargo.toml and any unknown path give ALL. The closure uses until(fixpoint): the earlier recurse(f; cond) form stopped one step short and under-selected dependents (aprender-tsp/monte-carlo missed behind apr-cli). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
noahgift
left a comment
There was a problem hiding this comment.
seat 2, aprender-w5018 @59a35c560e5da9db5e7ab37ffbcc39c7f37430eb
CHANGES-NEEDED (non-author, claude-sonnet-5-5). Ran the tool on the head.
- Dev-deps: PASS. The closure uses cargo metadata .dependencies[] with no kind filter, so dev edges count. Touching aprender-test-lib gives 45 packages vs 9 normal+build only vs 37 from cargo tree -i -e normal,dev,build: a superset of the oracle, the safe direction. But no row pins it: the check picks the first non-core crate with 1-9 dependents, which need not have a dev-only edge, so dropping dev edges can stay green. Add a row on a crate whose dependents are dev-only (aprender-test-lib -> aprender-data is one) and mutate the jq to select(.kind==null); it must go RED.
- Empty or unknown diff: FAIL against the ask. An empty diff prints nothing and exits 0 (docs-only does the same by design). A bad base ref exits 128 with no output (nonzero, not ALL). A consumer that reads empty stdout as 'run nothing' will skip all tests on an empty diff or a failed git diff. Make empty input and a failed git diff print ALL (docs-only may stay empty, but only after a non-empty diff was seen), or state the caller contract in the header and add a row for each. No row covers either case today.
- Fail-closed otherwise holds: a failing jq or cargo metadata stops the script nonzero, and unknown, root-level and Cargo.lock paths give ALL.
…(Refs #5802) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…es! mapping (Refs #5802) A rename out of a crate showed only its destination (git rename detection), so the source crate was skipped; --no-renames reports both paths. A docs/*.md file a crate embeds with include_str!/include_bytes!(literal) was dropped by the docs skip; it now counts as the embedding crate (aprender-review-experiment prereg.rs). Rows plus a RED mutant for each. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
noahgift
left a comment
There was a problem hiding this comment.
seat 2, aprender-w5018 @dea7901cccfa1c5eb82b0d2efa2538cfd8cd292e: APPROVE.
Re-checked my earlier items: dev-deps are now in the closure and an empty or uncomputable diff prints ALL (header and rows); check_affected_set.sh passes here with 0 failures, including the rename, embedded-doc and mutant rows.
Residual check on origin/main (every include_str!/include_bytes! in crates/.rs whose first argument is not a string literal): only kernel_explain (concat! into contracts/), the OUT_DIR generated includes (built from contracts/), and the present-test-macros fixture path (a test fixture, not docs/). No non-literal embed reaches docs/ or any .md. Multi-line literal includes (e.g. docs/kernel-registry/.json) are matched by the -0777 / \s* pattern. So the residual is empty today.
Not run by me: the two-family round; this is a single-model seat review.
noahgift
left a comment
There was a problem hiding this comment.
Seat 2 (aprender-w5404, claude-sonnet-5-5): APPROVE @dea7901cccfa1c5eb82b0d2efa2538cfd8cd292e. Disclosure: I wrote the base commit 59a35c5, so this seat reviews the delta ad30656..dea7901 only and is same-family as the author; the cop decides whether it counts as non-author.
Checked: check_affected_set.sh passes on this head (20 rows, 6.2s, includes 3 mutants that each go RED). --no-renames reports both ends of a move; empty diff and a bad base give ALL; dev-only edges are counted. include_str!/include_bytes! map: the only non-literal uses in crates/ (kernel_explain, perf_gate) embed contracts/ paths or OUT_DIR, which are not docs/.md, so they fall to ALL, never to a silent skip. Residual risk (not blocking): a future include_str!(concat!(...)) of a docs/.md file would be skipped as docs-only. Cost: find+perl over crates/*.rs on each run (~1s).
…d-set scripts Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
noahgift
left a comment
There was a problem hiding this comment.
seat 2, aprender-w5018 @5f272c850a455dea6ceccb737931dd91a05e3ec1: APPROVE.
Delta from dea7901 is three lines: jq $p|.[] spelling (SC1087), rm -rf -- "${t:?}" in the trap (SEC011), and a ci/sections.yml step that runs setsid --wait bash scripts/check_affected_set.sh on the merge path. Ran check_affected_set.sh on this head: rc 0, 0 FAIL rows, mutants caught. My earlier residual finding (no non-literal embed reaches docs/ or .md) is unchanged by this delta. Single-model seat review.
…ts ALL; check runs with safe.directory Tests read README.md, CLAUDE.md, ci/sections.yml and docs/ at run time, so skipping them emptied the set. The include_str! scan is gone: docs are ALL. Rows and mutants for each. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
noahgift
left a comment
There was a problem hiding this comment.
seat 1, aprender-w5018 @1e73c59a2838cb646f8ccb4cfd496a8b323fd5dc: APPROVE.
The change drops the include_str! resolver and the docs/.md skip list: docs/, root *.md, ci/, Cargo.lock, root and crate Cargo.toml, .github/ and any path outside a crate are now ALL, and a *.md inside a crate is that crate's input. That is the fail-safe direction (tests read README.md, CLAUDE.md, ci/sections.yml and docs/ at run time) and it removes the non-literal-embed residual I checked earlier, since no path is trusted to be skipped.
Ran check_affected_set.sh on this head: rc 0, 0 FAIL, 24 ok rows including the new ALL rows, the crate-local .md row and the rename mutant. Probed by hand: Cargo.toml, src/lib.rs, README.md, a crate Cargo.toml, a nested fuzz/Cargo.toml and .github/workflows/ci.yml all give ALL; a leaf src file gives its closure (aprender-test-lib: 45 packages, dev-deps counted). Cost to note, not a blocker: docs-only and ci-only PRs now run ALL. Single-model seat review.
…o guard-cargo-steps Other crates' tests read crates/*/README.md and aprender-serve/kernel-registry.json. check_affected_set.sh runs cargo metadata/tree, so it cannot live in the cargo-free guard-tree-steps. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…(other crates' tests read its sources) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
§13.11 rung 1 — quorum shadow verdict Shadow mode: this records a verdict and merges nothing. A refusal |
…eader edges), with rows and a mutant Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ched or jq failure prints ALL; rows + RED mutants Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…) in every non-ALL set; readers guard; res= fallback row Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ERS is the only list; file:line allow; one case per w5404 probe Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…e positive Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…level, Path::parent; drop facades from READERS; prefix row (#5802) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…if a NONMEMBER dir is a workspace member (#5802) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…places the let-mut pattern; apr-format listed (false positive adds tests); filter row sorts in C (#5802) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
noahgift
left a comment
There was a problem hiding this comment.
Seat 2 (non-author) bound to head 29d1072 (gate change: readers guard). Receipt reviewed: handoff/w5032-quorum-5802-29d1072c56.md (2x Opus APPROVE, marked degraded: same-family; no lane is the author's model). My own run on a detached checkout of the head: check_affected_readers.sh rc0; check_affected_set.sh rc0 (mutants caught). Probes in a crate outside READERS (aprender-fft): rustfmt-wrapped 'let mut p = ..CARGO_MANIFEST_DIR..; p.pop()' reader -> RED naming the crate; join("../../contracts") reader -> RED rc1. No continue-on-error added; new '|| true' sites are grep/metadata fallbacks that fall through to ALL/RED, not GREEN. Non-blocking, as in the receipt: affected_set.sh exits silently when cargo metadata fails (loud, not green). Not armed by me. Branch is BEHIND; merge queue handles it.
noahgift
left a comment
There was a problem hiding this comment.
Seat 1 (aprender-wsweep, claude-sonnet-5-5, non-author): WITHHELD @29d1072c568cd282a21292dd49086d0e2e56fbd2. At this sha scripts/check_guard_steps_isolated.sh exits 1: ci/sections.yml:1958 'setsid --wait bash scripts/check_affected_readers.sh && bash scripts/check_affected_readers.sh --self-test' — the second invocation lacks 'setsid --wait' (#4133). Same defect fixed on #5815. One-line fix: 'setsid --wait bash scripts/check_affected_readers.sh && setsid --wait bash scripts/check_affected_readers.sh --self-test'. Everything else passes at this sha (check_affected_set, check_affected_readers + --self-test, check_no_pipe_into_grep_q rc=0; no continue-on-error; privacy scan clean). Will seat the new head once pushed and re-quorumed (gate-adjacent). Branch untouched.
noahgift
left a comment
There was a problem hiding this comment.
Seat (w5404, non-author quorum): APPROVE at 29d1072. Opus (reproduced) + agy. Readers guard now flags CARGO_MANIFEST_DIR + .pop( per file; wrapped/split forms RED, no intra-crate false-red; apr-format added to READERS; mutants die. Receipt: cop-inbox/handoff/w5404-quorum-5802-29d1072c56.md. Not armed.
….pop ( row (#5802) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
noahgift
left a comment
There was a problem hiding this comment.
Seat (w5404, non-author quorum): APPROVE at 28a9312. Delta since 29d1072 is the setsid --wait on the --self-test call (sections.yml:1958) and a spaced .pop ( self-test row; Opus reproduced (chain still fails the step, mutant dies). Receipt: cop-inbox/handoff/w5404-quorum-5802-28a93128f9.md. Not armed.
noahgift
left a comment
There was a problem hiding this comment.
Seat 1 (aprender-wsweep, claude-sonnet-5-5, non-author): APPROVE @28a93128f9737f364fc1e3a838a7f06c0503b96b. Delta vs the withheld head 29d1072: ci/sections.yml:1958 second readers call now has 'setsid --wait', plus one line in check_affected_readers.sh (read, no loosening). At this sha: check_guard_steps_isolated, check_affected_set, check_affected_readers (+ --self-test), check_no_pipe_into_grep_q all rc=0; no continue-on-error; privacy scan clean. Quorum receipt w5404-quorum-5802-28a93128f9.md noted. Branch untouched; a push voids this seat.
|
ANDON (aprender-cop, 2026-10-21T09:42Z): gate change, solo. Head 28a9312:
|
|
Closed per Noah's 15:04Z ruling (A4). Superseded by #5856 (recut/5802-sq, one squashed commit): same feature, trees differ by 1 file / 2 lines (git diff --shortstat pr/5802 pr/5856). |
E5 (FLOW-010): scripts/affected_set.sh maps a diff to crates plus the reverse-dependency closure and a nextest filter. Core crate, Cargo.lock, Cargo.toml and any unknown path give ALL. The closure uses until(fixpoint); the earlier recurse form under-selected dependents (aprender-tsp / monte-carlo behind apr-cli).
Rows are checked against a cargo-tree oracle by scripts/check_affected_set.sh, wired as ci/explicit-test-commands.d/815-affected-set-rows.cmd. No workflow file touched; not a gate content change.
keep-open: none
ont-delta: none
PARKED (draft) at 64602c8 behind #5798: measurement
Workspace 85 crates / 838 test binaries. Sets computed with affected_set.sh on the head tree over past diffs (measure.py).
🤖 Generated with Claude Code