release: v0.29.0 — TP-187 supervisor recovery + TP-189 polish + #559/#560 hotfixes#563
Merged
Conversation
Rename [Unreleased] section to [0.29.0] - 2026-05-09 and add Fixed entries for the two post-PR-#556 hotfixes that landed in commits ff02265 + 4a8aea6 (#559) and 34b303a (#560): - #559: orchestrator parent crashes on first IPC frame from engine-worker (ReferenceError: batchState is not defined). Affected every batch. Fix uses orchBatchState.batchId — sage post-mortem on first attempted fix that used supervisorState.batchId. - #560: Pi CLI path resolution broken after @mariozechner → @earendil-works rename. resolvePiCliPath() now searches both scopes (new first, legacy fallback). Backward compat preserved. The TP-187 / TP-189 / dashboard polish entries that already existed in [Unreleased] (from PR #556's main batch) are preserved verbatim in the new [0.29.0] section. New empty [Unreleased] placeholder inserted at the top for the next release cycle.
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.
Minor release bundling supervisor recovery flows + accumulated polish + two critical post-merge hotfixes.
Why minor (not patch)
supervisor_takeover(reason)tool surface (TP-187, Post-failure event queue replays zombie 'wants to exit' alerts to supervisor; no clean drain mechanism #538) — additive but observablebatch-meta.jsonruntime artifact (TP-187, orch_resume(force=true) cannot reattach to a stopped batch after orch_abort() #539) — additive on-disk surface, written at every batch starttaskplane doctornow actually shows the pi version (was empty parens — TP-189 / chore(release): v0.10.2 #185 follow-up)lane-terminated/lane-respawnedIPC messages between engine-worker and supervisorPer semver, these warrant a minor bump (0.28.x → 0.29.0). Pure bug-fix entries also shipping here as part of the same release.
Highlights
TP-187 — Supervisor recovery flows (PR #556 main batch, all reviews APPROVE)
pi.sendUserMessage. Newsupervisor_takeover(reason)tool for non-destructive batch parking.batch-meta.jsonartifact written at batch-start letsorch_resume(force=true)rebuild a validator-compliantPersistedBatchStatefrom runtime artifacts afterorch_abortdeletes.pi/batch-state.json.Worker said: "..."field in supervisor alerts now falls back to walking the worker'sevents.jsonlwhen the current turn produced no visible output.TP-189 — Polish bundle (PR #556 main batch, all reviews APPROVE)
review_stepREFUSED runtime, fenced-code-block filter,removeWorktree()Windows fallback decision branches.tool-allowlist-constants.tssingle source of truth).taskplane doctorshows pi version (extracted to testablebin/get-version.mjs).Sage post-integration folds (PR #556)
lane-terminated/lane-respawnedhandlers gate on the supervisor's trackedorchBatchState.batchIdso stale messages from a prior batch can't taint the live batch's suppression map.segments: []state loss for polyrepo batches.Critical post-merge hotfixes
ReferenceError: batchState is not defined). My TP-187 sage-fold commit referenced an undefined identifier in the supervisor IPC closure. Affected every batch. Fixed in commits4a8aea6+ff02265with sage post-mortem switching toorchBatchState.batchId(the canonical live runtime batch ID, notsupervisorState.batchIdwhich is only populated when the supervisor activates).@mariozechner→@earendil-worksrename in Pi v0.74.0.resolvePiCliPath()now searches both scopes (new first, legacy fallback). Backward compat preserved for users still on the legacy scope.Validation
taskplane help,taskplane doctor,taskplane init --dry-run,taskplane uninstall --dry-runall clean.taskplane doctorcorrectly displays✅ pi installed (0.74.0)(the rename target).npm pack --dry-runclean — 660 kB, 77 files@mariozechner/*(intentional; Pi's runtime aliasing handles both scopes, and updating peer deps risks breaking compat for users on Pi <v0.74.0).Issues closed
Issues queued (next release)
taskplane-tasks/TP-190-runtime-v2-spawn-failure-visibility/. Review Level 2, Size M. Will ship in v0.29.x or v0.30.0 after the orchestrator runs the task.Tag
v0.29.0will be pushed AFTER this PR merges. Use--mergeto preserve the version-bump commit in main's history.