release: 0.67.0 - #3145
Merged
Merged
Conversation
bump-version.sh 0.67.0 (every workspace, facades included; --check green) and the CHANGELOG [0.67.0] section, per docs/specifications/06x-release-schedule.md §4.2. After this merges, rel-067-autopilot runs §4.3-4.8: pre-publish dogfood, tag, release, the sixteen assets by command, cascade, host receipts, close. Pmat-Ticket: PMAT-1098 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
noahgift
enabled auto-merge
September 12, 2026 10:51
|
§13.11 rung 1 — quorum shadow verdict Shadow mode: this records a verdict and merges nothing. A refusal |
6 tasks
…tree: roadmap diff not additive on its group) and cannot precede the cut; it ships in 0.68 Pmat-Ticket: PMAT-1098 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…t in 0.67.0 Verified every `#NNNN` in the 0.67.0 section against `git log v0.66.0..origin/main` and against each PR's state. Four rows were false: #3068 OPEN — dequeued from the merge queue; guard-tree RED on check_roadmap_diff_additive.sh. Moved to 0.68.0. #3139 OPEN — same guard, same cause. Moved to 0.68.0. #3064 MERGED 2026-09-09T22:20Z — its merge commit is an ANCESTOR OF v0.66.0. It shipped in the previous release; listing it here bills it twice. #3065 MERGED 2026-09-09T18:00Z — likewise an ancestor of v0.66.0. The last two are the more interesting defect: "merged after the last CHANGELOG entry" is not the same predicate as "merged after the last tag", and only the second one is true of a release. `git merge-base --is-ancestor <merge-sha> v0.66.0` answers it and is what was run here. A release note that lists work the release does not contain is a false record, and it is the kind that survives because nobody re-derives it. The scope rule is APR-RELEASE-001 §4: a train contains whatever merged before its cut, by definition -- so the fix is to shrink the list, never to hold the train for it. Pmat-Ticket: PMAT-1098 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
… four false rows A section heading with no rows under it reads as "nothing was added" only if you notice the heading is empty; more often it reads as a rendering bug. Removing the heading says the same thing without the ambiguity. Pmat-Ticket: PMAT-1098 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…adings across eight years of history The previous commit removed every "### " heading with no "- " bullet under it. Thirty of the thirty-one it matched were historical sections whose content is PROSE, not bullets: "### Migration Guide", "### Quality Metrics", "### TOP 10 Algorithms - Complete List". A heading with no bullets is not an empty heading. This reverts it and removes exactly one heading: the 0.67.0 "### Added", which is followed immediately by the next heading with nothing at all between them. The predicate is now "nothing before the next heading", not "no bullets", and it is scoped to the 0.67.0 section. Pmat-Ticket: PMAT-1098 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
… v0.66.0 tag — the CUDA-asset rebuild rows (#3072, #3074, #3086) and the PMAT-1096 receipt (#3085) T-0 rule: CHANGELOG from merged PR titles since the last tag. Predicate: `git log v0.66.0..origin/main` titles minus CHANGELOG rows = 4 → now 0. Each merge commit is NOT an ancestor of v0.66.0 (`git merge-base --is-ancestor` rc=1 for 2c584a1 43b8d8e 58c3dda a4b27f3). Rows appended to ### Changed; narrative gains one sentence on the glibc 2.31 floor. Headings 224 → 224; 0.67.0 rows 27 → 31. release_notes.md carries the same four rows. Pmat-Ticket: PMAT-1098 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This was referenced Sep 12, 2026
noahgift
added a commit
that referenced
this pull request
Sep 12, 2026
… 34693750243..34700216664 incl. the discarded #3145 workspace-test (4958 s) and the two cancelled docs-PR runs [skip ci] Pushes to this docs branch were starting full CI runs on intel next to the train (34694025825, 34700216664, 34701097504 — all cancelled by hand); until v0.67.0 is tagged every push here carries [skip ci]. The final push before merge does not. Pmat-Ticket: PMAT-1098 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
noahgift
added a commit
to guyernest/aprender
that referenced
this pull request
Sep 14, 2026
… — the 0.67.0 train (paiml#3164) * docs(release): APR-RELEASE-001 — the release train + build kaizen spec, and the R-17 model-movement row for PMAT-1098 The spec was dropped by the operator on 2026-09-12 and is untracked until this commit; the routing row records the orchestrator model moving opus->fable-5-1 at phase 4 (phase-boundary.sh). Pmat-Ticket: PMAT-1098 * docs(audits): PMAT-1098 receipt-so-far for APR-RELEASE-001 session 1 (the 0.67.0 train) + the two agy lane receipts Andon obligation: K=240 was crossed at k_measured=312 when the operator issued the spec run; WIP committed and this draft PR carries the receipt-so-far. Amended at phase 5. Pmat-Ticket: PMAT-1098 * ledger(APR-RELEASE-001 §3.6): 182 measured gate-job records — intel is the bottleneck, gx10 is 2.3x faster and half idle One append-only JSON per (sha, host, job) from the Actions REST API: queue_wait_s (created->started), exec_s, total_s, host, conclusion. peak_rss_mb and free_disk_gb are null with an explicit "[U]" in unmeasured[]: the REST API does not expose them, and an absent measurement must never read as a zero. What the 182 records say (p50 / p95 exec_s, this repo, 2026-09-12): workspace-test intel 1790 / 4148 s gx10 790 / 790 s yoga 259 / 3167 s guard-cargo intel 1201 / 1820 s gx10 422 / 516 s yoga 830 / 1046 s guard-tree intel 604 / 879 s gx10 192 / 213 s yoga 379 / 379 s queue wait p95 intel 2995 s gx10 233 s yoga 1654 s Per-run required-check wall clock, grouped by which boxes the run touched: gx10 only n=4 mean 9.4 min gx10 + yoga n=4 mean 11.3 min gx10 + intel n=10 mean 42.6 min gx10 + intel + yoga n=11 mean 31.6 min Every run that touched intel cost 32-43 min; no run that avoided it cost more than 11.3. intel took 15 of the 22 workspace-test records because that job is pinned to X64 -- and it is the job whose p95 is 69 minutes. paiml#3139 unpins it. §1 coupling, no longer [U]: p95 gate = 72.3 min, so max PRs per train = 72h / 72.3 min = 59.7. §8's "stop cutting trains below 10" does not fire. Pmat-Ticket: PMAT-1098 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * receipt(PMAT-1098): the orchestrator model moved mid-phase-4, and the ledger answered §1 Three things the receipt did not yet carry: 1. orch_model. The harness moved this session from claude-fable-5-1 to claude-opus-5 in the middle of phase 4. A model change mid-session is a recorded event, never a silent one: route.sh record-event wrote the row to docs/audits/impl-routing.jsonl and the frontmatter now names the live model. fable_binding drops to false with the reason, rather than asserting a binding that no longer holds. 2. The build ledger, 182 records, and what they say about which box to fill. 3. §1's max-PRs-per-train, measured at 59.7 from 29 runs, so it stops being [U] and §8's stop condition can be evaluated instead of guessed. Pmat-Ticket: PMAT-1098 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * dogfood(G3.EX): 981 examples run for the first time on a release — 6 real defects, 38 classifier gaps The gate paiml#3121/paiml#3122 added during this cycle had never been executed against a tag. Its first run says 23 fail + 21 timeout, and that number is wrong in the interesting direction: re-running all 44 with each target's own required-features and keeping the logs leaves SIX genuine defects. 9 rows pass once the feature they name at runtime is enabled (cuda, compression, embeddings, tensor, shell-autocomplete). They declare no required-features and gate themselves in code, so the sweep ran them wrong. 20 rows are servers, TUIs and unbounded benchmarks. Killing them at 120 s and calling it `timeout` -- a class the skill defines as a defect -- is wrong on all twenty. 6 rows are a missing model or a missing argument worded outside the regexes. 1 is a TTY, 1 is this box's glibc against a prebuilt ort artifact, 1 is a wall-clock perf assertion failing under load. Verdict GO. Every one of the six defects is byte-identical at v0.66.0: the expect() on weight.rs:356, the five PinnedBuffer imports, the three cwd-relative config literals in llama2/train.rs. §3.1 skips a train whose CUT cannot go green; this cut did not cause any of them, the previous tag shipped them all, and a new instrument finding a backlog is not the same event as a regression. They are paiml#3178 paiml#3179 paiml#3180 paiml#3181, and the classifier gaps are paiml#3182. Not claimed: that the 20 timeouts are healthy. They were not individually verified and the gate cannot yet tell a serving server from a wedged one. Pmat-Ticket: PMAT-1098 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs(audits): PMAT-1098 receipt — four missing CHANGELOG rows (aa61219), paiml#3068/paiml#3139/paiml#3175 dequeues, the T-0 correction table, G3.EX GO, and the model return (opus -> fable) recorded Pmat-Ticket: PMAT-1098 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * docs(ledger): 49 more APR-RELEASE-001 §3.6 records (231 total) — runs 34693750243..34700216664 incl. the discarded paiml#3145 workspace-test (4958 s) and the two cancelled docs-PR runs [skip ci] Pushes to this docs branch were starting full CI runs on intel next to the train (34694025825, 34700216664, 34701097504 — all cancelled by hand); until v0.67.0 is tagged every push here carries [skip ci]. The final push before merge does not. Pmat-Ticket: PMAT-1098 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * docs(evidence): the ph4 teamwork delegate receipt carried two absolute checkout paths — the shipped-tier machine-specific-path ratchet went RED on paiml#3164 (+2 vs 81da9bc) [skip ci] check_hardcoded_paths.sh --full-if-capable, run 34700216664 step 43: evidence/release/0.67.0/agy/ph4-teamwork/delegate-receipt.json|/home/noah/src/aprender and |/home/noah/src/aprender/.git/config. Replaced with <repo_root>; the receipt is this session's artifact, not a tool output anyone re-reads by path. Pmat-Ticket: PMAT-1098 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * docs(audits): PMAT-1098 receipt — T-1 stand-in dispatched on the idle GPU hosts, cuda-nightly standing-RED since the v0.66.0 sha, why gx10 idles (X64 pin, paiml#3139 795 s, ENOSPC), §6 triage to untriaged=0, one-at-a-time drain [skip ci] Pmat-Ticket: PMAT-1098 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * spec(APR-RELEASE-001): packing rule — yoga and gx10 ≥80% full of aprender PR work under any intel queue pressure is P0 (selector row 0, §1, §3.4, §3.5 SSH, §5 P0·Pack + P0·Reap, §7 pack: line, §8 stops) [skip ci] Operator 2026-09-12, verbatim in §1. §3.4 no longer says one PR at a time: the queue builds 3 by design, dequeue only a KNOWN-RED group. §3.5 distinguishes durable config (forjar) from measurement/unclogging over SSH. Ground truth (§2) gains the measured X64 pin and the gx10/yoga disk layout. Pmat-Ticket: PMAT-1098 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * docs(audits): PMAT-1098 receipt — the four operator rulings and what changed (SSH measurement, 146 GB reclaimed, forjar P0·Reap live on gx10+yoga via infra#549, packing rule, spec e874769), the stacked-merge-group resolver defect paiml#3186 → paiml#3187, 16 ledger records incl. fleet-pack samples [skip ci] Pmat-Ticket: PMAT-1098 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * docs(ledger): 15 more §3.6 records — the two stacked merge groups RED on paiml#3186, the GPU-host nightlies on the cut, fleet-pack samples [skip ci] Pmat-Ticket: PMAT-1098 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * docs(receipt): session 2 — the cut's own bashrs red (paiml#3188), the clean-room gate that discriminates nothing (paiml#3189), the steward's unreachable live path (paiml#3190), and the packing denominator [skip ci] Pmat-Ticket: PMAT-1098 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs(spec): APR-RELEASE-001 T-4 is automated, never attended — operator ruling 2026-09-13; the train publishes itself after dogfood GO + assets + preflight [skip ci] Pmat-Ticket: PMAT-1098 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * docs(spec): APR-RELEASE-001 T-5 Reconcile is a HARD gate — measured 308 open / 424:124 arrival:closure / 95 fixed-but-open / 847 PR-less branches; five predicates, receipt in the ledger, no DONE without it (operator 2026-09-13, kaizen) [skip ci] Pmat-Ticket: PMAT-1098 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * docs(ledger): T-5 reconcile receipt for v0.67.0 — R1 0 / R2 28 / R3 0 (776 branches archived) / R4 1 / closure:arrival 22:61; 2 issues closed, 3 dirty PRs resolved, 1 closed, 10 verdicts pending [skip ci] Pmat-Ticket: PMAT-1098 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * docs(ledger): the v0.67.0 train record and 818 §3.6 collector records — 3 bashrs NO-GO(s), then GO + tag at e45eaab Pmat-Ticket: PMAT-1098 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-authored-by: Noah Gift <claude@noahgift.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release bump for 0.67.0 (06x release schedule §4.2):
bump-version.sh 0.67.0across every workspace, and the CHANGELOG section below.When this merges,
rel-067-autopilot/autopilot.shruns the rest of the release-day protocol, fail-closed: pre-publish dogfood, tag, release, all sixteen assets checked withscripts/check_release_assets.sh, the crates.io cascade, host receipts on gx10 and yoga, and the epic and milestone close.0.67.0 is the first train of the 06x schedule (docs/specifications/06x-release-schedule.md, epic #3078): a release every 2–3 days whose PR tier is one build graph and whose CI runs on all three self-hosted boxes. Correctness: every Q5_K tensor decoded wrong on the CPU path, in
apr importand in the CUDA GEMV — all three readers had invented a layout; the oracle is now gguf-py on a real block (#3110, #3113). Qwen3.5/Qwen3.8 hybrid GGUFs are refused honestly on both backends instead of promising a CPU fallback (#3099; the CPU forward itself ships in 0.68 behind the parity gate, #3091). aarch64: NEON LZ4 read unwritten output at offsets 16..63 (#3103) and the ARM-only clippy errors that kept gx10 out ofci / lintare gone (#3112). Fleet: arch-neutral jobs run on any clean-room box — intel, yoga, gx10 (#3104); every self-hosted job checks the box's toolset before spending an hour (#3088); guard-cargo/guard-tree fit the 20-minute budget with seven nightly-class steps moved to guards-nightly.yml (#3094); advisory gpu-quick (gx10) and cuda-unit (yoga) PR jobs (#3095); the quick tier is one nextest invocation, 55 min → ~6 min, and the merge queue mirrors the PR (#3089); tree-reader modules cut quick-tier seconds 93 % → 58 %, the 2-h mutant arm sweep is input-gated, and DIRTY roadmap conflicts merge by id (#3115). Release integrity: four apr binaries on every tag ({cuda,cpu} × {x86_64,aarch64}) verified bycheck_release_assets.sh(#3092); every workspace example must build AND run before a tag, plus apr-cookbook and release-notes gates (#3122); a low-priority nightly coverage run on yoga toward the 95 % target (#3123). Dark targets: the quick tier runs every integration target of a touched crate, which surfaced 77 vacuous spec_checklist rows (#3131), 20 stale aprender-serve rows (GH-438 dtype bytes, PMAT-855 byte glyphs, GH-213 load-time truncation, CRUX-C-34 health codes, GGUF v2 support) and one wall-clock benchmark posing as a test — now behindbench-gates. Triage: every open issue and PR carries a milestone and a type + priority label (#3102, #3125).The seventeen rows below marked via train #3127 landed as one squash (cb829fc, 2026-09-12T09:12Z, merge-queue run 34684644616); their row PRs are closed as ancestors of the train head, not merged, so a merged-PR listing alone would miss them.
Added
Fixed
Changed
buildpool label, host-layout parametrized, yoga joins the x86 pool first, gx10 after an arm64 sovereign-ci image (operator 2026-09-10) #3100) (ci: arch-neutral jobs run on any clean-room box (intel, yoga, gx10); workspace-test keeps X64; perf benchmarks pin intel (#3100) #3104, via train release(0.67): train A — 17 row PRs of the 0.67.0 train in one build graph (PMAT-1098) #3127)🤖 Generated with Claude Code