Skip to content

Triage 0.70 scope: 341 → 121 in 0.70.0; 0.69.x leftovers, unmilestoned and unlabelled dispositions (proposal, list-first) #4159

Closed

Description

@noahgift

Companion tracker: PRs and branches are triaged on #4158 (aprender-ac). This issue is the ISSUES half. Every row here names its open PR / live branch.

Triage proposal for 0.70 scope, the 0.69.x leftovers, the unmilestoned and the unlabelled. Operator, verbatim, relayed by the cop (aprender-cf) 2026-09-24: "next I need a deeper triage of tickets/branches/pull requests/labeling for aprender before .70 work is started full time". Prepared by aprender-dd, the issues owner.

Nothing has been written yet. This is list-first: the cop reviews, then I execute with a one-line reason comment on every move and close.

Measured from gh issue list --state open 2026-09-24 ~08:45 CEST: 794 open, 60 open PRs, 399 remote branches. Every row names its open PR or live branch (b:).

Counts per milestone, before → after

milestone before after
0.69.0 1 0
0.69.1 27 0
0.70.0 341 121
0.71.0 135 161
0.72.0 59 145
0.73.0 92 144
0.74.0 30 144
0.75.0 19 21
0.76.0 49 50
41 0
CLOSE — 4
CALL (cop decides) — 4

0.70.0's 121 keeps are: MUST {'MUST release-process': 24, 'MUST PVL': 6, 'MUST ONT-001': 33, 'MUST P0': 8}, plus 36 with an OPEN PR, plus 14 0.69.x leftovers that are release-process / CRUX-gate work.

Rules, derived rather than typed

  1. 0.69.x leftovers (28).
  2. 0.70 scope. In order, first match wins:
  3. Unmilestoned (41): U-TH is theme by title; U-TL is tooling carry, balanced as above.
  4. Unlabelled (211). A kind: label from the derived set {code, triage, docs, measurement} (the vocabulary of scripts/check_kind_labels_derived.sh). These GitHub labels do NOT exist yet: creating the four labels is a proposed write.
    • The issue-level rule: docs for docs/spec/changelog titles or the documentation label; triage for epics, trackers, decisions and hygiene; measurement for measure/baseline/benchmark asks; code for bug/enhancement/performance/automation labels or a title naming code (a path, a verb, a gate, a failure).
    • 72 are UNDECIDABLE by that rule and are listed as ?, never guessed. The cop or the issue owner assigns those.
    • Area labels are added only where an existing label obviously fits: crux for a CRUX title, performance for 0.73-theme moves.

CALL rows:

Codes: M-ONT/M-PVL/M-REL/M-P0 must-ship · PR open PR · L69 0.69.x leftover · TH theme · TL tooling carry · U-TH/U-TL unmilestoned · KIND label only (no move) · CLOSE.

to # from why kind PR / branch
CLOSE #3080 0.69.0 CLOSE — train epic: 0.69.0 tagged 225b2a9; superseded on crates.io by v0.69.1 @d8a6df53a (published 2026-09-23) PR#3642
CLOSE #3710 0.69.1 CLOSE — train epic: v0.69.1 tagged d8a6df5 and published; unmet done_when rows are carried by the CRUX/ladder rows in 0.70 (#3739 family, #4045) PR#3736
CLOSE #3988 0.69.1 CLOSE — done: the disposition table was executed (31 closed + moves, 2026-09-23/24) triage
CLOSE #4032 0.69.1 CLOSE — fixed: d8a6df5 (the v0.69.1 tag commit) 'fix(qwen35): warn at load that Qwen3.5-0.8B is not CRUX-certified' PR#4046
CALL #3855 0.70.0 ? — ONE GATE FRAMEWORK (143 gates) — the 'fake gates' programme itself; MUST epic or 0.71?
CALL #4031 0.70.0 ? — load-time CRUX certification status — release-facing; 0.70 or 0.72?
CALL #4057 0.70.0 ? — binary-debt epic 0.70→0.75: its slice 1 (#4058) says '≤22 at 0.70' — keep slice 1 in 0.70? triage
CALL #4058 0.70.0 ? — binary-debt slice 1 is dated 'at 0.70' in its own title — MUST or move? code
0.70.0 #3563 0.69.1 L69 b:PMAT-3563-llama-pin-resolves-both-hosts
0.70.0 #3712 0.69.1 L69 PR#3736,PR#3766
0.70.0 #3715 0.69.1 L69 PR#3736,PR#3835
0.70.0 #3717 0.69.1 L69 PR#3736,b:PMAT-3717-models-t1-both-hosts
0.70.0 #3739 0.69.1 L69 PR#3781,PR#3835
0.70.0 #3740 0.69.1 L69 b:PMAT-3740-comparator-consumers-resolve
0.70.0 #3741 0.69.1 L69 b:PMAT-3741-one-comparator-pin-cited
0.70.0 #3774 0.69.1 L69 PR#3781,b:crux-3774-verb-correspondence
0.70.0 #3788 0.69.1 L69 code b:PMAT-3788-eval-diagnostics-no-wallclock
0.70.0 #3790 0.69.1 L69 code b:PMAT-3790-tensor-contract-streams,b:salvage/2026-09-22/PMAT-3790-tensor-contract-streams
0.70.0 #3795 0.69.1 L69 PR#3835
0.70.0 #3797 0.69.1 L69 PR#3835
0.70.0 #3829 0.69.1 L69
0.70.0 #3833 0.69.1 L69
0.70.0 #3269 0.70.0 M-ONT
0.70.0 #3298 0.70.0 M-ONT
0.70.0 #3559 0.70.0 M-ONT
0.70.0 #3560 0.70.0 M-ONT
0.70.0 #3567 0.70.0 M-ONT PR#3622
0.70.0 #3569 0.70.0 M-ONT
0.70.0 #3577 0.70.0 M-ONT
0.70.0 #3610 0.70.0 M-ONT PR#3622,b:PMAT-3610-vacuous-shapes
0.70.0 #3611 0.70.0 M-ONT
0.70.0 #3624 0.70.0 M-ONT
0.70.0 #3679 0.70.0 M-ONT
0.70.0 #3821 0.70.0 M-ONT b:fix/3821-gpu-correct-subject
0.70.0 #3847 0.70.0 M-ONT b:PMAT-3847-ont-4c,b:fix/3847-row-builder-selfdiagnose
0.70.0 #3856 0.70.0 M-ONT PR#4046,b:feat/3856-capability-contract
0.70.0 #3972 0.70.0 M-ONT PR#4107
0.70.0 #3997 0.70.0 M-ONT PR#4003,PR#4023
0.70.0 #4047 0.70.0 M-ONT PR#4107
0.70.0 #4069 0.70.0 M-ONT
0.70.0 #4070 0.70.0 M-ONT PR#4136,PR#4137
0.70.0 #4071 0.70.0 M-ONT PR#4136,b:PMAT-4071-ont-2c-owl-writer
0.70.0 #4072 0.70.0 M-ONT
0.70.0 #4073 0.70.0 M-ONT
0.70.0 #4074 0.70.0 M-ONT
0.70.0 #4075 0.70.0 M-ONT
0.70.0 #4076 0.70.0 M-ONT b:PMAT-4076-ont7-valid-under
0.70.0 #4077 0.70.0 M-ONT
0.70.0 #4078 0.70.0 M-ONT
0.70.0 #4079 0.70.0 M-ONT
0.70.0 #4080 0.70.0 M-ONT PR#4095,b:PMAT-4080-pvl-2-ghost-binding-reject
0.70.0 #4081 0.70.0 M-ONT PR#4092,b:PMAT-4081-pvl-3-one-definition-l4-l5
0.70.0 #4082 0.70.0 M-ONT
0.70.0 #4083 0.70.0 M-ONT
0.70.0 #4084 0.70.0 M-ONT
0.70.0 #2701 0.70.0 M-P0
0.70.0 #3258 0.70.0 M-P0
0.70.0 #3459 0.70.0 M-P0
0.70.0 #3543 0.70.0 M-P0 b:PMAT-3543-post-publish-version-row
0.70.0 #3544 0.70.0 M-P0
0.70.0 #3561 0.70.0 M-P0
0.70.0 #3594 0.70.0 M-P0
0.70.0 #3844 0.70.0 M-P0
0.70.0 #3140 0.70.0 M-PVL
0.70.0 #3141 0.70.0 M-PVL
0.70.0 #3142 0.70.0 M-PVL
0.70.0 #4122 0.70.0 M-PVL code b:feat/4122-pvl-5a-mathlib-pin
0.70.0 #4124 0.70.0 M-PVL
0.70.0 #4125 0.70.0 M-PVL
0.70.0 #3687 0.70.0 M-REL
0.70.0 #3809 0.70.0 M-REL b:fix/3809-dark-target-repair,b:investigate/3809-l2-divergence
0.70.0 #3857 0.70.0 M-REL
0.70.0 #3863 0.70.0 M-REL PR#4024
0.70.0 paiml/infra#1146 0.70.0 M-REL code
0.70.0 #4033 0.70.0 M-REL triage PR#4123,b:feat/4033-release-process-0.70
0.70.0 #4034 0.70.0 M-REL b:feat/4034-cpu-lane-unlocked
0.70.0 #4036 0.70.0 M-REL code b:feat/4036-crux-reference-cache
0.70.0 #4037 0.70.0 M-REL PR#4046,b:feat/4037-receipt-carry-forward
0.70.0 #4038 0.70.0 M-REL
0.70.0 #4039 0.70.0 M-REL PR#4123,b:fix/4039-sweep-cell-order
0.70.0 #4040 0.70.0 M-REL PR#4119,b:feat/4040-nightly
0.70.0 #4045 0.70.0 M-REL code PR#4046,PR#4150
0.70.0 #4051 0.70.0 M-REL code PR#4123,b:feat/4051-timing-stamps
0.70.0 #4052 0.70.0 M-REL b:fix/4052-short-circuit-refused-cells
0.70.0 #4053 0.70.0 M-REL b:fix/4053-ladder-work-on-nvme
0.70.0 #4087 0.70.0 M-REL b:feat/4087-qa-tensor-contract-cache
0.70.0 #4088 0.70.0 M-REL measurement
0.70.0 #4102 0.70.0 M-REL measurement PR#4150,b:fix/4102-ci-run-target-release
0.70.0 #4117 0.70.0 M-REL code b:fix/4117-release-scope-callers,b:fix/4117-resolve-needs-verdict-path
0.70.0 #4118 0.70.0 M-REL code
0.70.0 #4131 0.70.0 M-REL b:feat/4131-sha-identity-cache,b:feat/4131-sha-identity-cache-v2
0.70.0 #4152 0.70.0 M-REL code
0.70.0 #4153 0.70.0 M-REL
0.70.0 #2373 0.70.0 PR PR#4024
0.70.0 #2463 0.70.0 PR PR#3645
0.70.0 #2500 0.70.0 PR PR#3645
0.70.0 #2530 0.70.0 PR PR#3645
0.70.0 #3062 0.70.0 PR PR#4024
0.70.0 #3081 0.70.0 PR PR#4024
0.70.0 #3522 0.70.0 PR PR#4024
0.70.0 #3546 0.70.0 PR PR#3570,b:PMAT-3546-installsh-ruling
0.70.0 #3597 0.70.0 PR PR#3622,PR#3642
0.70.0 #3646 0.70.0 PR PR#3659,b:PMAT-3646-pr-review-counts-wired
0.70.0 #3650 0.70.0 PR PR#3674
0.70.0 #3668 0.70.0 PR PR#3688
0.70.0 #3676 0.70.0 PR PR#3688,b:PMAT-3676-ci-diet
0.70.0 #3708 0.70.0 PR PR#3736,b:PMAT-3708-dogfood-one-rule
0.70.0 #3709 0.70.0 PR PR#3688
0.70.0 #3714 0.70.0 PR PR#3808,PR#3835
0.70.0 #3722 0.70.0 PR PR#3736
0.70.0 #3745 0.70.0 PR code PR#3736,PR#3808
0.70.0 #3748 0.70.0 PR code PR#3808,b:PMAT-3748-f2-receipt-key
0.70.0 #3770 0.70.0 PR PR#4024
0.70.0 #3771 0.70.0 PR measurement PR#3784,b:PMAT-3771-binary-identity
0.70.0 #3778 0.70.0 PR PR#3781,b:PMAT-3778-crux-engines
0.70.0 #3837 0.70.0 PR PR#4091,PR#4147
0.70.0 #3839 0.70.0 PR PR#4023,b:PMAT-3839-coverage-skip-substring
0.70.0 #3998 0.70.0 PR PR#4010,PR#4024
0.70.0 #4020 0.70.0 PR code PR#4022
0.70.0 #4041 0.70.0 PR code PR#4091,PR#4147
0.70.0 #4048 0.70.0 PR code PR#4046,b:fix/4048-fusion-guard-runtime-yaml
0.70.0 #4054 0.70.0 PR PR#4095,b:fix/4054-wire-tokenizer-nonascii
0.70.0 #4055 0.70.0 PR code PR#4123,b:fix/4055-teardown-physical-cwd
0.70.0 #4056 0.70.0 PR PR#4091
0.70.0 #4067 0.70.0 PR PR#4141,b:PMAT-4067-apex-2e-svg-metadata
0.70.0 #4068 0.70.0 PR PR#4141
0.70.0 #4105 0.70.0 PR PR#3606
0.70.0 #4108 0.70.0 PR code PR#4121,b:fix/4108-guard-tree-zero-checks
0.70.0 #4127 0.70.0 PR PR#4135,b:fix/4127-unmaintained-proc-macro-deps
0.71.0 #2978 0.70.0 TH
0.71.0 #3132 0.70.0 TH
0.71.0 #3143 0.70.0 TH
0.71.0 #3204 0.70.0 TH
0.71.0 #3279 0.70.0 TH
0.71.0 #3353 0.70.0 TH code
0.71.0 paiml/infra#1144 0.70.0 TH
0.71.0 #3554 0.70.0 TH
0.71.0 #3625 0.70.0 TH
0.71.0 #3636 0.70.0 TH
0.71.0 #3701 0.70.0 TH
0.71.0 #3703 0.70.0 TH
0.71.0 #3713 0.70.0 TH
0.71.0 #3818 0.70.0 TH
0.71.0 #3831 0.70.0 TH
0.71.0 #3834 0.70.0 TH
0.71.0 #3952 0.70.0 TH b:PMAT-3952-crux-fold,b:PMAT-3952-crux-fold2
0.71.0 #3966 0.70.0 TH measurement b:fix/3966-gpu-q-vanished-ticket
0.71.0 #3982 0.70.0 TH code
0.71.0 #3984 0.70.0 TH code
0.71.0 #3989 0.70.0 TH code
0.71.0 #4120 0.70.0 TH code b:fix/4120-teardown-never-pid-1
0.71.0 #4132 0.70.0 TH
0.71.0 #4134 0.70.0 TH code b:fix/4134-aarch64-clippy
0.71.0 #4145 0.70.0 TH b:fix/4145-gx10-fetch-candidate-sha
0.71.0 #3961 — U-TH
0.72.0 #3568 0.69.1 L69 b:PMAT-3568-token-constraint
0.72.0 #3716 0.69.1 L69
0.72.0 #3718 0.69.1 L69 PR#3753,b:feat/3718-run-json-usage
0.72.0 #3719 0.69.1 L69 b:PMAT-3719-apr-code-qwen35-cuda
0.72.0 #3720 0.69.1 L69 b:PMAT-3720-response-contract
0.72.0 #3747 0.69.1 L69 b:PMAT-3747-split-generate-intent
0.72.0 #3793 0.69.1 L69 code b:PMAT-3793-apr-run-json-schema,b:salvage/2026-09-22/PMAT-3793-apr-run-json-schema
0.72.0 #3830 0.69.1 L69
0.72.0 #2482 0.70.0 TH
0.72.0 #2784 0.70.0 TH
0.72.0 #2915 0.70.0 TH
0.72.0 #2916 0.70.0 TH
0.72.0 #2996 0.70.0 TH
0.72.0 #3170 0.70.0 TH
0.72.0 #3466 0.70.0 TH code
0.72.0 #3845 0.70.0 TH
0.72.0 #3902 0.70.0 TH
0.72.0 #3996 0.70.0 TH code
0.72.0 #4015 0.70.0 TH b:fix/4015-serve-stall-clock-from-lock-acquisition
0.72.0 #4025 0.70.0 TH code
0.72.0 #4028 0.70.0 TH
0.72.0 #4089 0.70.0 TH code b:fix/4089-serve-run-backend-default-mb
0.72.0 #4090 0.70.0 TH b:fix/4090-lock-wait-not-a-stall
0.72.0 #4126 0.70.0 TH b:fix/4126-probe-timeout-keeps-evidence,b:fix/4126-timeout-policy
0.72.0 #3014 0.70.0 TL
0.72.0 #3018 0.70.0 TL
0.72.0 #3043 0.70.0 TL
0.72.0 #3055 0.70.0 TL
0.72.0 #3133 0.70.0 TL b:PMAT-3133-arbiter-r2a-artifacts
0.72.0 #3173 0.70.0 TL
0.72.0 #3177 0.70.0 TL
0.72.0 #3183 0.70.0 TL
0.72.0 #3203 0.70.0 TL
0.72.0 #3217 0.70.0 TL
0.72.0 #3254 0.70.0 TL
0.72.0 #3282 0.70.0 TL
0.72.0 #3286 0.70.0 TL
0.72.0 #3293 0.70.0 TL
0.72.0 #3306 0.70.0 TL
0.72.0 #3343 0.70.0 TL
0.72.0 #3397 0.70.0 TL code
0.72.0 #3399 0.70.0 TL code
0.72.0 #3446 0.70.0 TL
0.72.0 #3457 0.70.0 TL
0.72.0 #3460 0.70.0 TL triage
0.72.0 #3464 0.70.0 TL code
0.72.0 #3493 0.70.0 TL
0.72.0 #3562 0.70.0 TL
0.72.0 #3584 0.70.0 TL
0.72.0 #3586 0.70.0 TL
0.72.0 #3591 0.70.0 TL
0.72.0 #3593 0.70.0 TL
0.72.0 paiml/infra#1145 0.70.0 TL
0.72.0 #3635 0.70.0 TL
0.72.0 #3649 0.70.0 TL
0.72.0 #3680 0.70.0 TL
0.72.0 #3686 0.70.0 TL b:PMAT-3686-guard-fixes,b:PMAT-3686-map-reverse-check
0.72.0 #3697 0.70.0 TL b:PMAT-3697-batch-2,b:PMAT-3697-python-free-guards-1
0.72.0 #3732 0.70.0 TL b:PMAT-3732-matrix-derived-from-visits
0.72.0 #3765 0.70.0 TL
0.72.0 #3792 0.70.0 TL code
0.72.0 #3864 0.70.0 TL
0.72.0 #3879 0.70.0 TL code
0.72.0 #3916 0.70.0 TL b:fix/3916-rust-truncation-scan
0.72.0 #4044 0.70.0 TL triage
0.72.0 #4060 0.70.0 TL code
0.72.0 #4085 0.70.0 TL b:fix/4085-prune-claim-baseline
0.72.0 #4113 0.70.0 TL measurement
0.72.0 #4128 0.70.0 TL
0.72.0 #4133 0.70.0 TL code b:ci/4133-guard-steps-setsid
0.72.0 #4140 0.70.0 TL
0.72.0 #4151 0.70.0 TL code b:fix/4151-fmt-include-blind-spot
0.72.0 #3886 — U-TH code PR#3932,PR#3938
0.72.0 #3921 — U-TH PR#3938,PR#4024
0.72.0 #4029 — U-TH PR#4093,b:fix/4029-crux-vllm-model-len
0.72.0 #4146 — U-TH code
0.72.0 #3832 — U-TL PR#4024,b:fix/3832-crux-cell-coverage
0.72.0 #3898 — U-TL PR#4024,b:fix/3898-qa-rc-must-refuse
0.72.0 #3907 — U-TL measurement b:PMAT-3907-hybrid-budget-wiring
0.72.0 #3948 — U-TL b:PMAT-3948-empty-think-block
0.72.0 #3962 — U-TL b:PMAT-3962-crux-greedy-only,b:PMAT-3962-crux-greedy-only-2
0.72.0 #4004 — U-TL code
0.72.0 #4097 — U-TL code
0.72.0 #4100 — U-TL code
0.72.0 #4110 — U-TL code PR#4119,b:fix/4110-vcs-info-sha
0.72.0 #4144 — U-TL code
0.73.0 #3596 0.69.1 L69 PR#3606,PR#3753
0.73.0 #3725 0.69.1 L69 b:PMAT-3725-splitk-decode-attention
0.73.0 #2766 0.70.0 TH
0.73.0 #2914 0.70.0 TH
0.73.0 #2989 0.70.0 TH
0.73.0 #2995 0.70.0 TH
0.73.0 #3144 0.70.0 TH
0.73.0 #3251 0.70.0 TH
0.73.0 #3705 0.70.0 TH
0.73.0 #3841 0.70.0 TH
0.73.0 #3974 0.70.0 TH code
0.73.0 #3985 0.70.0 TH code b:fix/3985-fusion-call-site-guard
0.73.0 #4026 0.70.0 TH code
0.73.0 #4043 0.70.0 TH
0.73.0 #4096 0.70.0 TH
0.73.0 #3603 0.70.0 TL
0.73.0 #3615 0.70.0 TL
0.73.0 #3639 0.70.0 TL
0.73.0 #3652 0.70.0 TL
0.73.0 #3683 0.70.0 TL
0.73.0 #3690 0.70.0 TL
0.73.0 #3699 0.70.0 TL b:PMAT-3699-bump-pr-body-keep-open
0.73.0 #3749 0.70.0 TL code
0.73.0 #3768 0.70.0 TL code b:PMAT-3768-dogfood-0691-leaks
0.73.0 #3805 0.70.0 TL
0.73.0 #3836 0.70.0 TL
0.73.0 #3865 0.70.0 TL
0.73.0 #3887 0.70.0 TL b:PMAT-3887-case-table-floor
0.73.0 #3909 0.70.0 TL code
0.73.0 #3917 0.70.0 TL code b:fix/3917-cache-independent-tokenizer-test
0.73.0 #3956 0.70.0 TL code b:fix/3956-cuda-feature-tests
0.73.0 #3964 0.70.0 TL measurement
0.73.0 #4050 0.70.0 TL measurement
0.73.0 #4061 0.70.0 TL triage
0.73.0 #4086 0.70.0 TL b:fix/4086-dogfood-ladder-scope-seam
0.73.0 #4101 0.70.0 TL b:PMAT-4101-cb200-tdg
0.73.0 #4114 0.70.0 TL code b:fix/4114-tarball-build-gate
0.73.0 #4129 0.70.0 TL code b:fix/4129-merge-back-fixtures,b:fix/4129-tarball-test-includes
0.73.0 #4148 0.70.0 TL code
0.73.0 #3930 — U-TH
0.73.0 #3950 — U-TH PR#4024
0.73.0 #3951 — U-TH PR#4024,b:test/3951-iq4-xs-device-ab
0.73.0 #3953 — U-TH PR#4024,b:feat/3953-iq2s-gpu-gemv
0.73.0 #3960 — U-TH PR#4024,b:feat/3960-q2k-gpu-gemv
0.73.0 #3963 — U-TH PR#4024,b:feat/3963-iq3xxs-gpu-gemv
0.73.0 #4103 — U-TH code PR#4104,b:fix/4103-band-overlap-count
0.73.0 #3900 — U-TL triage PR#4024
0.73.0 #4005 — U-TL code PR#4046,b:fix/4005-dogfood-gates-wired
0.73.0 #4098 — U-TL code b:feat/4098-crux-judge-sampled-mutants
0.73.0 #4111 — U-TL b:fix/4111-facade-version-bump
0.73.0 #4138 — U-TL code PR#4147
0.73.0 #4142 — U-TL code b:fix/4142-mutants-workspace
0.74.0 #2473 0.70.0 TH
0.74.0 #2931 0.70.0 TH
0.74.0 #2307 0.70.0 TL
0.74.0 #2470 0.70.0 TL
0.74.0 #2492 0.70.0 TL
0.74.0 #2494 0.70.0 TL
0.74.0 #2503 0.70.0 TL
0.74.0 #2526 0.70.0 TL
0.74.0 #2556 0.70.0 TL
0.74.0 #2585 0.70.0 TL
0.74.0 #2590 0.70.0 TL
0.74.0 #2614 0.70.0 TL
0.74.0 #2615 0.70.0 TL
0.74.0 #2616 0.70.0 TL
0.74.0 #2646 0.70.0 TL
0.74.0 #2648 0.70.0 TL
0.74.0 #2653 0.70.0 TL
0.74.0 #2655 0.70.0 TL
0.74.0 #2699 0.70.0 TL
0.74.0 #2704 0.70.0 TL
0.74.0 #2750 0.70.0 TL
0.74.0 #2757 0.70.0 TL
0.74.0 #2775 0.70.0 TL
0.74.0 #2797 0.70.0 TL
0.74.0 #2798 0.70.0 TL
0.74.0 #2808 0.70.0 TL
0.74.0 #2814 0.70.0 TL
0.74.0 #2856 0.70.0 TL
0.74.0 #2877 0.70.0 TL
0.74.0 #2878 0.70.0 TL
0.74.0 #2881 0.70.0 TL
0.74.0 #2889 0.70.0 TL
0.74.0 #2890 0.70.0 TL
0.74.0 #2891 0.70.0 TL
0.74.0 #2892 0.70.0 TL
0.74.0 #2894 0.70.0 TL
0.74.0 #2896 0.70.0 TL
0.74.0 #2897 0.70.0 TL
0.74.0 #2899 0.70.0 TL
0.74.0 #2900 0.70.0 TL
0.74.0 #2901 0.70.0 TL
0.74.0 #2902 0.70.0 TL
0.74.0 #2911 0.70.0 TL
0.74.0 #2912 0.70.0 TL
0.74.0 #2913 0.70.0 TL
0.74.0 #2917 0.70.0 TL
0.74.0 #2918 0.70.0 TL
0.74.0 #2979 0.70.0 TL
0.74.0 #2983 0.70.0 TL
0.74.0 #2984 0.70.0 TL
0.74.0 #2992 0.70.0 TL
0.74.0 #2993 0.70.0 TL
0.74.0 #2997 0.70.0 TL
0.74.0 #2999 0.70.0 TL
0.74.0 #3015 0.70.0 TL
0.74.0 #3029 0.70.0 TL
0.74.0 #3054 0.70.0 TL
0.74.0 #3058 0.70.0 TL
0.74.0 #3171 0.70.0 TL
0.74.0 #3176 0.70.0 TL
0.74.0 #3182 0.70.0 TL
0.74.0 #3190 0.70.0 TL
0.74.0 #3206 0.70.0 TL
0.74.0 #3218 0.70.0 TL
0.74.0 #3261 0.70.0 TL
0.74.0 #3284 0.70.0 TL
0.74.0 #3291 0.70.0 TL
0.74.0 #3304 0.70.0 TL code
0.74.0 #3324 0.70.0 TL
0.74.0 #3345 0.70.0 TL
0.74.0 #3398 0.70.0 TL code
0.74.0 #3416 0.70.0 TL code
0.74.0 #3454 0.70.0 TL
0.74.0 #3458 0.70.0 TL
0.74.0 #3462 0.70.0 TL b:PMAT-3462-cascade-topo-order,b:PMAT-3462-publish-order-derived
0.74.0 #3478 0.70.0 TL measurement
0.74.0 #3531 0.70.0 TL
0.74.0 #3579 0.70.0 TL
0.74.0 #3585 0.70.0 TL
0.74.0 #3587 0.70.0 TL
0.74.0 #3592 0.70.0 TL
0.74.0 #3607 0.70.0 TL
0.74.0 #3628 0.70.0 TL
0.74.0 #3643 0.70.0 TL
0.74.0 #3667 0.70.0 TL
0.74.0 #3684 0.70.0 TL
0.74.0 #3694 0.70.0 TL b:PMAT-3694-python-free-classify
0.74.0 #3731 0.70.0 TL b:PMAT-3731-host-receipts-fail-closed
0.74.0 paiml/aprender#3761 0.70.0 TL code b:PMAT-3761-header-only-model-reads
0.74.0 paiml/aprender#3777 0.70.0 TL
0.74.0 paiml/aprender#3806 0.70.0 TL measurement
0.74.0 paiml/aprender#3854 0.70.0 TL
0.74.0 paiml/aprender#3874 0.70.0 TL
0.74.0 paiml/aprender#3904 0.70.0 TL b:fix/3904-truncation-surface-guard
0.74.0 paiml/aprender#3912 0.70.0 TL code
0.74.0 paiml/aprender#4059 0.70.0 TL
0.74.0 paiml/aprender#4099 0.70.0 TL b:fix/4099-bashrs-sec-remove-suppressions
0.74.0 paiml/aprender#4112 0.70.0 TL code
0.74.0 paiml/aprender#4130 0.70.0 TL b:fix/4130-shipped-tests-path-dev-deps
0.74.0 paiml/aprender#4143 0.70.0 TL
0.74.0 paiml/aprender#4149 0.70.0 TL code
0.74.0 paiml/aprender#3987 — U-TH PR#4024,b:fix/3987-moe-chat-serve-cuda
0.74.0 paiml/aprender#4008 — U-TH PR#4024
0.74.0 paiml/aprender#4049 — U-TH
0.74.0 paiml/aprender#3897 — U-TL PR#3938,PR#4024
0.74.0 paiml/aprender#3943 — U-TL PR#4024,b:d8/ladder-teardown-3943
0.74.0 paiml/aprender#3957 — U-TL code b:fix/3957-admission-per-thinking,b:fix/3957-f9-f10
0.74.0 paiml/aprender#3965 — U-TL code b:d8/qa-skip-not-pass-3965
0.74.0 paiml/aprender#4027 — U-TL
0.74.0 paiml/aprender#4066 — U-TL code
0.74.0 paiml/aprender#4094 — U-TL code PR#4095
0.74.0 paiml/aprender#4106 — U-TL docs PR#4092
0.74.0 paiml/aprender#4116 — U-TL code
0.74.0 paiml/aprender#4139 — U-TL code b:feat/4139-pvl-6a-discharge
0.75.0 paiml/aprender#3172 0.70.0 TH
0.75.0 paiml/aprender#4021 0.70.0 TH
0.76.0 paiml/aprender#2898 0.70.0 TH
stays 0.71.0 paiml/aprender#3751 0.71.0 KIND measurement
stays 0.71.0 paiml/aprender#3762 0.71.0 KIND code
stays 0.71.0 paiml/aprender#3779 0.71.0 KIND code
stays 0.71.0 paiml/aprender#3822 0.71.0 KIND code
stays 0.71.0 paiml/aprender#3823 0.71.0 KIND code
stays 0.71.0 paiml/aprender#3824 0.71.0 KIND code
stays 0.71.0 paiml/aprender#3827 0.71.0 KIND measurement
stays 0.71.0 paiml/aprender#3862 0.71.0 KIND code
stays 0.71.0 paiml/aprender#3876 0.71.0 KIND ?
stays 0.71.0 paiml/aprender#3878 0.71.0 KIND ?
stays 0.71.0 paiml/aprender#3882 0.71.0 KIND code
stays 0.71.0 paiml/aprender#3893 0.71.0 KIND measurement
stays 0.71.0 paiml/aprender#3895 0.71.0 KIND code
stays 0.71.0 paiml/aprender#3901 0.71.0 KIND ?
stays 0.71.0 paiml/aprender#3908 0.71.0 KIND code
stays 0.71.0 paiml/aprender#3910 0.71.0 KIND code
stays 0.71.0 paiml/aprender#3911 0.71.0 KIND code
stays 0.71.0 paiml/aprender#3913 0.71.0 KIND measurement
stays 0.71.0 paiml/aprender#3919 0.71.0 KIND ?
stays 0.71.0 paiml/aprender#3920 0.71.0 KIND ?
stays 0.71.0 paiml/aprender#3922 0.71.0 KIND code
stays 0.71.0 paiml/aprender#3923 0.71.0 KIND code
stays 0.71.0 paiml/aprender#3924 0.71.0 KIND code
stays 0.71.0 paiml/aprender#3925 0.71.0 KIND code
stays 0.71.0 paiml/aprender#3928 0.71.0 KIND code
stays 0.71.0 paiml/aprender#3931 0.71.0 KIND code
stays 0.71.0 paiml/aprender#3936 0.71.0 KIND ?
stays 0.71.0 paiml/aprender#3940 0.71.0 KIND code
stays 0.71.0 paiml/aprender#3942 0.71.0 KIND triage
stays 0.71.0 paiml/aprender#3947 0.71.0 KIND ?
stays 0.71.0 paiml/aprender#3968 0.71.0 KIND ?
stays 0.71.0 paiml/aprender#3973 0.71.0 KIND code
stays 0.71.0 paiml/aprender#3975 0.71.0 KIND code
stays 0.71.0 paiml/aprender#3976 0.71.0 KIND code
stays 0.71.0 paiml/aprender#3977 0.71.0 KIND ?
stays 0.71.0 paiml/aprender#3992 0.71.0 KIND code
stays 0.71.0 paiml/aprender#4016 0.71.0 KIND code
stays 0.71.0 paiml/aprender#4018 0.71.0 KIND code
stays 0.71.0 paiml/aprender#4019 0.71.0 KIND code
stays 0.71.0 paiml/aprender#4030 0.71.0 KIND ?
stays 0.71.0 paiml/aprender#4062 0.71.0 KIND docs
stays 0.71.0 paiml/aprender#4154 0.71.0 KIND ?
stays 0.72.0 paiml/aprender#3733 0.72.0 KIND code
stays 0.72.0 paiml/aprender#3776 0.72.0 KIND code
stays 0.72.0 paiml/aprender#3826 0.72.0 KIND code
stays 0.72.0 paiml/aprender#3889 0.72.0 KIND code
stays 0.72.0 paiml/aprender#3927 0.72.0 KIND code
stays 0.72.0 paiml/aprender#3954 0.72.0 KIND code
stays 0.72.0 paiml/aprender#3955 0.72.0 KIND ?
stays 0.72.0 paiml/aprender#3978 0.72.0 KIND code
stays 0.72.0 paiml/aprender#3979 0.72.0 KIND code
stays 0.72.0 paiml/aprender#3980 0.72.0 KIND ?
stays 0.72.0 paiml/aprender#3981 0.72.0 KIND measurement
stays 0.72.0 paiml/aprender#3991 0.72.0 KIND code
stays 0.72.0 paiml/aprender#4006 0.72.0 KIND code
stays 0.72.0 paiml/aprender#4007 0.72.0 KIND code
stays 0.72.0 paiml/aprender#4063 0.72.0 KIND ?
stays 0.72.0 paiml/aprender#4155 0.72.0 KIND ?
stays 0.73.0 paiml/aprender#3787 0.73.0 KIND measurement
stays 0.73.0 paiml/aprender#3906 0.73.0 KIND measurement
stays 0.73.0 paiml/aprender#3915 0.73.0 KIND code
stays 0.73.0 paiml/aprender#3935 0.73.0 KIND docs
stays 0.73.0 paiml/aprender#3990 0.73.0 KIND ?
stays 0.73.0 paiml/aprender#4017 0.73.0 KIND ?
stays 0.73.0 paiml/aprender#4064 0.73.0 KIND code
stays 0.73.0 paiml/aprender#4156 0.73.0 KIND ?
stays 0.74.0 paiml/aprender#3742 0.74.0 KIND ?
stays 0.74.0 paiml/aprender#3918 0.74.0 KIND ?
stays 0.74.0 paiml/aprender#3945 0.74.0 KIND ?
stays 0.74.0 paiml/aprender#3959 0.74.0 KIND ?
stays 0.74.0 paiml/aprender#4065 0.74.0 KIND ?
stays 0.74.0 paiml/aprender#4157 0.74.0 KIND ?

Activity

  1. added this to the 0.70.0 milestone on Sep 24, 2026
  2. noahgift commented on Sep 24, 2026

    @noahgift
    MemberAuthor

    Part 1 executed (aprender-dd, 2026-09-24). Read back from GitHub:

    • 4/4 closes and 65/65 moves, each with its reason comment;
    • the 4 kind:* labels created;
    • 139/139 labels applied: code 111, measurement 17, triage 8, docs 3.

    The 0.70 → 0.71–0.74 scope moves are HELD for the operator.

    The 72 unlabelled issues the derived rule cannot decide, left for a later pass (no guessing).
    Each needs a kind: of code / triage / docs / measurement from its owner or the cop:

    # milestone title
    #3343 0.70.0 ci_resolve_dirty binds merge.roadmap.driver to a path no .gitattributes selects — the id-keyed roadm
    #3345 0.70.0 A clean-room runner lost its pinned 1.93.0 toolchain mid-build (ENOENT on rustc) and a live build lo
    #3531 0.70.0 PACK-001 first main run: three shards of one push chose three tiers (reflog-derived base) and partit
    #3742 0.74.0 tokenizer parity: the APR/HF encode paths are sibling copies #3726 did not touch — aprender-core Bpe
    #3747 0.69.1 #3568 PR 1/4: the TokenConstraint hook and the llguidance engine behind it — no generation loop wire
    #3777 0.70.0 #3745 S2: cli-surface extractor + derived release cells (pairwise) — release-readiness-v1 targets th
    #3876 0.71.0 ladder receipt: bytes describes the symlink, sha256 describes the model — one row, two objects
    #3878 0.71.0 ladder receipt: a dangling symlink records "sha256": "" — an identity claim of nothing
    #3901 0.71.0 a ladder row red only on serve prints reason 'unknown' — #3886 moved the verdict and left the explan
    #3904 0.70.0 #3872 removed the four slices someone FOUND; nobody enumerated the surface — here it is, and the 5th
    #3916 0.70.0 #3904 enumerated the surface I could SEE: its scan is Python-shaped, and Rust truncates with .take(N
    #3918 0.74.0 detect_format_from_name's ordered substring table has produced three defects — one a correct fix tha
    #3919 0.71.0 The thinking-ON leg exists twice and has now drifted twice: the hybrid copy takes neither #3907's bu
    #3920 0.71.0 #3911's embedded tokenizer splits every ChatML control token into six pieces — 32 ids where the refe
    #3921 — P0: chat/code judged by rc and serve by http — a verb emitting 'zombie zombie zombie' is recorded as
    #3930 — Qwen3NoThink prefills \n\n where the model's own template uses \n\n\n\
    #3936 0.71.0 the ladder's serve /health window is a fixed 90s, so the 27B is red for load time while passing capa
    #3943 — ladder_serve_teardown reads 'not answering /health' as 'server gone', so a still-loading server is r
    #3945 0.74.0 Enumerated conformance table: derive (qtype × op × backend) proof obligations from the dispatch regi
    #3947 0.71.0 aprender-core has no IQ dequantizer, so tensor_contract cannot inspect three release-blocking models
    #3950 — IQ2_XXS (ggml 16) has no CUDA GEMV — 0.69.1 release blocker
    #3951 — Qwen3.5-0.8B-IQ4_XS never closes its think block while Q4_K_M does: CUDA IQ4 GEMV or real quant dama
    #3952 0.70.0 CRUX: add vLLM as a pre-release comparator engine (plugin driver; lambda x86/4090 + gx10 aarch64/GB1
    #3953 — IQ2_S (ggml 22) has no CUDA GEMV — 0.69.1 release blocker
    #3955 0.72.0 False provenance: chat banner claims 'fused Q4K, F2-validated' on BF16 with F2 SKIPPED; chat envelop
    #3959 0.74.0 Dedupe IQ decoders: aprender-serve onto trueno_quant::iq (one decoder, one oracle)
    #3960 — Q2_K (ggml 10) has no CUDA GEMV — 0.69.1 release blocker
    #3961 — golden thinking-ON leg discards its backend (_used_gpu) and passes an empty as think
    #3962 — 0.69.1 BLOCKER: CRUX producer — per-verb prompt sets (incl. hard prompts) + code verb + hf/vllm quor
    #3963 — IQ3_XXS (ggml 18) has no CUDA GEMV — 0.69.1 release blocker
    #3968 0.71.0 GPU whitelist admits a quant TYPE on one model's shapes — admission must key on per-shape device con
    #3977 0.71.0 0.70.0: qwen35moe (Qwen3.5-35B-A3B hybrid SSM MoE) CUDA forward
    #3980 0.72.0 Batch serving F2 GPU validation has never run (empty probe) — needs a representative probe at batch-
    #3987 — qwen3moe CUDA reaches run+qa only: chat rc 8, serve 501/500, code rc 1 — serve loads no mapped model
    #3990 0.73.0 Qwen2.5 chat template drops the default system prompt (26 vs llama.cpp's 47 tokens) — apr 1/18 vs ll
    #4008 — arch constraints: qwen35moe (Qwen3.5-35B-A3B) has is_moe=false; replace #3992's substring MoE predic
    #4015 0.70.0 ladder serve wait: #3943's stall rule counts time blocked in flock as no progress, a false 'stalled'
    #4017 0.73.0 apr --gpu holds ~2.3× the GGUF size in host RAM (27B Q4_K_M: 36 GiB RSS for a 15.6 GiB file) — llama
    #4021 0.70.0 CRUX judge: thinking-ON cells must not be judged on closure alone — use answer-when-both-cl
    #4027 — Operator standing rules → global ~/.claude/CLAUDE.md (cop verbatim relays; quorum Opus fallback unti
    #4028 0.70.0 aprender-serve lib tests accumulate memory across tests in one process: 30 GB peak single-threaded,
    #4030 0.71.0 0.71: qwen35-0.8b-q4km golden thinking-ON never closes on apr (greedy near-tie path, no localized de
    #4031 0.70.0 Load-time CRUX certification status for every model (certified / not certified / known issue)
    #4032 0.69.1 0.69.1 hotfix: load-time warning for Qwen3.5-0.8B (known issue #4030)
    #4034 0.70.0 ladder: run a cell's CPU and CUDA lanes concurrently (the CPU lane doesn't hold the GPU lock)
    #4037 0.70.0 certification: carry a cell's receipt forward when the diff since its apr_sha doesn't touch that cel
    #4038 0.70.0 ladder: CPU==GPU think-block parity on a fixed prefix (e.g. 256 tokens); full 2048-token budget on G
    #4039 0.70.0 sweep: order cells so CRUX-certified models run first (CRUX can start early), then largest first to
    #4040 0.70.0 nightly full ladder + CRUX on main; the release sweep runs only the delta since the last green night
    #4043 0.70.0 test_forward_batched_graphed_replay passes when graph capture FAILS (falls back silently); parallel
    #4049 — certification: per-architecture carry-forward — a diff invalidates only the cells whose inference pa
    #4052 0.70.0 ladder: short-circuit a cell's verbs once F10 RED-UNSUPPORTED is proven by name (not-run, never pass
    #4053 0.70.0 ladder: WORK dir off /tmp onto NVMe + free-space preflight (gx10 ENOSPC at 27B) (#4033)
    #4054 0.70.0 Wire aprender-serve --test tokenizer_nonascii_4005 into CI (dark test since 9684a7a, #4005)
    #4059 0.70.0 binary-debt #2: the KEPT binaries' CLI tests are dark in CI — pv (17 files), aprender-profile (13),
    #4063 0.72.0 binary-debt #6: aprender-train-* → apr (distill / finetune --plan / inspect / bench); delete train-s
    #4065 0.74.0 binary-debt #8: sunset the 13 pre-monorepo crates.io names — a final release pointing at aprender, a
    #4087 0.70.0 qa tensor_contract: cache keyed by model sha + checker-source hash (#4033 lever; 19–46% of qa)
    #4090 0.70.0 ladder: serve health wait reads a GPU-LOCK WAIT as a stalled server (no log, no CPU) — a foreign loc
    #4111 — provable-contracts facades stuck at 0.4.0 (-> aprender-contracts ^0.64): tier-14 publishes nothing
    #4124 0.70.0 PVL EV-5a orphan group ProvableContracts.Theorems: 55 module(s) outside the root import cone
    #4125 0.70.0 PVL EV-5a orphan group ProvableContracts.Defs: 4 module(s) outside the root import cone
    #4126 0.70.0 ladder: serve probe writes "http":000 (invalid JSON) for a timed-out route, so the whole serve recor
    #4127 0.70.0 Published aprender pulls two unmaintained proc-macro crates (tabled 0.16 → proc-macro-error; validat
    #4130 0.70.0 Published tarballs of aprender-core, aprender-orchestrate, aprender-cbtop, aprender-test-showcase sh
    #4131 0.70.0 ladder: every run sha256s the whole 109 GB inventory (~473 s on lambda, ~60% of a --only 9B run); ca
    #4140 0.70.0 #4129 on the 0.69.1 lineage: apr-cli and aprender-orchestrate tests include #3990 fixtures / thinkin
    #4153 0.70.0 clippy debt ratchet 1/5 (0.70): apr-cli + aprender-core + aprender-serve residual (~522)
    #4154 0.71.0 clippy debt ratchet 2/5 (0.71): qa-runner, first half (~560)
    #4155 0.72.0 clippy debt ratchet 3/5 (0.72): qa-runner, second half (~559)
    #4156 0.73.0 clippy debt ratchet 4/5 (0.73): test-cli + half the small crates (~510)
    #4157 0.74.0 clippy debt ratchet 5/5 (0.74): aprender-graph + remaining small crates (~376) → 0
  3. noahgift commented on Sep 24, 2026

    @noahgift
    MemberAuthor

    The 72 undecidables are labelled with the cop's defaults (aprender-dd, 2026-09-24): 71 applied and read back; #4032 skipped because it was closed in part 1.

    • kind: from the title's own verb (fix → code, measure/bench → measurement, docs/spec → docs), otherwise kind:triage.
    • milestone: every one already had a milestone, so none moved. The backlog amendment changes only the fallback.

    Coin-flips: 68 of 71. These titles are STATEMENTS of a defect ("X does Y wrong"), not imperatives, so the verb rule almost never matched and they fell to kind:triage. Most read as code defects, so the by-exception pass will have many rows to flip.

    # milestone kind applied coin-flip title
    #3343 0.70.0 triage yes ci_resolve_dirty binds merge.roadmap.driver to a path no .gitattributes selects — the id-keyed
    #3345 0.70.0 triage yes A clean-room runner lost its pinned 1.93.0 toolchain mid-build (ENOENT on rustc) and a live bui
    #3531 0.70.0 triage yes PACK-001 first main run: three shards of one push chose three tiers (reflog-derived base) and p
    #3742 0.74.0 triage yes tokenizer parity: the APR/HF encode paths are sibling copies #3726 did not touch — aprender-cor
    #3747 0.72.0 triage yes #3568 PR 1/4: the TokenConstraint hook and the llguidance engine behind it — no generation loop
    #3777 0.70.0 triage yes #3745 S2: cli-surface extractor + derived release cells (pairwise) — release-readiness-v1 targe
    #3876 0.71.0 triage yes ladder receipt: bytes describes the symlink, sha256 describes the model — one row, two objects
    #3878 0.71.0 triage yes ladder receipt: a dangling symlink records "sha256": "" — an identity claim of nothing
    #3901 0.71.0 triage yes a ladder row red only on serve prints reason 'unknown' — #3886 moved the verdict and left the e
    #3904 0.70.0 triage yes #3872 removed the four slices someone FOUND; nobody enumerated the surface — here it is, and th
    #3916 0.70.0 triage yes #3904 enumerated the surface I could SEE: its scan is Python-shaped, and Rust truncates with .t
    #3918 0.74.0 triage yes detect_format_from_name's ordered substring table has produced three defects — one a correct fi
    #3919 0.71.0 triage yes The thinking-ON leg exists twice and has now drifted twice: the hybrid copy takes neither #3907
    #3920 0.71.0 triage yes #3911's embedded tokenizer splits every ChatML control token into six pieces — 32 ids where the
    #3921 0.72.0 triage yes P0: chat/code judged by rc and serve by http — a verb emitting 'zombie zombie zombie' is record
    #3930 0.73.0 triage yes Qwen3NoThink prefills \n\n where the model's own template uses \n\n</thin
    #3936 0.71.0 triage yes the ladder's serve /health window is a fixed 90s, so the 27B is red for load time while passing
    #3943 0.74.0 triage yes ladder_serve_teardown reads 'not answering /health' as 'server gone', so a still-loading server
    #3945 0.74.0 triage yes Enumerated conformance table: derive (qtype × op × backend) proof obligations from the dispatch
    #3947 0.71.0 triage yes aprender-core has no IQ dequantizer, so tensor_contract cannot inspect three release-blocking m
    #3950 0.73.0 triage yes IQ2_XXS (ggml 16) has no CUDA GEMV — 0.69.1 release blocker
    #3951 0.73.0 triage yes Qwen3.5-0.8B-IQ4_XS never closes its think block while Q4_K_M does: CUDA IQ4 GEMV or real quant
    #3952 0.70.0 code CRUX: add vLLM as a pre-release comparator engine (plugin driver; lambda x86/4090 + gx10 aarch6
    #3953 0.73.0 triage yes IQ2_S (ggml 22) has no CUDA GEMV — 0.69.1 release blocker
    #3955 0.72.0 triage yes False provenance: chat banner claims 'fused Q4K, F2-validated' on BF16 with F2 SKIPPED; chat en
    #3959 0.74.0 triage yes Dedupe IQ decoders: aprender-serve onto trueno_quant::iq (one decoder, one oracle)
    #3960 0.73.0 triage yes Q2_K (ggml 10) has no CUDA GEMV — 0.69.1 release blocker
    #3961 0.71.0 triage yes golden thinking-ON leg discards its backend (_used_gpu) and passes an empty as
    #3962 0.72.0 triage yes 0.69.1 BLOCKER: CRUX producer — per-verb prompt sets (incl. hard prompts) + code verb + hf/vllm
    #3963 0.73.0 triage yes IQ3_XXS (ggml 18) has no CUDA GEMV — 0.69.1 release blocker
    #3968 0.71.0 triage yes GPU whitelist admits a quant TYPE on one model's shapes — admission must key on per-shape devic
    #3977 0.71.0 triage yes 0.70.0: qwen35moe (Qwen3.5-35B-A3B hybrid SSM MoE) CUDA forward
    #3980 0.72.0 triage yes Batch serving F2 GPU validation has never run (empty probe) — needs a representative probe at b
    #3987 0.74.0 triage yes qwen3moe CUDA reaches run+qa only: chat rc 8, serve 501/500, code rc 1 — serve loads no mapped
    #3990 0.73.0 triage yes Qwen2.5 chat template drops the default system prompt (26 vs llama.cpp's 47 tokens) — apr 1/18
    #4008 0.74.0 triage yes arch constraints: qwen35moe (Qwen3.5-35B-A3B) has is_moe=false; replace #3992's substring MoE p
    #4015 0.70.0 triage yes ladder serve wait: #3943's stall rule counts time blocked in flock as no progress, a false 'sta
    #4017 0.73.0 triage yes apr --gpu holds ~2.3× the GGUF size in host RAM (27B Q4_K_M: 36 GiB RSS for a 15.6 GiB file) —
    #4021 0.70.0 triage yes CRUX judge: thinking-ON cells must not be judged on closure alone — use answer-when-bo
    #4027 0.74.0 triage yes Operator standing rules → global ~/.claude/CLAUDE.md (cop verbatim relays; quorum Opus fallback
    #4028 0.70.0 triage yes aprender-serve lib tests accumulate memory across tests in one process: 30 GB peak single-threa
    #4030 0.71.0 triage yes 0.71: qwen35-0.8b-q4km golden thinking-ON never closes on apr (greedy near-tie path, no localiz
    #4031 0.70.0 triage yes Load-time CRUX certification status for every model (certified / not certified / known issue)
    #4034 0.70.0 code ladder: run a cell's CPU and CUDA lanes concurrently (the CPU lane doesn't hold the GPU lock)
    #4037 0.70.0 triage yes certification: carry a cell's receipt forward when the diff since its apr_sha doesn't touch tha
    #4038 0.70.0 triage yes ladder: CPU==GPU think-block parity on a fixed prefix (e.g. 256 tokens); full 2048-token budget
    #4039 0.70.0 triage yes sweep: order cells so CRUX-certified models run first (CRUX can start early), then largest firs
    #4040 0.70.0 triage yes nightly full ladder + CRUX on main; the release sweep runs only the delta since the last green
    #4043 0.70.0 triage yes test_forward_batched_graphed_replay passes when graph capture FAILS (falls back silently); para
    #4049 0.74.0 triage yes certification: per-architecture carry-forward — a diff invalidates only the cells whose inferen
    #4052 0.70.0 triage yes ladder: short-circuit a cell's verbs once F10 RED-UNSUPPORTED is proven by name (not-run, never
    #4053 0.70.0 triage yes ladder: WORK dir off /tmp onto NVMe + free-space preflight (gx10 ENOSPC at 27B) (#4033)
    #4054 0.70.0 code Wire aprender-serve --test tokenizer_nonascii_4005 into CI (dark test since 9684a7a, #4005)
    #4059 0.70.0 triage yes binary-debt #2: the KEPT binaries' CLI tests are dark in CI — pv (17 files), aprender-profile (
    #4063 0.72.0 triage yes binary-debt #6: aprender-train-* → apr (distill / finetune --plan / inspect / bench); delete tr
    #4065 0.74.0 triage yes binary-debt #8: sunset the 13 pre-monorepo crates.io names — a final release pointing at aprend
    #4087 0.70.0 triage yes qa tensor_contract: cache keyed by model sha + checker-source hash (#4033 lever; 19–46% of qa)
    #4090 0.70.0 triage yes ladder: serve health wait reads a GPU-LOCK WAIT as a stalled server (no log, no CPU) — a foreig
    #4111 0.73.0 triage yes provable-contracts facades stuck at 0.4.0 (-> aprender-contracts ^0.64): tier-14 publishes noth
    #4124 0.70.0 triage yes PVL EV-5a orphan group ProvableContracts.Theorems: 55 module(s) outside the root import cone
    #4125 0.70.0 triage yes PVL EV-5a orphan group ProvableContracts.Defs: 4 module(s) outside the root import cone
    #4126 0.70.0 triage yes ladder: serve probe writes "http":000 (invalid JSON) for a timed-out route, so the whole serve
    #4127 0.70.0 triage yes Published aprender pulls two unmaintained proc-macro crates (tabled 0.16 → proc-macro-error; va
    #4130 0.70.0 triage yes Published tarballs of aprender-core, aprender-orchestrate, aprender-cbtop, aprender-test-showca
    #4131 0.70.0 triage yes ladder: every run sha256s the whole 109 GB inventory (~473 s on lambda, ~60% of a --only 9B run
    #4140 0.70.0 triage yes #4129 on the 0.69.1 lineage: apr-cli and aprender-orchestrate tests include #3990 fixtures / th
    #4153 0.70.0 triage yes clippy debt ratchet 1/5 (0.70): apr-cli + aprender-core + aprender-serve residual (~522)
    #4154 0.71.0 triage yes clippy debt ratchet 2/5 (0.71): qa-runner, first half (~560)
    #4155 0.72.0 triage yes clippy debt ratchet 3/5 (0.72): qa-runner, second half (~559)
    #4156 0.73.0 triage yes clippy debt ratchet 4/5 (0.73): test-cli + half the small crates (~510)
    #4157 0.74.0 triage yes clippy debt ratchet 5/5 (0.74): aprender-graph + remaining small crates (~376) → 0
  4. noahgift commented on Sep 24, 2026

    @noahgift
    MemberAuthor

    Cop rulings applied and read back (aprender-dd, 2026-09-24):

    • 26/26 no-theme tooling items moved 0.71–0.74 → backlog, each with a comment citing the operator's backlog rule.
    • The 68 coin-flip kinds were re-ruled. Before: triage 68. After: code 22, measurement 10, docs 1, triage 35 (33 changed). The earlier 69 counted 0.69.1 hotfix: load-time warning for Qwen3.5-0.8B (known issue #4030) #4032, closed in part 1.
    • The re-planned 0.70 scope cut stays HELD for the operator's GO.
  5. noahgift commented on Sep 24, 2026

    @noahgift
    MemberAuthor

    Epic membership, measured 2026-09-24 (aprender-dd). Operator rule: a milestone is an epic only if an epic issue lists its members.

    milestone epic open members listed before UNLISTED before action
    0.70.0 #3998 359 5+0 via sub-epic 353 NONE: held for the scope-cut GO
    0.71.0 #3994 137 4+0 via sub-epic 132 +132 appended to #3994's checklist, read back
    0.72.0 #4000 71 5+3 via sub-epic 62 +62 appended to #4000's checklist, read back
    0.73.0 #3999 101 0+0 via sub-epic 100 +100 appended to #3999's checklist, read back
    0.74.0 #4001 33 5+0 via sub-epic 27 +27 appended to #4001's checklist, read back
    0.75.0 #4002 19 1+0 via sub-epic 17 +17 appended to #4002's checklist, read back
    0.76.0 none 49 0+0 via sub-epic 49 epic CREATED #4164, all 49 listed

    Listed = the epic names it, or names a sub-epic that names it. The checklists are marked members-derived:v1 so a later re-derivation replaces them instead of stacking.

    0.70.0's 353 unlisted members, not written; the scope cut produces the final list:

    #2307 #2373 #2463 #2470 #2473 #2482 #2492 #2494 #2500 #2503 #2526 #2530 #2556 #2585 #2590 #2614 #2615 #2616 #2646 #2648 #2653 #2655 #2699 #2701 #2704 #2750 #2757 #2766 #2775 #2784 #2797 #2798 #2808 #2814 #2856 #2877 #2878 #2881 #2889 #2890 #2891 #2892 #2894 #2896 #2897 #2898 #2899 #2900 #2901 #2902 #2911 #2912 #2913 #2914 #2915 #2916 #2917 #2918 #2931 #2978 #2979 #2983 #2984 #2989 #2992 #2993 #2995 #2996 #2997 #2999 #3014 #3015 #3018 #3029 #3043 #3054 #3055 #3058 #3062 #3081 #3132 #3133 #3140 #3141 #3142 #3143 #3144 #3170 #3171 #3172 #3173 #3176 #3177 #3182 #3183 #3190 #3203 #3204 #3206 #3217 #3218 #3251 #3254 #3258 #3261 #3269 #3279 #3282 #3284 #3286 #3291 #3293 #3298 #3304 #3306 #3324 #3343 #3345 #3353 #3397 #3398 #3399 #3416 #3446 #3454 #3457 #3458 #3459 #3460 #3462 #3464 #3466 #3478 #3493 paiml/infra#1144 #3522 #3531 #3543 #3544 #3546 #3554 #3559 #3560 #3561 #3562 #3563 #3567 #3569 #3577 #3579 #3584 #3585 #3586 #3587 #3591 #3592 #3593 #3594 #3597 #3603 #3607 #3610 #3611 paiml/infra#1145 #3615 #3624 #3625 #3628 #3635 #3636 #3639 #3643 #3646 #3649 #3650 #3652 #3667 #3668 #3676 #3679 #3680 #3683 #3684 #3686 #3687 #3690 #3694 #3697 #3699 #3701 #3703 #3705 #3708 #3709 #3712 #3713 #3714 #3715 #3717 #3722 #3731 #3732 #3739 #3740 #3741 #3745 #3748 #3749 #3761 #3765 #3768 #3770 #3771 #3774 #3777 #3778 #3788 #3790 #3792 #3795 #3797 #3805 #3806 #3809 #3818 #3821 #3829 #3831 #3833 #3834 #3836 #3837 #3839 #3841 #3844 #3845 #3847 #3854 #3855 #3856 #3857 #3863 #3864 #3865 #3874 #3879 #3887 #3902 #3904 #3909 #3912 #3916 #3917 #3952 #3956 #3964 #3966 #3972 #3985 #3989 #3996 #4015 #4020 #4021 #4025 #4026 #4028 #4031 #4033 #4034 #4036 #4037 #4038 #4039 #4040 #4041 #4043 #4044 #4045 #4047 #4048 #4050 #4051 #4052 #4053 #4054 #4055 #4056 #4057 #4058 #4059 #4060 #4061 #4067 #4068 #4069 #4070 #4071 #4072 #4073 #4074 #4075 #4076 #4077 #4078 #4079 #4080 #4081 #4082 #4083 #4084 #4085 #4086 #4087 #4088 #4089 #4090 #4096 #4099 #4101 #4102 #4105 #4108 #4112 #4113 #4114 #4117 #4118 #4120 #4122 #4124 #4125 #4126 #4127 #4128 #4129 #4130 #4131 #4132 #4133 #4134 #4140 #4143 #4145 #4148 #4149 #4151 #4152 #4153 #4158 #4159 #4160 #4162

    Empty open milestones, for the cop:

    • 0.66.0: CLOSED (0 open; released long ago).
    • CRUX Phase 3: 0 open / 9 closed, open. Candidate to close.
    • APR-CLUSTER-001: 0 open / 0 closed, open. Candidate to close.
    • 0.69.0: 0 open / 48 closed, open. Candidate to close.
    • 0.69.1: 0 open / 38 closed, open. Candidate to close.
    • Inference dispatch & architecture consolidation: 1 open / 0 closed, open. Candidate to close.
    • Note: the dispatch milestone's epic EPIC: Inference dispatch & architecture consolidation (dedicated cycle) #3423 is itself milestoned in 0.74.0 and is listed there. The milestone has no open members of its own.
  6. noahgift commented on Sep 24, 2026

    @noahgift
    MemberAuthor

    Correction to the comment above (aprender-dd): the dispatch milestone's "1 open" is PR #3424 (spec PP-ARCH-001), not an issue. The milestone API counts PRs, and my member count was issues only. So that milestone has 0 open issues and one open spec PR. It is not empty, so it is not a close candidate while #3424 is open.

  7. noahgift commented on Sep 24, 2026

    @noahgift
    MemberAuthor

    MUST-row sweep (read-only, then act), aprender-dd 2026-09-24. For each 0.70 MUST row: merged PRs (gh pr list --state merged --search) and origin/main commits referencing it; a fix-claiming candidate had its named guard / self-test run on a clean origin/main worktree.

    Result: 76 rows. 1 already CLOSED (#3561, fixed e6f77c9). 0 new CLOSE. 2 PARTIAL (commented). 73 still-open: no fix-claiming commit; 8 of them have commits that only reference them.

    issue candidate fix ancestor of main? guard result verdict
    #3561 e6f77c9 / PR #3614 yes (and v0.69.1) check_t2_preflight_verdict PASS; self-test PASSED CLOSED earlier today
    #2701 — — — still-open
    #3140 — — — still-open
    #3141 — — — still-open
    #3142 — — — still-open
    #3258 — — — still-open
    #3269 refs only: 5f9bd93 +1 — — still-open
    #3298 — — — still-open
    #3459 6a657fc / PR #3617 (part 1) yes check_tag_step_gated.sh self-test PASSED partial: part 2 open (f5)
    #3543 refs only: 8c7822f — — still-open
    #3544 — — — still-open
    #3559 refs only: 82c64c6 — — still-open
    #3560 refs only: 82c64c6 — — still-open
    #3567 82c64c6 / PR #3633 yes guard PASS (lambda, pin 0.69.1); self-test 19/19 partial: ask 1 (yoga has no pv; gx10 pin 0.68.2) left
    #3569 refs only: 5f9bd93 +3 — — still-open
    #3577 refs only: 5f9bd93 +2 — — still-open
    #3594 — — — still-open
    #3610 refs only: 5f9bd93 +1 — — still-open
    #3611 — — — still-open
    #3624 — — — still-open
    #3679 refs only: 5f9bd93 +1 — — still-open
    #3687 — — — still-open
    #3809 — — — still-open
    #3821 — — — still-open
    #3844 — — — still-open
    #3847 — — — still-open
    #3856 — — — still-open
    #3857 — — — still-open
    #3863 — — — still-open
    #3972 — — — still-open
    paiml/infra#1146 — — — still-open
    #3997 — — — still-open
    #4031 — — — still-open
    #4033 — — — still-open
    #4034 — — — still-open
    #4036 — — — still-open
    #4037 — — — still-open
    #4038 — — — still-open
    #4039 — — — still-open
    #4040 — — — still-open
    #4045 — — — still-open
    #4047 — — — still-open
    #4051 — — — still-open
    #4052 — — — still-open
    #4053 — — — still-open
    #4057 — — — still-open
    #4058 — — — still-open
    #4069 — — — still-open
    #4070 — — — still-open
    #4071 — — — still-open
    #4072 — — — still-open
    #4073 — — — still-open
    #4074 — — — still-open
    #4075 — — — still-open
    #4076 — — — still-open
    #4077 — — — still-open
    #4078 — — — still-open
    #4079 — — — still-open
    #4080 — — — still-open
    #4081 — — — still-open
    #4082 — — — still-open
    #4083 — — — still-open
    #4084 — — — still-open
    #4087 — — — still-open
    #4088 — — — still-open
    #4102 — — — still-open
    #4112 — — — still-open
    #4117 — — — still-open
    #4118 — — — still-open
    #4122 — — — still-open
    #4124 — — — still-open
    #4125 — — — still-open
    #4131 — — — still-open
    #4151 — — — still-open
    #4152 — — — still-open
    #4153 — — — still-open
  8. added
    kind:triageEpic, tracker, decision or hygiene work (derived rule, #4159)
    on Sep 24, 2026
  9. noahgift commented on Sep 24, 2026

    @noahgift
    MemberAuthor

    Closed by the 0.70 triage (aprender-dd, operator "go .70" relayed 2026-09-24): the triage this tracked has landed; per-item decisions are in the 0.70.0 / 0.71.0 / backlog milestones.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind:triageEpic, tracker, decision or hygiene work (derived rule, #4159)

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions