Changelog
Source-verified 1.2.1 hardening for snapshot detail, MCP serialization/errors, workspace discovery and journaled apply, with historical release context.
These docs describe published 1.2.1 / schema 1.4. The upstream changelog has the full release narrative; this summary is scoped to verified runtime behavior, not every broad promise in those notes.
1.2.1 — October 11, 2026
Section titled “1.2.1 — October 11, 2026”The tool count remains 13, native check schema 1.4, and Node floor 22.12.0. This patch changes contracts that clients should review:
- Explicit detail lookup:
get_issue_detailrequirescheckId; no mutable latest-issue/check fields in handler context. Stored snapshots are deep-cloned/frozen and retrieved copies are detached. Check IDs are still content-derived, not unique invocations. - JSON fallback: both/structured first text mirrors the structured object, including the issue-detail wrapper. Structured mode adds a second user-facing summary and is larger than both on the audited fixtures. Literal-pong remains an exception; text-only detail stays an array.
- Classified thrown failures: engine/provider errors carry actionable classification and sanitized wire messages. Ordinary settled engine failures, other refusal paths and local stderr retain their separate behavior. Do not infer universal secret redaction or per-return server-side Ajv validation.
- Workspace hardening: real YAML parsing, common recursive/include/negative patterns, canonical directories/references and better local dependency edges. Strict rejects graph cycles; the remaining glob/semver/root-compiler limits are documented.
- Safer explicit apply: path/hash preflight, adjacent temp-file replacement and in-memory reverse rollback journal. Optional explicit baseline is validated before writes; unknown/expired baselines refuse without consuming active preparation. Omitted baseline requests no delta.
- Release checks: upstream action SHAs are pinned, metadata/tarball checks precede publishing, and the development lockfile upgrades Vitest for advisories. The independent production/development audits reported zero known advisories on October 13.
Multi-file atomicity, persistent crash recovery, complete compiler/glob semantics and every schema-failure path are not certified. Read the current guides/limits rather than copying broad upstream closure labels.
1.2.0 — October 10, 2026
Section titled “1.2.0 — October 10, 2026”The following is historical release context; 1.2.1’s detail/serialization/storage/apply semantics above supersede the original behavior.
The native check schema remains 1.4; the MCP catalog expands from 5 to 13 tools.
- Package-derived MCP initialize version fixes the old hardcoded metadata. Unknown tools/non-object argument containers now throw protocol
-32602; other caught input/path refusals remain tool results. SIGNALINT_STATE_DIRredirects supported cache/session/normal TypeScript build-info paths.- Adds retained snapshots,
get_diagnostic_snapshot,compare_diagnosticsandafter_edit_check, with coarse check progress and native cancellation propagation. - Adds hook preview/install/run and four runtime event emitters; host compatibility and policy gaps remain explicit.
- Adds opt-in pnpm workspace discovery, dependency/reference planning, per-project TypeScript partitions and supplied dependency-directory fingerprints.
- Adds caller-supplied LSP ingestion/live queries and library report normalizers for Ruff, Mypy, Cargo/Clippy and golangci-lint. No new external-language subprocess engines or editor subscription is launched.
- Adds caller-provided full-file preview, explicit apply and discard. Apply writes source, uses sequential writes/best-effort rollback, and does not undo successful writes after failed verification.
These capabilities are not blanket guarantees of immutable snapshots, complete workspace discovery, clean-project hooks or filesystem-atomic apply. Independent probes found coverage/identity/buffer/transaction limits. Read snapshots, hooks, monorepos, live diagnostics, transactions and known limitations.
1.1.2 — October 8, 2026
Section titled “1.1.2 — October 8, 2026”- Sets SQLite
busy_timeout = 5000to wait for lock contention. This reduces immediate lock failures; it does not guarantee success when a lock lasts longer than the wait. - Isolates cache fixtures and adds cleanup retries/test timeout changes for Windows testing.
1.1.1 — October 8, 2026
Section titled “1.1.1 — October 8, 2026”- Dispatches recognized CLI verbs from
signalint-mcp, including doctor, check, stats, help, and version. - A bare interactive TTY launch prints actionable guidance and exits
2instead of starting a waiting stdio server. - Normal non-TTY MCP startup remains supported.
Use CLI reference for exact command behavior.
1.1.0 — October 8, 2026
Section titled “1.1.0 — October 8, 2026”Schema 1.4 and bounded output
Section titled “Schema 1.4 and bounded output”- Groups of 2+ same-rule issues become clusters; single occurrences and overflow groups use flat
remainingIssues. - Returns up to 10 clusters and 100 flat records, with
omittedIssueCount,truncated, and guidance when needed. This is not pagination or a fixed-byte guarantee. - Uses 12-character summary issue prefixes, extended for different full hashes sharing a prefix. Full detail hashes remain supported; equal full hashes and prefix ambiguity are still documented.
- Minifies normal MCP JSON text, omits inactive warning fields, omits message-less disabled engine entries where possible, and trims unnecessary cluster fields.
- Adds optional compact check keys (
--compact,SIGNALINT_COMPACT=1), which also omit the check root.
Scoped file results and TypeScript cache
Section titled “Scoped file results and TypeScript cache”check_filesnow filters returned diagnostics to requested paths, with filtered-count aliases and project-check guidance.- Adds a sorted source-file size/mtime fingerprint to TypeScript cache state. This catches some unrequested source changes, not every compiler dependency/configuration or same-size/restored-mtime edit.
MCP modes and package setup
Section titled “MCP modes and package setup”- Adds
both,text, andstructuredpayload modes, selected by environment/config. Host compatibility must be verified; structured-mode summaries and compact keys have a current combination caveat. - Reclassifies Oxlint and TypeScript as optional peers, so a default install no longer supplies those toolchains. Biome remains optional; ESLint is project-local.
- Adds missing-tool guidance to init/doctor. Doctor now inspects ESLint and reports payload mode, but still does not fully validate configuration or a client connection.
- Adds
stats --json, benchmark-mode tooling.
Read installation, schema, payload modes, and limitations before upgrading a 1.0 consumer.
1.0.0 — October 6, 2026
Section titled “1.0.0 — October 6, 2026”First stable release. Requires Node >=22.12, uses built-in SQLite, adds flat-config ESLint, introduces schema 1.3 with project-root/status/checksum context, and adds the seven-client setup registry. Structured loop/churn warnings were retained from the 0.4 line, not invented in this release.
The 1.0 edition had required Oxlint/TypeScript runtime dependencies and different cluster-cap behavior. Its historical audit is not presented as current 1.2.1 semantics.
Earlier 0.4 releases
Section titled “Earlier 0.4 releases”- 0.4.2: bounded TypeScript config-chain hashing and process-lifetime
--showConfiginspection cache. - 0.4.1: shared MCP tool annotations.
- 0.4.0: independent file-rule churn detection and schema 1.2 warning fields.
Source and releases
Section titled “Source and releases”The audited main and dereferenced annotated v1.2.1 tag both identify 6327008dbfdfa7112254dd89e330c7df97090575. Registry SHA512/SHA1 were verified and all 75 published runtime JavaScript files byte-match this source build. Upstream tests: 340 passed / 47 files; those counts do not replace independent runtime probes or establish universal guarantees.