Skip to content

Agent Runtime: Session fork feature is stubbed but not fully implemented #136

Description

@wangtsiao

Describe the bug

Session forking has a stub/placeholder implementation but is not yet functional.

Current state

crates/core/src/fork.rs contains the fork admission logic and inherited segment construction, but several fields are placeholders:

  • source_parent_session_id: SessionId::new() — uses a new random ID instead of the actual parent
  • source_range: SegmentSourceRange { start_offset: 0, end_offset: 0 } — always zero
  • segment_hash: String::new() — empty hash

The fork is not exposed via any Desktop or TUI UI, and the full replay-with-independent-segments flow described in the module's doc comment is not wired up.

Expected behavior

  • Users can fork a session from the Desktop app (at a specific turn)
  • Forked sessions retain inherited history correctly
  • Independent segment loading works for forked sessions

Related component

  • crates/core/src/fork.rs
  • crates/protocol/src/acp_session.rs

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions