Feature: Hot-reload harness (version/plugins) for running background sessions without losing conversation history
Summary
When a background agent session is running, there is currently no way to upgrade the Claude Code CLI version or update installed plugins/skills mid-session. The only option is to stop the session (losing conversation history) and restart with the updated harness.
Desired behaviour
Allow a running background session to reload its harness — i.e. pick up a new Claude Code CLI version and/or updated plugin/skill definitions — while preserving the existing conversation history and context.
This could look like:
- A
/reloador/update-harnessslash command that restarts the underlying process but rehydrates conversation history from the session transcript before resuming. - A signal (e.g. SIGUSR1) sent to the background process that triggers a graceful reload.
- A
--reloadflag on theclaudeCLI that, given an existing session/job ID, upgrades the harness and resumes from the saved transcript.
Motivation
Long-running background agents (scheduled routines, multi-step automation jobs) can run for hours or days. During that window:
- Security or bug-fix releases of Claude Code may be published that users want to apply immediately.
- Skills/plugins may be updated with new capabilities or fixes.
- Right now the only recourse is to kill the session, update, and start over — losing all accumulated conversation context.
Suggested approach
- Session transcripts are already persisted to disk (
.claude/jobs/<id>/). A reload could: stop the current process, upgrade the binary/plugins, start a fresh process, and feed the existing transcript as context before accepting new input. - Alternatively, a "checkpoint + resume" model: write a checkpoint, upgrade, resume from checkpoint — similar to the existing
resumeFromRunIdin the Workflow tool.
Workaround today
Update the CLI/plugins and wait for the next invocation (only practical for scheduled routines with a short cadence; not helpful for interactive long-running agents).
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