Changelog
All notable changes to Spock. Spock is a pre-1.0 prototype language; minor versions may break.
0.5.4 β 2026-07-23
This release replaces the retired Uhura client with the strict, machine-first Uhura 0.4 language and restores checked Web application ergonomics on top of that kernel. The Spock authority language and contract are unchanged.
- Machine-first Uhura 0.4. Client state and transitions are expressed as a deterministic checked machine; UI is an explicit observation and event binding layer. The old UI-first client syntax has no compatibility parser.
- Checked Web application topology. The opt-in
web-app@1profile discovers routed pages, pure components, surfaces, and colocated examples; it generates the route table and rootApplicationas ordinary checked source rather than introducing another runtime. - Typed UI composition. Reusable UI declarations have exact immutable props and finite emitted-event protocols. Calls are checked, acyclic, and wrapper-free, including explicitly imported public dependency components.
- One project contract. CLI checking and formatting, the native host, Editor, Play, source provenance, annotations, and the packaged Spock host now consume the same resolved Uhura project and Router selection.
- Canonical application proof. Instagram is organized as nine pages, eight pure components, and one surface while preserving its 91 Editor previews, replay evidence, dynamic routes, provider boundary, and live behavior.
- Distribution and guidance. The npm sidecar, release gates, documentation,
and public Uhura skill now describe and exercise the same strict 0.4
application contract. The complete all-platform tarball measures 27,421,302
bytes (26.15 MiB), within a 27 MiB hard budget. Source contributors also gain
path-honest
justwrappers for the local Spock CLI.
0.5.3 β 2026-07-17
This release refreshes the bundled Uhura editor and runtime with built-in widget foundations, checked font icons, and richer structure connectors. The Spock authority language and contract are unchanged.
- Built-in widget foundations. Uhura now has a canonical catalogue for
<scroll>,<icon>,<button>,<view>, and<img>. This deliberately breaking pre-v1 update replaces<image>with<img>and<text-field>with<textfield>. - Checked icon fonts.
<icon name="heart" />uses bundled Lucide by default, while projects may register local WOFF2 families with JSON name-to-codepoint maps. Families and names are checked before rendering, and the core model carries semantic icon tokens instead of engine-owned paths or SVG commands. - Editor structure. The bundled Uhura revision adds selected-frame structure connectors and refines workflow-connector routing and presentation, while keeping editor state and content-addressed font resources coherent across publication.
- Distribution and docs. Framework packaging now carries and verifies the icon-font resources through the native host. The Spock website adds an explicit technical-preview notice, while exploratory view work remains in the repository study surface.
0.5.2 β 2026-07-16
This release includes explicit product-error declarations as an experimental RFD 0024 implementation preview, publishes the Spock website and language governance framework, and syncs the bundled Uhura revision.
- Explicit product errors. Top-level
error namedeclarations own a reusable product-error code and optional documentation. Function!clauses resolve against that registry, schema-derived errors, and function-applicable protocol errors; E051-E053 diagnose duplicates, unknown names, and ownership collisions. - Compatibility. Programs that relied on implicit refusal minting must add
one declaration per authored refusal. Authored refusals named
unauthorizedorconflictmust be renamed because those codes are storage-protocol-owned. Wire envelopes, refusal status and rollback behavior remain unchanged. - Contract and tooling. Contract JSON adds an additive top-level
errorsarray. Generated TypeScript and Studio expose the registry, while the VS Code grammar highlights declarations and old contract JSON remains readable. - Uhura sync. The pinned Uhura revision adds checked interaction-graph projection, reconstructed nested surface hierarchy, frame-avoiding workflow connectors, and explicit declarations in the canonical Instagram authority.
- Project surfaces. The repository now carries the spock.sh site, public Uhura skill, and contribution, governance, language-change, RFD, and working-group processes and templates.
RFD 0024 remains draft and non-normative. Its implementation preview is
experimental and unstable in 0.5.2; inclusion does not record language
acceptance or a compatibility promise.
0.5.1 β 2026-07-15
This maintenance release refreshes the framework example and editor tooling
shipped after 0.5.0.
- Editor annotations and workflows. The bundled Uhura revision preserves
source-backed canvas comments alongside replay workflow connector lines;
Shift+Ytoggles the combined annotation layer. - Canonical Instagram project. Contributor guidance now uses
uhura/examples/instagram, and the duplicated proof-of-concept project and legacy two-process runner are retired. - VS Code language support. A repository-owned grammar, language configuration, corpus, and installation guide track the Spock lexer and parser contracts.
- Current CLI guidance. Documentation and the public Spock skill use the installed framework CLI for project checks, starts, and watched development.
0.5.0 β 2026-07-15
This feature release makes the installed spock command the project-level
host for a Spock authority and an optional Uhura client while preserving every
standalone .spock language command.
- Framework projects.
spock newcreates the canonical project shape;spock initadopts existing sources without moving or overwriting them; and project-widecheck,start, anddevcompose both language subsystems. - One host. Spock Studio, Uhura Editor and Play, framework status, and the authority protocols share one process, port, and origin.
- Honest development reload. Client generations hot-reload last-known-good. Backend source, seed assets, and topology changes are detected and reported as restart-required; they never migrate, reseed, or replace the active world.
- Distribution. The npm package adds an executable-bound Uhura web/WebAssembly sidecar beside the four prebuilt native binaries and exercises the exact guarded tarball on macOS, Linux, and Windows before release.
- Safety. Project creation is capability-pinned, create-new-only, portable across supported filesystems, and conservative under rollback and concurrent replacement.
Spock remains authoritative for durable facts, policy, and mutations. Uhura owns presentation, experience behavior, and non-authoritative UI-session state; composition does not make any fact authoritative in both languages.
0.4.0 β 2026-07-15
This feature release turns the derived data floor into a practical query and write surface, and brings the embedded Studio with it.
- Filtered reads. GraphQL now derives typed
whereandorder_byinputs; REST exposes the matching operator vocabulary. Both lower through one predicate engine, including boolean groups, reference-key traversal, deterministic multi-column ordering, and bounded offset paging. - Studio data workflows. The table view adds contract-aware filters, multi-column sorting, paging, and URL-addressable navigation that survives reloads and browser back/forward.
- Studio row insertion. A metadata-driven side sheet derives controls from field types and distinguishes required, defaulted, and nullable values. It includes foreign-key and actor pickers, plus direct storage upload or selection of an existing committed object.
- Browser clients. The loopback development API now accepts cross-origin browser requests, including actor and content-type headers.
- Compatibility. REST filter control words (
order,limit,offset,select,and,or,not) are now reserved as column names. The generated GraphQL filter types likewise add schema-name reservations.
Filtered and bulk writes, plus Studio row editing, remain deferred.
0.1.3 β 2026-07-13
First distributed release (RFD 0020). Spock is now installable from npm β no
clone, no build. (0.1.0β0.1.2 were skipped while shaking out an npm
provenance-publish glitch that left those versions reserved-but-unpublished.)
- Distribution.
npm i -g spock/npx spockon macOS (arm64, x64), Linux (x64), and Windows (x64). One npm package bundles a prebuilt binary per platform; a zero-dependency shim execs the one matching the host. Published tokenlessly from CI via npm Trusted Publishing (OIDC) with signed provenance, and verified install-and-run on all three platforms (.github/workflows/npm.yml).
Everything the language already did β spock check / build / run / gen,
the GraphQL + REST surface, the /~studio console, and storage (RFD 0018) β
now runs from that installed binary, offline.