Skip to content

EPIC: release train 0.70.0 — receipts replace refusals #3081

Closed as not planned

Description

@noahgift

Release train 0.70.0 — the story closes: pull → run → finetune --recipe → run, with published parity

Spec of record: docs/specifications/06x-release-schedule.md (PMAT-1097; this epic is §3 "0.70.0" of that document, and §2 holds every row's acceptance command). Contract: contracts/release-schedule-06x-v1.yaml.

Window (§1.1): opens 2026-09-19T18:00Z · must leave by 2026-09-20T18:00Z · planned tag 2026-09-20T06:00Z. T is the previous train's actual publishedAt; the train leaves on time — scope slips forward to the next epic with slipped_from: 0.70.0, dates do not slip. A red release gate holds the train at most 12 h.

The closing train of this schedule: the fine-tune story becomes THE story (70-G1), 7B parity is published from CONFORMANT rows only (70-F1), NVIDIA Rust is 100 % where the driver allows (70-B1).

Decisions apply at their §6 defaults unless overridden in a comment here (D-1 FULL tier only nightly + pre-publish dogfood · D-2 NVIDIA Rust default per layer · D-3 yoga advisory→required behind the runner-group restriction · D-4 gx10 takes arch-neutral guards · D-5 trains leave on time · D-6 parity hosts yoga + gx10 · D-7 recipe format · D-8 GH-480 rewriter fate · D-9 non-Linux binaries out). An override comment is copied into the spec's §11 with decided_by and the comment link.

Scope (spec §3, as of origin/main @ 2c584a168)

Row Item Source Host
70-G1 the fine-tune story is THE story: README, BEATS Pillar-3 row vs Unsloth (recorded), dogfood runs pull → finetune --recipe → run on gx10 §2 G gx10
70-G2 apr modelfile parse --to-recipe §2 G —
70-F1 publish 7B ratios from CONFORMANT rows only; per-arch decode floor contract enforced nightly; W-F resident apr run §2 F yoga, gx10
70-B1 NVIDIA Rust 100 %: every GPU path through cuda-core where the driver allows; hand FFI = fallback only; O1a decides GH-480 (D-8); §8 exit criteria re-measured §2 B gx10, yoga
70-C1 / 70-D1 gx10 ≥ 960, yoga ≥ 480 min/day; gx10 in ≥ 6 workflows, yoga in ≥ 4 §2 C/D both
70-A1 asset set frozen as a contract obligation checked by the workflow §2 A —
70-E1 20 consecutive PRs ≤ 20 min; freed runner-hours recorded §2 E —
70-R release §1.3 —

Acceptance (the train is done when)

  • every row above is MERGED or moved to the next epic with slipped_from:
  • pre-publish dogfood FULL (scripts/dogfood.sh --phase pre-publish) GO
  • tag v0.70.0 published inside the window (or §11 amendment says why)
  • release carries 4 apr binaries ({cuda,cpu} × {x86_64,aarch64}) + .sha256 + 8 pv assets — checked by command, never by eye
  • post-publish dogfood receipts on gx10 and yoga under evidence/dogfood/0.70.0/
  • closing comment here: planned vs actual instant, receipt paths, next train's T

🤖 Generated with Claude Code

https://claude.ai/code/session_01JZjEDVTFkFv71yCPD1dmUJ

Activity

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

    @noahgift
    MemberAuthor

    Spec PR: #3087 (branch PMAT-1097-06x-release-schedule, auto-merge armed). The §3 table in this epic's body is the state at origin/main @ 2c584a168; §10 of the spec records the agy /teamwork-preview review.

  3. noahgift commented on Sep 12, 2026

    @noahgift
    MemberAuthor

    Release estimate (orchestrator, 2026-09-12 12:20Z): eligible Sat 2026-09-19 evening → Sun 2026-09-20 16:00 UTC, tag Sun 2026-09-20 → Mon 2026-09-21 ~16:00 UTC. Depends on the P2 infra PR (yoga/gx10 runner units declared in forjar) for the sharded gate; without it the train still runs at the P1 speed. Slides one takt per skipped predecessor.

    Basis. docs/specifications/APR-RELEASE-001-train-and-build-kaizen.md (PR #3164): a train becomes eligible 48 h after the previous tag on main and must be runnable by 72 h; any RED step skips the train at that HEAD and the next eligibility is 48 h later. Train duration measured on 0.67 today: queue drain of the open PRs (~1 h per FULL-tier entry on intel), pre-publish dogfood (~1 h, 0.66 precedent), the G3.EX examples sweep (981 targets, ~5 h on a loaded box — the long pole, shrinks when P0/P1/P2 land), assets + preflight (~1 h). The crates.io cascade is attended (spec §3.7): the tag and GitHub release are autonomous, the publish waits for the operator, and its minutes are recorded from 0.67 on.

  4. noahgift commented on Sep 20, 2026

    @noahgift
    MemberAuthor

    Governed by 30-day-plan.md v2.2 — 0.70's purpose, exclusions and capacity

    Purpose: receipts replace refusals. Every removed_by: v0.70 shipped in 0.69 comes off here, by producing the receipt that was missing — not by deleting the refusal.

    Excluded (predicates; the labels exist as of 2026-09-20):
    label:arch-model-new · label:crux-competitor · any PR adding a refusal without removed_by (lint) · standing: label:lang-next.
    A move into or out of this milestone cites a predicate or is logged as an override.

    Must-carry candidate: batched decode parity — and per doctrine rule 3 it is only admitted if its plan is ruled and its falsifier proven satisfiable by a RED test on main before 0.70 opens (09-26). Slice M took four quorum rounds and idled a lane for days; that is the failure this rule exists to stop. ≤1 must-carry row.

    Capacity — this milestone does not fit, and the number it does not fit is itself [U]

    49 open against C = 29/train [C, 09-17]. But C is contested: 142 aprender merges in 7 days [C] ≈ 61 per 72 h. Re-derive C from the last five tags before anyone argues scope from it — arguing capacity from an uncited number is the defect that got the "cap of 25" rejected in the 0.69 re-cut.

    Either way 49 needs stripping. Nineteen of these arrived from the 0.69 re-cut on 2026-09-20 with reasons recorded in #3080; they are the first candidates to move again, by predicate this time.

    What 0.70 inherits by name

    from what
    0.69 refusals every removed_by: v0.70 — the train's whole purpose
    #2753 / #2770 / #2765 batched decode garbage at m>1, divergence at m≥4, FP8 stale read — the must-carry candidate's substance
    PP-QUANT phase 2 #3418 #3429 #3431 #3433 #3434, epic #3428
    viz consumer surface #3550 #3551 #3552 (moved by predicate label:viz)
    5.9 training DeltaNet CPU backward as the reference, gradient-checked — QLoRA on Qwen 3.5 is next month, not this one

    Doctrine that applies here and was not in force for earlier trains

    1. Fix-or-refuse is how we ship, never how we measure — no goal for this train may be satisfiable by refusing.
    2. Refusals carry removed_by and never block a cut; an expired one bumps once and increments slips, and slips ≥ 2 raises a non-blocking escalation. It is never auto-reverted: a refusal is the safe state.
    3. Must-carry admission = readiness (above).
    4. Interrupt displacement is mechanical: next_departure = max(scheduled, close_of_last_interrupt_release + one takt).
    5. Each train pays its own reconcile — own-train R2/R3/R4 = 0 at the cut. v0.68.2 committed RED at 25/37/12 inherited; inherited debt may never go up.
    6. The producer is never the reviewer: the apr quorum lane runs release N-1, pinned by sha, on a receipted cell — never HEAD.

    Full plan governance and the 0.69 side of it: #3080.

  5. changed the title [-]EPIC: release train 0.70.0 — 06x-release-schedule.md §3 (0.70.0)[/-] [+]EPIC: release train 0.70.0 — receipts replace refusals[/+] on Sep 20, 2026
  6. noahgift commented on Sep 21, 2026

    @noahgift
    MemberAuthor

    Rows boarding 0.70.0 from the 0.69 freeze (slipped_from: 0.69.0, 2026-09-21): #3459 (bullet 4), #3597, #3598, #3602 (item 2), #3609, #3610, #3658 (item-7 observation), #3668, PRs #3420 and #3494. Next in line as soon as v0.69.0 is tagged: the 0.70 batch. Candidates are #3606, #3622, #3642, #3271, #3674, #3076 (Alfredo), #3676 (CI diet), #3659, #3666. — aprender-04 (cop)

  7. noahgift commented on Sep 25, 2026

    @noahgift
    MemberAuthor

    Superseded by EPIC E1 #3998 (APR-EPIC-001 A4). Open children re-parented: none. Owner lines copied to the absorbing epic's body. Applied by aprender-d1: claude+agy both said close, apr shadow row recorded (handoff/close-quorum-2026-09-25.json).

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

    enhancementNew feature or requestepicEpic — multi-story umbrella

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions