Owner scope amendment — macOS only (2026-09-11)
依 Owner 最新裁決,本工作線相關功能設計、實作、交付與驗收 只處理 macOS。本裁決取代下文較早的跨平台/三平台要求。
- Windows、Linux 支援、移植、修復與平台驗證不在本次工作範圍;不再以三平台全綠作為本工作線的 acceptance criterion。
- 驗收保留 macOS 上必要的 source tests、獨立 package/install、真實呼叫入口、operation/副作用/讀回及適用的恢復與終態證據;ownership、lease、CAS、安全與獨立審查要求保持有效。
- 下方歷史測試、PR、平台結果與問題紀錄保留作為歷史證據,不代表目前仍有跨平台交付承諾。後續設計及驗收計畫以此 macOS-only 範圍為準。
- 本次更新僅修正 Issue 與規劃範圍;實作、部署與重啟仍依 Owner 的暫停指令保持暫停。
- 此文字更新不會自行修改 GitHub CI 設定或 branch protection;既有檢查設定如與新範圍不符,須另行明確調整,不得假稱已通過或繞過保護。
Status
BLOCKED_BY #49
Purpose
Add durable logical worker continuity so a ChatGPT Swarm worker can survive ordinary conversation replacement/context rollover without changing worker identity or losing task/reconciliation lineage.
This is the continuity layer after the basic MCP peer Swarm has passed live canary. It is not required for V0.1.
Hard prerequisite
OpenCLI #50 is optional and not a hard prerequisite. Continuity must be defined at the Swarm/Core level so multiple runtime carriers can use it.
Core principle
workerId != conversationId
A worker is durable logical execution identity. A ChatGPT conversation is a replaceable carrier.
Expected model:
worker-01
continuationEpoch: 4
currentCarrier: conversation-B
history:
epoch 3 -> conversation-A -> closed/rolled over
epoch 4 -> conversation-B -> active
Objective
Implement explicit, auditable continuation/rollover semantics with one-time binding material and fail-closed recovery.
Required behavior
Worker continuity state
Represent at least:
- stable worker ID
- current continuation epoch
- current carrier identity fingerprint
- prior carrier/epoch lineage sufficient for audit/reconciliation
- last acknowledged checkpoint
- current task binding
- rollover/continuation state
Continuation ticket
If a ticket/token is used to bind a replacement conversation:
- short-lived
- single-use
- scoped to one exact worker + swarm + next epoch
- stored as hash only
- invalid after successful consumption
- cannot be replayed by the old carrier
- cannot bind a different worker
- must not upgrade task/controller authority
Rollover safety
- do not roll over while an effect is ambiguous without a checkpoint/reconciliation rule;
- if a worker has an active task, continuation must preserve exact task/attempt identity;
- if old and new carriers both appear active, fail closed until ownership is resolved;
- loss of old conversation must not silently mark task complete/failed/retryable;
- controller must be able to distinguish
carrier_lost, continuation_pending, continuation_bound, and reconcile_required.
Context/checkpoint capsule
Define a bounded continuation capsule sufficient to resume worker role without copying full conversation history.
Expected contents may include:
- worker/swarm identity
- continuation epoch
- current/last task IDs
- stable worker role instructions
- bounded task/result summaries
- unresolved unknowns/blockers
- explicit authority/claim ceiling
- checksum/schema version
Do not treat model-generated narrative as authoritative task state; canonical state remains in Swarm storage.
Context pressure
Do not claim exact ChatGPT token telemetry unless a supported host/runtime signal exists.
If context pressure is estimated:
- label it estimated
- use conservative thresholds
- keep estimate separate from hard model context facts
- rollover decision must remain observable
Automatic context compaction/rollover may be added only after deterministic continuity semantics work without it.
Ultra reference boundary
The Ultra project may be used as a reference for:
- stable worker identity across conversation replacement
- continuation epochs/tickets
- checkpoint capsule concept
- idle-boundary rollover
Do not copy:
- assumptions tied to Windows AppX cloned runtimes
- session/cookie seeding
- context estimates presented as exact native token telemetry
- automatic authority transfer from browser/session state
Required tests
- one-time continuation ticket success
- ticket replay rejected
- wrong-worker ticket rejected
- expired ticket rejected
- old carrier cannot submit after new carrier binding
- ambiguous dual-carrier state fails closed
- active task/attempt identity survives rollover
- restart during continuation does not duplicate worker or task execution
- checkpoint capsule corruption/version mismatch fails closed
- controller sees stable worker ID before/after carrier replacement
Live acceptance
After deterministic tests, run a bounded worker rollover witness:
- worker joins and completes at least one task;
- worker starts/holds a second bounded task or checkpoint;
- create replacement ChatGPT conversation;
- bind it through the continuation protocol;
- prove stable worker ID and incremented epoch;
- prove targeted follow-up routes to replacement carrier;
- prove old carrier can no longer submit as the worker;
- prove no duplicate task execution occurred.
Non-goals
- automatic browser spawning
- OpenCLI requirement
- unlimited persistent conversations
- mutation grants
- coding-agent delegation policy
- automatic model selection
- account/quota bypass
Claim ceiling
DURABLE_WORKER_CONTINUITY_CANARY_PASS only after exact source + live rollover evidence passes.
Do not claim infinite context, exact token awareness, production autoscaling, or autonomous coding readiness.
Owner scope amendment — macOS only (2026-09-11)
依 Owner 最新裁決,本工作線相關功能設計、實作、交付與驗收 只處理 macOS。本裁決取代下文較早的跨平台/三平台要求。
Status
BLOCKED_BY #49
Purpose
Add durable logical worker continuity so a ChatGPT Swarm worker can survive ordinary conversation replacement/context rollover without changing worker identity or losing task/reconciliation lineage.
This is the continuity layer after the basic MCP peer Swarm has passed live canary. It is not required for V0.1.
Hard prerequisite
OpenCLI #50 is optional and not a hard prerequisite. Continuity must be defined at the Swarm/Core level so multiple runtime carriers can use it.
Core principle
workerId != conversationIdA worker is durable logical execution identity. A ChatGPT conversation is a replaceable carrier.
Expected model:
Objective
Implement explicit, auditable continuation/rollover semantics with one-time binding material and fail-closed recovery.
Required behavior
Worker continuity state
Represent at least:
Continuation ticket
If a ticket/token is used to bind a replacement conversation:
Rollover safety
carrier_lost,continuation_pending,continuation_bound, andreconcile_required.Context/checkpoint capsule
Define a bounded continuation capsule sufficient to resume worker role without copying full conversation history.
Expected contents may include:
Do not treat model-generated narrative as authoritative task state; canonical state remains in Swarm storage.
Context pressure
Do not claim exact ChatGPT token telemetry unless a supported host/runtime signal exists.
If context pressure is estimated:
Automatic context compaction/rollover may be added only after deterministic continuity semantics work without it.
Ultra reference boundary
The Ultra project may be used as a reference for:
Do not copy:
Required tests
Live acceptance
After deterministic tests, run a bounded worker rollover witness:
Non-goals
Claim ceiling
DURABLE_WORKER_CONTINUITY_CANARY_PASSonly after exact source + live rollover evidence passes.Do not claim infinite context, exact token awareness, production autoscaling, or autonomous coding readiness.