Skip to content

feat(control): 0.3.0-beta.2 S2 UDS + S3-min store (Draft, not Ready) - #142

Draft
heggria wants to merge 5 commits into
mainfrom
rc/0.3.0-beta.2
Draft

feat(control): 0.3.0-beta.2 S2 UDS + S3-min store (Draft, not Ready)#142
heggria wants to merge 5 commits into
mainfrom
rc/0.3.0-beta.2

Conversation

@heggria

@heggria heggria commented Aug 18, 2026

Copy link
Copy Markdown
Owner

Summary

Draft-only Control Plane slice for 0.3.0-beta.2. Do not Ready / merge / tag / npm without a new instruction.

  • S2: Unix UDS ControlHost listen/attach. Auto never silently becomes standalone.
  • S3-min: files-only project ControlStore (header / commit-seq / journal / projections), exclusive writer, hardened UUID+wx+fsync+rename, process-level SIGKILL crash matrix (A3–A6).
  • Host: ControlHost.start() opens projectStorePath before dispatch (winner/standalone). Read-only RPCs: control.store.header, control.store.status.
  • Honesty: versions frozen to 0.3.0-beta.2. Wire contracts remain PROPOSED. taskflow-control stays off the ten-package face (publishConfig.tag=next). MCP taskflow_control_status not added (would force an unpublished dep onto the publish set).
  • Out of scope: #137 /tf web, #95 isolation, admission, receipts, approval, WebUI.

Rebased onto origin/main (8fab2c9 / 0.3.0-beta.1.1).

Test Plan

  • pnpm run typecheck
  • packages/taskflow-control/test/*.test.ts 66/66 (incl. UDS + store crash matrix)
  • exact-SHA remote CI on this Draft PR head

Stop line

Draft PR + CI only. Ready / merge / tag / npm need a new user instruction.

Clawdy added 5 commits August 18, 2026 21:36
Freeze S2-close + S3-minimum as the next npm beta increment.
Stop at Draft PR + exact-SHA CI; no Ready/merge/tag/npm in this slice.
The winner of the user singleton now listens on the UDS endpoint
(chmod 0o600); losers attach over the socket, do an online hello,
receive the winner's fencing epoch on the wire, and route
control.probe through the attached client. protocolMajor mismatches
are rejected on the wire, winner death leaves a stale socket that the
next process unlinks and re-listens, and renewLease() runs on an
unref'd timer while the winner holds the lease. Lock-layer labels are
no longer presented as attach.

Process-level A2/A2b tests live in a Unix-only test entry (skipped on
win32; not part of the 3-OS process-supervisor job).
Implement the S3-minimum ledger: header, commit-seq, journal, store-self
projections, exclusive writer lock, and hardened UUID/wx/fsync/rename.
ControlHost.start() opens projectStorePath before dispatch (winner/standalone
only). Acceptance A3–A6 covered by unit + process-level SIGKILL tests.

P14 ADR Status stays Proposed; only the S3 engine implementation gate is noted.
Align publishable versions and pins to 0.3.0-beta.2. Rewrite the
control package description and README banners so wire contracts stay
PROPOSED, taskflow-control stays off the ten-package face (tag next),
and #137/#95 are not claimed. ControlHost read-only store RPCs already
landed with S3; MCP status tool deferred to avoid a hard dep on an
unpublished package.
beta.2 candidate (rc/0.3.0-beta.2 @ bee8586) exact-SHA CI GREEN (run
32144803693, 10/10 jobs) recorded as candidate evidence only, not a
release. L5 PASS for published v0.3.0-beta.1 (tag 561cfd3, publish run
31621938101); v0.3.0-beta.2 NOT tagged/published. L6 stays FAIL. L4
live-Codex E2E @ 4524d2d marked historical (beta.1-era, not beta.2
evidence). Docs-only; no public copy (RELEASE.md does not reference the
scoreboard).

refs plan 8.1 / A9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant