You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Does wf linking devlaunch-core in-process actually beat the wire seam it has today — decided by a prototype, before PR #260 merges?
This is load-bearing for the cutover, not sequencing detail. The linked-crate reuse was the sole surviving driver of #53's go — perf was disclaimed at decision time (one devpod round-trip costs 5× the Python interpreter startup), distribution doesn't change (same two channels, narrowing to linux-64), and the port's genuine side-yield (bug finds, the boundary-test harness, the grammar fixes) is language-independent. The owner-directed re-litigation of 2026-08-19 (recorded on #261) re-measured that driver against wf's actual code and found it weaker than #250 estimated:
The wire-tolerance layer is ~100–200 lines of serde parse in wf's src/reap.rs plus one version-floor message — not ~300. The rest of reap.rs is deletion policy (what wf may destroy, the --force waiver) that survives linking unchanged.
wf's launch path deliberately execs into the dl binary for terminal handoff (launch.rs) — linking converts only the listing/rm calls; the binary stays in wf's world either way.
Skew doesn't die, it moves: today it's a loud runtime version-floor error ("needs devlaunch 0.0.21+"); under a pinned git dep it's silent pin-time staleness.
The wire seam delivers dl fixes to wf for free via pixi global update; a crate pin requires re-pin → rebuild → wf release for every devlaunch fix — a permanent coupling tax on a repo that shipped 16 releases in ten days.
The experiment (~1 day)
Branch wayfinder; swap reap.rs's dl --ls --json subprocess call for a devlaunch-core git dependency pinned to the rust/big-bang-port branch (the frozen api module: enriched_listing/json_document, typed workspace_delete). Judge:
Is the typed model materially better to live with than the tolerant serde parse — including a typed unsaved instead of dl's rendered words?
Walk the loop that hurts: "devlaunch fixed a bug, ship it to wf" under release coupling, vs today's pixi global update.
What the exec-into-dl launch path looks like alongside a linked core (it stays either way — is a half-linked wf coherent?).
The two outcomes (follow-on tickets filed after the decision, not now)
Linking wins → merge #260 (which is the 0.1.0 release — Auto-publish fires on the merge commit) and cut over, with hard retirement conditions attached rather than left as loose ends:
a dated wf re-pin/switch ticket on blooop/wayfinder;
the Python tree deleted within N releases;
the parity apparatus (goldens, spec ledger, shim, compare.py) deleted with it;
the dev-loop follow-up (dev.sh / pixi run dl still installing Python) done at cutover.
Linking loses → do not merge; harvest instead:
unfreeze Python (the freeze exists to serve the port and dies with it);
backport the port's ~8 real bug finds;
keep the devpod shim + DEVLAUNCH_DL_CMD boundary-test harness, pointed at the Python binary;
land the divergence-table grammar improvements (rows 14–15, 23, 25) as Python changes;
complete the private security-fix flow (unchanged either way);
"Park the branch" is not an outcome. Python moved 375 commits in ten days before the freeze; big-bang parity decays in weeks. The choice is binary: merge now, or harvest and discard.
A standing owner preference for an all-Rust ecosystem (wf already is; one typed model; agent-driven development where the compiler does free review) is itself a legitimate resolution that skips the experiment — this ticket exists so the reason on record is a real one, not so a preference is laundered through a prototype.
Question
Does
wflinkingdevlaunch-corein-process actually beat the wire seam it has today — decided by a prototype, before PR #260 merges?This is load-bearing for the cutover, not sequencing detail. The linked-crate reuse was the sole surviving driver of #53's go — perf was disclaimed at decision time (one
devpodround-trip costs 5× the Python interpreter startup), distribution doesn't change (same two channels, narrowing to linux-64), and the port's genuine side-yield (bug finds, the boundary-test harness, the grammar fixes) is language-independent. The owner-directed re-litigation of 2026-08-19 (recorded on #261) re-measured that driver against wf's actual code and found it weaker than #250 estimated:src/reap.rsplus one version-floor message — not ~300. The rest ofreap.rsis deletion policy (what wf may destroy, the--forcewaiver) that survives linking unchanged.execs into thedlbinary for terminal handoff (launch.rs) — linking converts only the listing/rm calls; the binary stays in wf's world either way.dlfixes to wf for free viapixi global update; a crate pin requires re-pin → rebuild → wf release for every devlaunch fix — a permanent coupling tax on a repo that shipped 16 releases in ten days.The experiment (~1 day)
Branch wayfinder; swap
reap.rs'sdl --ls --jsonsubprocess call for adevlaunch-coregit dependency pinned to therust/big-bang-portbranch (the frozenapimodule:enriched_listing/json_document, typedworkspace_delete). Judge:unsavedinstead of dl's rendered words?pixi global update.dllaunch path looks like alongside a linked core (it stays either way — is a half-linked wf coherent?).The two outcomes (follow-on tickets filed after the decision, not now)
Linking wins → merge #260 (which is the 0.1.0 release — Auto-publish fires on the merge commit) and cut over, with hard retirement conditions attached rather than left as loose ends:
compare.py) deleted with it;dev.sh/pixi run dlstill installing Python) done at cutover.Linking loses → do not merge; harvest instead:
DEVLAUNCH_DL_CMDboundary-test harness, pointed at the Python binary;Constraints