Releases: flyingrobots/colorful-language
Release list
colorful-language v0.3.0
colorful-language v0.3.0 — Release Packet
Summary
v0.3.0 ships the core/default path for Goalpost 2, "open-class
disambiguation." Colorful now distinguishes deterministic noun, verb,
adjective, and adverb roles instead of treating every ordinary content word as
undifferentiated text.
The release keeps the same hexagonal shape: parsing remains structural, closed
class lookup remains a Lexicon, and context-aware open-class decisions live
behind the Annotator port. The default CLI, IR, linter, and LSP surfaces all
use the same ContextualOpenClassAnnotator, so terminal colors, editor semantic
tokens, and colorful.syntax/v1 agree.
Included scope
colorful-coreaddsOpenClassKind::{Noun, Verb, Adjective, Adverb}and
PosClass::Open(OpenClassKind).colorful-lexiconaddsSeedOpenClassLexicon, a deterministic seed table for
representative nouns, verbs, adjectives, and adverbs.colorful-lexiconaddsContextualOpenClassAnnotator, which refines a small
ambiguous set (book,record,lead,fast) using local sentence context.- The default CLI colorizer,
colorful ir, CLI linting path, and
colorful-lspsemantic-token path use the contextual annotator by default. colorful.syntax/v1carries optionalopenClassKindon validWORD/
CONTENTtokens, and validation rejects illegal open-class axes.colorful.vocabulary/v1maps noun, verb, adjective, and adverb axes to
distinct ANSI, LSP, and graft projections.colorful diagnose --json [FILE]emits a machine-readable token projection
report for comparing CLI, LSP, Zed, jedit, and other consumers.colorful --versionand help output report the package version, so downstream
tools can enforce a minimum Colorful version.scripts/install-local.shinstalls or upgrades the localcolorfulCLI into
$HOME/.colorful-language/binfor Graft and jedit development.- The VS Code source extension declares Colorful's custom semantic token types,
enables semantic highlighting for Plain Text and Markdown, maps fallback
TextMate scopes, and exposes a Colorful Language output channel. - The Zed source extension maps Plain Text to the
plaintextLSP language
id and honorslsp.colorful-lsp.binary.pathbefore falling back toPATH. - The committed Wesley-generated IR DTOs are recorded as emitted with
wesley 0.1.1. - The release and distribution docs now state the current binary artifact
boundary precisely: one Linuxx86_64-unknown-linux-gnuarchive containing
bothcolorfulandcolorful-lsp. - Repository policy and maintainer workflow references now live under
docs/workflows/, keepingdocs/topics/focused on product-facing concepts. .continuum/release.ymldeclares the repo-local release profile, and
scripts/release-profile-check.sh,scripts/release-prep.sh, and
scripts/release-preflight.shmake the release profile, prep, and final tag
gates executable.- The tag-triggered release workflow validates release metadata against the tag
and skips crate versions that are already available in the crates.io registry
index during reruns.
Who it's for
- Writers who want more visible structure in plain English without sending text
to a model or service. - Editor users comparing terminal, Zed, VS Code, jedit, and LSP output against a
deterministic token report. - Tooling authors consuming
colorful.syntax/v1who need explicit open-class
axes instead of collapsing all ordinary content to one bucket. - Downstream tools such as Graft that need stable version probing before
shelling throughcolorful ir -.
Version justification
0.3.0 is a pre-1.0 minor release because it changes public API and public
behavior:
PosClassis public and now has the newOpen(OpenClassKind)variant.colorful.syntax/v1artifacts may now carryopenClassKind.- The vocabulary manifest adds public noun, verb, adjective, and adverb
projection roles. - The default CLI/LSP/IR path now emits explicit open-class roles for seeded and
supported context-disambiguated words. - The CLI adds the public
diagnosetroubleshooting surface.
Pre-1.0 minor versions may carry breaking API changes. This is not a patch
release because downstream code that exhaustively matches PosClass must update
before adopting the 0.3.x line.
Explicit non-claims
- Not a full grammar parser. Structure is still shallow: paragraphs,
sentences, words, punctuation, quotes, and presentation roles. - Not broad NLP. The open-class path is deterministic, local, and deliberately
small. It is not WordNet coverage, a statistical tagger, or an ML model. - Not a complete Goalpost 2 theme package. Custom token types are emitted,
but some editor themes still need explicit semantic-token rules. - Editor marketplace packages are not published. VS Code and Zed source
integrations build in CI and can be installed from source; registry publishing
remains a later packaging task. - Graft and jedit are not bundled. Colorful provides the CLI, LSP, and IR
surfaces they consume; downstream release trains remain separate. - Not replayable provenance.
colorful.syntax/v1carries source digests and
derivation trace seed data, but it does not yet claim echo replay or witnessed
provenance. - No native macOS or Windows binary archives. Release assets remain one Linux
x86_64-unknown-linux-gnuarchive plus crates.io packages. - No Homebrew formula. Homebrew packaging remains a separate tracked slice.
- No autotag workflow yet. Public release tags are still created manually
from clean, alignedmainafterscripts/release-preflight.shpasses. - Controlled English is not shipped. Contract English, Intent English, and
proof-carrying execution remain roadmap phases.
Acceptance
OpenClassKindandPosClass::Openare covered bycolorful-coreport
contract tests.SeedOpenClassLexiconprecedence and role coverage are covered by
colorful-lexicontests.ContextualOpenClassAnnotatoris covered forbook,record,lead, and
fast, including preservation of closed-class, number, proper-noun,
punctuation, and seed behavior.- CLI golden tests cover seeded and contextual open-class output.
- IR tests cover open-class projection, vocabulary role mapping, and illegal
openClassKindcombinations. - LSP tests cover seeded and contextual open-class semantic tokens in the
manifest-backed legend. - Lint tests cover weak-word handling for both
ContentandOpen(_)tokens. colorful diagnose --jsonis covered for report shape, LSP token type
projection, the editor smoke fixture, and invalid operand handling.- VS Code and Zed source integrations compile in CI.
- The release profile check runs in CI and in the tag-triggered release
workflow. - The release gate in
docs/RELEASING.mdpasses before
the release-prep PR is merged.
See verification.md for the release witness.
colorful-language v0.2.1
colorful-language v0.2.1 — Release Packet
Summary
v0.2.1 is the public recovery release for Goalpost 1, "prose linter." It
ships the same user-facing scope intended for v0.2.0: deterministic prose
diagnostics in the CLI and LSP, the first public colorful.syntax/v1 surface IR,
the colorful.vocabulary/v1 presentation manifest, and source editor
integrations.
The v0.2.0 tag workflow published colorful-core, colorful-lexicon, and
colorful-parse, then failed while verifying the colorful-ir crate package.
v0.2.1 fixes that package boundary and adds a CI package witness so this class
of release failure is caught before crates are published.
Included scope
- Everything listed in the
v0.2.0release packet. colorful-irnow embeds package-local copies of the GraphQL and vocabulary
contract inputs it hashes and validates.scripts/gen-ir.shrefreshes the package-localcolorful-ircontract copies
whenever the Wesley-generated DTOs are regenerated.- CI now runs
scripts/package-witness.sh, which packages all publishable
crates, extracts the tarballs, and checks the extracted package workspace. - The tag-triggered
Releaseworkflow runs the same package witness before
cargo publish, so future package-tarball failures stop before any crate is
uploaded.
Version justification
0.2.1 is a pre-1.0 patch release. The intended public API and behavior are the
same as 0.2.0, but the v0.2.0 crates.io publish was incomplete and crate
versions are immutable once uploaded. A patch version is required to publish a
complete, coherent release train.
Explicit non-claims
- Not a new feature release beyond
v0.2.0. The patch fixes packaging and
release verification. - Not a grammar checker. The linter reports deterministic candidates for
shallow issues. It does not understand author intent or rewrite prose. - Not contextual POS disambiguation. Open-class noun/verb/adjective/adverb
disambiguation remains Goalpost 2. - Not replayable provenance.
colorful.syntax/v1carries source digests and
derivation trace seed data, but it does not yet claim echo replay or witnessed
provenance. - IR consumers remain open. The core IR and graft reference consumer ship in
this release, but the tracked graft and jedit consumer slices remain open. - Editor marketplace packages are not published. VS Code and Zed source
integrations build in CI and can be installed from source; registry/marketplace
publishing is a later task. - Controlled English is not shipped. Contract English, Intent English, and
proof-carrying execution remain roadmap phases.
Acceptance
- The full
v0.2.0acceptance set still applies. colorful-irpackage contents are checked byscripts/package-witness.sh.- The package witness is part of pull-request CI.
- The tag-triggered
Releaseworkflow runs the package witness before publish.
See verification.md for the release witness.
colorful-language v0.1.0
colorful-language v0.1.0 — Release Packet
Summary
v0.1.0 is the first public release and completes Goalpost 0, "English lights
up." Open a prose file and the grammar lights up: closed-class words as
keywords, proper nouns, numbers, and quotes accentuated, ordinary content left
clean. It ships two ways — a terminal CLI (colorful) and a Language Server
(colorful-lsp) — over one deterministic classification pipeline. No machine
learning, no network: pure lexing and shallow structure, entirely local.
Included scope
- A lock-step cargo workspace built as a hexagon, with three load-bearing ports
incolorful-core:Parser(structure),Lexicon(context-free word
lookup), andAnnotator(context-aware classification). colorful-lexicon— a compile-time perfect-hash set of closed-class function
words, common contractions (don't,I'm), and negation, implementing
Lexicon.colorful-parse— alogoslexer and sentence segmenter implementing
Parser; total over arbitrary input (never panics) and absorbs trailing
closing quotes/brackets.colorful-cli— thecolorfulbinary: ANSI prose coloring,--no-color/
NO_COLORpassthrough,--end-of-options.colorful-lsp— thecolorful-lspbinary: atower-lspserver emitting
skeleton semantic tokens with correct UTF-16 columns and incremental,
line-clampedropey-backed edits.- Topic references and executable test plans for parsing, lexicon, and coloring;
founding architecture decision records (ADR-0001..0003).
Who it's for
- Writers and note-takers who want IDE-grade structural highlighting for prose
in any LSP-speaking editor, or instant ANSI coloring in the terminal. - Contributors building toward the roadmap: the
Parser/Lexicon/Annotator
seam means later goalposts (a prose linter, noun/verb disambiguation) arrive
as new adapters, not rewrites.
Version justification
0.1.0 (not 0.0.1) because this is the first coherent, externally meaningful
product increment — a complete goalpost delivering working CLI and LSM/LSP
surfaces — rather than a scaffold. Pre-1.0, the public API (the core ports) is
explicitly unstable and may change in a later minor.
Explicit non-claims
- Not contextual POS tagging.
v0is closed-class lexical highlighting
plus a proper-noun heuristic. It does not tell a noun from a verb; ambiguous
function words (that,for) are assigned a single most-common role. - The proper-noun heuristic is approximate. A title-case line with no
lowercase content word (e.g.I am Groot) can be read as a header and suppress
a real proper noun. This is the deliberate conservative direction. - Published to crates.io under flat names (
colorful-core,colorful-cli,
colorful-lsp, …) owned byflyingrobots. Pre-1.0, so the public API is
unstable, but the crate versions are permanent (yank-only). - Incrementality is
v0-simple. EachsemanticTokens/fullreparses the
whole document; per-paragraph reparse is a later performance slice. - No shipped editor extension or theme yet. Coloring uses standard semantic
token types so existing themes apply.
Acceptance
cargo test --all --lockedpasses (50 tests across the workspace), including
golden ANSI output, delta-encoded semantic tokens with UTF-16 surrogate and
chaotic-Unicode coverage, and a totality/no-panic property test.cargo fmt --check,cargo clippy --locked --all-targets --all-features -- -D warnings,markdownlint-cli2,actionlint, and the whitespace gate
pass.- The end-to-end LSP handshake (
initialize→didOpen→
semanticTokens/full) returns the[keyword, class, number, string]legend
and the expected token stream. - Goalpost 0 milestone: issues #1–#5 closed.
See verification.md for the release witness (commands,
SHAs, URLs).