# Changelog

All notable changes to `doppler-gpu` are documented in this file.

This changelog is package-facing and release-oriented. Entries before `0.1.7`
were retrofitted from package version history, release commits, and release
docs so the `0.1.x` line has one conventional npm-visible history surface.

## [Unreleased]

## [0.4.15] - 2026-07-24

### Added

- Added `generateWithEvidence()` to loaded model handles. The browser-safe
  result binds generated token IDs, transcript, resolved generation config,
  runtime profile, WebGPU backend identity, and execution-plan identity with
  canonical SHA-256 hashes.

## [0.4.14] - 2026-07-19

### Added

- Added native browser, Node, and Bun LoRA training for the final Qwen 3.5
  0.8B `down_proj` over frozen row-wise Q4K base weights. The bounded native
  path uses completion-masked causal-LM loss, AdamW, deterministic
  checkpoint/resume, and runtime-loadable safetensors/RDRR export.
- Added Q4K frozen-weight input gradients for the native LoRA suffix and a
  production inference capture contract for the final feed-forward activation.

### Fixed

- Replaced the Qwen capability gate that incorrectly treated frozen Q4K base
  weights as preventing native LoRA optimization. Other Qwen targets remain
  unavailable on the native backend until their full backward graphs exist.
- Added explicit provider teardown to the validated Bun operator sequence;
  model unload alone does not release Dawn's host-owned callback pump.

### Release status

- `0.4.13` was tagged but never published. Its tarball is an invalid release
  candidate because it rejects the supported native Qwen target. `0.4.14`
  supersedes it; npm `latest` must not be updated with the `0.4.13` tarball.

## [0.4.13] - 2026-07-19

### Added

- Added the public `doppler-gpu/training` npm entry point for capability-gated
  SFT/LoRA workloads, WebGPU autograd and optimization primitives, checkpoint
  evaluation, and runtime-compatible safetensors adapter export.
- Added explicit `webgpu_native` and `external` training-backend selection.
  Packed Q4K Gemma and Qwen workloads fail closed on the native backend and
  require an injected or workload-declared external trainer.

### Changed

- Added installed-package import, type, and capability smokes for the training
  entry point so repository-only deep imports cannot masquerade as npm support.

## [0.4.12] - 2026-07-19

### Added

- Added LoRA activation for Qwen 3.5 linear-attention projections, including
  `in_proj_a`, `in_proj_b`, `in_proj_qkv`, `in_proj_z`, and `out_proj` PEFT
  targets, with deterministic intermediate-buffer cleanup.
- Added immutable adapter-custody catalog validation for preserved WGSL Repair
  artifacts and their exact base-model, tokenizer, conversion, and source
  lineage.

### Changed

- Corrected the Qwen 3.5 0.8B chat contract to use the Qwen template with
  thinking disabled, and published the refreshed complete RDRR artifact at an
  immutable hosted revision.
- Reconciled WGSL Writer V3 campaign records with explicit generation budgets
  and finite confirmation metrics; this does not promote general shader
  authorship.

## [0.4.11] - 2026-07-19

### Added

- Added manifest-first conversion and WebGPU inference support for four
  biological sequence encoders: ESM-2 35M, Nucleotide Transformer v2 50M,
  AMPLIFY 120M, and ESMC 300M.
- Published hosted RDRR registry lanes and Node/WebGPU qualification evidence
  for tokenizer identity, finite outputs, reference parity, and synthetic LoRA
  activation/unload behavior. This evidence does not claim downstream
  biological-task quality or trained-adapter quality.
- Added source tokenizer and tensor-mapping contracts for importing sequence
  checkpoints without runtime family detection.
- Added a model taxonomy for domain, task, architecture role, inputs, and
  outputs, and exposed that classification through the quickstart registry.
- Added the `tinker_peft_browser_adapter` trainer-artifact bridge profile with
  explicit Gamma selection authority and browser-parity requirements.

### Changed

- Extended the text pipeline and loader contracts for bidirectional sequence
  encoders, including model-declared normalization and logits bias, QK
  normalization shape, token-level outputs, and sequence embedding results.
- Expanded WGSL Writer V3 corpus, semantic-oracle, training, and evaluation
  contracts after the four reference packages passed AMD/Vulkan Chromium
  execution qualification. General shader authorship remains unproven.
- Rebuilt kernel reachability metadata for the current 301 registered
  variants.

### Fixed

- Required WGSL Writer V3 evaluation receipts to disclose output-generation
  budgets so compared lanes cannot hide unequal generation work.

## [0.4.10] - 2026-07-18

### Fixed

- Unified duplicate runtime module instances behind one authoritative WebGPU
  device state and one in-flight initialization, preventing concurrent model
  handles from creating incompatible devices.
- Rejected tracked cross-device GPU buffers before native bind-group creation
  and prevented stale device-loss callbacks from clearing a replacement device.

### Changed

- Included the WGSL Writer V3 package and campaign schemas in the generated npm
  source closure.
- Retained the experimental
  `translategemma-4b-1b-enes-q4k-ehf16-af32` NativeKD2 EN/ES candidate first
  shipped in `0.4.8`, without changing its weights, evidence boundary, or
  promotion status. Version `0.4.10` makes no new translation-model claim.

## [0.4.9] - 2026-07-14

### Fixed

- Corrected split gated SiLU/SwiGLU inference so dense and MoE FFNs compute
  `SiLU(gate) * up` instead of applying SiLU to the up branch a second time.
  Gated callers now fail closed unless the input-branch activation is explicit.
- Restored Qwen 3.5 9B F16 base and PEFT adapter parity with Transformers on the
  frozen WGSL-repair probe without changing model, tokenizer, or adapter bytes.

## [0.4.8] - 2026-07-11

### Added

- Advanced model-handle APIs for deterministic downstream scoring and prefix
  reuse: `tokenizeText()`, `prefillWithTokenLogits()`,
  `prefillWithTokenLogitsFromKV()`, and stateful `resetToSeqLen()` truncation.
- NativeKD2 English/Spanish translation-student evidence, including the
  converted Q4K artifact, WMT13 quality receipts, translation benchmark
  tooling, and an experimental Radeon/RDNA3 throughput profile.
- Experimental-tier catalog, hosted-artifact, and demo compare promotion for
  the 1B EN/ES translation student, with frozen Q4K metrics and explicit
  language, platform, and cross-runtime evidence boundaries, plus a pinned
  hosted browser/WebGPU benchmark receipt.
- Machine-qualified host teacher selection for Doppler JavaScript and WGSL,
  including disjoint qualification/label/student-holdout tasks, disposable
  pinned source snapshots, exact repair replay, command and path audits, and
  receipt-linked training-row export for accepted labels.
- Claim-grade, release-claimable Apple M3 Metal evidence for the current Tier 1
  Qwen text-generation, embedding, and reranking lanes.
- Claim-grade, release-claimable Radeon 8060S Vulkan evidence for the current
  Tier 1 Qwen lanes, including fresh 15-run embedding and reranking receipts.
- Local-comparable Radeon 8060S Vulkan evidence for the Tier 2 Qwen 3.5 2B and
  Gemma 4 E2B INT4-PLE generation lanes.
- A receipt-linked README comparison chart for the promoted Metal and Vulkan
  results.

### Changed

- Consolidated GitHub Actions on the deterministic CPU contract; browser,
  model-download, and GPU validation remain explicit hardware workflows.
- Kept the receipt-linked README evidence chart in GitHub without duplicating
  that documentation asset in the npm tarball.
- Renamed nested repository guides so npm no longer force-includes them,
  preserving the 1,349-file package boundary without removing runtime code.
- Refreshed the competition scoreboard, model support inventory, local GPU
  challenger matrix, and model roadmap from the promoted receipts.
- Added Metal runtime profiles and optimized WebGPU paths for Qwen 3.5 text,
  embedding, and reranking, including fixed `head_dim=128` f16-KV prefill
  attention for the reranker lane.
- Reduced the npm package from 1,733 files to the enforced 1,349-file runtime,
  declaration, and resource closure.
- Reframed the README around the verifiable optimization loop, measured
  performance mechanisms, and one runnable entry point.

### Fixed

- Preserved loaded-manifest provenance through `manifestHash` and reset
  embedding state after both successful and failed calls so repeated model
  sessions remain deterministic.
- Regenerated kernel reachability metadata after the new runtime profiles and
  kernel paths changed the selectable registry surface.
- Replaced the stale Vulkan reranker loss with the current 15-run,
  release-claimable Doppler throughput win while preserving the TJS model-load
  advantage in the evidence ledger.
- Published the browser runtime capability rules, model-source resolver,
  execution-v1 runtime, and schema updates required by downstream static
  consumers such as Simulatte without patching installed package files.
- Added an installed-tarball smoke for every public export, all three CLIs,
  browser-runner assets, optional-dependency omission, and strict TypeScript
  declaration resolution; repaired the declaration defects it exposed.
- Restamped the Linux/Vulkan Qwen 3.5 2B fixture after a Darwin-only profile
  addition and updated the harness contract test for the renamed testing guide.

## [0.4.4] - 2026-06-30

### Added

- Product-readiness contract stack:
  - `npm run goals:check` validates the top-level goal matrix.
  - `npm run goals:report` renders the goal matrix as markdown or JSON.
  - `npm run product:readiness:report` combines goal, claim, command,
    model-artifact, policy-schema, and subsystem-support status.
  - `npm run artifact:contract:check` verifies the quickstart registry is a
    checked mirror of verified catalog artifacts.
  - `npm run commands:surface:check` verifies browser/node command support
    policy against the command API and CLI usage text.
  - `npm run claims:evidence:check` verifies release-claim and benchmark
    evidence wiring.
  - `npm run support:subsystems:check` verifies support-tier subsystem docs,
    entrypoints, package exports, package bins, tiers, and claim visibility.
  - `npm run policy:schemas:check` verifies policy files advertise their
    registered JSON Schemas.
- `docs/goals.md` — canonical top-three Doppler goals, completion matrix
  contract, and machine-reporting workflow.
- `src/config/goal-completion-matrix.json` — machine-readable goal status for
  local WebGPU product surface, model artifact/runtime contract, and
  evidence-backed correctness/performance claims.
- JSON policy/schema pairs for product-readiness contracts:
  - command surface contract
  - model artifact contract
  - claim evidence contract
  - subsystem support contract
  - policy schema registry
- `npm run check:green` — documented PR-gate chain that runs
  `agents:verify`, `public:boundaries:check`, `api:docs:check`,
  `imports:check:browser`, `pending:check`, and `exports:parity:check`
  end-to-end. Passes at `HEAD`.
- `npm run pending:check` — new check that enforces the
  `*.pending.test.js` policy: every pending-feature test must have a
  registered entry in `tools/policies/pending-tests-policy.json` with
  an owner and either an expiry date or a tracking issue. Expired or
  orphaned entries fail.
- `tools/policies/exports-parity-allowlist.json` — allowlist schema
  for `exports:parity:check` with required owner + expires/issue. The
  repo now ships with zero allowlist entries; the drift tail was
  fully fixed rather than quarantined.
- `docs/style/emoji.md` — moved from the repo root, indexed in
  `docs/style/README.md`.
- `docs/style/README.md` — new "Read-First Matrix" keyed by change
  area so contributors and agents can pick guides without chasing
  cross-references.
- `docs/cleanup/` — committed before/after cleanup artifacts
  (baseline, parity drift classification, style-docs inventory,
  developer-guides inventory, npm-scripts audit, parity-tail buckets,
  final-state snapshot).
- `docs/style/javascript-style-guide.md` and
  `docs/style/general-style-guide.md` now lead with an "Invariants
  (Quick Reference)" section linked to the detailed sections below.
  The two former standalone `*-invariants.md` files were folded in and
  deleted.
- "Inventory Before Edit" invariant in the General Style Guide:
  before fixing a repeated class of failures, run the broadest
  inventory check first. One-off repairs for recurring drift should
  graduate to checkable tooling with a `--check` mode.

### Changed

- `tests/integration/doppler-public-logits-api-contract.test.js` and
  `tests/integration/demo-import-surface.test.js` renamed to
  `*.pending.test.js` and registered in the pending-tests policy.
  They assert on runtime surfaces that do not yet exist
  (advanced.prefillWithLogits / advanced.decodeStepLogits, and the
  `@simulatte/doppler` import specifier on demo/examples) and were
  polluting the regression test lane.
- `tools/run-node-tests.js` excludes `*.pending.test.js` from the
  default lane; `--include-pending` opts in.
- Default test lane dropped from 113 to 111 files.

### Fixed

- `tools/check-exports-parity.js` grouped-export regex now strips
  `//` and `/* */` comments before splitting by comma. Previously a
  name that followed an inline comment in a grouped re-export was
  silently dropped on one side, producing false-positive "only in
  .dts" drift (notably `src/inference/kv-cache.js`).
- Same checker now recognizes `export async function*` generator
  syntax. Earlier it missed every `async function*` export and
  produced false-positive drift for `streamShardRange`,
  `streamTensorData`, `createQ4KChunkStream`, and
  `createF16ChunkStream`.
- `src/inference/pipelines/text/generator.d.ts` no longer declares
  `shouldDisableBatchDecodeAfterShortBatch` — the runtime imports it
  from `./generator-prefill-helpers.js` and does not re-export it.
- `src/inference/pipelines/text/embed.d.ts` no longer declares
  `recordScale` or `scaleGPUBuffer` — those come from
  `gpu/kernels/scale.js` (scaleGPUBuffer had zero references
  anywhere in the repo).
- `.js` / `.d.ts` export parity across `src/**` is now 100% aligned
  (40 files and 151 symbols of drift cleared, 0 allowlist entries
  needed). Over 25 `.d.ts` files updated to match what runtime
  already exported: added declarations, type-only re-exports in the
  debug barrel, missing re-export blocks in the config schema
  barrel, and snake_case aliases in the gpu/kernels backward index.

### Removed

- 22 unreferenced `npm` scripts: `ci:lean:execution-contract`,
  `ci:diffusion:contract:list`, `ci:training:contract:list`,
  `contracts:summary`, `contracts:summary:lean`,
  `reports:convert:summary`, `bench:chart`, `bench:chart:readme`,
  `bench:architecture:chart`, `bench:vendors:list`,
  `lean:execution-contract`, `lean:execution-contract:sweep`,
  `lean:execution-contract:configs`, `contracts:check:lean`,
  `bench:tjs:stage`, `distill:studio:mvp`, `distill:quality-gate`,
  `p2p:observability`, `p2p:drill`, `execution-graph:patch`,
  `onboarding:scaffold`, `bench:vendors:matrix`. Each was verified
  with grep + `git log -S` to have zero callers outside
  `package.json`. Underlying tools remain reachable via direct
  `node tools/...` invocation. Net script count: 110 → 90.
- `docs/style/general-invariants.md` and
  `docs/style/javascript-invariants.md` — folded into their full-
  guide companions as "Invariants (Quick Reference)" sections.
- Root `EMOJI.md` — moved to `docs/style/emoji.md`.

## [0.4.3] - 2026-04-18

### Added

- `"sideEffects"` entry in `package.json` restricts module-load side effects
  to WGSL files and `src/gpu/device.js`. Bundlers can now tree-shake unused
  exports from every other module.
- Narrow tree-shakable subpath exports split the `doppler-gpu/tooling`
  mega-barrel:
  - `doppler-gpu/tooling/device` — GPU init, capability probing, shader
    preseed helpers.
  - `doppler-gpu/tooling/storage` — OPFS shard manager, registry, inventory,
    quota, cache.
  - `doppler-gpu/tooling/manifest` — RDRR manifest parsing + schema
    defaults.
  The existing `doppler-gpu/tooling` barrel stays for back-compat.
- `doppler-gpu/structured` subpath export for JSON grammar-mask and
  structured-generation helpers (`createJsonGrammarMask`).
- `doppler-gpu/client/model-manager` subpath for the runtime model manager
  (`initDoppler`, `loadModel`, `getPipeline`, `getCurrentModelId`,
  `unloadModel`).
- `doppler-gpu/provider` now re-exports `wrapPipelineAsHandle` alongside
  `createDopplerProvider` so consumers reach both via one import.
- Per-family static metadata modules:
  - `doppler-gpu/models/qwen3`
  - `doppler-gpu/models/gemma3`
  - `doppler-gpu/models/gemma4`
  - `doppler-gpu/models/embeddinggemma`
  Each exports `FAMILY_ID`, `HF_REPO_ID`, `KNOWN_MODELS` (frozen list of
  `{modelId, label, sourceModel, hfPath, defaultRuntimeProfile, modes}`),
  plus `resolveModel(modelId)` and `resolveHfBaseUrl(modelId, revision)`.
  Kilobyte-scale, tree-shakable, no runtime weight.
- `registerShaderSources(map)` and `hasPreseededShaderSource(name)` on
  `doppler-gpu/tooling/device`. Consumers that bundle WGSL via
  `import.meta.glob('.../kernels/*.wgsl', { as: 'raw', eager: true })`
  preseed the shader cache to bypass the runtime HTTP-fetch path entirely.
- `docs/library-consumers.md` — migration + usage guide for applications
  embedding `doppler-gpu` as an npm dependency.
- `ensureModelCached` exposed through the tooling surface
  (`doppler-gpu/tooling` and `doppler-gpu/tooling/storage`).

### Fixed

- Removed top-level `await` from `src/rules/rule-registry.js`. The 46 rule
  JSON files are now imported statically with `with { type: 'json' }` import
  attributes, which is synchronous at module load. This unblocks iife worker
  bundles (e.g., Vite/Rollup classic-format workers) that previously failed
  to bundle `doppler-gpu`.

### Changed

- Swapped Qwen 3.5 0.8B Q4K kernel refs for the 6 full-attention layers
  (indices 3/7/11/15/19/23): `attn_stream` → `attn_head256`, and
  `q4_prefill` `multicol_shared` → `q4_widetile` (register-tiled). Manifest
  and `src/config/conversion/qwen3/qwen-3-5-0-8b-q4k-ehaf16.json` regenerated.
  Strix Halo / RDNA-3 warm-cache 3-run means showed prefill@80 +57.5%
  (σ≈3.8), prefill@15 +16.6%, decode flat (σ≈1.3); `doppler verify` match
  with the expected Qwen `<think>` wrapper. Receipts live on the Strix
  Halo workspace; `models/catalog.json` carries the canonical summary.
- Retuned `profiles/qwen-3-5-0-8b-throughput` for AMD Strix Halo / RADV Mesa 26.
  Switched from `batchSize=8 readbackInterval=8` to `batchSize=4
  readbackInterval=2` with batch-level stop-check. On Strix Halo this raises
  Qwen 3.5 0.8B Q4K decode from ~32.0 to ~34.2 tok/s (+7%), drops TTFT from
  ~390 ms to ~155 ms (-60%), and lifts prefill from ~41 to ~104 tok/s (+150%).
  Cross-checked against `gemma-3-1b` to confirm the win is Qwen-specific
  (linear-attention + larger vocab) and doesn't belong in the global default
  profile. Receipts under `reports/qwen-3-5-0-8b-q4k-ehaf16/`.

### Added

- `--manifest-only` and `--bootstrap` flags on
  `tools/publish-hf-registry-model.js`. `--manifest-only` skips shard
  staging for republish of an existing model when only the manifest
  changed (e.g., kernel-ref swap). `--bootstrap` is required for the
  first publish of a new model (entry with `lifecycle.availability.hf:
  false`, `hf.{repoId,path}` set, `hf.revision` absent) and flips
  `availability.hf` to `true` in the local catalog after a successful
  upload. Both paths now write the newly minted `hf.revision` back into
  `models/catalog.json` so the local catalog is not drifted from the
  hosted `registry/catalog.json`.
- Documented the perf-validated kernel-path promotion workflow in
  `docs/style/benchmark-style-guide.md`. Two-stage flow: runtime override +
  correctness/perf gates first; promotion to the conversion config and
  manifest regeneration only after both gates pass on the target hardware.
- `tools/probes/qwen-decode-sweep.sh` for repeating the Strix Halo sweep when
  re-tuning the model-scoped profile.

## [0.2.2] - 2026-04-13

### Fixed

- Switched the README benchmark image to an absolute GitHub raw URL so the npm
  package page renders the current published chart instead of relying on an
  unpublished local asset path.

## [0.2.1] - 2026-04-13

### Changed

- Bumped the package version past the already-published `0.2.0` release.
- Pointed the README demo CTA at the canonical public demo URL:
  `https://d4da.com/doppler`.
- Clarified the README benchmark image scope so the hero chart stays tied to the
  published MacBook Air M3 warm-cache lanes instead of implying whole-catalog
  coverage.
- Expanded the README verified-model note to include Gemma 4 E2B alongside the
  other verified local-artifact models outside the quickstart registry.
- Refreshed release-facing metadata so the release matrix now surfaces the
  Gemma 4 E2B compare lane and current package version.

### Fixed

- Synced the public quickstart registry revisions with the canonical catalog for
  `gemma-3-1b-it-q4k-ehf16-af32` and `qwen-3-5-0-8b-q4k-ehaf16`.

## [0.1.8] - 2026-03-18

### Changed

- Simplified demo to show only verified Q4K models (Gemma 3 270M, Gemma 3 1B).
  Hidden Translate, Diffusion, and Embedding tabs until models are ready.
- Split demo monolith (6,680 lines) into focused modules: core, generation,
  storage, translate, diagnostics, routing, utils.
- Trimmed hosted HF registry and quickstart registry to the two verified models.
- Aligned catalog, HF registry, and quickstart registry to the canonical
  external support registry as single source of truth for HF revisions.
- Renamed all `.mjs` tool scripts to `.js` to match `"type": "module"` convention.
- Switched WebGPU optional dependency to `webgpu@^0.4.0`.
- Pruned unused `verify:*` npm scripts for models no longer in the active set.
- Updated release-claim policy with newly verified models (LFM2, Qwen 3.5,
  TranslateGemma variants).

### Fixed

- Fixed Qwen 3.5 conversion configs using the wrong family identifier (`qwen3`
  instead of `qwen3_5`), which caused support matrix check failures.
- Fixed Qwen mRoPE conflation: `ropeInterleaved` was incorrectly set from
  `mropeInterleaved`, forcing adjacent-pair RoPE rotation on Qwen models.
- Fixed catalog lifecycle metadata inconsistencies: corrected `local`, `hf`,
  `curated`, and `demo` fields to match actual artifact availability.
- Fixed GPU-dependent unit tests failing in non-GPU environments by adding
  proper GPU readiness probes with clear skip reasons.
- Fixed kernel-ref digest registry drift (222 vs 224 entries).
- Fixed stale vendor benchmark fixture hashes after compare-engines config update.
- Removed failing and unverified models from demo visibility (TranslateGemma 4B,
  EmbeddingGemma 300M with broken HF manifest, Qwen 3.5 0.8B/2B, F16 variant).

## [0.1.7] - 2026-03-10

### Added

- Added a conventional npm-facing changelog and included it in the published
  package file list.
- Added stronger release-claim, quickstart-registry, local-model-integrity,
  and browser diagnostics regression coverage.
- Added browser OPFS registry smoke workflows for text and embedding model
  validation.

### Changed

- Tightened release-facing model claims around the verified quickstart/catalog
  set and regenerated the support and release matrices from current metadata.
- Synced the public quickstart registry from canonical catalog metadata instead
  of maintaining it by hand.

### Fixed

- Fixed a tensor-loader buffer ownership bug that corrupted returned weight
  buffers and broke Gemma 3 1B generation.
- Fixed quickstart Hugging Face revision drift for registry-backed model IDs.
- Fixed multiple CI contract drifts across onboarding, release metadata,
  support matrices, and generated benchmark fixtures.

## [0.1.6] - 2026-03-07

### Added

- Added stricter config and contract tests around runtime overrides, kernel-path
  semantics, and release-support metadata.
- Added distillation helper extraction coverage for training suite refactors.

### Changed

- Continued the execution-v0 and training orchestration refactor work so public
  entrypoints read more like facades and less like inline policy code.
- Refreshed package exports, repository metadata, and release-facing support
  surfaces for the npm package.

### Fixed

- Preserved explicit `null` semantics for `runtime.inference.kernelPath` through
  schema, runtime config, and harness paths.
- Fixed CI drift around onboarding, registry verification aliases, release
  matrix metadata, and kernel-path config naming.

## [0.1.5] - 2026-03-06

### Added

- Added diffusion kernel and contract work, plus additional Lean execution
  contract sweep tooling.
- Added public API reference inventory and stronger registry workflow tooling.

### Changed

- Expanded documentation around public APIs, registry workflow, hosted model
  visibility, and release metadata.
- Tightened package exports and release checks for the public package surface.

### Fixed

- Fixed hosted TranslateGemma visibility and registry metadata alignment across
  docs, demos, and package surfaces.
- Removed incorrect self-dependency metadata from the published package.

## [0.1.4] - 2026-03-05

### Added

- Added Lean execution contract scripts and related package commands.
- Added translation prompt validation and quickstart/demo polish.

### Fixed

- Fixed external resolution issues in conversion publication paths.
- Fixed quickstart-facing package and demo issues ahead of publication.

## [0.1.3] - 2026-03-05

### Changed

- Intermediate package metadata and dependency layout refresh during early npm
  packaging work.

## [0.1.2] - 2026-03-05

### Changed

- Aligned build scripts, tests, docs, and package conventions with the active
  workspace and release process.
- Refined README messaging and compatibility notes before npm publication.

## [0.1.1] - 2026-03-05

### Added

- Added benchmark vendor comparison docs, runtime patch documentation, and
  refreshed evidence/chart surfaces for the package release.

### Changed

- Moved vendor benchmark dependencies to development dependencies and kept the
  runtime package dependency surface leaner.
- Refreshed package metadata, exports, and README/API positioning for the first
  public npm publishing cycle.

## [0.1.0] - 2025-12-23

### Added

- Initial npm package release for Doppler.
- Browser and Node command surfaces, CLI entrypoint, loader/storage pipeline,
  RDRR manifest handling, config schemas/assets, WebGPU kernel registry, text
  inference pipeline, conversion tooling, benchmark tooling, tests, and demo
  infrastructure.
