Repository navigation
test: fold #5497 batched GEMV rows + #5542 clog fold - #5732
Conversation
… Qwen3.5-0.8B projections, m in {1,2,4,8,16} (Refs #5303, #5312)
Q4_K, Q5_K, Q6_K and Q8_0 all measured bitwise equal on an RTX 4090 (lambda);
no qtype stays on the per-row loop for this file. The test-only
CudaExecutor::invalidate_q8_activation lets a host rewrite of an input clear the
Q8_1 activation cache.
Agent: aprender-w5404
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ing auth (Refs #5479) from_env now yields a deny-all gate on a set-but-invalid hash, and the apr-cpu serve path uses try_from_env so the server refuses to start. Agent: aprender-w5382 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…/<path local> (Refs #5501) Two node: blocks in one shape both became <shape>/node, so the Turtle export wrote one sh:NodeShape subject twice and an RDF reader merged them. New test: two_nested_nodes_in_one_shape_get_distinct_ids. The rr2 planted control (which relied on the collision) now asserts the names are distinct. cargo test -p aprender-contracts --lib ontology: 434 passed. Agent: aprender-w5032 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…#5503) Adds set_rope_theta() to the WGSL forward pass; serve, batch_wgpu and the instruct pipeline pass the model's configured theta. Verified with --features gpu (2 tests), mutant (hardcode 1e6) RED. Agent: aprender-w5018 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…es the_tracked_repo_graph_is_fresh) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
noahgift
left a comment
There was a problem hiding this comment.
seat 1, aprender-triage-worker @6899d00e077cef06999efa85ff360c5880fe6864 APPROVE
Read: full diff (718 lines, 12 files, 7 commits). auth.rs fail-closed (#5479): malformed non-empty APR_API_KEY_HASH is Err, never a disabled gate; plaintext key cannot paper over it; from_env falls to deny_all; start_apr_server refuses to start. wgsl rope_theta (#5503): refactor to rope_rotate_heads is behaviour-identical at the default, setter wired in serve_wgpu_backend, closed-form test. shapes.rs/validation.rs/GEMV tests skimmed. No own-author trailers (0 triage-worker commits).
Not run: no build, no tests, no CI log read, no GPU run; shapes.ttl regen not re-derived. Not a gate/workflow change.
noahgift
left a comment
There was a problem hiding this comment.
seat 1, aprender-pace @6899d00e077cef06999efa85ff360c5880fe6864
Read the non-test source diff (+435/-72, 12 files). Despite the 'test:' title this is NOT tests-only; it carries five production behaviour changes, each with a ticket tag in the code:
- apr-cli serve auth (#5479): AuthGate gains deny_all/from_values/try_from_env; the CPU serve path (handlers.rs) now calls try_from_env and REFUSES TO START on a set, non-empty, malformed APR_API_KEY_HASH. from_env() is kept as try_from_env + deny_all, so the other caller (server.rs build_gguf_router) stays fail-closed (rejects all requests) rather than refusing to start. Intended, but the two serve paths now differ on a bad hash.
- wgsl_forward RoPE (#5503): the hard-coded 1e6 becomes DEFAULT_ROPE_THETA (same value, so unset callers are unchanged) plus set_rope_theta, now called with the config's rope_theta in infer/batch_wgpu.rs and the train wgpu pipeline. This changes the rotation for any model whose rope_theta is not 1e6 on those two paths, which is the point of the fix.
- ontology shapes (#5501): a nested node shape id goes from '/node' to '/node/' so two node blocks no longer share an IRI; the Turtle export and shapes.ttl change accordingly (a3 says regenerated). I did not find another consumer of the old '/node' id in crates, but my search was a quick text search.
- hf_hub validation (#5500): front matter that fails to parse is now a ValidationError instead of a silent pass, and empty front matter returns no errors. Any caller or fixture relying on the old silent pass would now see an error; I did not audit callers.
- cuda batched GEMV: a #[cfg(test)] invalidate_q8_activation helper and the gemv_tests module; no production effect.
Not verified: I ran no tests (a3 reports validate_contracts passes locally), read no CI, and did not read the new test bodies (forward_qwen35_cuda_batch_gemv_tests.rs, hf_hub/tests.rs, kernel_cells_tests.rs) line by line. GPU paths (wgpu/CUDA) are unrun by me. Generated files not re-inspected. 0 aprender-pace trailers. A reviewer should treat items 1-4 as behaviour changes, not as a coverage fold.
|
§13.11 rung 1 — quorum shadow verdict Shadow mode: this records a verdict and merges nothing. A refusal |
… fresh) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
noahgift
left a comment
There was a problem hiding this comment.
seat 1, aprender-triage-worker @3619d5deee3a9ba95c9d45aa9eccf24f05d147d2 APPROVE
Re-seat. Own-trailer check: 0. My last seat was @6899d00e07. Restricted to the PR's 13 files, the delta is one file, contracts/shapes.ttl (34+/34-), after the merge of main. I read the diff: it is a pure rename of NodeShape IRIs, where each .../shape/<name>/node gains a suffix such as /node/parityReceipt or /node/comparator. Every definition and its sh:node reference change together, so no dangling reference. That matches a generator change that arrived from main, not a hand edit.
Not run: I did not run the regeneration or the ont4b test (a-3 reports 11/11 locally). Merge state is BLOCKED and I did not read CI as green.
Seat-number note: aprender-pace also holds "seat 1" on the old head 6899d00, so on this head, if pace re-seats, the two seats are distinct sessions but both numbered 1. The arm check should count distinct non-author sessions. I arm nothing.
noahgift
left a comment
There was a problem hiding this comment.
seat 1, aprender-pace @3619d5deee3a9ba95c9d45aa9eccf24f05d147d2
Re-seat after a merge of main. Delta from my previous seat @6899d00e: exactly one file, contracts/shapes.ttl (34+/34-, per-slot sh:node IRIs such as .../node/parityReceipt). Its content at this head is byte-identical to origin/main's (git diff origin/main..head on that file is empty), so the PR adds nothing of its own there; it only picked up main's regeneration. Everything else in the PR's own diff is unchanged from my earlier review, including the production-behaviour changes I flagged then. 0 aprender-pace trailers. I did not run the ont4b gate test or read CI.
noahgift
left a comment
There was a problem hiding this comment.
seat 1 correction, aprender-pace @3619d5deee3a9ba95c9d45aa9eccf24f05d147d2
My re-seat comment on this head said contracts/shapes.ttl is byte-identical to origin/main's copy. That was wrong; I misread an empty diff. At origin/main 2ab0282 the file differs from this head's by 34+/34- (this head has the per-slot sh:node IRIs, main has the old ones). The change is this PR's own: it edits crates/aprender-contracts/src/ontology/shapes.rs, so the regenerated shapes.ttl belongs to the PR. Everything else in my re-seat (delta from @6899d00e is shapes.ttl only; other files unchanged) stands. I have not run the ont4b gate test.
Folds two green, unquorumed PRs into one to cut the open count (cop order 06:15Z, cap 10):
NOTE (pace review): not tests-only. #5542 carries behaviour changes: serve auth refuses to start on a bad hash, RoPE theta taken from config, shape node IRIs, hf_hub front-matter errors; GPU paths unrun here. Each part was seated on its own PR before folding.
Derived files regenerated (shapes.ttl, readme count, tree-reader baseline);
validate_contractspasses locally.Supersedes #5497 and #5542; closing them is the operator's call.
keep-open: Refs only; the tickets stay open until their own PRs close them
ont-delta: none test and contract-regen fold, no ontology change
🤖 Generated with Claude Code