Skip to content

release: 0.70.2 - #4890

Closed
noahgift wants to merge 5 commits into
mainfrom
release/0.70.2
Closed

noahgift wants to merge 5 commits into
mainfrom
release/0.70.2

Conversation

@noahgift

@noahgift noahgift commented Oct 7, 2026

Copy link
Copy Markdown
Member

Summary

The 0.70.2 release commit. It ships under a recorded operator emergency scope, crux-smoke, as 0.70.1 did: "0.70.2 ships on CRUX smoke on lambda and gx10 GPU. Everything bigger is nightly."

Branch release/0.70.2 is cut from main 4098007133. It holds two commits and nothing else:

  • chore(release): the version bump. scripts/bump-version.sh 0.70.2, and --check is green. It touches the same 38 files as the 0.70.1 bump.
  • release(0.70.2): the release content.
    • Scope entry: a crux-smoke entry for release "0.70.2" under emergency_scopes in contracts/model-capability-ladder-v1.yaml. It is data only, and pv validate is clean.
    • PP-26 witness marker: marker.json is taken from evidence(perf041): refresh the PP-26 batch-invariance witness marker #4888 and nothing else. It is the input of the declared dogfood gate scripts/check_perf041_marker.sh, which prints PASS.
    • Prompt certification: carried from 0.70.1 as byte copies. The models, prompts and oracle engines are unchanged; the release notes give the reason.
    • Release notes: evidence/release/0.70.2/RELEASE-NOTES-0.70.2.md.
    • CHANGELOG: a [0.70.2] section.

No crate source, gate or script is edited.

The notes name six known failures: #4661, #4662, #4663, #4664, #4665 and #4666. All six are on the 0.71.0 milestone. One unattended autopilot pass also moved to 0.71.

Merge back after the release, as #4776 did. Do not merge before the tag.

keep-open: #4661 #4662 #4663 #4664 #4665 #4666 -- known failures shipped in 0.70.2 and moved to 0.71.0; this release fixes none of them
ont-delta: none -- adds one emergency_scopes entry; no known-red list or ontology term changes

Test plan

  • cargo fmt --all -- --check
  • cargo test -p aprender-contracts --lib
  • cargo test -p aprender-core --test readme_contract
  • cargo deny check advisories
  • pv validate contracts/model-capability-ladder-v1.yaml
  • scripts/bump-version.sh --check
  • scripts/check_milestone_cut.sh 0.70.2 --must-carry: PASS

🤖 Generated with Claude Code

noahgift and others added 2 commits October 7, 2026 10:38
`scripts/bump-version.sh 0.70.2`, then `--check` green: the root workspace,
the facades' upstream pins and crates/facades/Cargo.lock all read 0.70.2;
the facades' own version stays 0.4.0. Same 38 files as the 0.70.1 bump;
Cargo.lock changes only version lines.

Agent: aprender-a7
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…otes

0.70.2 ships under a recorded operator emergency scope, crux-smoke, as 0.70.1
did: "0.70.2 ships on CRUX smoke on lambda and gx10 GPU. Everything bigger is
nightly."

- contracts/model-capability-ladder-v1.yaml: one emergency_scopes entry,
  crux-smoke, release "0.70.2", first in the list, shaped like the 0.70.1
  entry. Data only: crux_smoke_scope.py matches a recorded scope by its whole
  release string. pv validate: 0 errors, 0 warnings.
- evidence/perf041/lambda/marker.json from #4888 (only that file): the PP-26
  witness re-measured on this branch's base. check_perf041_marker.sh is a
  declared dogfood gate and the tree's marker was past its 7-day window.
  The check prints PASS (age 0.1d).
- evidence/crux/0.70.2/: the prompt certification and its inventory, byte
  copies of evidence/crux/0.70.1/. Carried, not re-run: the certified models'
  sha256s are unchanged, the certification inputs and the smoke scripts have
  no diff since v0.70.1, the oracle record is the sha256-pinned 0.69.1
  manifests, and the smoke does not re-run the oracle engines.
- evidence/release/0.70.2/RELEASE-NOTES-0.70.2.md: the scope and its quote,
  why the certification is carried, the six known failures (#4661-#4666, on
  the 0.71.0 milestone), and what moved to 0.71.
- CHANGELOG.md: [0.70.2].

crates/ and src/ are unchanged from the version bump; no gate or script is
edited.

Refs: #4661, #4662, #4663, #4664, #4665, #4666, #4888

Agent: aprender-a7
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

§13.11 rung 1 — quorum shadow verdict

S13-SHADOW pr=4890 head=89e261cda1042ad14dba50034da9a9090abcdecb 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.

@noahgift

noahgift commented Oct 7, 2026

Copy link
Copy Markdown
Member Author

Review by aprender-cd (non-author), verdict YES at b11fd23

This verdict covers the content of these two commits on base 4098007. It does not cover CI. At the time of review present was red and the workspace-test shards, x86-main and yoga were still pending.

Checked:

Non-blocking: in CHANGELOG [Unreleased] / Known issues, three entries still say "planned for 0.70.1" (#3715, #4590). These are stale wording, not a release gate. Fix them after the release.

Agent: aprender-cd

@noahgift

noahgift commented Oct 7, 2026

Copy link
Copy Markdown
Member Author

Non-author review of #4890 at b11fd23: YES

The diff runs from merge-base 4098007133 to b11fd2381a, in two commits. be512e816a is the bump. b11fd2381a holds the scope entry, the marker, the carried certification, the notes and the CHANGELOG. Outside the bump, no file under crates/, src/ or scripts/ changes.

Measured on a detached checkout of b11fd23

check result
bash scripts/bump-version.sh --check rc 0
pv validate contracts/model-capability-ladder-v1.yaml rc 0: 0 errors, 0 warnings
bash scripts/check_perf041_marker.sh rc 0, PASS ... commit=40980071333b max_m=16 age=0.1d (window 7d)
marker.json against #4888 head c92044b3c2 byte-identical
evidence/crux/0.70.2/prompt-certification{,-inventory}.json byte-identical to evidence/crux/0.70.1/ and to the v0.70.1 tag's copy
.prompts_sha256 against sha256(scripts/crux_inference_prompts.v2.json) equal (cea80df5…)
.inventory_sha256 against sha256(inventory) equal (b8e4c462…)
git diff v0.70.1 HEAD on the paths the notes name, plus scripts/crux_inference_prompts.v2.json and scripts/check_model_ladder.sh empty

The paths the notes name are evidence/crux/0.70.1, the 0.69.1 prompt certification, crux_inference_dogfood.sh, lib/crux_smoke_scope.py and crux_sweep_shards.sh. Because that diff is empty, the notes' carry argument holds.

Read

  • Scope entry. It has the same shape as the 0.70.1 entry: release, date, quote, hosts and thinking. The quote is the release owner's recorded ruling for 0.70.2, not the 0.70.1 quote with its version edited. The judge matches the whole release string, so the 0.70.1 entry admits nothing for 0.70.2 and the new entry admits nothing else.
  • Carried certification and fix(serve): request tools reach the chat template; Qwen3.5 XML tool calls parse (#4650) #4866. crates/aprender-serve/src/chat_template_official.rs changed after v0.70.1 in fix(serve): request tools reach the chat template; Qwen3.5 XML tool calls parse (#4650) #4866, which added the tojson filter and request tools. The certification does not depend on that change. Its cells are oracle-engine verdicts per prompt (for example engine: llama.cpp, rows from the 0.69.1 manifests), not apr renders. Its prompt file is unchanged, and a search of the certification finds no tools or tool-call prompt. The smoke itself runs the binary built at this commit.

Advisory, not blocking

  1. Stale comment. contracts/model-capability-ladder-v1.yaml still introduces emergency_scopes with the comment "OPERATOR EMERGENCY SCOPE for 0.69.1 ONLY … Refused for any other release". The list now holds three releases. Fix the wording at merge-back.
  2. Notes and fix(serve): request tools reach the chat template; Qwen3.5 XML tool calls parse (#4650) #4866. The notes could name the fix(serve): request tools reach the chat template; Qwen3.5 XML tool calls parse (#4650) #4866 template change and say why it does not reach the certification, as argued above, so a later reader does not have to re-derive it.
  3. present is FAILURE at this head. evidence/pr-review/4890/b11fd2381a…/ has no receipt yet. This review does not cover that check.

…e device

On one 24 GB card, apr serve (10.8 GB) and llama-server (3.6 GB) stayed resident
while the hf and vllm drivers started for a 4B model. hf went CUDA OOM (HTTP 500 /
TruncatedStream) and vllm found 8.62 GiB free against its 11.74 GiB ask. Every serve
cell on both 4B models went RED with "no ground-truth control" while apr and llama.cpp
answered correctly. The same cells are GREEN on a host with enough memory.

The comparator drivers start and stop their own servers and need no apr or llama
port, so they now run before apr serve and llama-server start. Prompts, comparators
and verdict rule are unchanged.

Agent: aprender-wprodmodels
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@noahgift

noahgift commented Oct 7, 2026

Copy link
Copy Markdown
Member Author

0.70.2 state at 12:20Z: operator ruling C325 (11:45Z). A check made green by a setup fix counts only if all four hold:

  • (a) the tree is clean at b11fd23 and every gate script that ran is its own;
  • (b) every measured binary printed apr 0.70.2 (b11fd2381);
  • (c) no expectation, threshold, prompt, oracle, budget or gate script changed;
  • (d) the first red was infrastructure or setup.
Check Counts Why
C1 CI workspace-test no (d) is false: the first red was an out-of-bounds read in a test of the SIMD crate (#4891, kernel log), not infrastructure. The rerun was green but does not clear it.
C3 CRUX smoke, one of the two GPU hosts no (a) and (c) are false: the green needed a harness script that changes the engine order (hf and vllm first, alone on the GPU).
C4 T-1 deep yes The same build and smoke ran at b11, launched with APR_GIT_SHA_OVERRIDE as the nightly does. 29 of 29 binaries print 0.70.2 (b11fd2381).
C2, C3 other host, C5, C6, C7 yes Green the first time, with nothing changed.
C8 not run

For C1 and C3 the operator is asked to choose: 2 (fix both in one new release commit; every lane reruns) or 3 (hold). Until then nothing is pushed or armed.

Agent: aprender-a3

🤖 Generated with Claude Code

Noah Gift and others added 2 commits October 7, 2026 14:32
…n the last k-block (#4891)

microkernel_8x6_true_asm pipelines A four k-steps ahead: each loop
iteration reloads ymm6..ymm9 from the next 4x8 block. The last iteration
reloaded too, so it read up to 128 bytes (the 4 - k%4 k-steps after it) past the panel. For the
last ir panel the packed-A buffer ends there, and when the allocation ends
next to an unmapped page the read faults: an intermittent SIGSEGV in the
blis tests. The values were never used, so results were always right.

The last iteration now reloads the block it is consuming (cmov on
k_cnt == 1); the k % 4 remainder already reads A from memory.

FALSIFY-BLIS-ASM-OOB-001 puts the A and B panel ends on a PROT_NONE page
for k in {4..8, 12, 64, 255, 256}: SIGSEGV on every run before, green after.

Refs: #4891

Agent: aprender-a7
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Refs: #4891

Agent: aprender-a7
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@noahgift

noahgift commented Oct 7, 2026

Copy link
Copy Markdown
Member Author

Replaced by #4909. This PR's head is the tagged commit 89e261cda1. The tag-push CI run on v0.70.2 attaches failed base-dependent required checks to that commit, so this PR stays blocked whatever its own run says. #4909 merges the same tree as a new merge commit (git diff 89e261cda1 fd31b82a85 is empty). The tag-push trigger is a 0.71 ticket.

@noahgift noahgift closed this Oct 7, 2026

This branch was successfully deployed

1 active deployment
paiml-apr-deploy — 89e261cd Deployed Oct 7, 2026 by noahgift via publish install.sh #4
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