Repository navigation
Closed
Labels
area:fullstackEnd-to-end Host and Client implementationEnd-to-end Host and Client implementationfeature:memoryPersonaBot Memory Repository and Memory ServicePersonaBot Memory Repository and Memory Serviceready-for-agentFully specified, ready for an AFK agentFully specified, ready for an AFK agentscope:tracerHuman-testable implementation sliceHuman-testable implementation slice
Milestone
Description
Parent
Part of #259. Related: #115 and #260.
What to build
From the PersonaBot DM's Memory graph, a Human explicitly selects an existing local branch. The Orchestrator immediately attempts a native Git switch in its Memory Repository. On success, the current branch indicator updates and the same Orchestrator Session reads the newly checked-out files on its next native file read; a file absent from the target branch is normally absent. The Session is not restarted.
The Memory Service accepts valid work on the selected branch without treating an intentional branch switch as divergence from one global linear head. Raw Git commits remain distinct from accepted Memory Commits, with their actor/cause and validation boundary intact.
Acceptance criteria
- A Human can request an existing branch from the Channel UI; the Orchestrator owns the operation and reports started, succeeded, or failed status in the Channel. The Client does not run Git.
- A clean switch changes the repository's actual branch and working-tree files immediately; current branch/HEAD updates in the graph and remains correct after Host restart.
- The same Orchestrator Session id performs a subsequent native file read that returns target-branch content, including an ordinary missing-file result where appropriate. Previously assembled Persona context is not claimed to change retroactively.
- Branch-aware Memory validation/reconciliation preserves accepted-commit provenance and allows later accepted work on the selected branch without silently accepting unrelated raw commits.
- If Git refuses a switch because it would overwrite work, edits remain intact and the Channel reports the conflict without force-discard; automated coordination of such conflicts is delivered by the later conflict slice.
- Focused real-repository integration tests and a live LLM-backed DSH Human QA URL verify the clean switch and same-Session read. Save screenshots and stop for Human QA.
Blocked by
- Slice: inspect native Memory Git graph and full-body diff #260 — the graph and Channel presentation path used to select and observe the branch.
Metadata
Metadata
Assignees
Labels
area:fullstackEnd-to-end Host and Client implementationEnd-to-end Host and Client implementationfeature:memoryPersonaBot Memory Repository and Memory ServicePersonaBot Memory Repository and Memory Serviceready-for-agentFully specified, ready for an AFK agentFully specified, ready for an AFK agentscope:tracerHuman-testable implementation sliceHuman-testable implementation slice
Activity
DoodleBears commentedon Sep 25, 2026
Agent work claim
codex/local/01a0cde3-1621-7382-96a1-852758cedfc0(not a DSH Session)codex/261-memory-branch-switchDoodleBears commentedon Sep 25, 2026
Agent work claim update
codex/local/01a0cde3-1621-7382-96a1-852758cedfc0codex/261-memory-branch-switch-wslfeat(memory): switch accepted branches in one Orchestrator Session
feat(memory): switch accepted branches in one Orchestrator Session (#275
DoodleBears commentedon Sep 25, 2026
Agent work outcome