Skip to content

Support conversation branches from edited user messages #4

Description

@celeroncoder

Problem

Sessions in Alluka are linear. If a user needs to correct an earlier instruction, retry a decision with different constraints, or explore an alternative direction, the available choices are to continue with contaminated context or create a separate session manually. The original path and the revised path cannot coexist within one task.

This is a poor fit for agent work, where a single wrong assumption can cause many later tool calls and where preserving an auditable prior path matters.

Feature

Allow a user to edit a prior user message and create a conversation branch. A branch preserves the original continuation and creates a separate continuation from the edited instruction.

Users can navigate sibling branches, identify the currently active continuation, and keep each branch's messages and run history intact. Branching must be represented as session data, not only as a temporary UI state.

Expected behavior

  • Editing a user message never deletes the original message or its continuation.
  • The visible transcript is the active path through the conversation tree.
  • Branch navigation is available at messages with multiple continuations.
  • Starting a branch while a run is active has an explicit safe outcome; the system never leaves two conflicting continuations writing to the same active task state.
  • Provider-specific continuation state is represented accurately after a branch changes prior context.
  • Existing linear sessions remain readable and become a single default path without data loss.

Why this matters

Branching supports correction, comparison, and recovery inside one durable agent task. It also avoids encouraging users to duplicate agents merely to get a clean or alternative context.

Reference

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions