The roadmap calls for "worker-continue defaulting": coordinator mode
should prefer SendMessage to reuse a previous worker's prompt cache
instead of spawning a fresh one when it would re-load the same files.
This ships the spawn-time advisor that surfaces the recommendation.
What's in this PR
=================
- src/tools/AgentTool/workerContinueAdvisor.ts (new)
Pure heuristic. Inputs: candidate-prompt + list of recently-completed
panel agent tasks (with their touched files). Output: best continue
candidate (most overlap, ties broken by recency) or null. Pure
ranking — caller materialises the candidate list, this module is
policy-only.
- extractFilePathsFromPrompt: path-with-extension + bare known-extension
filename matching, normalised to lowercase forward slashes for
cross-OS comparison.
- extractTouchedFilesFromActivities: pulls file_path (Read/Edit/Write/
NotebookEdit) and path (Grep/Glob — directory mention as a weaker
signal) from ProgressTracker.recentActivities. Bash command strings
deliberately skipped (false-positive risk).
- findContinueCandidate: scores by overlap size, requires same
subagent_type (SendMessage to a type-mismatched worker would have it
executing the wrong specialist's contract), filters out
non-completed tasks and tasks older than 30 minutes.
- src/tools/AgentTool/workerContinueAdvisor.test.ts (new, 27 cases)
Covers all four extraction paths, type-mismatch / non-completed /
too-old filters, tie-breaking by recency, case-insensitive overlap,
Windows-style path normalisation, env-flag gating, error message
contract (no key="value" fragments — same rule as specialistRouter).
- src/tools/AgentTool/AgentTool.tsx
Opt-in coordinator-only enforcement: when CLAUDE_CODE_COORDINATOR_CONTINUE_HINT=1
and we're in coordinator mode with an explicit subagent_type, we
collect completed panel tasks (isPanelAgentTask + status === completed
+ evictAfter !== 0), build the candidate list, and throw
formatContinueHintError if a winner is found. Same opt-in shape as
CLAUDE_CODE_GP_DEFAULT_STRICT / CLAUDE_CODE_COORDINATOR_SPECIALIST_ROUTER /
CLAUDE_CODE_COORDINATOR_TASK_SPEC_STRICT for predictable rollback.
Logged via tengu_agent_continue_hint with shared_files count and
candidate age for adoption tracking.
- scripts/dev-coordinator-e2e.ps1
Adds a 7th e2e step asserting:
- Same-type worker overlap → continuation recommended.
- Type mismatch → no recommendation.
- File-free prompt → no recommendation.
- Error message contract preserved (agentId, SendMessage, env flag).
Why opt-in (not default-on)
===========================
- Lazy-delegation lint and specialist redirect are blacklists: specific
anti-patterns, near-zero false positives, safe to default on.
- Worker-continue is a positive-space heuristic: "the model could have
done X better." Hard-failing a fresh spawn when the model legitimately
wants a clean context (e.g. adversarial verification with no prior-
approach anchoring) would be more annoying than helpful.
- Same opt-in shape as B2's task-spec strictness for predictable rollback
and gradual team adoption.
Verification
============
- src/tools/AgentTool/workerContinueAdvisor.test.ts ........ 27/27 pass
- All B1+B2+B3 unit tests ................................. 132/132 pass
- scripts/dev-coordinator-e2e.ps1 ......................... GREEN (7 steps)
- get_diagnostics on changed files ........................ clean
Tested: bun test src/tools/AgentTool/workerContinueAdvisor.test.ts (27/27); all coordinator unit tests (132/132); scripts/dev-coordinator-e2e.ps1 step 7 GREEN
Not-tested: live coordinator session with the hint flag on (covered by the e2e module-level assertion of the throw + error shape; full live-LLM gate intentionally deferred to provider-credentialed runs)
Confidence: high
Scope-risk: narrow
Constraint: must NOT change AgentTool's input schema; must reuse the formatSpecialistRedirectMessage prose style to avoid the textual-tool_use regression; must require subagent_type match (SendMessage to a wrong-type worker would execute the wrong contract)
Rejected: defaulting the hint on (false-positive cost on legitimate fresh-context spawns); using prompt-string equality instead of file-overlap (would miss continuations where wording differs but the work is the same); recording Bash command strings as touched files (false-positive risk — `git status` is not a file touch)
Directive: when ProgressTracker.recentActivities is enlarged past 5 entries, revisit candidate-collection cost (currently linear over panel tasks × constant 5 activities — fine for typical sessions, but a 100-task panel × 50-activity tracker would warrant a memoised set)
Co-authored-by: 你的姓名 <you@example.com>
Claude Code Haha
A Claude Code build repaired from the source leaked from Anthropic's npm registry on 2026-03-31. Claude Code Haha is now primarily a desktop Claude Code workspace for macOS, Windows, and Linux: sessions, projects, branch / Worktree launch, right-side file changes, code diffs, permission review, provider setup, Computer Use, H5 remote access, IM integration, and scheduled tasks in one app.
Desktop Preview · Install · Highlights · Sponsorship · More Docs
Desktop Preview
The Claude Code Haha desktop app brings sessions, multi-project navigation, branch / Worktree controls, right-side file changes, code diffs, permission review, provider setup, and remote access into one graphical workspace for daily development flows beyond the terminal.
![]() Desktop Workspace |
![]() Right-side Changes & Worktree |
![]() Code Editing & Diff View |
![]() Permission Review & AI Questions |
![]() H5 Remote Access |
![]() Token Usage |
![]() Computer Use |
![]() Scheduled Tasks |
Install the Desktop App
- Download the macOS / Windows / Linux desktop installer from Releases.
- On first launch, configure your model provider, API key, and default model in Settings.
- This build is currently unsigned, so the first launch needs a one-time manual approval (clear quarantine on macOS, click "Run anyway" on Windows). See the desktop installation guide.
Run the CLI from Source
For users who want to debug the underlying CLI, server, or local development flow:
bun install
cp .env.example .env
./bin/claude-haha
See environment variables and global usage for more configuration options.
Desktop Highlights
- Multi-session workspace: tabs, project switching, terminal entry, and session history in one place.
- Branch / Worktree launch: choose a repository branch and decide whether to use the current working tree or an isolated Worktree.
- Right-side file changes: review changed files, added/removed lines, and current workspace state while chatting.
- Visual code changes: inspect edits, file writes, and diffs directly in the desktop app.
- Permission review: approve risky commands, tool calls, and model follow-up questions in the GUI.
- Multi-provider setup: configure Anthropic-compatible APIs, third-party models, WebSearch fallback, and local options.
- Computer Use: let the agent take screenshots, click, type, and control desktop apps after authorization.
- H5 remote access: open the current desktop session from a phone or another device with a one-time token.
- IM integration: chat, switch projects, and approve actions through Telegram / Feishu / WeChat / DingTalk.
- Scheduled tasks and usage stats: create planned tasks and track local token usage trends.
More Documentation
| Document | Description |
|---|---|
| Environment Variables | Full env var reference and configuration methods |
| Third-Party Models | Using OpenAI / DeepSeek / Ollama and other non-Anthropic models |
| Contributing | Local tests, live model baselines, PR gates, and release gates |
| Memory System | Cross-session persistent memory usage and implementation |
| Multi-Agent System | Agent orchestration, parallel tasks and Teams collaboration |
| Skills System | Extensible capability plugins, custom workflows and conditional activation |
| IM Integration | Remote chat, project switching, and permission approval via Telegram / Feishu / WeChat / DingTalk |
| Computer Use | Desktop control (screenshots, mouse, keyboard) — Architecture |
| Desktop App | Electron + React GUI client — Quick Start | Architecture | Installation |
| Global Usage | Run claude-haha from any directory |
| FAQ | Common error troubleshooting |
| Source Fixes | Fixes compared with the original leaked source |
| Project Structure | Code directory structure |
Sponsorship & Partnership
This project is maintained in the author's spare time. Corporate or individual sponsorships are welcome to support ongoing development. Custom features, integrations, and business partnerships are also open for discussion.
| Sponsor | Description |
|---|---|
|
接口AI |
Thanks to JieKou AI for sponsoring this project. JieKou AI provides official model resources with stable, high-performance API access. Subscription bundles are priced at 20% off the official rate; new users who register through this link and bind GitHub can claim a $3 coupon. |
|
|
Thanks to ShengSuanYun for sponsoring this project. ShengSuanYun is an industrial-grade AI task parallel execution platform for AI Native Teams, aggregating Claude, ChatGPT, Gemini, and other LLM, image, and video model capacity through direct, non-reverse-engineered access. Its platform SLA reaches 99.7%, with service status available online. It also supports dedicated enterprise gateways, cost and permission controls, smart routing, security protection, BYOK, usage-based billing, upcoming tokens plans, and invoicing. New users registering through this link can receive 10 yuan in model credits plus a 10% first top-up bonus. |
📧 Contact: relakkes@gmail.com
Tech Stack
| Category | Technology |
|---|---|
| Language | TypeScript |
| Desktop app | Electron |
| Desktop UI | React + Vite |
| Local runtime | Bun |
| Terminal UI | React + Ink |
| CLI parsing | Commander.js |
| API | Anthropic SDK |
| Protocols | MCP, LSP |
Thanks
Thanks to the following open-source projects and community practices for reference and inspiration:
- React: frontend engineering and component-based UI ecosystem.
- Electron: cross-platform desktop app capabilities and engineering practices.
- cc-switch: reference for model provider configuration.
⭐ Star History
If this project helps you, please support it with a ⭐ Star so more people can discover Claude Code Haha.
Disclaimer
This repository is based on the Claude Code source leaked from the Anthropic npm registry on 2026-03-31. All original source code copyrights belong to Anthropic. It is provided for learning and research purposes only.








