Skip to content

feat(continuity): add proactive Main ChatGPT checkpoint and conversation rollover #106

Description

@James3014

Parent

Child of #104 (DevSpace Ultra parity reconciliation).

Priority

P1 — required to prevent Main controller loss before hard context exhaustion.

Closed #101 / PR #102 now provides crash-safe continuation after a Main ChatGPT controller is already lost or unusable. That is a fallback path.

Ultra v0.5 demonstrates a distinct proactive behavior: before a user-facing Main conversation reaches an unsafe context boundary, preserve a bounded Goal/Plan/frontier capsule and continue on a fresh backend conversation/carrier while keeping one logical work stream.

This Issue owns that proactive Main path for macOS DevSpace.

Goal

Support:

Main conversation A
  -> context/continuity pressure becomes unsafe soon
  -> prepare bounded authoritative checkpoint
  -> wait for safe transport boundary
  -> bind fresh Main carrier/conversation B
  -> preserve logical work identity + Goal/frontier
  -> fence stale carrier where authority transfer occurs
  -> continue next real user turn / authorized continuation

The normal path should happen before the user is forced to manually abandon a full conversation.

If proactive rollover fails or A dies abruptly, #101 remains the fallback:

new Session -> coordination_continuation_latest -> reconcile -> takeover

Core principle

logical engineering goal != ChatGPT conversation ID

Do not reconstruct continuity by copying the full transcript.

Ultra behavior to preserve conceptually

The Ultra Main path keeps bounded:

  • Goal objective;
  • current Plan/frontier;
  • constraints;
  • current/next execution frontier;
  • compact progress/checkpoint state;
  • sanitized conversation descriptor / continuity identity;
  • enough state to make the next turn meaningful.

It explicitly excludes full raw mapping/transcript, raw tool history, hidden reasoning, credentials, and expired transport/session state.

DevSpace should adopt those principles while using current DevSpace authority/reconciliation semantics rather than Ultra's exact Windows/Classic implementation.

Relationship to #101

#101 is reactive crash takeover and is already merged.

This Issue is proactive rollover.

Required ordering:

proactive continuation possible
  -> use this Issue's path

proactive path impossible / carrier hard-fails
  -> #101 crash-safe recovery

Do not merge the two states; telemetry/receipts should say whether continuity was planned rollover or crash takeover.

Relationship to #51

#51 owns the same core principle for a Chat Swarm worker:

workerId != conversationId.

This Issue owns Main/controller continuity. Reuse common capsule/continuation primitives where safe, but do not make Main a Swarm worker merely to reuse code.

Required capability 1 — Main continuity record

Persist or project a bounded Main continuity object that references authoritative DevSpace state rather than duplicating it.

Equivalent fields:

continuityId
logicalGoalId / goalRef
authority/controller binding
repository/project identity when applicable
workspace/lease refs
base/current/Candidate revision refs
active agent/operation refs
objective
constraints[]
plan/frontier
checkpoint
verification/evidence refs[]
blockers[]
remainingGap
nextGate
sourceCarrier fingerprint
continuationEpoch
status
createdAt / updatedAt

The record must remain small and versioned.

Required capability 2 — pressure signal without false precision

Do not claim exact ChatGPT token usage unless a supported native signal exists.

Pressure may combine bounded conservative signals such as:

  • host/native exact usage when actually available;
  • DevSpace-observed task/prompt/result/context ledger;
  • bounded UI/transport estimate if a supported adapter exposes one.

Rules:

estimate != exact token truth
  • expose source/provenance of every signal;
  • use conservative thresholds;
  • prepare/checkpoint may happen early;
  • pressure alone does not authorize carrier transfer;
  • no fabricated get_context_remaining exactness.

Required capability 3 — bounded capsule

The carry-forward capsule must include only material continuity state.

Allowed categories:

  • current goal/user intent;
  • constraints;
  • settled decisions needed for next action;
  • exact repository/workspace/revision pointers;
  • current Candidate/evidence/test summary refs;
  • active/unresolved effects;
  • blockers;
  • remaining gap + next gate;
  • bounded recent semantic summary when needed.

Forbidden:

  • full transcript copy;
  • hidden chain-of-thought/reasoning;
  • raw tool arguments/output dumps unless separately stored as evidence refs;
  • credentials/tokens/cookies;
  • stale transport state;
  • unbounded conversation history.

Required capability 4 — safe rollover boundary

A Main rollover may only cross at a safe boundary.

Examples:

  • no consequential operation is ambiguity-pinned; or
  • exact active effect is known and transferable/reconcilable under its existing contract;
  • ownership/grant remains valid for the target carrier;
  • target carrier identity can be verified sufficiently for the selected continuation mechanism.

If an active effect is unknown:

pressure high
+ outcome unknown
=> checkpoint/reconciliation only
!= new duplicate action

Required capability 5 — target validation before authority moves

Creating/opening a target conversation is not enough.

Before logical Main authority moves, validate applicable evidence:

  • target carrier/session/conversation identity;
  • capsule schema/version/hash;
  • expected goal/continuity ID;
  • expected source epoch;
  • authority/lease/grant compatibility;
  • no duplicate active-owner state;
  • first target turn/carry marker observed where the adapter can prove it.

Failed/partial transfer leaves old authority current where still possible; otherwise falls back to #101's explicit recovery states.

Required tool/API surface

Exact names may vary, but provide bounded equivalents of:

continuity_main_status        # read-only
continuity_main_checkpoint    # prepare capsule/checkpoint only
continuity_main_prepare       # one target rollover attempt / ticket
continuity_main_bind          # bind verified fresh carrier
continuity_main_reconcile     # resolve partial/unknown rollover

If the ChatGPT host itself cannot expose enough carrier control to automate prepare/bind, still implement the durable checkpoint/continuity contract and expose the exact remaining host limitation. Do not claim automatic rollover without real carrier evidence.

Gate sequence

G0 — host/carrier capability matrix

Freshly determine what current ChatGPT + Dev MCP on macOS can actually observe/control for Main rollover:

  • conversation/session identity metadata;
  • ability to start/open a fresh carrier if any;
  • ability to bind/correlate first target turn;
  • whether OpenCLI/browser adapter is required;
  • native context usage signals if any;
  • what remains user-mediated.

G1 — durable Main checkpoint/capsule

Implement bounded versioned continuation state independent from one transport.

G2 — pressure estimation + safe-boundary state machine

Prove no false exact-token claim and no rollover during an unreconciled effect.

G3 — first real carrier binding

Use the smallest proven macOS carrier mechanism; keep transport separate from continuity truth.

G4 — proactive A -> B witness

Temporarily lower a configured test pressure threshold, drive the real production path, and prove:

  • A prepares before hard failure;
  • bounded capsule created;
  • B binds to same logical goal;
  • next user/authorized continuation can proceed;
  • stale/old carrier cannot create conflicting ownership;
  • no duplicate command/agent/task effect occurs.

Restore production threshold/config after the test.

G5 — crash fallback witness

Break the proactive path deliberately and prove #101 can still recover the latest authoritative checkpoint without transcript copy/paste.

Required hostile tests

  • estimated pressure is labeled estimate;
  • unavailable exact token signal stays unavailable;
  • oversized capsule rejected/fails closed;
  • empty goal/frontier cannot masquerade as valid continuation;
  • capsule corruption/version mismatch rejected;
  • old source epoch/ticket replay rejected;
  • target-carrier mismatch rejected;
  • dual-active carrier/owner ambiguity fails closed;
  • unresolved active effect blocks duplicate-capable continuation;
  • partial target creation does not silently move authority;
  • Dev MCP restart preserves prepared/checkpoint state;
  • exact replay is idempotent or returns existing continuation outcome;
  • P0: Crash-safe ChatGPT session continuation after context rollover #101 latest/takeover fallback remains green.

Non-goals

  • no infinite-context claim;
  • no exact context-token claim without native evidence;
  • no full transcript mirroring;
  • no hidden reasoning transfer;
  • no credential/cookie/session-secret copying;
  • no automatic browser creation if the current platform/carrier cannot safely support it;
  • no Nexus Planner/Workforce/Completion authority changes;
  • no automatic task retry merely because the conversation changed.

Exact next gate

DEVSPACE_MAIN_CONTINUITY_G0_MACOS_HOST_CAPABILITY_MATRIX

Determine the real macOS ChatGPT carrier/identity/context-pressure surfaces before committing to an automated transport implementation.

Claim ceiling

MAIN_CONTINUITY_REQUIREMENT_RECORDED — PROACTIVE_ROLLOVER_NOT_YET_PROVEN

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions