Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
0590d50
fix(f2): key the F2 receipt on the executable's sha256, not the versi…
noahgift Sep 24, 2026
64b20f8
perf(qwen35-cuda): forward_single reuses one device residual instead …
noahgift Sep 24, 2026
ca5907e
refactor(chat,serve): DELETE-DUP — three callerless dense paths (0.69…
noahgift Sep 24, 2026
9e1db13
refactor(serve): DELETE-DUP — two test-only generate loops and the te…
noahgift Sep 24, 2026
39590bc
evidence(0.69.4): Qwen3.5-9B temp-0 refs at 850/4k/32k (#4261)
noahgift Sep 24, 2026
9e72256
fix(f2): split decide's key comparison into key_mismatch (complexity …
noahgift Sep 24, 2026
95224f4
fix(serve): forward-port #4278 to the 0.69.4 train — APR CPU serve st…
noahgift Sep 24, 2026
202d450
Merge remote-tracking branch 'origin/batch/0.69.4-epic-4249' into bat…
noahgift Sep 24, 2026
83bb714
fix(serve): SafeTensors chat/generate stop at EOS/<|im_end|> and hono…
noahgift Sep 24, 2026
8233973
Merge remote-tracking branch 'origin/batch/0.69.4-epic-4249' into PMA…
noahgift Sep 24, 2026
cc47da2
fix(audit): re-audit GET /tensors row — safetensors.rs:164 was the /h…
noahgift Sep 24, 2026
7b69014
fix(claims): 0.69.4 guard-cargo red — handler_gpu_completion speed li…
noahgift Sep 24, 2026
cb2d2cd
fix(paths): 0.69.4 qwen35-9b harness model path via ${APR_MODELS:-$HO…
noahgift Sep 24, 2026
d585fe0
perf(serve): derive the APR CPU stop set once at load, not per reques…
noahgift Sep 24, 2026
695ac41
fold: x/4295-stop-set-at-load @d585fe0f8
noahgift Sep 25, 2026
f62dad5
merge origin/main (#4338 v0.69.3 merge-back, squash) into batch/0.69.…
noahgift Sep 25, 2026
4c12a0b
test(#4214): RED — a repeated or re-rendered prompt resumes from the …
noahgift Sep 24, 2026
71d3477
fix(session): a repeated or re-rendered prompt resumes from a recurre…
noahgift Sep 24, 2026
e6004d7
test(#4214): a prompt prefills in two batched spans, split at its gen…
noahgift Sep 24, 2026
cbc571a
fix(serve): /v1/effective-config agrees with /health on the Qwen3.5 h…
noahgift Sep 24, 2026
2b0c860
test(#4274): a re-rendered chat turn resumes from turn 1's checkpoint…
noahgift Sep 25, 2026
c1a89cb
fix(dogfood): the declared ladder gate reads a release's RECORDED sco…
noahgift Sep 23, 2026
884db0f
docs(audits): GH-4086 implementation receipt + work entry
noahgift Sep 23, 2026
2763ee8
docs(audits): GH-4086 quorum receipt for 708c6bfce -- 3/3 PASS, parti…
noahgift Sep 24, 2026
4f967a5
test(crux): #3797 serve mutants — drop the key's mode, drop apr serve…
noahgift Sep 24, 2026
ec2c2e8
fix(crux): #4341 a killed serve sweep keeps its finished rows — plan.…
noahgift Sep 24, 2026
34bcf33
fix(run): wgpu decode prefills the prompt; delete dead run paths; one…
noahgift Sep 24, 2026
191f996
chore(roadmap): regenerate after the #4086 pick (GH-4086 fragment)
noahgift Sep 25, 2026
01d2889
fix(version): apr names its commit on both published surfaces, never …
noahgift Sep 23, 2026
f230832
roadmap: GH-4110 fragment (scope: both published surfaces)
noahgift Sep 24, 2026
9bc06c3
fix(test): #4250's serve prefill count follows #4214's two-span split…
noahgift Sep 25, 2026
86d3775
ci(cuda-nightly): run #4250's serve batched-prefill test on gx10; a S…
noahgift Sep 24, 2026
f6da455
fix(cuda-nightly): #4251's --exact filter needs the full test path, o…
noahgift Sep 24, 2026
e573ed6
perf(session): poll the cancel token before the decode forward, not a…
noahgift Sep 24, 2026
deb10aa
fix(guards): clear #4318's two guard reds — contract ID order, and a …
noahgift Sep 25, 2026
134df95
feat(release): aarch64-apple-darwin apr CPU asset, required by the as…
noahgift Sep 24, 2026
0dece9f
feat(release): darwin lane runs on the self-hosted mini-builder, not …
noahgift Sep 24, 2026
995a52c
fix(release): #4292 darwin lane passes check_runner_labels + grep-q r…
noahgift Sep 24, 2026
031c2bc
test(serve): /health and /v1/effective-config agree through the route…
noahgift Sep 25, 2026
eac1559
release: bump workspace to 0.69.4 (#4249)
noahgift Sep 25, 2026
11f6fda
Merge remote-tracking branch 'origin/batch/0.69.4-epic-4249' into HEAD
noahgift Sep 25, 2026
59135e4
fix(release): smoke strips -rc.N and binds the asset to its tag's com…
noahgift Sep 24, 2026
4b7bad4
fix(version): an rc asset prints its rc — apr 0.69.3-rc.N (<sha>), ga…
noahgift Sep 24, 2026
51d97f4
fix(release): stamp_rc_version.sh stamps without python3, and reads e…
noahgift Sep 25, 2026
aeeda2a
fix(roadmap): regenerate the aggregate after the 0.69.4 picks (PMAT-4…
noahgift Sep 25, 2026
ec4cd7f
Merge remote-tracking branch 'origin/batch/0.69.4-epic-4249' into HEAD
noahgift Sep 25, 2026
05c813d
qwen-story-daily builds apr in place instead of cargo-installing into…
noahgift Sep 25, 2026
9166643
docs(audits): PMAT-4346 quorum receipt for c4fd00a36 -- 3/3 PASS, deg…
noahgift Sep 25, 2026
9595b70
install.sh: --channel rc installs the newest -rc prerelease (closes #…
noahgift Sep 24, 2026
0a0c597
feat(install): curl | bash e2e in a clean container, per channel, nig…
noahgift Sep 24, 2026
d56760f
docs(audits): PMAT-3546 quorum receipt -- 3/3 PASS, degraded same-fam…
noahgift Sep 25, 2026
da38177
perf(qwen35-cuda): split decode attention over the sequence, one warp…
noahgift Sep 25, 2026
b155a6d
fix(features): apr-cli --features wgpu compiles and is clippy-clean (…
noahgift Sep 24, 2026
e71bd06
merge origin/main into batch/0.69.4 — #4318 was DIRTY
noahgift Sep 25, 2026
01c71e6
evidence(pr-review): #4318 receipt at f23083206 — DEGRADED (cuda-docs…
noahgift Sep 25, 2026
3c4e192
fix(release): darwin apr lane stamps the rc version and checks it (#4…
noahgift Sep 25, 2026
02d4618
docs(quorum): 0.69.4 batch1 receipt — 3/3 PASS after darwin rc-stamp …
noahgift Sep 25, 2026
cef1b12
chore(pr-review): sign this PR's receipt (PR-REVIEW-SKILL-002 v2 §4.3…
claude Sep 25, 2026
696576e
fix(release): pin apr in the curl|bash e2e and stamp the darwin lane'…
noahgift Sep 25, 2026
6281d9f
fix(install-e2e): bashrs 0 warnings on the pinned-apr line (#4318)
noahgift Sep 25, 2026
e819301
fix(release): stamp_rc_version.sh restores nullglob without eval (bas…
noahgift Sep 25, 2026
90f8ec7
fix(serve): a turn past MIN_CAPACITY re-prefilled the next turn from …
noahgift Sep 25, 2026
b02807d
fix(#4318): three code reds at 90f8ec7a5 — FUSION pins, generate comp…
noahgift Sep 25, 2026
72c6671
perf(qwen35): f16 tensor-core prefill GEMM + load-time fp16 weight pr…
noahgift Sep 25, 2026
d46f865
perf(qwen35): f16 prefill GEMM on a tensor-op cuBLAS handle (#4313)
noahgift Sep 25, 2026
ffda86e
perf(qwen35): f16 prefill GEMM is the default, f32 when it cannot be …
noahgift Sep 25, 2026
0574e9f
fix(qwen35): wait for the fp16 prewarm before arming f16 (#4313)
noahgift Sep 25, 2026
3ca08df
test(qwen35): f16 budget from the measured reading x10; fits refuses …
noahgift Sep 25, 2026
ff7f13e
chore(release): bump to 0.69.5 (#4318 is the 0.69.5 RC; 0.69.5 folds …
noahgift Sep 25, 2026
5660b08
fix(claims): drop 3 tok/s literals from the #4273 split-decode comments
noahgift Sep 25, 2026
90ade19
fix(serve): #4274 headroom that would not allocate demoted Qwen3.5 to…
noahgift Sep 25, 2026
d1bb4d9
test(serve): pin the exact allocation attempts, so a no-headroom retr…
noahgift Sep 25, 2026
c13a233
test(serve): drive #4443 through ensure_capacity, not just its helpers
noahgift Sep 25, 2026
dded9c7
quorum(#4318): 3/3 PASS at c13a233a3 — the #4443 ensure_capacity find…
noahgift Sep 25, 2026
a95de3f
fix(install-e2e): the rc version check rejected every stamped rc (#4318)
noahgift Sep 25, 2026
3c48730
Merge remote-tracking branch 'origin/main' into e6/4318-merge-main
noahgift Sep 25, 2026
b3ff63c
Merge branch 'main' into batch/0.69.4-epic-4249
noahgift Sep 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/actionlint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,5 @@ self-hosted-runner:
- apple-silicon
- m4
- mini
# #4292 / infra#1042: the mini's dedicated repo-level release runner
- mini-builder
199 changes: 193 additions & 6 deletions .github/workflows/binary-release.yml

Large diffs are not rendered by default.

36 changes: 36 additions & 0 deletions .github/workflows/cuda-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,42 @@ jobs:
nice -n 19 cargo test -p aprender-serve --lib --release cb008_checker_controls
APR_FALSIFY_MODEL="$model" nice -n 19 cargo test -p aprender-serve --features cuda \
--release --test falsify_cb008_no_frozen_slots_2753 -- --nocapture

# aprender#4251: #4250's serve batched-prefill test. ci.yml's cuda-only step selects it, but
# there a missing Qwen3.5 file is a legitimate skip, and the runners do not carry one. So it
# passed without running. Here the model is resolved first, and a `SKIP:` line or a
# run that is not exactly `1 passed` is RED. `!cancelled()` so an earlier red falsifier
# cannot hide this one.
- name: aprender#4251 - every serve route prefills through the batched prefill (Qwen3.5)
if: ${{ !cancelled() && steps.decide.outputs.proceed == 'true' }}
env:
APR_QWEN35_MODEL: ${{ vars.APR_QWEN35_MODEL || '/home/noah/models/Qwen3.5-0.8B-Q4_K_M.gguf' }}
run: |
set -euo pipefail
if [ ! -f "$APR_QWEN35_MODEL" ]; then
echo "::error::#4251 UNMEASURABLE on ${{ matrix.name }} (provisioning, not a code defect): $APR_QWEN35_MODEL is absent"
exit 1
fi
echo "#4251 model: $APR_QWEN35_MODEL"
log="$RUNNER_TEMP/serve-batched-prefill.log"
rc=0
nice -n 19 cargo test -p aprender-serve --features cuda --lib --release \
api::openai_handlers::qwen35_serve_tests::gpu_every_serve_route_prefills_through_the_batched_prefill \
-- --exact --nocapture \
>"$log" 2>&1 || rc=$?
cat "$log"
if [ "$rc" -ne 0 ]; then
echo "::error::#4251 serve batched-prefill test FAILED (exit $rc)"
exit "$rc"
fi
if grep -q '^SKIP:' "$log"; then
echo "::error::#4251 the test SKIPPED on a CUDA runner with the model named: $(grep -m1 '^SKIP:' "$log")"
exit 1
fi
if ! grep -q 'test result: ok\. 1 passed' "$log"; then
echo "::error::#4251 the filter did not run exactly one test"
exit 1
fi
# PP-26 / L0 CORRECTNESS: the batch-invariance witness (FALSIFY-CB-006,
# #2753, §9 #1a on Blackwell). PP-LLAMA-001 §7.0 puts correctness at layer
# L0 and says perf041 runs "nightly + release, missing marker = RED"; the
Expand Down
30 changes: 29 additions & 1 deletion .github/workflows/install-script.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,15 @@ on:
paths:
- "scripts/install.sh"
- "scripts/tests/install_test.sh"
- "scripts/tests/install_e2e_container.sh"
- ".github/workflows/install-script.yml"
- ".github/workflows/binary-release.yml"
- ".github/workflows/nightly.yml"
pull_request:
paths:
- "scripts/install.sh"
- "scripts/tests/install_test.sh"
- "scripts/tests/install_e2e_container.sh"
- ".github/workflows/install-script.yml"
- ".github/workflows/binary-release.yml"
- ".github/workflows/nightly.yml"
Expand All @@ -54,8 +56,13 @@ jobs:

- name: "bashrs SEC/DET/IDEM (scripts/install.sh, scripts/tests/install_test.sh)"
run: |
bashrs lint --level error scripts/install.sh
bashrs lint --level error scripts/tests/install_test.sh
# #3546: install.sh and the container e2e are held to 0 errors AND 0 warnings, not just 0 errors.
for f in scripts/install.sh scripts/tests/install_e2e_container.sh; do
out="$(bashrs lint "$f" 2>&1 | sed 's/\x1b\[[0-9;]*m//g')" || true # bashrs colours even a pipe
printf '%s\n' "$out" | grep -E 'Summary:'
printf '%s\n' "$out" | grep -qE 'Summary: 0 error\(s\), 0 warning\(s\)' || { printf '%s\n' "$out"; exit 1; }
done

# Proves install_test.sh's own mutual-exclusivity row discriminates
# before trusting the full run below — same discipline as
Expand All @@ -68,3 +75,24 @@ jobs:
# it is the same contract a user's `curl | sh` exercises.
- name: install_test.sh
run: bash scripts/tests/install_test.sh

# #3546: the README one-liner end to end, per channel, nightly and on every install.sh change. See the script
# header for the five checks. RED today on `apr --version` for any release built without APR_GIT_SHA_OVERRIDE
# (it prints `+no-git`), which is the point: two rcs of one version must be told apart.
e2e-container:
name: curl | bash in a clean container (${{ matrix.channel }})
runs-on: [self-hosted, Linux, X64, clean-room, docker]
strategy:
fail-fast: false
matrix:
channel: [stable, rc]
steps:
- uses: actions/checkout@v7
- name: Preflight - docker
run: bash scripts/ci_self_hosted_preflight.sh --need docker
- name: version comparator case table
run: bash scripts/tests/install_e2e_container.sh --self-test
- name: curl | bash --channel ${{ matrix.channel }}
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: bash scripts/tests/install_e2e_container.sh ${{ matrix.channel }}
18 changes: 14 additions & 4 deletions .github/workflows/qwen-story-daily.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,19 @@ jobs:
shell: bash
run: |
set -euo pipefail
cargo install --path crates/apr-cli --force --features cuda 2>&1 | tail -5
# BUILD, never `cargo install`. This runner runs as the host user, so
# `cargo install` wrote the HOST's ~/.cargo/bin/apr - on gx10 that is
# the fleet-bins install dir, and every beat replaced the fleet's
# release binary with a CI dev build (measured 2026-09-25 01:30Z:
# v0.69.3 overwritten by `apr 0.69.0 (aa7c6ef0)`, .crates.toml naming
# this runner's _work checkout; fleet drift RED bytes-not-recorded).
# The story needs the binary on PATH, not installed; scripts/apr_bin.sh
# finds <target>/release/apr first and attributes it by dep-info.
cargo build --release -p apr-cli --bin apr --features cuda 2>&1 | tail -5
APR_BUILT_DIR="$(cargo metadata --format-version 1 --no-deps | jq -r .target_directory)/release"
[ -x "$APR_BUILT_DIR/apr" ] || { echo "::error::no apr at $APR_BUILT_DIR"; exit 1; }

# `cargo install` writes to ~/.cargo/bin. On this runner ~/.local/bin
# `cargo install` wrote to ~/.cargo/bin. On this runner ~/.local/bin
# comes FIRST in PATH and held a 24-day-old apr, so every previous run
# of this story installed a fresh binary and then executed a stale one:
#
Expand All @@ -96,8 +106,8 @@ jobs:
# Detected because the format_parity gate reported its OLD result
# shape (value/threshold 17/17, a token id) on a commit whose source
# reports 64/64 decode steps. Put the freshly built binary first.
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
export PATH="$HOME/.cargo/bin:$PATH"
echo "$APR_BUILT_DIR" >> "$GITHUB_PATH"
export PATH="$APR_BUILT_DIR:$PATH"

# Fail closed on staleness. A path fix alone would silently rot again
# the next time PATH changes; this asserts that the apr the story is
Expand Down
63 changes: 63 additions & 0 deletions .quorum/0694-batch1/receipt-r2-c13a233a3.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
{
"pr": 4318,
"batch": "batch/0.69.4-epic-4249",
"reviewed_head": "c13a233a3",
"base": "3c4e19242 (last quorumed, .quorum/0694-batch1/receipt.json)",
"author_model": "claude-opus-5-5 (fold captain aprender-59); fix author aprender-0d",
"degraded": false,
"round_1": {
"head": "d1bb4d9f4",
"range": "3c4e19242..d1bb4d9f4",
"diff_sha256": "8f79bb1c8f91446a250a9f3c42ece2f051f0698377b2c1790afc536e8b2843f3",
"lanes": [
{
"lane": 1,
"model": "claude-sonnet-5",
"verdict": "PASS"
},
{
"lane": 2,
"model": "claude-haiku-4-5-20251001",
"verdict": "PASS"
},
{
"lane": 3,
"model": "gemini-3.1-pro-high",
"model_self_report": "Gemini 3.1 Pro",
"verdict": "FAIL",
"finding": "qwen35_session_tests.rs:575/606 test grown_capacity and allocate_with_exact_retry only; ensure_capacity (qwen35_session.rs ~620-668), their caller, is driven by no test, so reverting its call site stays green"
}
]
},
"fix": {
"commit": "c13a233a3",
"author": "aprender-0d",
"what": "CPU test drives ensure_capacity through reserve(); GPU test with a cfg(test) alloc ceiling + control; mutant reverting the grown_capacity call site is RED (20 vs 32)"
},
"round_2_on_fix": {
"head": "c13a233a3",
"range": "d1bb4d9f4..c13a233a3",
"diff_sha256": "ad23badb311c012c14302379da3d432fcd0b6fa7954edc0e8ff7fef691c52761",
"lanes": [
{
"lane": 1,
"model": "claude-sonnet-5",
"verdict": "PASS"
},
{
"lane": 2,
"model": "claude-haiku-4-5-20251001",
"verdict": "PASS"
},
{
"lane": 3,
"model": "gemini-3.1-pro-high",
"model_self_report": "Gemini 3.1 Pro (High)",
"verdict": "PASS",
"agy_status": "SUCCESS",
"agy_conversation": "7bba17fe-c966-445c-ad5b-c8be7b969847"
}
]
},
"result": "PASS 3/3 at c13a233a3 (round 1 FAIL resolved by c13a233a3)"
}
23 changes: 23 additions & 0 deletions .quorum/0694-batch1/receipt.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"pr": 4318,
"batch": "batch/0.69.4-epic-4249",
"reviewed_head": "01c71e648",
"fix_head": "3c4e19242",
"base": "a5efa1443",
"author_model": "claude-opus-5-5",
"degraded": "same-family",
"mandatory_scope": ".github/workflows/binary-release.yml reviewed explicitly by every lane (cop GO condition)",
"round_1": [
{"lane": 1, "model": "claude-sonnet-5", "scope": "workflows + scripts/release + install", "verdict": "FAIL", "finding": "build-apr-darwin did not stamp the rc version; the rc darwin asset printed bare X.Y.Z"},
{"lane": 2, "model": "claude-haiku-4-5-20251001", "scope": "binary-release.yml line-by-line + ci/ + contracts/", "verdict": "PASS"},
{"lane": 3, "model": "claude-sonnet-5", "scope": "crates/** + binary-release.yml", "verdict": "PASS"}
],
"fix": "3c4e19242: darwin lane stamps the rc version (stamper from the workflow commit) and runs asset_version_check.sh against the tag and commit",
"round_2_on_fix": [
{"lane": "r1", "model": "claude-sonnet-5", "verdict": "FAIL", "reason": "darwin is not a required asset and has no post-upload smoke; this is aprender#4353 scope (milestone 0.70.1), and the operator ruled no scope change for 0.69.4"},
{"lane": "r2", "model": "claude-haiku-4-5-20251001", "verdict": "PASS"},
{"lane": "r3", "model": "claude-sonnet-5", "verdict": "PASS", "note": "#4353 gap is non-blocking and out of scope; smoke the stamper on the mini"}
],
"extra_evidence": "stamp_rc_version.sh --self-test on mini (GNU bash 5.3.20, aarch64-apple-darwin): PASS",
"result": "3/3 PASS (lanes 2 and 3 on the whole batch; r2 and r3 on the fix to lane 1's finding), degraded: same-family"
}
Loading
Loading