5.1 KiB
Changelog
Unreleased
-
Restyled the persistent right-side agent panel (
/agents-panel) to match OpenCode's Todo/plan sidebar: a full-height background column (no box border, panel background painted across the whole overlay width) with a bold▼ agentstitle, a flat OpenCode-style checklist ([•]in-progress in warning color,[ ]pending and[✓]completed in muted,[✖]failed in error), live per-agent activity lines under running agents, and the footer hint pinned to the bottom of the column. The panel now sits flush against the right edge of the terminal and stops two rows above the bottom so the editor and status bar stay visible. -
Fixed the research loop and agent tree getting permanently stuck after
research_control stop:startnow restarts a stopped/completed run in the same session (AgentTree.restartrevives the run, archives old branches, and resets the root),ResearchLoop.startresets 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 blockingwaitforever. -
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/resumeno 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_artifactnow 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).
-
Subagents no longer stall the main chat on serial model backends: new
agent_concurrency(default 3) caps how many subagent sessions stream at once, and optionalsubagent_modelroutes subagents to a different model/backend (e.g. a local Ollama model) so they never contend with the main session. -
New
/agentscommand opens an interactive overlay with the full agent tree: tree glyphs (├─/└─/│), colored statuses and icons, live elapsed time, keyboard navigation (↑/↓), and a detail pane (Enter) showing each agent's task and result. The live widget header now hints at/agents. -
New
/agents-panelcommand toggles a persistent OpenCode-style right-side panel with the live agent tree: non-capturing (typing keeps working), auto-refreshed every 1.5 s, hidden on terminals narrower than 100 columns, and closed automatically on shutdown. -
The right-side panel now fills the whole right column (width 40%, full height) and shows each running subagent's most recent activity under its row — the last tool call with its query or the last assistant text — read from the tail of the agent's session file (cached by file size).
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
ModelRegistrycompatibility path for Pi 0.78 while retaining sharedModelRuntimebehavior on Pi 0.83+. - Added
agent_endcontinuation fallback for Pi versions predatingagent_settled. - Improved startup diagnostics and verified
/teamthrough 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.