Skip to content

Smoke test: pr-triage-b2 combined branch (8/9 PASS)#354

Closed
whitmo wants to merge 34 commits intodlorenc:mainfrom
whitmo:work/wise-tiger
Closed

Smoke test: pr-triage-b2 combined branch (8/9 PASS)#354
whitmo wants to merge 34 commits intodlorenc:mainfrom
whitmo:work/wise-tiger

Conversation

@whitmo
Copy link
Copy Markdown

@whitmo whitmo commented Mar 1, 2026

Summary

  • Full smoke test of the combined pr-triage-b2 branch (all 12 upstream PRs + fixes)
  • 8 of 9 checks PASS, 1 FAIL
  • Build clean, all 19 test packages pass
  • Full results in docs/smoketest-pr-triage-b2.md

Test Results

# Check Result
1 go build PASS
2 go test ./internal/... (19 packages) PASS
3 --help --json valid JSON PASS
4 Categorized help + JSON hint PASS
5 Structured error with suggestion (repo use nonexistent) FAIL
6 Status: agent types + token warning PASS
7 Repair reports on core agents PASS
8 Refresh context-aware docs PASS
9 JSON includes all commands (26 total) PASS

Issue Found

Structured errors not wired through daemon (Check 5):
errors.RepoNotFound() constructor exists with suggestion field but handleSetCurrentRepo in daemon.go:1597 passes through raw state error. The constructors from PR #340 work but need to be adopted in daemon handlers.

Fix: Replace socket.ErrorResponse("%s", err.Error()) with structured error in handleSetCurrentRepo, or teach the socket protocol to carry suggestion fields.

PRs Verified

#289, #308, #333, #334, #335, #336, #337, #338, #339, #340, #341, #342

Recommendation

Safe to merge pr-triage-b2 to main. The one failure is a minor integration gap (constructors exist, just not wired), trackable as a follow-up.

Test plan

  • Build from pr-triage-b2 branch
  • Run full internal test suite
  • Validate JSON help output
  • Validate categorized help display
  • Test structured error handling
  • Verify status agent types and token warning
  • Verify repair core agent support
  • Verify refresh context-aware help
  • Verify JSON command tree completeness

🤖 Generated with Claude Code

aronchick and others added 30 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>
…c#333 on pr-triage-b2

Tests from multiclaude workers (silly-otter, lively-otter, clever-bear):
- PR dlorenc#338: Token-aware status display, hibernate help, rich list_repos response
- PR dlorenc#339: Context-aware refresh, worktree path detection, --all flag parsing
- PR dlorenc#337: Categorized help (worker report captured, tests via CLI assertions)
- PR dlorenc#333: Enhanced repair (worker report captured, daemon handler tests)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The "Token Efficiency" section referenced a non-existent sc:index-repo
slash command with fabricated claims (94% token reduction, 58K->3K tokens).
This confused workers into trying to run a command that doesn't exist.

Introduced by PR dlorenc#341, the skill was likely hallucinated by the agent.

Also investigated the reported format.Dimmed bug in systemStatus
(cli.go:1081) - confirmed it is NOT a bug. format.Dimmed is a void
function that already prints via Dim.Printf, so the code works correctly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This draft proposal is obsolete — key recommendations have already
been implemented:
- Categorized help output (PR dlorenc#337)
- Hidden command field concept in Command struct
- agents command restructuring

The remaining suggestions (deprecation warnings, guide command,
templates rename) can be revisited as standalone issues if needed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…lRepair

Previously, localRepair logged errors from ensureCoreAgents and
ensureDefaultWorkspace as warnings (only visible with --verbose) but
returned nil, implying success. Callers had no way to know repair
had issues.

Now errors are accumulated in a slice and returned as a combined
error message so callers can detect partial repair failures.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…faultWorkspace, spawnCoreAgent

These functions (from PR dlorenc#333) had zero test coverage. Adds 8 tests covering:
- ensureCoreAgents with empty state, missing tmux session, existing agents, fork mode
- ensureDefaultWorkspace with empty state, existing workspace, missing tmux session
- spawnCoreAgent error message includes resp.Error details

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Extract shared core agent decision logic into state.MissingCoreAgents()
to eliminate ~60 lines of duplicated fork-mode detection and config
defaulting. Fix daemon ensureDefaultWorkspace to use writePromptFile()
helper and claudeRunner.Start() instead of raw os.WriteFile/exec.Command,
making it consistent with all other agent creation paths.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
whitmo and others added 4 commits February 28, 2026 20:26
… to restart

handleRestartAgent requires the agent to already exist in state, causing a
chicken-and-egg failure when repair tries to create missing core agents like
merge-queue. Now spawnCoreAgent does full creation: tmux window, prompt file,
Claude process, and state registration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Full smoke test of all 12 upstream PRs merged into pr-triage-b2:
- Build: clean (0 errors)
- Test suite: 19/19 packages pass
- JSON help, categorized help, token warnings, status, repair,
  refresh, command tree: all PASS
- Structured errors: FAIL - constructors exist but not wired
  through daemon handler for repo use

One issue found: errors.RepoNotFound() has suggestion but
daemon's handleSetCurrentRepo passes raw state error instead.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@whitmo
Copy link
Copy Markdown
Author

whitmo commented Mar 2, 2026

Closing - opened by worker accidentally, not an intentional contribution.

@whitmo whitmo closed this Mar 2, 2026
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