# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [4.2.0] - 2026-11-02

### Added

- Show extension update notes on Pi 1.5 using the packaged changelog.
- Report the saved-workflow picker as waiting for user input on Pi 1.5.
- Show configured expand shortcuts in collapsed subagent results on Pi 1.5.
- Recognize provider-billed usage totals, including free requests, while
  preserving legacy Pi cost accounting.

- Add optional Orchestratorv2 child selection through Pi's native classifier
  API, with bounded inputs, fail-closed selection, and usage accounting.

### Changed

- Extend shared Orca prompt/skill guidance to interactive delegation in normal
  Pi parents, interactive children/nested contexts, and Orchestratorv2 without
  replacing native child execution or changing legacy workflow selection.
- Layer Agterm guidance and explicit target precedence onto shared Orca
  delegation, and attribute the closed host label on fresh root telemetry.

## [4.1.0] - 2026-10-25

### Changed

- Keep transient mux-liveness uncertainty in local debug logs; anonymous
  `mux_probe` runtime failures now report only when a workflow waiter exhausts
  its grace and is blocked, with `impact=blocked`. Shared pane-episode dedupe
  remains; other runtime failures and liveness/artifact handling are unchanged.
- Expand the published PostHog SQL insights with separate launch/task/workflow
  outcomes, mode-aware adoption and busiest-tree concentration, schema/provenance
  and unknown coverage, diagnostic event units, and workflow lifecycle window
  coverage. Window totals remain coverage diagnostics, not matched workflows.
- Remove the bundled RALPLAN skill.
- Add the `herdr` keyword for npm package discovery.

### Fixed

- Reject new workflows during session teardown and replacement setup, including
  lifecycle changes inside options builders, while retaining terminal telemetry
  for already accepted work.

### Breaking

- Require Pi SDK `>=1.2.0`; development dependencies pin SDK 1.4.0.

### Added

- Add schema-backed structured results to 11 read-only tools, preserving human
  content/details while exposing explicit machine-readable states and exact
  terminal output.
- Use a hidden native Orchestratorv2 custom wake after the manifest is sent,
  with a dedicated wake type and `details.orchestratorV2WakeId` identity.
- Expand the bundled debug skill with guidance for safe state recovery.

### Changed

- Remove the unused Pi server peer/dev/test-install dependency and legacy SDK
  compatibility code, including `src/pi-sdk-compat.ts`, obsolete runtime
  branches, wrappers, and aliases. Child sessions use `ModelRuntime` with copied
  extension-added custom/native provider registrations; inherited context uses
  `buildSessionProjection().messages` directly.
- Replace synthetic user wake messages with a manifest-first native custom
  wake; preserve the existing request/acknowledgement ledger schema.
- Rename the minimum SDK CI check to `Test (Pi 1.2.0)` and keep required check
  names synchronized with the repository ruleset.
- Check tool definitions, session/context projections, model resolution, and
  result callbacks against public Pi SDK types instead of local SDK-shaped
  interfaces and broad casts; retain extension-owned state and result protocols.

## [4.0.1] - 2026-10-18

### Fixed

- Make grouped error completions eligible before the rest of the group finishes;
  successful and cancelled results retain the group barrier.

## [4.0.0] - 2026-10-16

### Added

- Telemetry schema v6 records one logical child-launch resolution, separating
  direct acceptance, automatic fallback recovery, rejection, and cancellation
  from technical spawn attempts and terminal task outcomes.
- Closed traffic provenance distinguishes explicitly classified usage and
  development from unknown traffic, survives child bootstrap and recovery, and
  suppresses normal capture for test-marked runs without weakening other opt-outs.
- Published PostHog report queries define reliability, feature volume versus
  logical-session reach, and provenance/schema/unknown-data coverage.

### Breaking

- Breaking: This major release makes protocol-v2 the only interactive runtime.
  It removes protocol-v1 event/state migration, synthetic identities, numeric
  snapshot readers, and child session-log tailing. Existing unsupported legacy
  artifacts and state are preserved unchanged, but are not read or migrated.
  Before upgrading, finish or cancel agents that depend on legacy state; use
  fresh compatible sessions after the upgrade.
- Breaking: Remove `notifyOnComplete`, `triggerTurnOnComplete`, direct notification
  and injection brokers, and pre-coordinator delivery-intent recovery. Completion
  now uses the coordinated `each`/`group` protocol only.

### Changed

- Removed obsolete aggregate indexes and active-session compatibility helpers for
  in-process jobs and interactive sub-agent state. Runtime state now requires an
  exact live `SessionScope` owner; ownerless and stale-owner operations fail closed.
- Removed the unused `ndjson` runtime dependency after removing session-log parsing.

### Fixed

- Attribute mux-probe observations to the selected backend and reporter, sharing
  pane-level outage episode authority across poller and workflow waiter so
  workflow settlement does not count the same observation again.
- Mark missing inherited history as an explicit rejected tool result and
  live-child routing-metadata persistence warnings as degraded operation results.
- Preserve a known initial mux when shutdown prevents a prepared workflow
  fallback from starting, keeping its logical outcome cancelled rather than
  accepted.
- Prevent ordinary Vitest fixtures from sending telemetry to PostHog: reject
  unmocked capture attempts visibly and keep intentional telemetry assertions
  isolated behind in-memory collectors.
- Drain coordinated completion queues when an independent intent carries stale
  group metadata, without blocking later deliveries.
- Preserve early child-process failure snapshots by letting Pi lifecycle hooks,
  rather than the launch wrapper, establish agent turns.
- Reject removed lifecycle and cutover state fields before mutation, preserving
  unsupported state files byte-for-byte.
- Return active-turn staging output for default artifact reads, even after an
  earlier turn completes or `since` filters out all events, without consuming
  that earlier completion.
- Restore interactive activity rows from protocol-v2 tool events in physical
  byte order, including tool-name fallback for missing or non-visible summaries.
- Make grouped error completions eligible before the rest of the group finishes;
  successful and cancelled results retain the group barrier.
- Record a process-level error completion for missing selected-model authentication
  during child session startup, so pre-run failures become reportable while the
  child REPL remains available for `/login` and a later turn.
- Include a bounded, explicitly untrusted terminal error diagnostic in interactive
  artifact reads, including for empty snapshots; diagnostic credentials are not
  redacted.

## [3.6.5] - 2026-10-14

### Added

- Added opt-in local diagnostics for unknown mux liveness, logged once per
  tracked pane per outage. Herdr reports only closed timeout, command-error,
  or malformed-response reasons; anonymous telemetry is unchanged.
- Added telemetry schema v5's optional closed `failure_operation` dimension to
  distinguish interactive spawn preparation, persistence, and registration
  failures without collecting exception text or user data.
- Show supplied pi-subagentura tool arguments as JSON when tool output is
  expanded with Pi's default Ctrl+O shortcut, retaining compact call summaries
  when collapsed.
- Record pi-subagentura tool names and full arguments in `extension_tool_call`
  events when local debug logging is enabled with `SUBAGENT_DEBUG_LOG_DIR`.
- Bundle the `pi-subagentura-debug` skill for launch, working-directory, mux, and
  artifact diagnostics.

### Fixed

- Keep terminal interactive rows from reopening a persistent mux-probe
  runtime-failure episode on every poll. A known-liveness poll ends the
  episode; a later unknown result may report a new one.
- Render coordinated workflow completion notices with resolved agent errors
  as “completed with errors” while retaining the internal error status.
- Reject missing or non-directory interactive child working directories before
  creating a multiplexer pane.

## [3.6.4] - 2026-10-03

### Changed

- Clarified provider and model selection guidance across sub-agent tools.

### Fixed

- Require explicit opt-in before workflows are selected by the orchestrator.
- Distinguish Orchestratorv2 footer status from other interactive sub-agents.

## [3.6.3] - 2026-09-24

### Added

- Added bounded diagnostics for interactive sub-agent processes that exit
  before completing a turn.

### Fixed

- Corrected opt-in parent context inheritance to use Pi's canonical session
  projection when available, preserve omission and replacement edits, and fall
  back on older supported SDKs.

## [3.6.2] - 2026-09-06

### Added

- Added anonymous telemetry schema v4 diagnostics: closed runtime failure
  categories, stages, and kinds; conditional
  task and workflow diagnostics; process-exit code buckets; and completion
  delivery failure stages. Payload allowlists omit arbitrary values and raw
  diagnostic content.

### Fixed

- Process-backed workflow usage accounting reads session logs incrementally and
  skips individual records above 2 MiB, preserving later usage without
  unbounded parent memory growth.
- Workflow cancellation tears down the child pane and records its receipt
  promptly while session usage accounting finishes.
- Zellij native viewers now use the backend's blocking pane lifecycle instead
  of reporting a successfully created floating pane as unavailable.
