Skip to content

Port order, milestone slicing, and cutover criteria #255

Closed

Description

@blooop

Question

What is the port order — the sequence of build-ticket-sized milestones from empty cargo workspace to acceptance parity — and the cutover criteria?

This is the plan's spine, and the map's last ticket: it assembles the architecture, harness, moving-target, and distribution decisions into the execution route. To settle:

  • Milestone slicing: each slice sized to one fresh agent session, ordered so every slice leaves a testable increment (which command surface first? does wf's minimal API surface come early to start the reuse payoff, or last to avoid churn?).
  • Cutover criteria: the explicit checklist — harness green, channels shipping, migration/coexistence verified — that flips the default install to Rust.
  • The spec: resolution lands as a committed plan document (e.g. docs/rust-rewrite-plan.md) capturing this map's decisions in one place — the artifact the follow-on execution map is charted from.

Activity

  1. blooop commented on Aug 18, 2026

    @blooop
    OwnerAuthor

    cut over in 1 big bang

  2. blooop commented on Aug 20, 2026

    @blooop
    OwnerAuthor

    Resolution: answered by the owner's steer plus the committed plan, and the port it sequenced has since shipped. This ticket got its answer; what never happened was coming back to close it — Rust rewrite: implementation plan was closed around it on 2026-08-19, leaving it as the map's one open child.

    The steer. Asked on this ticket, answered on this ticket (2026-08-18): "cut over in 1 big bang" — so no parallel shipping, no period where users choose an implementation. The same steer is recorded in the map's Notes and in #253's answer.

    Milestone slicing — eleven, M0 through M10, each sized to one focused agent session, each leaving the tree green (cargo test + rust-parity under the then-current manifest + its claimed ledger rows out of pending), later ones depending only on earlier ones:

    • M0 harness and scaffold — the judge before any defendant: the DEVLAUNCH_DL_CMD seam, the implementation-blind fake-devpod shim, the cargo workspace compiling, the seeded spec ledger, the empty parity manifest, the rust-parity job required from day one.
    • M1 the Runner trait and its single fake. M2 (∥) domain, M3 (∥) tool clients. M4 storage flows. M5 read-side + the first binary — the point the manifest starts shrinking, and where timing landed. M6 lifecycle. M7 launch. M8 provisioning + aid. M9 parity burn-down to an empty manifest and zero pending. M10 distribution and the 0.1.0 cutover release, sequenced last and gated on the checklist.

    Which answers the ticket's own sub-question — early or last — with last. wf's consumption surface is designed early (M2/M3, from #250) but core's public API freezes only at the end of M6, and wf's switch to linking devlaunch-core was put out of scope entirely, bounded to at-or-after cutover. The reuse payoff was not pulled forward to buy churn.

    Cutover criteria — six boxes, all of which M10 waits on: empty parity manifest green on both tiers against the Rust binary; zero pending ledger rows; coexistence verified against one real cache (v2 metadata.json byte-compatible under the same flocks, identical completion caches, v1→v2 migration exercised); both channels shipping from one tag; README regenerated against dl --help with the divergence table final; rollback documented as pin <0.1.

    The spec landed as docs/rust-rewrite-plan.md, written 2026-08-18 against main at 0.0.29, which names this ticket as the source of its port order and cutover checklist.

    And it was executed. PR #260 merged and 0.1.0 shipped on both channels 2026-08-19 (#261) — one big bang, as asked. The Python tree and the parity apparatus half the checklist gates on were retired afterwards (#267, PR #287), which is why the plan doc now opens "done, and partly historical": the milestones and the checklist are a record of how the port was run, and the divergence table is the one part still live — the only written record of every deliberate behavioural difference from the Python build, cited by row number from tests and comments throughout rust/.

    Closing as resolved. Indexed on the map's Decisions-so-far.

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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions