# Changelog

All notable changes to this project are documented in this file.

## [0.1.15] - 2026-05-09

### Fixed

- deduplicated WeCom live ingress requests by `req_id` before any context-side effects, so repeated callbacks no longer duplicate conversation events, memory refreshes, or shell execution.
- wrapped high-risk multi-write `ConversationContextStore` flows in transactions, preventing partial state when project binding, DM topic refresh, or candidate-memory confirmation fails mid-flow.
- hardened scheduled-task execution claims with per-run `claimToken` ownership checks plus in-flight lease renewal, reducing duplicate execution and stale worker finalize risk on long-running tasks.

## [0.1.14] - 2026-05-09

### Changed

- upgraded the grouped dependency set across the workspace, including `@mariozechner/pi-coding-agent` 0.73.1, `@clack/prompts` 1.3.0, `yaml` 2.8.4, `postcss` 8.5.14, and the docs app `lucide-react` 1.14.0.
- adapted the Pi runtime session bridge to the current `pi-coding-agent` SDK tool allowlist and resource-loader contract.
- stabilized managed-skill telemetry ordering for same-timestamp events, removing a flaky WeCom gateway release-gate failure in CI.
- made the dependency-review workflow skip cleanly when the repository configuration does not support GitHub dependency review.

## [0.1.13] - 2026-05-09

### Changed

- upgraded the workspace toolchain to `@types/node` 25.6 and `typescript` 6.0.3, keeping the docs app `lucide-react` dependency pinned to avoid lockfile drift.
- updated GitHub Actions runtimes and `github/codeql-action` to the current supported major versions.
- hardened TypeScript 6 compatibility in the monorepo by replacing deprecated `baseUrl` usage in the shared tsconfig, keeping cross-package path aliases working with an explicit repo-root `rootDir`, and adding docs-app asset module declarations for `mdx` and `css` imports.

## [0.1.12] - 2026-05-08

### Added

- `pianno history search` CLI support for searching WeCom conversation history from the ops console.
- WeCom skill governance commands and learning-loop review surfaces, including managed skill status, archive and restore, pin and unpin, and provenance audit paths.
- WeCom-first learning-loop roadmap documentation that translates Hermes-style skill and curator ideas into Pianno's authorized enterprise WeCom workflow.

### Changed

- hardened WeCom managed-skill lifecycle handling with stale tracking, archive candidates, duplicate-skill governance heuristics, and delayed governance-summary delivery.
- expanded context and skill-creator storage to support managed skill registry, learning candidates, review flows, and stronger audit metadata.
- simplified the published docs app to a default Fumadocs-style documentation site with `/` redirecting to `/docs` and only minimal example framing.

## [0.1.10] - 2026-04-28

### Fixed

- made update-notifier tests deterministic under GitHub Actions `CI=1`, unblocking npm publish workflow tests

## [0.1.9] - 2026-04-27

### Added

- interactive multi-select approval for `pianno pairing list` in TTY sessions, while preserving JSON output with `--json`
- Vercel-backed docs app scaffold and updated authorization/skills documentation

### Changed

- chat-created managed skills now default to `~/.pi/agent/skills` and accept `创建skill` aliases
- SQLite experimental warnings are filtered at direct `node:sqlite` load sites
- WeCom chat skill creation, direct-message policy, and ambient authorization paths are fail-closed and covered by tests

## [0.1.8] - 2026-04-20

### Added

- installed-package update notifier on bare `pianno` invocation, with cached npm version checks and changelog link output

### Changed

- narrowed the default operator help surface and moved advanced inspection/admin commands behind `pianno help --all`
- propagated `--disable-warning=ExperimentalWarning` through CLI-managed Node child processes and packaged release entrypoints

## [0.1.7] - 2026-04-19

### Added

- fail-closed rollout command `pianno rollout check --restart` for automated restart, readiness gating, and machine-readable release checks
- installed-package rollout smoke coverage that exercises the packaged CLI restart/readiness flow before npm publish

### Changed

- promoted `status --ready` and rollout gating into the operator docs, release runbook, and packaged npm README
- hardened the npm publish workflow so tag releases only publish after tests, install-level smoke, and main-branch ancestry checks pass
- switched the published npm package name to `@seqyuan/pianno` while keeping the installed CLI command as `pianno`

## [0.1.6] - 2026-04-15

### Fixed

- `pianno setup` no longer asks advanced auth fields during first-run setup, preserves existing allowlists, and prevents selecting `allowlist` without an existing `allowFrom`.
- live mode now reads WeCom bot credentials from `~/.config/pianno/config.yml` by default, while keeping environment variables as optional overrides.

### Changed

- documented `paths.defaultWorkspaceDir` as the fallback workspace for unbound group chats across the example config, README, usage guide, and docs site.
- documented in-chat scheduled task commands and delivery behavior across the README, usage guide, docs site, and generated npm README.
- stopped tracking generated `.release/npm` artifacts and ignored local `docs-vercel*` experiment directories.

## [0.1.1] - 2026-04-10

### Changed

- Unified managed skill path to `~/.pi/agent/skills` for WeCom chat-triggered skill workflows and pi runtime discovery.
- Simplified operator runtime control to user-facing `pianno restart`, `pianno stop`, and `pianno status`; kept `pianno live` as compatibility alias.
- Consolidated distribution and usage docs around install -> setup -> restart for non-coding Linux users.

## [0.1.0] - 2026-04-09

### Added

- First publishable npm release pipeline (`release:build`, `release:pack`, `release:smoke`).
- Enterprise WeCom memory workflow for candidate extraction, confirmation, conflict handling, and batch operations.
- Cross-turn candidate aggregation and ranking improvements for `todo`, `open_request`, `decision`, and `workflow`.
- Release preflight automation script (`release:preflight`) and CI workflow baseline.
- V1 release runbook, rollback procedure, and explicit scope-freeze documentation.

### Changed

- `记录本群记忆` and `记录项目记忆` now follow unified lifecycle (`candidate -> immediate confirm`) with conflict-safe behavior.

### Notes

- This is an internal-first V1 baseline with enterprise WeCom group-chat scenario as primary target.
