Skip to content

Slice: switch an existing Memory branch in a live Orchestrator Session #261

Closed

Description

@DoodleBears

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

Activity

  1. added this to the v1.1 milestone on Sep 24, 2026
  2. added
    ready-for-agentFully specified, ready for an AFK agent
    area:fullstackEnd-to-end Host and Client implementation
    feature:memoryPersonaBot Memory Repository and Memory Service
    scope:tracerHuman-testable implementation slice
    on Sep 24, 2026
  3. modified the milestones: v1.1, v1.0 on Sep 24, 2026
  4. DoodleBears commented on Sep 25, 2026

    @DoodleBears
    ContributorAuthor

    Agent work claim

  5. added
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Sep 25, 2026
  6. DoodleBears commented on Sep 25, 2026

    @DoodleBears
    ContributorAuthor

    Agent work claim update

    • Task: codex/local/01a0cde3-1621-7382-96a1-852758cedfc0
    • Active branch: codex/261-memory-branch-switch-wsl
    • Reason: the real Git/SQLite integration tests require the repository's supported native WSL toolchain. The earlier Windows checkout remains a local test draft; the WSL branch owns the implementation and future PR.
  7. DoodleBears commented on Sep 25, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome

  8. removed
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Sep 25, 2026
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

    area:fullstackEnd-to-end Host and Client implementationfeature:memoryPersonaBot Memory Repository and Memory Serviceready-for-agentFully specified, ready for an AFK agentscope:tracerHuman-testable implementation slice

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions