Versions & changelog

What changed, newest first.

Glyph is an early preview and moves fast. Every release is here with what it fixed and added, so you can see exactly what's in the version you're running — and what's waiting for you in the next one.

Stability, pre-1.0: the language can still change between 0.1.x releases. We hold two lines — your code stays runnable (it always compiles to plain TypeScript you own, a permanent escape hatch), and when syntax changes we aim to make glyph fmt migrate it for you. The full policy is in docs/stability.md.

0.1.9 Latest July 2026

The trust release

  • Added A signed supply chain: npm packages published with provenance, GitHub Release archives carry SLSA build attestations, and every archive has a published SHA-256 — all verifiable (npm audit signatures, gh attestation verify, sha256sum -c).
  • Added A 10-minute Start Here tutorial, a "why not just tooled TypeScript?" answer, a debugging/ops answer, and an "is it worth it without AI?" answer — the answers section is now a guided 14-page set with a real index.
  • Added Record descriptors are strict by default now — they reject undeclared keys (an @open type opts out).
  • Added glyph doctor checks your node/tsx/tsc toolchain; glyph init pins typescript/tsx; llms.txt now inlines the full diagnostic catalogue and teaches T.parse.
  • Fixed Running a library with no main gives a friendly E0310 instead of a raw Node stack trace, and concurrent glyph runs no longer race on the temp directory.
  • Added A CONTRIBUTING.md with issue and PR templates, a stated pre-1.0 stability policy, and a site link-check in CI.
0.1.8 July 2026

Install fix

  • Fixed The published compiler binary is now executable on install — a packaging step dropped the Unix execute bit, so npx @glyphlang/glyph failed with EACCES. The launcher now also restores it defensively.
0.1.7 July 2026

Works with React, speaks to agents

  • Added JSX fragments (<>...</>) and member-expression tags (<Ctx.Provider>), so React Context and multi-child returns work.
  • Added Machine-readable diagnostics (glyph build --json) and standard v3 source maps (.ts.map) on every emitted file.
  • Added Bounded generics (<T: Bound>), a shared-state std/store, and glyph regen to refresh generated code from its spec.
  • Added A warning tier — unused import, unused binding, unreachable code — plus exhaustiveness for number/string matches (E0218) and real @redact PII masking (E0219).
  • Added Discriminated-union generation from an OpenAPI discriminator, and gen dts on the TypeScript 7 native compiler.
  • Fixed Template interpolations get distinct spans (go-to-definition works inside "${x}"), and a payload-carrying first union variant (Wrap({...}) | Empty) parses.
0.1.6 July 2026

Sharper errors and diagnostics

  • Added TypeScript back-end errors are mapped back onto your .glyph source — same caret and stable code — instead of pointing at the generated .ts.
  • Added A warning tier: diagnostics can be warnings that are surfaced without failing the build. The first is E0217, which warns when a Result is discarded and its error silently ignored.
  • Fixed A literal \${ in a string stays literal instead of silently interpolating, and non-ASCII text in a template string ("café ${x}") is no longer mangled.
  • Fixed Binding a whole record payload in a nested match (Err(BadQty(b))) no longer emits code tsc rejects.
0.1.5 July 2026

Typed clients and servers from your API spec

  • Added glyph gen openapi --client generates a typed std/http client — one async fn per operation, with typed path parameters and request bodies.
  • Added glyph gen openapi --handlers generates server handler stubs plus a route dispatcher that matches the method and path (array patterns capture /tasks/{id} for you).
  • Added glyph gen zod materializes a module of zod schemas into committed, descriptor-bearing Glyph types.
  • Added Untrusted request input is typed as Option: header and query_param return Option<string>, so a missing value can't slip past a match. The std/http client gains put/patch/del.
  • Fixed glyph gen dts resolves TypeScript from the target file's own project first, so a pinned typescript@6 works even when the global install is 7.x.
  • Site A new Client & server answer walking through the generated client, router, and zod materialization.
0.1.4 July 2026

TypeScript 7 compatibility for glyph gen dts

  • Fixed glyph gen dts now detects the TypeScript 7 native compiler (the new default from npm install typescript), whose API it cannot use, and prints a clear message pointing you at typescript@6 instead of crashing.
0.1.3 July 2026

Generated types, not hand-written DTOs

  • Added glyph gen openapi <spec> --out <dir> turns an OpenAPI 3, Swagger 2, or JSON Schema document into committed Glyph types — one real record per schema, each with a runtime descriptor, so bodies validate for free.
  • Added glyph gen dts <file.d.ts> --out <dir> materializes a TypeScript declaration file into first-class Glyph types you own and can validate, instead of an ambient, unvalidated phantom.
  • Added A guide, Typed APIs, and a runnable REST API example: declare a type, get a validated request boundary with no separate zod schema.
  • Note Generation is wire-faithful: constructs Glyph cannot represent exactly (a string enum, an undiscriminated oneOf) narrow with a printed note rather than emit a validator that would reject real payloads.
0.1.2 July 2026

Correctness, JSX, and the guided site

  • Fixed A match over a Result whose error union has a no-payload variant no longer silently dispatches to the wrong arm.
  • Fixed A misspelled constructor in a match arm is rejected, not silently treated as a catch-all that masks a missing case.
  • Fixed An incomplete bool match (missing false) and a JSX <match> missing a case are now compile errors, not runtime throws.
  • Fixed A multi-parameter component is a clear compile error instead of silently mis-binding props; record payloads bind correctly.
  • Added The typechecker checks call arity (E0213); unreachable match arms are flagged; the ? error-type rule extends across the stdlib boundary.
  • Added Hyphenated and scoped npm imports (react-hook-form, @hookform/resolvers/zod), aria-*/data-* JSX attributes, and significant JSX whitespace.
  • Added Targeted diagnostics: if/else point at match (E0006), range patterns say so directly (E0007); json.parse deep-validates Record fields.
  • Added std/http gains a server: serve, Handler, Request, Response, query, and path — a thin, errors-as-values wrapper over node:http.
  • Added glyph init scaffolds a runnable starter project, and glyph llms prints the agent bootstrap offline.
  • Added A one-document agent reference (AGENTS.md / llms.txt), a standard-library reference, and an editor-setup guide.
  • Added Quoted string keys in object literals, and clearer hints that suggest the Glyph spelling for common TypeScript type names.
  • Site A guided Answers section, a Hardening page, a dedicated Benchmarks page, and the landing page + playground on glyphlang.io.
0.1.0 June 2026

First public preview

  • Added The language and its Rust compiler (lex → parse → resolve → typecheck → emit), driven by glyph build, glyph run, and glyph fmt.
  • Added The core standard library, exhaustive match, Result and the ? operator, runtime type descriptors, and JSX / component.

Install or upgrade with npm install -g @glyphlang/glyph. The full commit history lives on GitHub.

← Back to home