Skip to content

Persist and resume secondary agent tabs after app restart #23

@eWizardII

Description

@eWizardII

Problem

Termic currently appears to persist and auto-resume only the workspace's primary agent tab. Secondary agent tabs opened with the + button are relaunched as fresh sessions after an app restart, or are not restored as durable agent sessions at all.

This breaks a common multi-agent workflow: one worktree/workspace with Claude and Codex running side by side, where Claude may be implementing and Codex may be reviewing/monitoring. After Termic restarts, the primary workspace agent can resume, but the secondary agent tab loses its exact conversation/session history unless the user manually hunts down and resumes it.

Current behavior

  • Workspace main agent has durable resume behavior.
  • Secondary agent tabs opened inside the same workspace are effectively ephemeral.
  • Recent changelog language says resume args override applies only to the main agent tab, and + tabs always start fresh.
  • Local workspace state appears to have a composition field, but the secondary agent tabs are not persisted there in a way that relaunches/resumes them.

Expected behavior

Secondary agent tabs should be optionally durable peers of the primary tab.

On app restart, Termic should be able to restore a workspace like:

Workspace: feature/foo
  tab 1: claude, resumed to prior Claude session
  tab 2: codex, resumed to prior Codex session
  tab 3: shell/run tab if appropriate

At minimum, agent tabs should persist enough metadata to relaunch with the correct resume command:

  • agent id / command
  • tab title
  • cwd/workspace path
  • launch args / yolo state where applicable
  • resume args or exact session id if the CLI supports it
  • whether the tab is durable or intentionally scratch/ephemeral

Why this matters

The current behavior makes the UI feel like it supports multiple agents per workspace, but the persistence model effectively forces "one durable agent per workspace row." For real agent workflows, that means users must create separate workspace rows just to keep Claude and Codex sessions resumable, even when both are working on the same worktree and should be viewed together.

That makes side-by-side review/implementation workflows fragile and surprising after restart.

Possible UX

A small distinction would work:

  • + Agent tab defaults to durable and is restored/resumed on app restart.
  • + Scratch terminal remains ephemeral.
  • Or add a per-tab toggle: Resume this tab after restart.

The main agent can still be special, but secondary agent tabs should not always be fresh unless explicitly opened as scratch tabs.

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