Versions & changelog
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.
npm audit signatures, gh attestation verify, sha256sum -c).@open type opts out).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.main gives a friendly E0310 instead of a raw Node stack trace, and concurrent glyph runs no longer race on the temp directory.CONTRIBUTING.md with issue and PR templates, a stated pre-1.0 stability policy, and a site link-check in CI.npx @glyphlang/glyph failed with EACCES. The launcher now also restores it defensively.<>...</>) and member-expression tags (<Ctx.Provider>), so React Context and multi-child returns work.glyph build --json) and standard v3 source maps (.ts.map) on every emitted file.<T: Bound>), a shared-state std/store, and glyph regen to refresh generated code from its spec.number/string matches (E0218) and real @redact PII masking (E0219).discriminator, and gen dts on the TypeScript 7 native compiler."${x}"), and a payload-carrying first union variant (Wrap({...}) | Empty) parses..glyph source — same caret and stable code — instead of pointing at the generated .ts.E0217, which warns when a Result is discarded and its error silently ignored.\${ in a string stays literal instead of silently interpolating, and non-ASCII text in a template string ("café ${x}") is no longer mangled.match (Err(BadQty(b))) no longer emits code tsc rejects.glyph gen openapi --client generates a typed std/http client — one async fn per operation, with typed path parameters and request bodies.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).glyph gen zod materializes a module of zod schemas into committed, descriptor-bearing Glyph types.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.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.glyph gen dtsglyph 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.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.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.type, get a validated request boundary with no separate zod schema.oneOf) narrow with a printed note rather than emit a validator that would reject real payloads.match over a Result whose error union has a no-payload variant no longer silently dispatches to the wrong arm.bool match (missing false) and a JSX <match> missing a case are now compile errors, not runtime throws.E0213); unreachable match arms are flagged; the ? error-type rule extends across the stdlib boundary.react-hook-form, @hookform/resolvers/zod), aria-*/data-* JSX attributes, and significant JSX whitespace.if/else point at match (E0006), range patterns say so directly (E0007); json.parse deep-validates Record fields.std/http gains a server: serve, Handler, Request, Response, query, and path — a thin, errors-as-values wrapper over node:http.glyph init scaffolds a runnable starter project, and glyph llms prints the agent bootstrap offline.AGENTS.md / llms.txt), a standard-library reference, and an editor-setup guide.glyph build, glyph run, and glyph fmt.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.