Skip to content

Releases: andrea-tomassi/pi-open-agents

0.1.20

Choose a tag to compare

@andrea-tomassi andrea-tomassi released this 29 Aug 19:34

fix(subagent): fall back to the running pi entry when import.meta.resolve cannot see the host package (npm-distributed plugin + bundled pi runtime). Fixes subagent delegation failing with 'Cannot find module @earendil-works/pi-coding-agent' after npm install.

v0.1.19 — per-call model override in subagent()

Choose a tag to compare

@andrea-tomassi andrea-tomassi released this 29 Aug 15:16

Per-call model override (#10)

The subagent tool now accepts an optional model parameter:

subagent({ agent: "deep-research", task: "...", model: "zai/glm-5.3-flash" })
  • Per-call: overrides the agent definition default for a single delegation — no need to fork .agent.md files for one cheap-model task
  • Fail-fast: malformed values (missing /) are rejected before any child spawn
  • E2E verified: child process events report the overridden model

Also:

  • README: crowd-favorites row for "model selection per subagent" (anomalyco/opencode#6651 👍71), roadmap updated
  • 8 new tests (125 total)

v0.1.18 — docs: fleet stack guide + crowd favorites

Choose a tag to compare

@andrea-tomassi andrea-tomassi released this 29 Aug 09:55

Docs release — no code changes

  • New: PI-WITH-HERDR.md — the pi × Herdr × pi-open-agents fleet stack:
    • Advantages over tmux (workspace persistence, mouse-first UX, agent awareness)
    • Agent-to-agent awareness via socket integration (full_lifecycle_hook_authority)
    • 5-command tutorial + reference workstation setup (6 agents, one screen)
  • README:
    • "Popular requests, already covered" table — ecosystem's most upvoted asks (AGENTS.md 👍336, skills standard 👍183, subagent tool restrictions 👍70) mapped to what's already here
    • Roadmap section: #8 permission inheritance, #9 hot-reload, #10 per-call model override, #11 parallel subagent limit
    • Catchy fleet-stack hook: 🐑 "Herd your agents" + "Run a fleet" section
  • CONTRIBUTING.md: added earlier in this cycle — read before opening PRs/issues

v0.1.16 — ship explorer agent

Choose a tag to compare

@andrea-tomassi andrea-tomassi released this 11 Aug 09:32

Add model-agnostic explorer agent (agents/explorer.agent.md). The explorer inherits the session default model and is distributed via npm for cross-harness compatibility (pi + OpenCode).

v0.1.15 — set_agent guards (primary-only enforcement)

Choose a tag to compare

@andrea-tomassi andrea-tomassi released this 02 Aug 13:37

Added

  • Issue #5 / PR #6: set_agent now enforces primary-only usage:
    • Blocks calls from subagent processes (PI_OPEN_AGENTS_DEPTH > 0)
    • Rejects mode: subagent agents as targets (consistent with TUI selector)
    • primary and all mode agents remain selectable from primary processes
    • Tests invoke the real execute() handler with full mock infrastructure

Changed

  • typebox added to devDependencies (was an implicit transitive dependency)

Tests

  • 117 tests (was 97), all passing

v0.1.14 — Subagent tool restriction and write/edit permission fix

Choose a tag to compare

@andrea-tomassi andrea-tomassi released this 01 Aug 14:53

Fixed

  • Issue #4 — write/edit permission collision: write and edit are now separate permission categories. Previously, {edit: true, write: false} silently produced edit: deny due to both mapping to the same key. In pi, write (create/overwrite) and edit (search-and-replace) are distinct tools.

  • Issues #1 + #2 — Subagent tool restriction: OpenCode-style tools: map and explicit permission: blocks now restrict the subagent child process toolset via the --tools CLI flag. Previously, these restrictions were silently ignored for subagents — the child received all tools regardless.

Changed

  • toolToPermission() and toolsMapToPermission() no longer collapse write into edit. Only apply_patch (OpenCode-only) still maps to edit.
  • New deriveToolsWhitelist() in subagent executor derives --tools from permission allow-lists when no explicit tools array exists.
  • Removed dead PI_OPEN_AGENTS_PERMISSION from RecursionEnv type.

Known limitations

  • Wildcard permissions (*: allow + specific denies) cannot produce a finite --tools whitelist — the CLI flag is a whitelist, not a deny-list. The child gets all tools in this case.
  • Issue #3 (variant: field) not addressed — requires a pi-core --variant CLI flag.

Tests

  • 97 tests (84 existing updated + 13 new), all passing

v0.1.13

Choose a tag to compare

@andrea-tomassi andrea-tomassi released this 01 Aug 06:52

Fixed

  • Subagent output no longer echoes the request on pi 0.83.0. pi 0.83.0 changed its JSON event stream to emit message_end for every message role (user, assistant, toolResult) — not just assistant. The executor captured text from any message_end, so the echoed user task (Task: …) and raw tool results leaked into the subagent output whenever the final assistant turn had no text part (tool-only / error).

    The message_end handler now captures text, usage, and model only from role === "assistant" messages. Backward- and forward-compatible.

  • Added regression tests replaying the real 0.83.0 event stream (user + assistant + toolResult message_end) via an injected fake runner.

v0.1.12

Choose a tag to compare

@andrea-tomassi andrea-tomassi released this 21 Jul 09:14

Fix: subagent delegation outage

AuthStorage was removed from @earendil-works/pi-coding-agent in 0.80.x. The subagent executor imported it and called AuthStorage.create() unconditionally, throwing Cannot read properties of undefined (reading 'create') and breaking all subagent delegation regardless of the configured model.

Changes

  • src/subagent/executor.ts — extract resilient, injectable buildModelRegistry(). The cosmetic cost/context-window registry now degrades to undefined instead of crashing; downstream usage enrichment already tolerates a missing registry.
  • test/executor.test.ts — regression coverage (missing host symbols, throwing factory, happy path). CI-safe: skips when the optional @earendil-works peer dep is absent.

Compatibility

Backward compatible — identical behavior when AuthStorage is present.

v0.1.11 — OIDC trusted publishing test

Choose a tag to compare

@andrea-tomassi andrea-tomassi released this 16 Jul 20:51

Changed

  • npm Trusted Publishing via OIDC — package now publishes automatically from GitHub Actions when a tag is pushed. No local npm publish needed, no npm token, no OTP.
  • Bumped Node to 22 for npm 12 compatibility

v0.1.9 — README fixes

Choose a tag to compare

@andrea-tomassi andrea-tomassi released this 30 Jun 05:21

Fixed

  • Install command — fixed to use npm: prefix in README
  • Banner image width — adjusted for better display