Repository navigation
feat: continue and fork sessions across agents, with fallback account routes - #684
Conversation
Checkpoint via cy-loop-tasks (iteration 2, phase B mode=tasks). Co-Authored-By: Codex <[email protected]>
Checkpoint via cy-loop-tasks (iteration 3, phase B mode=tasks). Co-Authored-By: Codex <[email protected]>
Prerequisite fallback-account task_01 for session-continue-fork task_03 (program D8). Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Prerequisite fallback-account task_02 for session-continue-fork task_03 (program D8). Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Checkpoint via cy-loop-tasks (iteration 4, phase B mode=tasks). Co-Authored-By: Codex <[email protected]>
… event reconcile Follow-up to session-continue-fork task_03: IT-021, UT-075, UT-078, UT-084, UT-086, IT-012, IT-016, UT-031. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Checkpoint via cy-loop-tasks (session-continue-fork task_04). Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Checkpoint via cy-loop-tasks (iteration 6, phase B mode=tasks). Co-Authored-By: Codex <[email protected]>
Checkpoint via cy-loop-tasks (iteration 7, phase B mode=tasks). Co-Authored-By: Codex <[email protected]>
… host Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Native fork load fallback, route command env prefix, handoff stream text, derive retry origin, stopped-source settlement, ACP session/close timeout, agent resource fallback chain, workspace derive budget, per-open idempotency key, derived child empty state, message actions during remote turns, menu width. Scenario verdicts, bug records, and QA reports for task_08. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Pass SessionMeta, derive snapshots and resolved roles by pointer; split long functions; reuse existing constants; apply formatter. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Committed derive child survives post-commit failures; clone fs/terminal callbacks isolated; no raw route command in errors; native fork revalidates the snapshot under the prompt slot; retained pre-rewind cuts; fork account inheritance across live model changes; full runtime reset on primary resume; committed child id on post-commit derive errors; non-repairing derive preflight and deleted-source replay; derive error codes; TOON fallback chain; status lineage; web fallback-chain preservation, explicit speed, fresh preview gating, provider-notice dedupe, fresh-session empty state; fallback-account IT-007/IT-008 legs. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
…mount Round 1 QA re-walk repairs and scenario verdicts. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Committed child id on every post-commit derive error; CLI derive resolves the source through non-repairing owner and preview reads; web dialogs keep the committed child across edits and retries; promote diagnostic codes on post-commit derive errors; docs and act-warning fixes. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedToo many files! This PR contains 408 files, which is 108 over the limit of 300. To get a review, reduce the PR to 300 files or fewer by splitting it into smaller PRs or changing its base branch. Usage-priced reviews support at most 300 files. ⚙️ Run configurationConfiguration used: Repository: compozy/compozy/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (83)
📒 Files selected for processing (408)
You can disable this status message by setting the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
React Doctor found no new issues. 🎉 Reviewed by React Doctor for commit |
…ting Daemon tool-approval and workspace-consent prompts carry the Compozy session id; resolve them directly instead of through the agent-facing bound-session check. Also satisfy React Doctor (no try/finally in hooks, extract complex branches) and format site docs. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
|
| // still returns its recorded outcome once the source was deleted. The child inherits | ||
| // the source's profile inside the manager. | ||
| func (h *BaseHandlers) deriveRoute(c *gin.Context) (workspaceScope, string, SessionDeriveManager, bool) { | ||
| scope, ok := h.resolveWorkspaceScope(c) |
There was a problem hiding this comment.
Quando alguém conhece o ID de uma sessão de outro perfil no mesmo workspace, Continue, Fork e Preview verificam apenas o workspace. Diferentemente da leitura normal de sessões, essas rotas não verificam o perfil da origem. Assim, o chamador pode obter a prévia ou criar uma sessão filha com o histórico do outro perfil. Verifique o perfil autorizado antes de ler a origem ou reutilizar um recibo de derivação.
How this was verified: Continue, Fork e Preview chegam à leitura da origem com apenas o ID do workspace, sem executar a verificação de perfil presente na leitura normal de sessões.
Knowledge Base Used:
Continue/Fork errors after the child is committed now carry the diagnostic's title and message (or a plain sentence) instead of the wrapped chain with agent stderr; the full chain stays in logs. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
What & why
When a session hits a provider limit or a signed-out account, the work is stuck with that agent. This PR lets a person or an agent take a conversation somewhere else without losing it:
session/forkwhen the agent supports it and the source is idle. Otherwise it replays the carried context.next_action: handoff).lineage_kind: recovery.It also ships the hard prerequisite from the same program (decision D8), fallback account tasks 01–02:
command, and an agent can declare afallback_chain;Specs:
.compozy/tasks/session-continue-fork/(tasks 01–08) and.compozy/tasks/fallback-account/(tasks 01–02). Design reference:docs/design/opendesign/session-continue-fork/. The web builds on@compozy/uiprimitives and adds no new primitive.Screenshots
Menus
Continue with another agent
Fork
Lineage
Recovery and handoff
Inspector
How you verified it
make gatepasses on the head: codegen-check, go-lint, go-test (-race), sdk-go-test, js-sdk-typescript, js-web.opencode,claudeandcodexadapters. Native fork works on OpenCode; Codex falls back to the carried context while the source process is alive.handoff, and account fallback chains.00122,meta.jsonfiles not rewritten, rewind rules intact.docs/qa/reports/2026-09-2{8,9}-session-continue-fork-*.md.session/closeinspection timeout and a lost rewind draft.web/e2e/__tests__/session-derive.spec.ts), and daemon integration E2E for the continue/fork CLI and the fallback chains.Impact
compozy session continue|fork;session new --lineage-kind;session statusgains Origin/Derivation lines;agent create|update --fallback-route/--clear-fallback-chain;roles showgains a command column.continueSession,forkSession,previewSessionDerive. Additive fields:lineage.kind,origin_*,derivation,runtime.acp_caps.supports_fork_session|supports_resume_session,fallback_chain[].command[_fingerprint],child_session_idon post-commit derive errors, andprovider_error.next_actionhandoff/use_fallback.compozy__session_continue,compozy__session_fork;compozy__agent_createacceptsfallback_chain.session.derived,session.fallback.used;role.fallback.usedgainsprovider_command_fingerprint.[session.derive] max_replay_bytes/max_message_bytes;RoleFallback.command; agentfallback_chain.00122addssessions.lineage_kind,origin_*and asession_derivationsreceipt table, with a lossless backfill. Oldermeta.jsonfiles upgrade at read time without being rewritten.packages/site(sessions lifecycle/events, CLI, API, config, providers), in the official skill references, and inCOPY.mdand the glossary.Defaults I took that you may want to revisit are listed in
.compozy/tasks/session-continue-fork/memory/MEMORY.md§Open Questions. Known pre-existing issue left open:docs/qa/bugs/BUG-20260929-rewind-offered-after-rewind.md.make gatepasses locally; this PR is delivered only after its required CI checks are green🤖 Generated with Claude Code