Skip to content

test: fold #5497 batched GEMV rows + #5542 clog fold - #5732

Merged
noahgift merged 8 commits into
mainfrom
batch/test-fold-clog-0620
Oct 19, 2026
Merged

noahgift merged 8 commits into
mainfrom
batch/test-fold-clog-0620

Conversation

@noahgift

@noahgift noahgift commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

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_contracts passes 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

noahgift and others added 7 commits October 19, 2026 08:15
… 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>
…ead of returning Ok (Refs #5500, #5328)

Malformed front matter now yields one ValidationError (field "front matter"),
so validate_readme_strict is Err. Empty front matter stays valid.

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 noahgift left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 noahgift left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

@github-actions

github-actions Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

§13.11 rung 1 — quorum shadow verdict

S13-SHADOW pr=5732 head=3619d5deee3a9ba95c9d45aa9eccf24f05d147d2 verdict=REFUSE class=Q1 arm_rc=1

Shadow mode: this records a verdict and merges nothing. A refusal
to arm is not a block (§13 adds zero rows to §7) — the pull request is
exactly as green as it was.

… fresh)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

@noahgift noahgift left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 noahgift left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 noahgift left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@noahgift
noahgift added this pull request to the merge queue Oct 19, 2026
Merged via the queue into main with commit b0ec584 Oct 19, 2026
11 checks passed
@noahgift
noahgift deleted the batch/test-fold-clog-0620 branch October 19, 2026 16:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant