Handoff MCP v0.19 — Research Loop and Nested Projects
Release

Handoff MCP v0.19 — Research Loop and Nested Projects

A new research-loop workflow runs technical investigation across parallel agents. Nested .handoff projects in a monorepo are now discovered recursively. The VSCode hang is fixed.

Here is a summary of what changed across Handoff MCP v0.18.0 through v0.19.1: a workflow for technical investigation, support for nested projects in a monorepo, and a fix for the hang that could freeze VSCode.

v0.18.1: A loop for research and specification

Before implementation, there is usually a stretch of work spent investigating and writing things down. The new /research-loop runs that stretch across several agents.

Investigators explore separate facets in parallel. A second set of agents then tries to refute what the first set found. Claims that do not hold up are sent back for another round, and only verified evidence makes it into the final document.

  • research-investigator — explores an assigned facet
  • research-verifier — attempts to refute another agent's findings
  • research-director — judges coverage and gates the transition to the next phase
  • research-drafter — synthesizes only what survived verification

The point is to keep a first guess from quietly becoming a specification. Thin research gets sent back, for up to two additional rounds.

v0.18.0: Nested projects in a monorepo

Until now, .handoff/ was only detected directly beneath the scanned directory. If a monorepo kept a project per sub-package, those projects were invisible from above.

  • handoff_dashboard scans scan_dirs recursively and finds .handoff/ at any depth. max_depth caps the recursion; exclude_patterns skips subtrees such as node_modules
  • handoff_list_tasks accepts include_children, merging child-project tasks into a single tree
  • handoff_load_context now always returns a child_projects array

Task IDs are left unchanged, so handoff_update_task still works directly against a merged view. A separate task_ref field provides a collision-free identifier for display.

v0.19.0: Fixing the VSCode hang

The memory-cleanup hook that ran at session start has been removed. When many parallel sub-agents requested cleanup at once, the work queued up against the single-threaded stdio server and could freeze VSCode along with it. With the cause confirmed, the synchronous hook is gone from SessionStart.

Existing installs pick up the change by running handoff-mcp setup again, which detects and removes the legacy hook. setup --check warns when one is still present.

The stdio server also gained a per-request timeout of 30 seconds, configurable through HANDOFF_MCP_REQUEST_TIMEOUT_SECS. If something does stall, the server returns an error instead of waiting forever.

Cleanup itself remains available as handoff_memory_cleanup whenever you want to run it by hand.

v0.19.1: Japanese memory search has changed

The internal similarity engine moved to lexsim 0.4.0. Japanese text used to be split mechanically into two-character pieces; it is now segmented into actual words. Recall when pulling up an earlier memory improved, and so did near-duplicate detection.

There is a separate post covering what changed inside lexsim.

Installing and updating

npx handoff-mcp-server@latest

If you use it as a Claude Code plugin, /plugin install alphaelements/handoff-mcp keeps you on the latest release.

See the Handoff case study