|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to Squire will be documented in this file. |
| 4 | + |
| 5 | +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). |
| 6 | + |
| 7 | +The v1.0 public API surface (everything exported from `src/index.ts`) is frozen. Additive changes ship on the v1.x line as minor bumps. Breaking changes wait for v2.0. |
| 8 | + |
| 9 | +## [Unreleased] |
| 10 | + |
| 11 | +### Added |
| 12 | +- `SECURITY.md` with private vulnerability reporting path. |
| 13 | +- CI matrix across Ubuntu, macOS, and Windows on Node 20 and 22, plus a dedicated coverage job. |
| 14 | +- `scripts/check-no-openwar-imports.mjs` enforcing zero coupling between Squire's `src/` and OpenWar. |
| 15 | +- `ej_identifier` blocklist in `scripts/check-sanity.mjs` catching internal-project leakage beyond the generic personal-data patterns. |
| 16 | +- Expanded `.gitignore` covering `.env*`, cookie files, local fixture overrides, and editor/OS artifacts. |
| 17 | + |
| 18 | +### Fixed |
| 19 | +- `scripts/check-sanity.mjs` `SELF` resolution now uses `fileURLToPath` for cross-platform correctness. The previous URL-pathname hack worked on Windows by accident but failed on Linux and macOS. |
| 20 | + |
| 21 | +### Changed |
| 22 | +- README rewritten with natural-voice intro covering the spawn-pain problem, Squire's role, the tool-not-framework positioning, and the subscription-auth angle. |
| 23 | +- README logo switched to the transparent variant for theme compatibility. |
| 24 | + |
| 25 | +## [1.0.0] - 2026-05-18 |
| 26 | + |
| 27 | +### Added |
| 28 | +- Initial public release. |
| 29 | +- `Squire` class managing one child-process lifecycle: `start()`, `send()`, `stop()`, plus `pid`. |
| 30 | +- Cross-platform `child_process.spawn` wrapper with Windows `.cmd` / `.bat` / extensionless-binary handling. POSIX never uses a shell; Windows auto-detects via `needsShell()`. |
| 31 | +- `SquireEvent` discriminated union: `stdout`, `stderr`, `text_delta`, `message_start`, `message_stop`, `error`. |
| 32 | +- Built-in `text-stream` adapter. `text_delta` duplicates `stdout` in v1.0; per-CLI parsers are reserved for v1.1. |
| 33 | +- `SquireAdapter` public interface for consumers to register custom parsers via `registerSquireAdapter`. |
| 34 | +- MCP forwarding: pass inline `mcp.servers` (Squire writes a temp config) or `mcp.configPath` (Squire passes it through). `--mcp-config` flag defaults to the standard, overridable via `mcp.configFlag`. |
| 35 | +- Claude Code permission auto-setup: `autoSetup.claudeCode` merges `allowList` patterns into `~/.claude/settings.json` atomically. |
| 36 | +- `SquireError` with discriminated `code` field and `SquireAutoSetupError` carrying the offending settings path. |
| 37 | +- Full TypeScript types for every public surface. |
| 38 | +- 52 tests, 96.3% line coverage on `src/`. |
| 39 | +- Documentation: `README.md`, `docs/api.md`, `docs/openwar-integration.md`, `docs/contributing.md`. |
| 40 | + |
| 41 | +[Unreleased]: https://github.com/PythonLuvr/squire/compare/v1.0.0...HEAD |
| 42 | +[1.0.0]: https://github.com/PythonLuvr/squire/releases/tag/v1.0.0 |
0 commit comments