Skip to content

test: Add daemon-side tests for enhanced repair command (PR #333)#350

Closed
whitmo wants to merge 22 commits intodlorenc:mainfrom
whitmo:work/clever-bear
Closed

test: Add daemon-side tests for enhanced repair command (PR #333)#350
whitmo wants to merge 22 commits intodlorenc:mainfrom
whitmo:work/clever-bear

Conversation

@whitmo
Copy link
Copy Markdown

@whitmo whitmo commented Mar 1, 2026

Summary

Test Coverage Added

Category Tests What's Tested
Response fields 1 All 4 response fields present
No-op cases 3 No tmux session, empty state, multiple repos
Idempotency 2 Double-repair, existing agents preserved
ensureCoreAgents 4 No session, bad repo, skip existing, fork mode
ensureDefaultWorkspace 3 No session, already exists, bad repo

Findings

  1. spawnCoreAgent in daemon delegates to handleRestartAgent, which requires the agent already in state. For newly-missing agents, this path may fail. The CLI uses createCoreAgent which handles creation from scratch. Worth investigating.
  2. Hardcoded workspace name "my-default-2" in both paths.

Test plan

  • go test ./internal/daemon/ -v -count=1 - all 14 new tests pass
  • Full daemon test suite passes
  • Findings written to /tmp/swarm-tests-333.md

🤖 Generated with Claude Code

aronchick and others added 22 commits January 24, 2026 01:12
Fixes branch naming inconsistency by standardizing on 'multiclaude/' prefix. Maintains backward compatibility for cleanup of legacy 'work/' branches.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
The comment at internal/cli/cli.go:5128 referenced docs/EXTENSION_DOCUMENTATION_SUMMARY.md which doesn't exist. Updated the comment to reference the actual existing extension docs (docs/extending/SOCKET_API.md and docs/extending/STATE_FILE_INTEGRATION.md) that need to be kept in sync when CLI commands affecting extension surfaces change.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…space

Improve the repair command to be more comprehensive by ensuring core
agents and a default workspace exist after cleanup. This enhancement
aligns with ROADMAP.md P1 "Agent restart" by making repair more robust
and reducing the need for manual intervention.

Changes:
- CLI: Add ensureCoreAgents() and ensureDefaultWorkspace() helpers
- CLI: Update localRepair() to recreate missing core agents
- CLI: Create default workspace "my-default-2" if none exist
- Daemon: Add ensureCoreAgents() and ensureDefaultWorkspace() methods
- Daemon: Update handleRepairState() to recreate missing agents
- Both: Improve output to show what was removed and what was created
- Tests: Add comprehensive tests for all scenarios

Key Features:
1. Recreates missing supervisor agent if absent
2. Recreates missing merge-queue (non-fork) or pr-shepherd (fork)
3. Creates default workspace if no workspaces exist
4. Does not duplicate existing agents/workspaces
5. Provides detailed output showing:
   - Removed: dead agents
   - Cleaned: orphaned resources
   - Created: core agents and workspaces

Test Coverage:
- TestRepairEnsuringCoreAgents: Verifies core agents are created
- TestRepairEnsuringPRShepherdInForkMode: Fork mode verification
- TestRepairDoesNotDuplicateAgents: Prevents duplicates

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Restructures the CLI help output to be more user-friendly:

- Add QUICK START section showing the 4 most common commands
- Group commands into 6 categories: DAEMON, REPOSITORIES, AGENTS,
  COMMUNICATION, MAINTENANCE, META
- Hide 7 redundant aliases from help (still functional, just not displayed)
- Add Hidden and Category fields to Command struct for flexibility

The help output now shows 21 focused commands instead of 28 scattered
entries, making it much easier for new users to understand what to do.

Also adds CLI_RESTRUCTURE_PROPOSAL.md documenting the analysis and
future restructuring options for v2.0.

Aligns with ROADMAP P2 "Better onboarding".

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add LongDescription field to Command struct for detailed help text
- Add comprehensive help for 'repo hibernate' explaining token consumption
- Show specific active agents in 'multiclaude status' (supervisor, merge-queue, etc.)
  instead of just 'X core, Y workers'
- Add token consumption warning when agents are active
- Point users to 'hibernate --all' to stop token usage

This makes hibernate more discoverable and helps users understand that
running agents continuously consume API tokens.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When run inside an agent worktree, `multiclaude refresh` now syncs just
that worktree directly instead of triggering a global refresh via daemon.
This gives agents immediate feedback and control over their sync process.

Changes:
- Add context detection: automatically identifies agent worktree from cwd
- Add direct refresh: syncs single worktree using worktree.RefreshWorktree()
- Add --all flag: explicitly triggers global refresh (previous behavior)
- Update /refresh slash command to recommend CLI method
- Provide detailed output: fetch status, rebase info, conflict handling

Behavior:
- Inside agent worktree: refreshes that worktree directly with feedback
- Outside agent context: triggers daemon-based global refresh
- With --all flag: always triggers daemon-based global refresh

P0 Roadmap item: Worktree sync

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Workers now receive guidance to use /sc:index-repo for large codebase
exploration, achieving 94% token reduction (58K → 3K tokens). This
improves memory usage and search efficiency for complex tasks.

The guidance is embedded in the worker template and will be included
in system prompts for all new worker agents.

Task: If a skill is provided such as QMD that enables better memory
and tokens and searching, make sure that Multiclaude uses it.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add 14 tests covering daemon handleRepairState, ensureCoreAgents, and
ensureDefaultWorkspace. Tests verify response fields, graceful no-ops
when tmux session is missing, idempotency, fork mode handling, and
error cases for nonexistent repos.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@whitmo whitmo closed this Mar 1, 2026
@whitmo whitmo deleted the work/clever-bear branch March 1, 2026 22:52
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.

2 participants