Commit Graph
3 Commits
Author SHA1 Message Date
Emil 5ea92990eb feat: keep the main chat responsive while subagents run
The main session and subagents share the same model backend; when that
backend serializes requests (cloud rate limits or a local server), subagent
streams queue the main chat. Adds two config knobs:

- agent_concurrency (default 3): a semaphore in AgentTree.start caps how many
  subagent sessions stream simultaneously (slot is released on completion,
  timeout, or setup error so failures cannot deadlock the queue).
- subagent_model (optional): routes spawned agents to a different model or
  backend, e.g. ollama/gemma4:e4b, so subagents never contend with the main
  session at all. Wired through the spawn tool, the main-session tools, and
  the per-agent runtime tools.

Documents both in .hypothesis-machine.example.yaml and adds a concurrency-cap
test (43 tests passing, tsc clean).
2026-07-31 23:25:52 +03:00
Emil 18b8a3247d fix: allow research runs to restart after stop; improve FTS search, agent limits, and timeouts
- AgentTree.restart() revives a stopped run in the same session: resets the
  root, archives old branches, and restores spawnability (stop no longer
  cancels the root).
- ResearchLoop.start() restarts from stopped/completed and resets iteration
  counters; setGoal is allowed in terminal states; supervisor 'start' revives
  the tree when the root is not spawnable.
- Cancelled/failed/archived children no longer count toward the per-agent
  child limit and archived agents are ignored by the duplicate-task guard.
- cancel() no longer overwrites an already recorded agent result.
- Add agent_timeout_seconds (default 1800) so hung agent sessions fail
  instead of blocking wait() forever.
- FTS search now prefix-matches tokens (tolerates inflections) and safely
  handles punctuation/FTS5 metacharacters instead of returning false
  negatives or throwing.
- Add tests for restart semantics, child limits, result preservation,
  agent timeouts, and FTS morphology/special characters (38/38 passing).
2026-07-31 22:57:54 +03:00
Emil 528983ee50 feat: initialize Hypothesis Machine Pi extension 2026-07-31 22:36:16 +03:00