Files
hypothesis-machine/CHANGELOG.md
T
Emil dd8d29bc8a feat: live subagent dashboard widget in the TUI
Adds a widget above the editor (ctx.ui.setWidget) showing the research run
id, loop status, iteration, active agents with elapsed time, and recently
finished agents. Refreshed every 1.5s while work is running, hidden when
idle; timer is cleaned up on shutdown so reloads do not leak intervals.
2026-07-31 23:12:38 +03:00

61 lines
3.3 KiB
Markdown

# 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.
- Hardened the web gateway against SSRF TOCTOU: outbound downloads now resolve
DNS once, validate the address, and connect to the validated IP directly
(pinned resolution), so DNS rebinding cannot redirect the connection to a
private target; malformed search results no longer break the whole query;
the web cache is bounded (oldest entries evicted past 500 files).
- Experiment review is now truly independent: the reviewer must not be a
descendant of the experiment author (in addition to not being the author).
- Experiment stdout/stderr are capped at 512 KB so runaway container output
cannot exhaust memory or disk.
- Verified that Pi's extension tool registry is per-extension-instance, so
reload re-registration is safe (no fix required).
- `research_control pause`/`resume` no longer desync the agent tree from the
loop: pausing a non-running loop now errors instead of silently marking the
tree as paused, and resume requires the loop to actually be paused.
- `read_artifact` now resolves symlinks before the confinement check, so a
symlink inside the project cannot leak files from outside it.
- Added a live subagent dashboard: a TUI widget above the editor shows the
research run id, loop status, iteration, active agents with elapsed time,
and recently finished agents (updated every 1.5 s, hidden when idle).
## 0.1.1 — 2026-07-31
- Added GitHub CI, CodeQL, Dependabot, contribution/security templates, and the
local release checklist.
- Updated the development toolchain to ESLint 10 and aligned the minimum Node.js
version with Pi 0.83 (`22.19+`).
- Added the official `ModelRegistry` compatibility path for Pi 0.78 while
retaining shared `ModelRuntime` behavior on Pi 0.83+.
- Added `agent_end` continuation fallback for Pi versions predating
`agent_settled`.
- Improved startup diagnostics and verified `/team` through Pi 0.78 RPC mode.
- Fixed Redis container capabilities and verified a live Firecrawl v2 scrape.
## 0.1.0 — 2026-07-31
- Initial Pi extension package.
- Recursive persistent AgentSessions and dynamic Markdown agent factory.
- Tree limits, replication, messaging, cancellation, recovery, and `/team`.
- Markdown/SQLite research memory and source provenance.
- Local SearXNG/Firecrawl gateway with SSRF controls and cache.
- Explicit bounded research loop.
- Docker-only reproducible experiment runner.
- Unit, integration, and extension smoke tests.