- Persisted interactive state reads, migration, and writes enforce file and
  entry bounds, preserve invalid existing files, and keep child working
  directories distinct from parent persistence roots across rehydration.
- Lineage admission fails closed when its node directory cannot be listed.
- Async job TTLs reject values outside Node's safe timer range, and invalid
  persisted activity-list values remain redacted in diagnostics.
- Corrected release, completion-receipt, pane-lifecycle, runtime, and workflow
  documentation, including obsolete instructions in the review workflow.

### Changed

- Bounded the TypeBox peer dependency to the tested compatible 1.x range.
- Separated shared usage utilities and multiplexer contracts from their runtime
  adapters while preserving existing exports.
- Removed the stale pnpm lockfile and obsolete manual interactive smoke script;
  npm and the maintained multiplexer/TUI test harnesses remain the supported paths.
- Consolidated documentation into current runtime and testing guidance, removing
  obsolete design plans and review reports preserved in Git history.

## [3.6.1] - 2026-09-04

### Added

- Added persisted telemetry controls with project-over-global precedence while
  preserving environment and negative launch-flag opt-outs.
- Expanded anonymous telemetry to cover lifecycle outcomes, tool and command
  operations, setup and delivery failures, and closed error categories.
  Payloads use bounded counts and durations without prompts, outputs, raw
  errors, paths, or agent identifiers.
- Added Pi SDK support for native provider registrations, JSON-schema constrained
  sampling, session usage totals, and completion deferral during UI prompts.

### Changed

- Development fixtures now use Pi 0.85.0; minimum supported Pi remains 0.80.6.
  Declared the Pi server peer needed by newer SDK installations.
- Manual result collection now syncs a private consumption receipt before
  returning output. A writable receipt ledger is required; storage failures
  report an error and retain results for retry. Historical session receipts
  remain compatible.

### Fixed

- Interactive cancellation attempts pane teardown even when recording the
  cancellation fails, including descendant and fresh-session cleanup.
- Consumption recovery no longer accepts Pi's memory-only entries or unsynced
  ledger writes after storage failures.
- Cancelled workflow children stop schema retries and report cancellation.
- Invalid project max-depth settings fall back to the global value or default.
- Herdr capture widens bounded reads when blank viewport rows hide recent output.
- Terminal cancellation tests verify recovery by completing a subsequent turn.

## [3.6.0] - 2026-09-02

### Added

- Added optional persisted extension settings: project-level max-depth values
  take precedence over global values, activity-list hiding persists globally
  only, and malformed persisted values are ignored without failing startup.
- Added default-on anonymous lifecycle telemetry with personless, bounded events,
  documented opt-outs, and no prompt or output content.
- Interactive sub-agents and process-backed workflow agents now support Herdr
  alongside tmux and Zellij, including pane creation, messaging, focus,
  bounded capture, alias-aware liveness and cancellation, stable direct attach,
  and reload-safe socket targeting. Herdr activity remains unknown when no
  attached-client proof is available.

### Changed

- Workflow children now bind their real orchestration depth (1) instead of 0, so an in-process spawn chain started under a workflow agent has one fewer nesting level available before `SUBAGENTURA_MAX_ORCHESTRATION_DEPTH` refuses it. Previously a workflow grandchild reported the same depth as its parent and never counted against the cap. Direct workflow children are unaffected.

## [3.5.0] - 2026-08-30

### Added

- Added `--subagentura-max-depth` and `--subagentura-hide-agent-list` settings for Orchestratorv2 lineage and compact activity-widget control.
- Added pane-activity detection and targeted Orchestratorv2 child guidance so tools that may wait for user input can tell whether their pane currently has attention.
- Added adaptive supervisor-popup and activity-widget grids, including top-to-bottom keyboard navigation across grid columns.
- Added grouped-completion progress, running sub-agent counts in the footer, and recipient labels for orchestrator follow-up turns.

### Changed

- Workflow output budgets now default to the finite `100_000_000_000` completed output tokens. This is a high safety ceiling with significant cost/runtime risk; existing explicit overrides and independent safeguards are unchanged.
- The minimum supported Node.js runtime is now 22.23.2, the current Node 22 LTS patch.
- Direct Orchestratorv2 children now continue user-attention calls locally when their pane is active and route inactive or unknown decisions through the parent.

### Fixed

