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).
This commit is contained in:
@@ -1,5 +1,21 @@
|
||||
# Changelog
|
||||
|
||||
## Unreleased
|
||||
|
||||
- Fixed the research loop and agent tree getting permanently stuck after
|
||||
`research_control stop`: `start` now restarts a stopped/completed run in the
|
||||
same session (`AgentTree.restart` revives the run, archives old branches, and
|
||||
resets the root), `ResearchLoop.start` resets iteration counters, and goal
|
||||
changes are allowed after stop/completion.
|
||||
- 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.
|
||||
- Added a per-agent execution timeout (`agent_timeout_seconds`, default 1800)
|
||||
so a hung agent session fails instead of blocking `wait` forever.
|
||||
- Full-text search now prefix-matches tokens (tolerates Russian/English
|
||||
inflections without stemming) and safely handles punctuation and FTS5
|
||||
metacharacters instead of throwing or returning false negatives.
|
||||
|
||||
## 0.1.1 — 2026-07-31
|
||||
|
||||
- Added GitHub CI, CodeQL, Dependabot, contribution/security templates, and the
|
||||
|
||||
Reference in New Issue
Block a user