0.18.0 - 2026-09-04
Most people want the app
Validate CHAT files in a normal window, no terminal needed. Download the Chatter desktop app:
- Mac (Apple Silicon, M1/M2/M3/M4): Chatter_0.18.0_aarch64.dmg
- Mac (Intel): Chatter_0.18.0_x64.dmg
- Windows: Chatter_0.18.0_x64-setup.exe
Open the downloaded file and follow the prompt (on Mac, drag Chatter to Applications). Full instructions: https://talkbank.github.io/chatter/install/
The command-line tool, the language server, and per-platform downloads are below.
Release Notes
Changed
-
Warm development tests no longer scan unpacked macOS codegen objects.
The root and specification workspaces embed line-table debug information in
linked artifacts instead of retaining every.rcgu.o. This bounds the file
count in both target directories and removes filesystem enumeration from the
warm-test path while preserving source locations in diagnostics. Nine spec
generator commands are also excluded as empty libtest harnesses; their
library and integration tests remain in the suite. -
Breaking: validation returns owned evidence rather than a mutable phase marker.
ChatFileis no longer generic.validate_intoreturns
Result<ValidChatFile, ValidationFailure>; accepted payloads are read-only,
errors retain the rejected model, and unknown/recovered tier provenance cannot
pass.validate_with_policyrecords rules, alignment coverage and transcript
name.parse_validated_with_parseradditionally requires error-free source
parsing. Remove the oldNotValidated/Validated/ValidationStateimports
and consumeinto_unchecked()before editing an accepted document. Serialized
transcript fields remain unchanged.Required-validation compatibility APIs now use the same proof-producing
transition before returning an explicitly editable model. Their streaming
variants returnErrafter parse or validation failure even when the caller's
diagnostic sink discards messages. Merge preflight retainsValidChatFile
while reading the accepted reference and borrows its document for the merge. -
Breaking: utterance builders can retain an utterance comment.
UtteranceDescaddscomment: Option<ComTier>; Rust struct literals must
supply this field. A supplied comment is emitted as%com. A comment on an
empty utterance is rejected instead of being silently discarded. -
%pho,%modand%sincount mismatches are reported by one
algorithm. The utterance metadata path used its own copy of the
positional alignment with the diagnostic codes passed in as parameters;
it now uses theAlignableTierroute, which reads the tier's own type
(%phoor%mod) to choose E714/E715 or E733/E734. The codes are
unchanged; the messages are the positional form the%sinroute already
used (a per-position table instead of a bare count). -
A control character is a lexical error anywhere in the file. E315 is
now decided over the whole input before any parse, so a forbidden control
character in a word, a%comline or a header value is reported at its own
offset; previously a word's surfaced as generic E316 and free-text tiers
accepted it silently. Permitted are TAB, LF, CR, the bullet delimiter
U+0015 and the CA underline pairs U+0002 U+0001 / U+0002 U+0002; CLAN's
italics pairs are reported (CHECK 102). -
E303 covers every header whose colon is not followed by a TAB. It used
to fire only for@Comment:, every other header fell to E316, and the
message said "space" whatever followed the colon; it now names what was
found (a space, nothing, or the character). -
Wordlexical content is read-only outside its owning type. Direct
access to the former publiccontentfield is replaced bycontent();
callers that intentionally replace typed content use the named mutation
APIs, which invalidate derivedcleaned_text. This prevents a content edit
from leaving stale lexical text in JSON. Direct crate-internal access to
raw_textis closed as well, so recovery spelling changes use the explicit
setter rather than bypassing the field boundary. -
Speaker-code structure now has one typed assessment across every model
surface. DirectSpeakerCode::validatepreviously mislabeled an overlong
code as undeclared (E308), mislabeled a reserved character as a missing CST
node (E302), and enforced a different character policy from headers and main
tiers. All three routes now consume the same producer-issued valid/invalid
state and report E307. The seven-character limit counts Unicode scalar
values rather than UTF-8 bytes, and diagnostic context records the offending
code rather than an internal field label. -
Malformed regions now distinguish unpaired CHAT quotation delimiters from
unrelated parser recovery. Structurally unpaired“or”delimiters
report E242 even when tree-sitter encloses them in a larger error node.
Balanced quotation delimiters inside some other malformed region no longer
produce a false E242, and ASCII straight quotes are not mislabeled as CHAT
quotation delimiters.
chatter 0.18.0
Install chatter 0.18.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/TalkBank/chatter/releases/download/v0.18.0/chatter-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/TalkBank/chatter/releases/download/v0.18.0/chatter-installer.ps1 | iex"Download chatter 0.18.0
| File | Platform | Checksum |
|---|---|---|
| chatter-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| chatter-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| chatter-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| chatter-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| chatter-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
talkbank-lsp 0.18.0
Install talkbank-lsp 0.18.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/TalkBank/chatter/releases/download/v0.18.0/talkbank-lsp-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/TalkBank/chatter/releases/download/v0.18.0/talkbank-lsp-installer.ps1 | iex"Download talkbank-lsp 0.18.0
| File | Platform | Checksum |
|---|---|---|
| talkbank-lsp-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| talkbank-lsp-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| talkbank-lsp-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| talkbank-lsp-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| talkbank-lsp-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |