Skip to content

feat(desktop): preserve Side Conversations across linked-session navigation #4494

Closed as not planned

Description

@1625567290

Problem

Desktop Side Conversations are removed whenever navigation changes the active Session away from their source Session. This also happens when the destination is a linked child/Sub Agent Session belonging to the same unit of work.

For example:

  1. Open a Side Conversation from a parent Session.
  2. Keep a draft or start a Turn in the Side Conversation.
  3. Open one of the parent Session's linked child/Sub Agent Sessions.
  4. Return to the parent Session.

The Side Conversation has been closed and its temporary fork removed. A running answer, draft, and conversation history can no longer be resumed from the parent.

This is consistent with the current temporary lifecycle rather than an implementation regression: the Desktop controller removes panels whose sourceSessionId differs from the active Session, and the Side Conversation documentation specifies cleanup when the owning Session changes. However, a linked child is still part of the same work, so treating that navigation like switching to an unrelated Session makes inspection of delegated work unnecessarily destructive.

Desired outcome

Preserve a source Session's Side Conversations while the user navigates between that source and its linked descendant Sessions.

  • The Side Conversation remains owned by its original source Session; it is not reparented to the child.
  • Its draft, transcript, and running Turn remain intact while a linked child is open.
  • Returning to the source restores the same Side Conversation tabs.
  • Explicitly closing the tab keeps the current cleanup behavior.
  • Navigating to an unrelated Session may keep the current temporary cleanup behavior.
  • Removing the source Session still cleans up its temporary Side Conversations.
  • This does not make Side Conversations durable across restart, widen their permissions, synchronize their model with later parent changes, or promote them into ordinary Sessions.

This should be tracked as a focused lifecycle slice under #4331.

Alternatives or workarounds

  • Return to the parent before opening or continuing a Side Conversation. This prevents simultaneous inspection of linked child work.
  • Promote the Side Conversation to a durable ordinary Session. That is a broader product decision and is unnecessary for navigation within one linked Session family.
  • Retain every Side Conversation globally. That would change the temporary lifecycle for unrelated work and is broader than needed.
  • Reparent the Side Conversation to the active child. That would change lineage and cleanup ownership and should be avoided.

Activity

  1. testikun commented on Sep 3, 2026

    @testikun
    Contributor

    This was generated by AI during triage.

    I’d like to take this focused Desktop lifecycle slice.

    Scope:

    • preserve a Side Conversation while navigating between its source Session and linked child/Sub Agent Sessions;
    • keep the source ownership, draft, transcript, and running Turn intact, then restore the same tabs on return;
    • retain cleanup for explicit close, source removal, and unrelated Sessions;
    • leave restart durability, permissions, model inheritance, and promotion to ordinary Sessions unchanged.

    I’ll first verify the controller cleanup path, then add a navigation round-trip regression test before changing behavior.

    中文摘要: 认领关联父子 Session 间导航时的 Side Conversation 生命周期修复,保留草稿、历史和运行状态,不扩大为持久化会话。

  2. added 2 commits that reference this issue on Sep 3, 2026
    2829ccb
    4df1c2d
  3. added theissue type on Sep 8, 2026
  4. Astro-Han commented on Sep 17, 2026

    @Astro-Han
    Contributor

    Closing this as an issue for now: the direction has not been confirmed by a maintainer, and the tracker only keeps proposals that already have an agreed scope. Please continue it in GitHub Discussions (https://github.com/apache/maka/discussions); once the shape and acceptance criteria are settled there, open an issue with that scope and it will be picked up.

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

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions