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

3.3 KiB

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.