You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Maka Desktop supports temporary Side Conversations, but the CLI/TUI does not expose the equivalent workflow.
The TUI can switch arbitrary Sessions through /session, including detaching from a running Turn, but it has no parent/side pairing, /side entry point, retained toggle, side-specific close behavior, or background parent status.
Users cannot ask a temporary contextual question while the main Turn continues and then switch directly between the two conversations.
Desired behavior
/side opens a temporary side conversation from the latest settled Turn.
/side <prompt> opens the side conversation and submits the prompt.
The side Session inherits the parent model, thinking level, permission mode, collaboration mode, orchestration mode, cwd, and conversation prefix at creation.
Parent and side Session configuration remain independent after creation.
Parent and side Turns can continue independently.
Only one TUI side conversation is retained at a time.
Ctrl+/ switches between the side conversation and its parent without closing either.
Ctrl+C in an empty side Composer closes the side conversation and returns to the parent. The key must never fall through to the global TUI exit path after a side-close attempt.
Leaving the parent/side pair for an unrelated Session closes the temporary side conversation.
Side Sessions remain hidden from ordinary Session discovery.
Temporary-session cleanup remains recoverable after interruption instead of relying on renderer/TUI best effort.
Status line
Side-conversation status-line copy is always English.
Base state:
Side from main thread · Ctrl+/ to switch · Ctrl+C to close
Parent state variants:
Side from main thread · main needs input · Ctrl+/ to switch · Ctrl+C to close
Side from main thread · main needs approval · Ctrl+/ to switch · Ctrl+C to close
Side from main thread · main failed · Ctrl+/ to switch · Ctrl+C to close
Side from main thread · main interrupted · Ctrl+/ to switch · Ctrl+C to close
Side from main thread · main closed · Ctrl+/ to switch · Ctrl+C to close
Side from main thread · main finished · Ctrl+/ to switch · Ctrl+C to close
When the parent is visible and a retained side exists:
Ctrl+/ for side
A new parent Turn clears the previous terminal/actionable parent status.
Architecture constraints
Runtime Host remains the sole authority for Session and Turn identity, conversation copying, execution, permissions, interactions, interruption, and removal.
Reuse existing conversationCopy.intent, parentSessionId, branchOfTurnId, and mode:side_conversation; do not introduce another durable SidePair identity.
TUI state is only an ephemeral navigation projection.
Parent history is reference-only inside the side conversation and remains hidden from the side transcript.
The workspace is shared live; the feature does not imply filesystem isolation.
Parent model or permission changes do not propagate to an already-created side Session.
Runtime Host policy and credential revocation still constrain every Session.
create the side copy from the latest settled parent Turn;
expose /side [prompt];
attach and render the side Session through the existing TUI Session path;
close, interrupt if necessary, remove, and return to the parent;
preserve recoverable cleanup semantics;
keep side Sessions out of ordinary Session discovery;
preserve parent draft and running Turn behavior.
This PR may consolidate the existing temporary-session cleanup seam if required, but must not add a speculative abstraction with only one real consumer.
PR 2 — Retained toggle and parent status
retain the side while switching to its parent;
add Ctrl+/ toggle, including terminal-compatible key normalization;
observe background parent lifecycle and interaction state;
A third PR is allowed only if the first-principles review proves that cleanup ownership is an independently valuable migration whose separation produces a strict net reduction.
Required review gates before every commit
First-principles review
What problem does this PR solve?
How does this PR solve it?
Is the problem defined correctly?
Do the problem definition and solution follow first principles?
Do they follow Occam's razor?
Adversarial and simplification review
Are all changes in this PR the best solution to the stated problem?
Does the result follow first principles and Occam's razor?
Can low-quality tests be deleted?
Can code or state be deleted?
Can the implementation be refactored into a smaller and deeper module?
Does simplify-audit identify any duplicate authority, representation, path, contract, or state?
Has every retained abstraction passed the deletion test?
The review findings and resulting deletions or retained decisions must be recorded before committing.
Non-goals
Multiple simultaneous TUI side conversations.
Persisting or reopening a side conversation after a new TUI process starts.
Synchronizing model or permission changes between parent and side.
Promoting a side conversation to a durable ordinary fork.
Problem
Maka Desktop supports temporary Side Conversations, but the CLI/TUI does not expose the equivalent workflow.
The TUI can switch arbitrary Sessions through
/session, including detaching from a running Turn, but it has no parent/side pairing,/sideentry point, retained toggle, side-specific close behavior, or background parent status.Users cannot ask a temporary contextual question while the main Turn continues and then switch directly between the two conversations.
Desired behavior
/sideopens a temporary side conversation from the latest settled Turn./side <prompt>opens the side conversation and submits the prompt.Ctrl+/switches between the side conversation and its parent without closing either.Ctrl+Cin an empty side Composer closes the side conversation and returns to the parent. The key must never fall through to the global TUI exit path after a side-close attempt.Status line
Side-conversation status-line copy is always English.
Base state:
Side from main thread · Ctrl+/ to switch · Ctrl+C to closeParent state variants:
Side from main thread · main needs input · Ctrl+/ to switch · Ctrl+C to closeSide from main thread · main needs approval · Ctrl+/ to switch · Ctrl+C to closeSide from main thread · main failed · Ctrl+/ to switch · Ctrl+C to closeSide from main thread · main interrupted · Ctrl+/ to switch · Ctrl+C to closeSide from main thread · main closed · Ctrl+/ to switch · Ctrl+C to closeSide from main thread · main finished · Ctrl+/ to switch · Ctrl+C to closeWhen the parent is visible and a retained side exists:
Ctrl+/ for sideA new parent Turn clears the previous terminal/actionable parent status.
Architecture constraints
conversationCopy.intent,parentSessionId,branchOfTurnId, andmode:side_conversation; do not introduce another durable SidePair identity.Delivery slices
PR 1 — Host-backed TUI side lifecycle
Deliver one usable vertical slice:
/side [prompt];This PR may consolidate the existing temporary-session cleanup seam if required, but must not add a speculative abstraction with only one real consumer.
PR 2 — Retained toggle and parent status
Ctrl+/toggle, including terminal-compatible key normalization;A third PR is allowed only if the first-principles review proves that cleanup ownership is an independently valuable migration whose separation produces a strict net reduction.
Required review gates before every commit
First-principles review
Adversarial and simplification review
simplify-auditidentify any duplicate authority, representation, path, contract, or state?The review findings and resulting deletions or retained decisions must be recorded before committing.
Non-goals