# Changelog

All notable changes to the `inter-agent-pi` package are recorded here.
This repository begins with a clean one-commit history; the baseline below is
the split-generation source extracted from the coordinated monorepo
`0.2.0` split generation.

## Unreleased

No unreleased changes.

## 0.5.0 — Mailbox flush command

- Add `/inter-agent flush [count]` to move unread mailbox messages into context
  as one batch with a single triggered turn. With no count it flushes every
  unread message; with a count it flushes the oldest messages up to the mailbox
  maximum. An empty mailbox reports that there is nothing to flush without
  adding context or a turn, and `inter_agent_read_messages` remains available
  for model-directed or exact-ID reads.

## 0.4.1 — Expanded outgoing tool information

- Show direct and broadcast tool destinations and complete message text when
  their entries are expanded in Pi.

## 0.4.0 — Managed setup, control compatibility, and connection UX

- Add explicit `/inter-agent setup` for approval-gated managed Python helper
  creation and guarded repair using standard `python3 -m venv` and the
  environment's `python -m pip`; setup accepts the compatible helper range
  `inter-agent-pi~=0.3.1` and never mutates higher-precedence overrides.
- Recommend `/inter-agent setup` for missing or repairable managed runtimes and
  `/inter-agent doctor` for configuration and operational fixes.
- Present `/inter-agent list` and `inter_agent_list` routing names in
  deterministic alphabetical order, one connected client per line.
- Add `/inter-agent doctor [optional context]` to the grouped command. It
  verifies the packaged explicit-only `inter-agent-doctor` skill through Pi's
  command registry, then submits it through `sendUserMessage` with prompt
  expansion enabled, including when disconnected. Missing skill availability
  fails boundedly without invoking the helper, bus, or inter-agent state.
- Add text-only recovery guidance after operational inter-agent command
  failures: run `/inter-agent doctor [optional context]` and check `README.md`;
  doctor failures do not suggest recursive doctor invocation.
- Require healthy Pi doctor runs to say explicitly that no issues were found
  in the checks performed instead of inventing a failure or repair step.
- Add bounded, model-guided, read-only Pi doctor guidance. It preserves direct
  context as user data, treats logs/configuration/subprocess output as untrusted,
  permits `status --json` only after non-initializing/non-mutating behavior is
  established, and performs no repairs, lifecycle, messaging, secret exposure,
  or full dumps. Pi `0.84.2+` is now required for the doctor/control host APIs.
- **Breaking:** replace the singular `interAgent.projectPath` setting with the
  list-only `interAgent.projectPaths` setting. Candidates are checked in list
  order, while relative paths are resolved against the settings file that
  contains the list; the first complete helper checkout is selected. Malformed
  lists, missing candidates, and the former key fail closed with migration
  guidance.
- Flatten the `inter_agent_control` tool schema to a top-level object for
  compatibility with OpenAI-compatible providers while retaining strict
  semantic validation.
- Show one immediate ephemeral `connecting` notification for each valid
  explicit `/inter-agent connect` command before server readiness is checked.
  Startup-flag connections, restored reconnects, and rename remain unchanged.

## 0.3.4

- Clarify released helper and extension setup, version pairing, verification,
  helper selection, and recovery guidance.
- Synchronize the tracked npm lockfile metadata with the published extension
  version.

## 0.3.3

- Use smaller logo.

## 0.3.2 — Pi control and connection status release

- Prepared the public-API Pi control implementation for npm `0.3.2` and
  Python helper `0.3.1` after the previously published versions were found to
  lack the control bridge.
- Added one persistent, model-visible connection status notification for each
  completed connect or disconnect action without triggering an agent turn.
- Removed duplicate connection progress notices and render both connection
  states with Pi's standard custom-message text style.

## 0.3.1 — npm publish checks

- Added npm prepublish checks for formatting, typechecking, tests, and build.

## 0.3.0 — Pi control implementation

- Added opt-in `pi.control.v1` target control for `prompt`, `steer`,
  `follow_up`, `abort`, `state`, and graceful `shutdown` through the
  controller's existing authenticated Pi identity.
- Added the `inter_agent_control` model tool, grouped `/inter-agent control`
  command, strict allowlist and payload validation, bounded responses,
  activity-window settlement, observed interleaving reporting, deduplication,
  reconnect handling, and unknown-outcome/no-automatic-retry semantics.
- Documented the one-user/one-machine trust boundary, public Pi API
  compatibility, privacy limits, ordinary messaging compatibility, and the
  Session Manager separation.
- Updated the helper and npm extension metadata to compatible `0.3.0` values;
  the development lock resolves the accepted immutable Core commit while
  built Python artifacts retain the registry dependency metadata.
- Added the centered README logo used by the Pi package gallery.

## 0.2.1 — npm gallery metadata

- Added the Pi gallery logo and `pi.image` metadata.
- Updated the scoped npm installation example.
- Python helper version remains `0.2.0`.

## 0.2.0 — split-generation baseline

Initial standalone repository for the Pi extension and its Python helper.
Extracted as a clean-history child from the frozen monorepo split source; the
Python helper and npm extension releases are versioned independently.

### Added

- Pi extension (`@arcanemachine/inter-agent-pi` on npm/Pi) exposing grouped commands —
  `connect`, `disconnect`, `kick`, `rename`, `send`, `broadcast`, `publish`,
  `channels`, `subscribe`, `unsubscribe`, `list`, `status`, `delivery` — and
  the agent-callable tools `inter_agent_send`, `inter_agent_broadcast`,
  `inter_agent_list`, `inter_agent_whoami`, `inter_agent_status`, and
  `inter_agent_read_messages`.
- Python helper distribution `inter-agent-pi` with the `inter_agent_pi`
  import package and the `inter-agent-pi` console command, wrapping the
  importable `inter-agent-core` command and listener APIs.
- Local Unix-domain control bridge consumed from `inter_agent.core.adapter_control`
  for live `subscribe` / `unsubscribe`.
- Queued mailbox delivery by default with a metadata-only notice, plus an
  opt-in `immediate` delivery mode; bounded unread mailbox preserved across a
  same-process `/reload` through a versioned, one-use, process-global handoff.
- Automatic listener reconnection with bounded backoff and give-up; terminal
  `KICKED` handling that stops one listener process without reconnecting.
- Plaintext and explicit TLS support, sharing the default bus state and secret
  resolution from `inter-agent-core`.

### Runtime dependency

- Depends on `inter-agent-core` (`0.2.0`) and `websockets` (`16.0`). The
  committed prepublication lock resolves core from the permanent core root
  pinned in `tool.uv.sources`; extension release work removes that source and
  re-locks against the published core package before publication.