- Tightened prompt-only Orchestratorv2 route matching and capped root lineage at the configured depth.
- Quieted directly aborted child turns and preserved orchestrator footer identity across updates.
- Scoped agent-list hiding to compact activity rows and prevented mid-session setting changes from altering the active lineage limit.

## [3.4.2] - 2026-08-28

### Added

- Added an annotated Orchestratorv2 thin-router walkthrough showing a parent session creating a child session and that child coordinating two interactive specialists.
- Added credit and replay links for [vibe-replay](https://github.com/tuo-lei/vibe-replay).

## [3.4.0] - 2026-08-27

### Added

- Promoted `--orchestratorv2` as a routing-first interactive mode. Its prompt
  guides the parent to route work to attachable interactive subagents, ask for
  clarification when a request is ambiguous, and leave
  specialist work to those children. Compatibility workflow and in-process tools
  remain registered; this is prompt guidance rather than an enforced boundary.
- Orchestratorv2 routing now treats the current parent branch as the sole authority ledger and the project-local JSON file as repairable untrusted cache data, preventing child-written records from becoming actionable, consuming authority capacity, blocking approved writes, or hiding authoritative stale records.
- Idle Orchestratorv2 completions now use process-global, run-bound durable wake state with bounded prompt and acknowledgement retries, exact settled-run acknowledgement, and session-replacement recovery without changing delivery behavior in other modes.
- Explicit `completionPolicy: "each" | "group"` coordination for asynchronous sub-agents and background workflows, with caller-declared bounded `completionGroupId` barriers, human-input priority, manual-result consumption, and compact reference manifests. Relatedness is never inferred from same-turn launch or task text.
- Deterministic, reconciled TUI completion entries for parent-visible standalone and background workflow aggregate `done`, `error`, and `cancelled` outcomes; workflow-owned child turns remain suppressed and entries are excluded from parent LLM context.

### Changed

- Asynchronous completion now defaults to coordinated `each` delivery: each terminal result is immediately eligible, while results that finish while the parent is busy coalesce into one safe-idle compact continuation without injecting full child output.
- Explicit `group` completion seals when the spawning parent turn settles and releases one aggregate manifest only after every caller-registered member is terminal; `done`, `error`, and `cancelled` all satisfy the barrier. An entirely consumed group creates no empty continuation, and workflow-owned children remain suppressed in favor of the background workflow aggregate.
- Documented the durability boundary: interactive artifacts, routing state, pending
  deliveries, and receipts persist and rehydrate within the matching parent
  session. Delivery is bounded and at-least-once; in-process jobs and background
  workflows remain session scoped.
- Consumption receipts prefer parent-session entries. When `appendEntry` is unavailable or fails, receipts append losslessly to a private, session-scoped append-only ledger keyed by parent session identity; fixed snapshots and bounded streaming reads preserve memory bounds while retaining late-published receipts.
- Completion-consumption selectors now use explicit source variants: interactive turn receipts require `turnId`, source-level interactive receipts use `scope: "source"`, and in-process/workflow receipts remain source-scoped. Legacy interactive receipts without `scope` are migrated safely without matching turn-scoped completions.

### Fixed

- Durable TUI completion notice writes retry without duplicating append-then-throw entries or spinning during persistent storage failure; parent manifests wait for notice persistence and each terminal record has one logical notice.
- Accepted long workflow names are truncated only in bounded completion labels, preserving workflow IDs and completion delivery.
- Protocol-v2 Pi turn IDs up to 256 characters remain intact in notices, immutable retrieval selectors, and consumption receipts.

### Known limitations

- The private fallback consumption ledger is session-scoped and append-only. It has no fixed disk-size bound during a prolonged parent-session-entry outage; truncation could resurrect results already collected when parent entries become available again. Readers use fixed snapshots and bounded chunks/line buffers, and later snapshots reconcile late-published receipts without repeated whole-file scans. Session cleanup does not truncate or delete these private ledgers; same-session reload, resume, or restart can reconcile them, while `new` and `fork` do not import prior completion work and old files may remain on disk.
- A successful Pi `sendMessage()` proves synchronous dispatch, not durable session commit. A crash in that separate parent-delivery window can replay a manifest; parent-model delivery is therefore at-least-once, not exactly once.

### Deprecated

- `notifyOnComplete` and `triggerTurnOnComplete` remain accepted as compatibility inputs that map to coordinated `each` delivery. They cannot be combined with `completionPolicy` or `completionGroupId`; full-output legacy injection is no longer selectable by new API calls.

## [3.3.1] - 2026-08-25

### Fixed

- Interactive sub-agents now survive parent reload, resume, and quit continuity without becoming orphaned, while new and fork sessions still clean up prior ownership and descendant spawn-tree authority remains explicit and bounded ([#97](https://github.com/lmn451/pi-subagentura/pull/97)).
- High-concurrency sub-agent workloads reduce parent input lag by coalescing artifact, delivery, multiplexer, and workflow-worker hot paths ([#96](https://github.com/lmn451/pi-subagentura/pull/96)).
- The default workflow wall-clock timeout is 100 hours instead of 30 minutes, preventing long-running workflows from terminating unexpectedly.
- Session lifecycle failures use the opt-in debug logger instead of writing through the host console, avoiding Pi TUI corruption.

### Known limitations

- Descendant lineage bootstrap credentials expire 60 seconds after creation; delayed child startup leaves the pane usable but recursive interactive spawning unavailable for that session until the child is respawned or started fresh.

## [3.3.0] - 2026-08-05

### Added

- Workflow status, results, footers, widgets, trees, and supervisor views now share canonical input, output, cache-read, cache-write, and cost displays, with symbolic and ASCII forms ([#79](https://github.com/lmn451/pi-subagentura/pull/79)).
- Pricing provenance now distinguishes provider-priced, estimated, unavailable, and mixed usage, rendering `$?` instead of a misleading `$0` when a reliable price is unavailable ([#79](https://github.com/lmn451/pi-subagentura/pull/79)).

### Changed

- Output-token budgets are unchanged and now appear consistently alongside output usage, separate from total and cache usage, including in budget-exhaustion messages ([#81](https://github.com/lmn451/pi-subagentura/issues/81), [#80](https://github.com/lmn451/pi-subagentura/pull/80)).

### Fixed

- Workflow aggregates and per-agent records retain accounting from rejected, retried, cancelled, and terminal attempts, enforce output budgets across every attempt, and preserve meaningful live usage when terminal samples are empty ([#80](https://github.com/lmn451/pi-subagentura/pull/80)).
- Terminal workflow failures preserve the triggering cause while active children are cancelled and drained, including their latest available usage ([#80](https://github.com/lmn451/pi-subagentura/pull/80)).

## [3.2.0] - 2026-07-31

### Fixed

- Concurrent parent sessions now keep in-process jobs, interactive sub-agents, delivery queues, streaming state, supervisor actions, and shutdown cleanup isolated by exact session generation.

### Added

- Structured workflow outputs with schema validation, reusable TypeScript declarations at `pi-subagentura/workflow`, immutable `cwd`, explicit phase metadata, and bounded workflow-tree agent records.
- Session-scoped ownership for background workflows, in-process jobs, interactive delivery, cancellation, status surfaces, and multi-owner artifact polling.
- npm release publishing to GitHub Packages alongside the public npm registry.

### Changed

- In-process sub-agent calls now run asynchronously by default; pass `async: false` for a single blocking call.
- `get_subagent_result` returns live state by default and supports explicit bounded waiting with `wait` and `timeoutMs`.
- In 3.2.0, interactive pointer completions began triggering a parent turn by default; `triggerTurnOnComplete: false` persisted without waking the parent. This historical default is superseded by the coordinated behavior in Unreleased.

### Fixed

- Completion delivery and workflow notifications no longer cross parent-session, reload, nested-context, or stale-generation boundaries.
- Oversized and partial artifact/session records remain memory-bounded without silently losing completion identity or advancing stale cursors.
- Cancellation propagates through nested orchestration, drains workflow receipts, and suppresses late completion after parent shutdown.
- Published-tarball validation now checks runtime imports, worker assets, declared dependencies, and a clean production consumer install.

## [3.0.3] - 2026-07-19

### Added

- A first-class reusable-workflow guide, user-command reference, and agent-facing tool reference.
- Workflow examples and the bundled RALPLAN skill in the published npm tarball, guarded by parser, behavior, README-surface, and tarball regression tests.

### Changed

- README positioning now leads with parent-orchestrated workflows, bring-your-own agents and prompts, interactive child sessions, and reusable workflows.
- Package description and discovery keywords now cover interactive subagents, orchestration, workflows, tmux, and Zellij.
- Bundled workflow scripts now live under `examples/workflows/` with an index and usage guide.

## [3.0.2] - 2026-07-17

### Added

- Per-agent `thinkingLevel` controls for synchronous, asynchronous, interactive, and workflow sub-agents.
- Foreground and global cancellation controls, including `ctrl+alt+x`, `/cancel-all-flows`, and abort-aware result waits.
- Default-off cancellation context snapshots with bounded private artifacts and workflow receipt reporting.
- Complete workflow usage accounting across nested agents, retries, failures, status, and completion notifications.

### Changed

- Pi peer compatibility now starts at `>=0.80.6` without blocking future releases; CI verifies both the minimum and latest SDKs.
- Interactive pane-liveness probes are asynchronous so slow mux commands do not block artifact polling.
- Triggering completions use Pi's native follow-up queue while non-triggering delivery preserves idle-only semantics.

### Fixed

- Workflow process agents recognize protocol-v2 completions for the current turn without reusing stale output.
- Completion delivery avoids stale streaming-state delays and duplicate queued follow-ups.
- Cancellation suppresses redundant completion notifications and reliably reports asynchronous snapshot receipts.

## [3.0.1] - 2026-07-16

### Added

- Added a `d` shortcut to delete the selected workflow from the `/workflows` picker.

## [3.0.0] - 2026-07-16

### Breaking

- **3.0.0 changed async sub-agents to inject by default.** At that release, `subagent_with_context` and `subagent_isolated` with `async: true` defaulted to `notifyOnComplete: "inject"`; `"notify"` persisted a pointer-only completion. This historical default is superseded by the coordinated behavior in Unreleased.

### Added

- Appendable parent-orchestrator guidance with routing defaults for scouting, planning, review loops, and oracle checks.
- Workflow tool modularization: split runtime into `workflow-core`, `workflow-worker`, `workflow-jobs`, `workflow-tool`, and `workflow-ui`.
- Workflow progress exposes `runningCount` and model visibility; workflow timeout aborts in-flight agents.
- CI coverage thresholds (`npm run coverage:check`) and branch preview release workflow.
- Extensive test coverage for rendering, schemas, and in-process tools.

### Fixed

- Poller skips duplicate inject when a late explicit `done` arrives after auto-done synthesis.
- Interactive sub-agent launch aborts and kills the pane when persisted state cannot be written.
- Workflow `runningCount` decremented on agent failure; timeout propagates abort to in-flight work.
- Shared workflow script parsing (`workflow-script.mjs`) used by main thread and worker thread.

[Unreleased]: https://github.com/lmn451/pi-subagentura/compare/v4.1.0...HEAD
[4.1.0]: https://github.com/lmn451/pi-subagentura/compare/v4.0.1...v4.1.0
[4.0.1]: https://github.com/lmn451/pi-subagentura/compare/v4.0.0...v4.0.1
[4.0.0]: https://github.com/lmn451/pi-subagentura/compare/v3.6.5...v4.0.0
[3.6.5]: https://github.com/lmn451/pi-subagentura/compare/v3.6.4...v3.6.5
[3.6.2]: https://github.com/lmn451/pi-subagentura/compare/v3.6.1...v3.6.2
[3.6.1]: https://github.com/lmn451/pi-subagentura/compare/v3.6.0...v3.6.1
[3.6.0]: https://github.com/lmn451/pi-subagentura/compare/v3.5.0...v3.6.0
[3.5.0]: https://github.com/lmn451/pi-subagentura/compare/v3.4.2...v3.5.0
[3.4.2]: https://github.com/lmn451/pi-subagentura/compare/v3.4.0...v3.4.2
[3.4.0]: https://github.com/lmn451/pi-subagentura/compare/v3.3.1...v3.4.0
[3.3.1]: https://github.com/lmn451/pi-subagentura/compare/v3.3.0...v3.3.1
[3.3.0]: https://github.com/lmn451/pi-subagentura/compare/v3.2.0...v3.3.0
[3.2.0]: https://github.com/lmn451/pi-subagentura/compare/v3.1.0...v3.2.0
[3.1.0]: https://github.com/lmn451/pi-subagentura/compare/v3.0.3...v3.1.0
[3.0.3]: https://github.com/lmn451/pi-subagentura/compare/v3.0.2...v3.0.3
[3.0.2]: https://github.com/lmn451/pi-subagentura/compare/v3.0.1...v3.0.2
[3.0.1]: https://github.com/lmn451/pi-subagentura/compare/v3.0.0...v3.0.1
[3.0.0]: https://github.com/lmn451/pi-subagentura/compare/v2.3.3...v3.0.0
