5.1.9 (2026-08-19)
- condense scope sections and move them below the usage material (#775) (99f5829)
- pi-autoformat: document scope and non-goals (#775) (25aa5cc)
5.1.8 (2026-07-29)
5.1.7 (2026-07-19)
5.1.6 (2026-06-22)
5.1.5 (2026-06-12)
5.1.4 (2026-06-03)
- standardize and correct package READMEs (4c270ad)
5.1.3 (2026-05-26)
- resolve pre-existing lint errors in pi-autoformat and pi-permission-system (68fd516)
5.1.2 (2026-05-25)
5.1.1 (2026-05-25)
- use pi-autoformat tag in status key and status line (#202) (dd7ce59)
- use pi-autoformat tag in steering message prefixes (#202) (fa1ab2d)
- plan consistent pi-autoformat message tags (#202) (ef1d36f)
- retro: add planning stage notes for issue #202 (fdbc65b)
- retro: add TDD stage notes for issue #202 (632cd50)
5.1.0 (2026-05-24)
- add eslint config with type-aware rules and import enforcement (4fb3cc6)
5.0.4 (2026-05-23)
5.0.3 (2026-05-23)
- resolve fallow dead-code warnings (2113f6b)
5.0.2 (2026-05-19)
- enforce one-sentence-per-line across all markdown files (a533869)
5.0.1 (2026-05-19)
5.0.0 (2026-05-19)
- All @earendil-works/pi-* peerDependencies and devDependencies now require >=0.75.0, aligning with Pi's Node 22 minimum.
- Minimum supported Node.js version is now >=22, aligning with Pi v0.75.0. tsconfig target raised from ES2023 to ES2024.
- ES2024 APIs (Promise.withResolvers, Object.groupBy, Map.groupBy, Array.fromAsync) are now allowed.
- @types/node catalog aligned to ^22.15.3.
- pi-autoformat now declares engines.node for consistency.
- raise minimum Node.js version to 22 and bump tsconfig target to ES2024 (98a5b01)
- raise minimum Pi dependency to v0.75.0 (1068329)
- increase acceptance test timeout to avoid CI flakiness (#67) (50c839c)
- unquote rumdl globs so shell expands them (3b13a20)
4.0.6 (2026-05-17)
- restore per-package lint:md and lint scripts (0e42617)
- use root markdownlint config from all packages (30192f8)
- add redirect AGENTS.md to each package subdirectory (cbdcd29)
- consolidate configs into monorepo root (8583eaf)
- remove per-package pi-autoformat configs (b2d405a)
- replace markdownlint-cli2 with rumdl (d8dc789)
- update package.json URLs to monorepo (b92dbfa)
4.0.5 (2026-05-15)
- expand tilde in file paths before resolving against cwd (2697ad3)
- add Configuration section to README (f22f9c8)
4.0.4 (2026-05-08)
- migrate to @earendil-works pi packages and upgrade pnpm to 11.0.8 (519179d)
4.0.3 (2026-05-06)
- add repository URL for OIDC provenance publishing (4b5335e)
4.0.2 (2026-05-06)
- update dependencies (8e59b6c)
4.0.1 (2026-05-06)
- add logo to README (8044f45)
4.0.0 (2026-05-03)
- The agent_end follow-up turn mechanism has been removed. Formatting notifications are now delivered inline as steering messages between turns.
- notifyAgent is no longer accepted in the configuration schema. The extension now notifies via steering messages at turn end.
- notifyAgent config field has been removed. The extension now notifies via steering messages at turn end.
- add buildSteeringMessageContent helper (#31) (e0e7d86)
- add pi-extension-lifecycle skill with turn/tool model reference (#31) (a136bc6)
- detect content changes in flushPrompt (#31) (65c735d)
- flush formatters at turn_end (#31) (6b27a78)
- include failure details in steering notification (#31) (28109a6)
- remove notifyAgent config field (#31) (d5b1d0c)
- remove notifyAgent from schema (#31) (c936148)
- replace agent_end follow-up with turn-end steering (#31) (8e2e7bb)
- send steering notification after turn-end formatting (#31) (aa18c6d)
- add plan for pre-commit flush (#31) (2ffd469)
- add table separator spacing rule to AGENTS.md (b3076e8)
- document turn-end formatting and steering notifications (#31) (2fc6bf5)
- plan turn-end flush with change detection (#31) (a4429a8)
- remove --fix flags from prek hooks (a9664a2)
3.0.1 (2026-05-02)
- remove default formatter chains to prevent unwanted formatting (48f690e)
- update README and configuration for no default chains (6e7015b)
3.0.0 (2026-05-02)
- Removed formatMode branching from the extension runtime. The tool_result handler no longer conditionally flushes. The agent_end handler always flushes. The session_shutdown handler no longer conditionally flushes. Tests for tool and session mode behaviors have been removed.
- The formatMode property has been removed from the JSON schema. Existing configs with formatMode will fail schema validation but the config loader still tolerates the key with a deprecation notice.
- The formatMode config field has been removed. The runtime always uses prompt-end formatting (the previous "prompt" behavior). The config loader tolerates the legacy key, emits a config issue, and discards the value.
- add buildNotifyMessageContent helper (#27) (74d8451)
- add notifyAgent config field (#27) (f660c84)
- always use prompt-end formatting (#27) (991d0c8)
- emit config issue for legacy formatMode key (#27) (98f51e9)
- include formatter failures in follow-up message (#27) (fe41c38)
- remove formatMode config field (#27) (d5b4484)
- remove formatMode from config schema (#27) (bb970f1)
- send follow-up turn after formatting (#27) (ff4b6bd)
- backport prompt template improvements from pi-permission-system (59e35f3)
- document notifyAgent and remove formatMode docs (#27) (d4b8f24)
- plan format-before-exit follow-up turn (#27) (85eb70d)
- plan format-before-exit follow-up turn (#27) (626a8fd)
2.4.2 (2026-05-02)
- drop stale v1 framing from configuration reference (5e6d765)
- slim README and link to configuration reference (a5bbec0)
2.4.1 (2026-05-02)
2.4.0 (2026-05-02)
- accept built-in names in chains validation (e96d346)
- allow wildcard chain key in schema (a11d4b3)
- build treefmt and treefmt-nix invocations (cc1f32a)
- discover treefmt and treefmt-nix config roots (53141d2)
- dispatch wildcard chain before per-extension chains (07758b0)
- group files by wildcard chain first (c15b4d2)
- parse treefmt skip patterns (973f7e4)
- partition built-in batches by handled set (08f8016)
- prefer treefmt-nix over treefmt at same root (c3625f3)
- register treefmt and treefmt-nix as built-in formatters (7e53dfb)
- document built-in treefmt and treefmt-nix support (82d3511)
- plan built-in treefmt and treefmt-nix support (#15) (2ce1706)
2.3.2 (2026-05-02)
- document acceptance-test layout and pi binary resolution (38f95fe)
- plan expanded acceptance test coverage (#10) (382fbfc)
- resolve pi from node_modules in acceptance plan (#10) (e262805)
- retro: add retro notes for issue #22 (b0464d8)
2.3.1 (2026-05-02)
- plan adopting pi-coding-agent types (#22) (d06f43c)
- retro: add retro notes for issue #2 (9e1ebd6)
- retro: revert pi-mono pointer in favor of issue #22 (3289595)
- add pi-coding-agent for runtime types (2d93a5e)
2.3.0 (2026-05-02)
- add formatter run output trimming helper (4263a78)
- add formatterOutput config object with safe defaults (c0a88e2)
- surface failed formatter output in reports (768bf2a)
- surface formatterOutput in the JSON schema (15cbfef)
- preserve theme this binding when coloring the status line (6a6ec16)
- apply autoformat to plan 0016 (04677ee)
- document the formatterOutput failure reporting option (6cb70c6)
- plan optional detailed formatter output on failure (#2) (a2d466e)
- retro: add retro notes for issue #1 (031cde3)
- update pi-autoformat config (5759bf6)
2.2.0 (2026-05-02)
- add /retro slash command for end-of-flow retrospectives (09a50ed)
- clear autoformat status on session lifecycle boundaries (4834d45)
- keep failure notifications and add persistent failure status (9ece2b8)
- render formatter success summaries in the footer status (2a37b1b)
- respect hideSummariesInTui for footer status (3cf8548)
- add frontmatter convention to plans and retros (2648129)
- describe footer-status formatter summaries (1df2550)
- plan richer TUI formatter summaries via footer status (#1) (a50fba9)
- retro: add retro notes for issue #13 (9591d5a)
2.1.0 (2026-05-01)
- add PATH probe with per-flush cache (aa97aa7)
- allow fallback chain steps in schema (535190e)
- dispatch fallback chain steps (a263778)
- resolve fallback chain steps (6daed75)
- share PATH probe cache across flush (8d0af4d)
- support fallback steps in chain grouping (f07acc5)
- surface fallback context in flush reporting (2159cfb)
- surface unknown formatter names in chains as config issues (f46f7af)
- validate fallback chain steps in config loader (ec52a14)
- document deprecation pattern for removed config fields (988ae7b)
- document fallback chain steps and project-config recommendation (3bbc846)
- plan fallback chain step type (#13) (83df5ff)
- prompts: renumber ship-issue steps to 1-based indexing (3f37ba6)
- prompts: require clean git pull --ff-only before plan/tdd/ship (22cfe92)
2.0.0 (2026-05-01)
formatterDefinition.extensionsis no longer declared in schemas/pi-autoformat.schema.json. Editor validators will flag staleextensionskeys as unknown properties. The runtime loader still tolerates them with a deprecation notice.FormatterDefinition.extensionshas been removed from the public TypeScript type and from built-in defaults. Code that reads or writes that field must be updated. On-disk configs are tolerated with a deprecation notice.
- drop extensions field from FormatterDefinition and loader (3fd791e)
- drop extensions from pi-autoformat JSON schema (018c1a7)
- add issue-driven workflow prompt templates (14295be)
- adopt one-sentence-per-line and code-fence language conventions (544fc68)
- plan removing unused formatter extensions field (#12) (fe0b6bd)
- reflow markdown to one sentence per line (49bdefb)
- remove formatter extensions field and note deprecation (ddc54cd)
- add npm keywords including pi-package for registry (aee15c0)
1.0.0 (2026-05-01)
- removes resolveFormatterChainForFile, executeFormatterChain, and FormatterExecutionResult. Default formatter commands no longer include $FILE; the schema rejects $FILE in formatter command arguments.
- failure summaries are now grouped per batch instead of per file (one line per failed batch listing the files it ran against).
- PromptAutoformatterResult now exposes groups[] instead of files[]; each group runs its chain once with all files appended.
- $FILE substitution is no longer supported. File paths are appended to the command automatically by the batch executor.
- add resolveChain for name-based formatter resolution (b67dbc3)
- batch-dispatch chain steps via executeChainGroup (83a6627)
- drop $FILE substitution and per-file dispatch path (d26f825)
- group touched files by chain identity (6a8832b)
- reject $FILE in formatter commands (3865b34)
- report formatter results per batch (d16d7b1)
- switch PromptAutoformatter to group-based batch dispatch (42845ee)
- document batch-by-default formatter dispatch (1e363d2)
- plan batch-by-default formatter dispatch (#14) (ce330cd)
0.4.0 (2026-05-01)
- config: add customMutationTools and eventBusMutationChannel schema (f2a3ac4)
- extract touched paths from declared custom tool inputs (665aaed)
- subscribe to EventBus channel for peer-emitted touched files (8986535)
- wire customMutationTools into default autoformatter (638f203)
- add plan for additional Pi mutation tools (5c3fb35)
- capture design philosophy in AGENTS.md and README design goals (e318d1b)
- document customMutationTools and eventBusMutationChannel (5cc7c71)
0.3.1 (2026-04-29)
- do not bypass realpath escape check via lexical path in scope test (89bbae5)
- pass typecheck for AutoformatConfig and TestPi in tests (f6e57b1)
0.3.0 (2026-04-29)
- add format scope filter with repo-root default and cwd fallback (aa5449b)
- detect file mutations from shell commands (opt-in) (3d06d48)
- add plan for shell-driven mutation coverage (3784e7c)
0.2.0 (2026-04-29)
- add default formatter config with user overrides (9d0d458)
- add extension-owned config loader (cca9655)
- add prompt-end autoformatter orchestration (4bbacba)
- add touched-file queue with prompt-flush semantics (b6cdec0)
- execute formatter chains sequentially with non-blocking failures (869a8b9)
- polish autoformat reporting (f480c44)
- require explicit formatter chains (2eda3a4)
- resolve formatter chains from config registry (b28eeec)
- wire autoformatting into pi lifecycle (786f0f5)