Skip to content

fix: clear stale skills before syncing globals on container spawn#1320

Open
akasha-scheuermann wants to merge 2 commits intoqwibitai:mainfrom
akasha-scheuermann:fix/clear-stale-skills
Open

fix: clear stale skills before syncing globals on container spawn#1320
akasha-scheuermann wants to merge 2 commits intoqwibitai:mainfrom
akasha-scheuermann:fix/clear-stale-skills

Conversation

@akasha-scheuermann
Copy link
Copy Markdown
Contributor

Type of Change

  • Fix - bug fix or security fix to source code

Description

When a skill is removed from container/skills/, the old copy persists in each group's .claude/skills/ indefinitely. Each container spawn copies new skills on top but never removes ones that no longer exist.

Fix: wipe the skills destination directory before re-copying globals, so deleted skills are properly cleaned up.

Changes:

  • Add rmSync(skillsDst) before the global skills copy loop in buildVolumeMounts

When a skill is removed from container/skills/, the old copy persists
in each group's .claude/skills/ indefinitely. Wipe the destination
directory before re-copying so deleted skills are properly cleaned up.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When a container crashes after messages are piped to it, those messages
are lost — the cursor has already advanced past them. This adds a
rollback cursor that persists the pre-pipe cursor position so messages
can be re-fetched on crash recovery.

- Save cursor_before_pipe in router_state before advancing
- Clear rollback cursor on successful output delivery
- Roll back cursor on crash recovery (only if container is dead)
- Clear all rollback cursors on clean shutdown (containers detached)
- Add GroupQueue.isActive() to check container liveness during recovery

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant