| fix(sync): authenticate PoP preflights and align demo notices | Dami | | +279 | -85 | |
| chore: merge main into effect library | Dami | | +0 | -0 | |
| refactor(reference): adopt durable task notices (#185) | FelineStateMachine | | +30 | -92 | |
| fix(effects): make built-ins replay-safe | Dami | | +390 | -126 | |
| fix(effects): review remediations — durable anonymous-unit identity, notice-queue boot merge, a11y | Dami | | +283 | -106 | |
| feat(effects): built-in effect library and the custom-unit authoring contract | Dami | | +1484 | -10 | |
| fix(preact): sync-state quality pass — first-class blocked dispositions, typed enrollment errors, account-gate freshness (#183) | FelineStateMachine | | +284 | -18 | |
| fix(preact): sync-state quality pass — first-class blocked dispositions, typed enrollment errors, account-gate freshness | Dami | | +284 | -18 | |
| feat(site): promote the demo to a top-level nav entry in magma dress (#181) | FelineStateMachine | | +40 | -2 | |
| fix(runtime): sync-state integrity — owner pin, enrollment preflight, guarded stop-sync, reload budget (#180) | FelineStateMachine | | +1007 | -47 | |
| chore(deps): clear vite advisories; refresh transitive resolutions (#178) | FelineStateMachine | | +70 | -315 | |
| fix: publish-safe generator output, project-name personalization, first-boot secret lock (#177) | FelineStateMachine | | +1464 | -27 | |
| feat(testing): scenario simulation testing — named peers, converge, seeded fuzz (#176) | FelineStateMachine | | +1802 | -100 | |
| release: 0.8.1 — resolve @noble/curves in generated apps (#174) | FelineStateMachine | | +165 | -7 | |
| release: 0.8.0 — server-blind fields, possession-bound tickets, and the hosted demo (#173) | FelineStateMachine | | +7 | -7 | |
| feat: automated demo deploy — demo.lofi.host on each release (#171) | FelineStateMachine | | +1823 | -20 | |
| refactor(api): pre-release author-surface pass — entry type closure, internal de-exports, shared-field seam, naming (#169) | FelineStateMachine | | +1493 | -547 | |
| docs: correct author-facing docs where they contradict behavior; fix JSR packaging gaps (#167) | FelineStateMachine | | +123 | -31 | |
| fix(runtime/preact): surface an unopenable sink record instead of silent local-only (#166) | FelineStateMachine | | +56 | -0 | |
| feat(runtime): possession-bound sync tickets — device key at enrollment, proof exchange at connect (#165) | FelineStateMachine | | +568 | -22 | |
| docs: shared-field encryption — usage, threat model, and decision record (#164) | FelineStateMachine | | +191 | -8 | |
| feat(runtime/access): shared-field write path and group key lifecycle (#163) | FelineStateMachine | | +1009 | -16 | |
| feat(schema/runtime): shared encrypted columns — wrapped keys, keyring, and the read side (#162) | FelineStateMachine | | +1299 | -6 | |
| feat(access/runtime): shared-field key directory and account identity (#160) | FelineStateMachine | | +719 | -24 | |
| feat(build): strict Content-Security-Policy for generated apps (#159) | FelineStateMachine | | +264 | -6 | |
| feat(schema): shared-field crypto core — authcrypt key wrap and the encs1 sealed format (#158) | FelineStateMachine | | +631 | -2 | |
| feat(schema): s.privateTable — encrypt-by-default tables with s.plain opt-out (#157) | FelineStateMachine | | +424 | -2 | |
| test(access): stage-0 spike for shared-field encryption (#156) | FelineStateMachine | | +295 | -0 | |
| feat(schema): compile-time and policy guards for encrypted columns (#155) | FelineStateMachine | | +492 | -32 | |
| feat(schema): enc2 padded encrypted-column format and sealed number/date scalars (#152) | FelineStateMachine | | +411 | -28 | |
| fix(site): keep generated parameter-table rows contiguous (#151) | FelineStateMachine | | +8 | -7 | |
| feat(pwa): storage-container fork guard — install warning, flag-cookie detection, recovery notice (#150) | FelineStateMachine | | +977 | -4 | |
| feat(pwa): graceful first load — engine preload, boot progress, single-download precache (#148) | FelineStateMachine | | +485 | -25 | |
| release: 0.7.0 — the effect system and the schema compatibility gate (#144) | FelineStateMachine | | +317 | -58 | |
| feat: effect system — verbs with sync-boundary effects (WriteHandle, durable journal, s.mutation) (#143) | FelineStateMachine | | +3884 | -152 | |
| feat(pwa): couple bundle revision to schema version — compatibility gate and cross-tab upgrade coordination (#142) | FelineStateMachine | | +2205 | -26 | |
| release: 0.6.1 — generated apps resolve the vendored crypto dependencies (#138) | FelineStateMachine | | +17 | -7 | |
| release: 0.6.0 (#137) | FelineStateMachine | | +8 | -8 | |
| feat(app): sink-aware restore — fresh devices connect and recover in either order (#136) | FelineStateMachine | | +133 | -82 | |
| feat(runtime): surface the store state as a boot diagnostic (#135) | FelineStateMachine | | +312 | -1 | |
| docs(site): the communication pass — threat model, homepage claims, status (#134) | FelineStateMachine | | +273 | -47 | |
| fix(site): bump the lofi-node pin to publish the convergence correction (#132) | FelineStateMachine | | +1 | -1 | |
| feat(schema): encrypted columns — server-blind account-private fields (#133) | FelineStateMachine | | +505 | -12 | |
| fix(testing): the convergence gate elects sync before cloning identity (#130) | FelineStateMachine | | +120 | -9 | |
| feat(site): source the /node docs section from the lofi-node checkout (#129) | FelineStateMachine | | +89 | -961 | |
| feat(runtime): PRF-sealed provision custody with the scope-down split (#127) | FelineStateMachine | | +1047 | -14 | |
| feat(runtime): seal the data sink at rest in a slotted envelope (#125) | FelineStateMachine | | +913 | -71 | |
| fix(site): fix the node playground console height so clicks don't shift the buttons | Dami | | +5 | -2 | |
| fix(site): raise the enrolled chip clear of the phone outline | Dami | | +1 | -1 | |
| fix(build): emit the Jazz WASM asset once; report shell weight (#124) | FelineStateMachine | | +165 | -11 | |
| fix(site): let the hero copy column shrink below the install command | Dami | | +7 | -0 | |
| fix(site): draw the playable node's phone as an SVG | Dami | | +16 | -3 | |
| fix(site): stop emitting webpack module stubs as font files | Dami | | +17 | -5 | |
| docs(node): container deployment guide; correct the platform matrix | Dami | | +53 | -7 | |
| modify website title to just be the name of the project rather than jagged descriptors. | Dami | | +2 | -2 | |
| docs(node): relay election — config field, CLI flags, bring-your-own-relay guide | Dami | | +51 | -5 | |
| Merge pull request #115 from FelineStateMachine/release/0.5.0 | FelineStateMachine | | +8 | -8 | |
| release: 0.5.0 | Dami | | +8 | -8 | |
| Merge pull request #113 from FelineStateMachine/feat/node-docs | FelineStateMachine | | +5926 | -324 | |
| docs(brand): lofi-node GitHub social banner | Dami | | +0 | -0 | |
| feat(site): landing redesign, /node interactive rigs, offline-capable PWA | Dami | | +4711 | -481 | |
| feat(site): /node section — lofi-node homepage, docs, api, and llms pair | Dami | | +1406 | -34 | |
| Merge pull request #111 from FelineStateMachine/feat/store-provisioning | FelineStateMachine | | +996 | -1 | |
| fix(schema): move store provisioning to its own @nzip/lofi/schema/store entry | Dami | | +19 | -21 | |
| Merge pull request #110 from FelineStateMachine/feat/data-sink | FelineStateMachine | | +801 | -47 | |
| feat(schema): provision-ticket compat + ticket store-status preflight | Dami | | +136 | -10 | |
| feat(runtime): ticket scope per the lofi-node contract + vendored fixtures | Dami | | +107 | -2 | |
| feat(schema): opt-in store provisioning confined to an app's own namespaces | Dami | | +872 | -1 | |
| feat(runtime): runtime-declared data sink with ticket enrollment | Dami | | +696 | -47 | |
| Merge pull request #108 from FelineStateMachine/feat/nested-namespaces | FelineStateMachine | | +1401 | -40 | |
| feat(schema): nested app namespaces over one sliceable schema | Dami | | +1401 | -40 | |
| Merge pull request #106 from FelineStateMachine/feat/schema-facade-alpha53 | FelineStateMachine | | +1939 | -96 | |
| test(golden): expect 20 lofi imports after the schema seam | Dami | | +1 | -1 | |
| feat(schema): verify migration surface + four focused facade examples | Dami | | +491 | -16 | |
| docs(examples): split examples into access-template and data-modeling sections | Dami | | +88 | -40 | |
| feat(schema): pin lww concurrent merge and .transform() conformance | Dami | | +167 | -23 | |
| feat(schema): concurrent-writer merge pins + column palette docs | Dami | | +343 | -10 | |
| feat(schema): Jazz schema facade + alpha.53 conformance suite | Dami | | +898 | -55 | |
| Merge pull request #104 from FelineStateMachine/docs/llms-links | FelineStateMachine | | +7 | -1 | |
| docs: link llms.txt and llms-full.txt from both READMEs | Dami | | +7 | -1 | |
| Merge pull request #103 from FelineStateMachine/style/prism-brand | FelineStateMachine | | +4 | -2 | |
| style(site): gruvbox material prism themes for code blocks | Dami | | +4 | -2 | |
| Merge pull request #102 from FelineStateMachine/fix/lighthouse-a11y | FelineStateMachine | | +14 | -1 | |
| fix(site): lighthouse accessibility pass | Dami | | +14 | -1 | |
| Merge pull request #101 from FelineStateMachine/fix/publish-clean-tree | FelineStateMachine | | +7 | -0 | |
| fix(ci): publish from a clean tree after validation steps | Dami | | +7 | -0 | |
| Merge pull request #100 from FelineStateMachine/release/0.4.0 | FelineStateMachine | | +12 | -9 | |
| release: bump to 0.4.0 | Dami | | +7 | -7 | |
| style(site): alpha wording on the landing pill, readable dark-mode search hit | Dami | | +5 | -2 | |
| Merge pull request #99 from FelineStateMachine/style/mermaid-brand | FelineStateMachine | | +45 | -1 | |
| style(site): recolor the navbar search icon and placeholder to sage | Dami | | +3 | -0 | |
| style(site): give mermaid diagrams a brand palette readable in both modes | Dami | | +42 | -1 | |
| Merge pull request #98 from FelineStateMachine/style/mermaid-forest | FelineStateMachine | | +3 | -0 | |
| style(site): render mermaid diagrams with the forest theme | Dami | | +3 | -0 | |
| Merge pull request #97 from FelineStateMachine/docs/start-here-table | FelineStateMachine | | +532 | -26 | |
| style(site): keep landing table headers on one line at desktop widths | Dami | | +2 | -0 | |
| feat(site): add fully client-side search over docs and API pages | Dami | | +507 | -1 | |
| style(site): brand the footer with the forest palette | Dami | | +9 | -0 | |
| docs: replace the Start-here flowchart with a reading-path table | Dami | | +14 | -25 | |
| Merge pull request #96 from FelineStateMachine/fix/site-deploy-quiet | FelineStateMachine | | +3 | -1 | |
| fix(ci): create the Pages project only when it is missing | Dami | | +3 | -1 | |
| Merge pull request #95 from FelineStateMachine/feat/wordmark-trace | FelineStateMachine | | +64 | -34 | |
| style(brand): format the traced titlemark SVGs | Dami | | +20 | -10 | |
| style(brand): trace the exact wordmark letterforms into the titlemarks | Dami | | +54 | -34 | |
| Merge pull request #94 from FelineStateMachine/feat/wordmark-exact | FelineStateMachine | | +2 | -13 | |
| style(site): use the exact wordmark letterforms in the navbar logo | Dami | | +2 | -13 | |
| Merge pull request #93 from FelineStateMachine/fix/site-deploy-env | FelineStateMachine | | +24 | -2 | |
| fix(ci): resolve Cloudflare secrets from the dev environment in a deploy job | Dami | | +24 | -2 | |
| Merge pull request #92 from FelineStateMachine/fix/site-deploy | FelineStateMachine | | +9 | -13 | |
| fix(ci): deploy the docs site with npx wrangler instead of wrangler-action | Dami | | +9 | -13 | |
| Merge pull request #91 from FelineStateMachine/feat/docs-site | FelineStateMachine | | +24097 | -190 | |
| docs(readme): trim the README to point at lofi.host, complete .env.example | Dami | | +33 | -155 | |
| docs(jsdoc): add examples and parameter docs to the primary API surface | Dami | | +260 | -11 | |
| feat(site): add Docusaurus docs site with generated API reference and llms.txt | Dami | | +23804 | -24 | |
| Merge pull request #90 from FelineStateMachine/refactor/durability-settlement | FelineStateMachine | | +237 | -84 | |
| Merge pull request #89 from FelineStateMachine/feat/e2e-coverage-ci | FelineStateMachine | | +216 | -34 | |
| style(ci): drop development-history narration from the workflow trigger | Dami | | +0 | -4 | |
| refactor(runtime): one durable-write settlement core for stores and access | Dami | | +237 | -84 | |
| fix(golden): drive the two-step backup ceremony, unbreak patchManifest | Dami | | +12 | -3 | |
| feat(testing): run CI on main PRs, add real-browser backup-migration gate | Dami | | +208 | -31 | |
| Merge pull request #88 from FelineStateMachine/feat/starter-exemplar | FelineStateMachine | | +126 | -34 | |
| feat(starter): enforce the author boundary everywhere, fix vendoring drift | Dami | | +126 | -34 | |
| Merge pull request #87 from FelineStateMachine/fix/tooling-reuse-cleanup | FelineStateMachine | | +442 | -413 | |
| fix(tooling): Windows child environments, .env duplicates, traversal, dedup | Dami | | +442 | -413 | |
| Merge pull request #86 from FelineStateMachine/fix/sync-sw-integrity | FelineStateMachine | | +525 | -48 | |
| fix(runtime): gate sync recovery on election, isolate SW caches per scope | Dami | | +525 | -48 | |
| Merge pull request #85 from FelineStateMachine/fix/access-authorization | FelineStateMachine | | +264 | -5 | |
| fix(access): authorize group-creation rollback, document creator superseat | Dami | | +264 | -5 | |
| Merge pull request #84 from FelineStateMachine/fix/auth-integrity | FelineStateMachine | | +274 | -39 | |
| fix(auth): pin phrase-guard credential, remove implicit origin trust | Dami | | +274 | -39 | |
| Merge pull request #83 from FelineStateMachine/fix/namespace-election-recovery | FelineStateMachine | | +402 | -66 | |
| docs: align identity and passkey decision docs with namespace election | Dami | | +14 | -7 | |
| fix(runtime): make namespace election atomic and recovery non-destructive | Dami | | +388 | -59 | |
| Merge pull request #82 from FelineStateMachine/feat/window-controls-evaluation | FelineStateMachine | | +471 | -22 | |
| feat(pwa): add window controls overlay recipe | Dami | | +471 | -22 | |
| Merge pull request #81 from FelineStateMachine/feat/scope-extension-recipe | FelineStateMachine | | +446 | -8 | |
| feat(pwa): add scope extension recipe | Dami | | +446 | -8 | |
| Merge pull request #80 from FelineStateMachine/feat/application-origin-migration-playbook | FelineStateMachine | | +142 | -1 | |
| docs(pwa): add origin migration playbook | Dami | | +142 | -1 | |
| Merge pull request #79 from FelineStateMachine/feat/related-app-discovery-recipe | FelineStateMachine | | +488 | -20 | |
| feat(pwa): add related app discovery recipe | Dami | | +488 | -20 | |
| Merge pull request #78 from FelineStateMachine/feat/protocol-handler-recipe | FelineStateMachine | | +508 | -20 | |
| feat(pwa): add protocol handler recipe | Dami | | +508 | -20 | |
| Merge pull request #77 from FelineStateMachine/feat/file-handler-recipe | FelineStateMachine | | +902 | -19 | |
| feat(pwa): add file handler recipe | Dami | | +902 | -19 | |
| Merge pull request #76 from FelineStateMachine/feat/launch-handler-recipe | FelineStateMachine | | +569 | -15 | |
| feat(pwa): add launch handler recipe | Dami | | +569 | -15 | |
| Merge pull request #75 from FelineStateMachine/feat/web-share-recipe | FelineStateMachine | | +807 | -19 | |
| feat(pwa): add opt-in web share recipe | Dami | | +807 | -19 | |
| Merge pull request #63 from FelineStateMachine/feat/rich-install-presentation | FelineStateMachine | | +243 | -13 | |
| feat(pwa): add rich install presentation | Dami | | +243 | -13 | |
| Merge pull request #62 from FelineStateMachine/feat/pwa-install-update-ux | FelineStateMachine | | +527 | -40 | |
| feat(pwa): improve install and update lifecycle | Dami | | +527 | -40 | |
| Merge pull request #61 from FelineStateMachine/feat/collaborative-live-data | FelineStateMachine | | +294 | -106 | |
| docs(collaboration): verify live data workflow | Dami | | +294 | -106 | |
| Merge pull request #60 from FelineStateMachine/feat/preact-live-data | FelineStateMachine | | +624 | -64 | |
| feat(preact): add live data hooks | Dami | | +624 | -64 | |
| Merge pull request #59 from FelineStateMachine/feat/live-query-store | FelineStateMachine | | +553 | -5 | |
| feat(runtime): add shared live query stores | Dami | | +553 | -5 | |
| Merge pull request #58 from FelineStateMachine/feat/broker-recovery-ux | FelineStateMachine | | +420 | -25 | |
| fix(runtime): own broker incompatibility recovery | Dami | | +420 | -25 | |
| Merge pull request #57 from FelineStateMachine/feat/validate-pwa-projects | FelineStateMachine | | +965 | -48 | |
| feat(tooling): validate generated PWA artifacts | Dami | | +965 | -48 | |
| Merge pull request #56 from FelineStateMachine/feat/standards-core-manifest | FelineStateMachine | | +168 | -11 | |
| feat(pwa): complete core web manifest | Dami | | +168 | -11 | |
| Merge pull request #55 from FelineStateMachine/feat/harden-service-worker-cache | FelineStateMachine | | +457 | -55 | |
| fix(pwa): bound service worker caching | Dami | | +457 | -55 | |
| Merge pull request #54 from FelineStateMachine/feat/route-base-safe-pwa | FelineStateMachine | | +268 | -21 | |
| fix(pwa): make resources route and base safe | Dami | | +268 | -21 | |
| release: v0.3.3 | Dami | | +23 | -8 | |
| release: v0.3.2 | Dami | | +12 | -9 | |
| release: v0.3.1 | Dami | | +66 | -28 | |
| fix(publish): avoid global type augmentation | Dami | | +5 | -7 | |
| release: v0.3.0 | Dami | | +418 | -119 | |
| Merge pull request #44 from FelineStateMachine/feat/recoverable-collaborative-accounts | FelineStateMachine | | +2567 | -97 | |
| docs: apply lofi brand assets | Dami | | +174 | -8 | |
| feat: ship recoverable collaborative accounts | Dami | | +2393 | -89 | |
| Merge pull request #43 from FelineStateMachine/feat/ship-ready-generated-app | FelineStateMachine | | +1576 | -206 | |
| feat: ship generated app PWA and release gate | Dami | | +1576 | -206 | |
| feat: move runtime behind package boundary (#41) | FelineStateMachine | | +615 | -282 | |
| docs: add visual developer guide for generated apps | Dami | | +1155 | -172 | |
| chore(release): v0.2.0 — local-first accounts, recovery-phrase backup, Jazz provisioning | Dami | | +14 | -14 | |
| fix(ui): make the recovery-phrase reveal a Show/Hide toggle | Dami | | +9 | -8 | |
| feat(auth): require a passkey to reveal the recovery phrase | Dami | | +147 | -17 | |
| feat(auth,cli): local-first accounts with recovery-phrase backup + Jazz app provisioning | Dami | | +1081 | -664 | |
| chore(release): v0.1.1 — document the testing API for JSR | Dami | | +66 | -38 | |
| Merge pull request #38 from FelineStateMachine/agent/webauthn-prf-auth | FelineStateMachine | | +1956 | -77 | |
| feat(example): refresh starter hero copy | Dami | | +4 | -4 | |
| feat(auth): let the user name their passkey at enrollment | Dami | | +32 | -3 | |
| feat(auth): default to device-passkey with a click-to-sign-in gate | Dami | | +819 | -130 | |
| feat(example): make identity and cross-device sync legible in the starter | Dami | | +31 | -11 | |
| feat(auth): "the key is the account" — passkey-derived portable Jazz identity | Dami | | +292 | -13 | |
| feat(auth): WebAuthn/PRF device-credential primitive with PRF-derived at-rest encryption | Dami | | +864 | -2 | |
| Merge pull request #37 from FelineStateMachine/agent/m3-pwa-auth-extract | FelineStateMachine | | +820 | -141 | |
| feat(m3): foreground recovery, PWA install/update lifecycle, WebAuthn/PRF detection | Dami | | +603 | -31 | |
| docs: raise JSR score and make the package README user-facing | Dami | | +217 | -110 | |
| chore(reference): dogfood the published @nzip/lofi via jsr pin + local link | Dami | | +69 | -48 | |
| fix(publish): make @nzip/lofi publishable to JSR | Dami | | +69 | -107 | |
| test(tooling): skip the nested-signal test on CI runners | Dami | | +4 | -2 | |
| Merge pull request #36 from FelineStateMachine/agent/deno-local-first-starter | FelineStateMachine | | +3784 | -3830 | |
| feat(template): keep generic static-deploy scaffolding in generated projects | Dami | | +20 | -4 | |
| chore(release): publish @nzip/lofi to JSR on tag; drop site-deploy machinery | Dami | | +72 | -63 | |
| refactor: recast the reference app as a generic minimal local-first starter | Dami | | +3727 | -641 | |
| chore: retire prototype spikes, ADRs, and legacy tooling | Dami | | +0 | -3157 | |
| Merge pull request #27 from FelineStateMachine/m2 | FelineStateMachine | | +7644 | -638 | |
| Merge pull request #28 from FelineStateMachine/agent/m2-promotion-docs | FelineStateMachine | | +67 | -64 | |
| docs(m2): keep cold registry gates explicit | Dami | | +27 | -27 | |
| docs(m2): align promotion status with accepted layers | Dami | | +62 | -59 | |
| Merge pull request #26 from FelineStateMachine/agent/m2-layer-3-inspector-testing | FelineStateMachine | | +2322 | -99 | |
| fix(testing): make retained traces value-free | Dami | | +179 | -35 | |
| test(golden): prove cloud two-client convergence | Dami | | +155 | -8 | |
| fix(testing): bound convergence scenarios | Dami | | +80 | -18 | |
| feat(testing): publish the browser helper subpath | Dami | | +42 | -3 | |
| feat(inspector): add truthful development diagnostics | Dami | | +655 | -80 | |
| feat(testing): add local-first browser fixtures | Dami | | +1169 | -0 | |
| docs(m2): pin Layer 3 observable boundaries | Dami | | +87 | -0 | |
| Merge pull request #24 from FelineStateMachine/agent/m2-layer-2-command-path | FelineStateMachine | | +1996 | -26 | |
| fix(tooling): harden generated shutdown and builds | Dami | | +222 | -19 | |
| test(golden): graduate the generated project journey | Dami | | +258 | -8 | |
| feat(tooling): graduate generated dev and doctor | Dami | | +988 | -29 | |
| feat(create): add deterministic project generator | Dami | | +559 | -1 | |
| Merge pull request #22 from FelineStateMachine/agent/m2-layer-1-golden-path | FelineStateMachine | | +3309 | -499 | |
| docs: define clean-room layer verification | Dami | | +17 | -0 | |
| docs: keep the root surface on @nzip/lofi | Dami | | +3 | -3 | |
| Merge remote-tracking branch 'origin/main' into agent/m2-layer-1-golden-path | Dami | | +323 | -0 | |
| docs: adopt @nzip/lofi package naming | Dami | | +83 | -52 | |
| ci: remove the per-push Layer 1 gate | Dami | | +0 | -42 | |
| test: make checkout evidence commit-exact | Dami | | +81 | -26 | |
| fix: restore the device persistence control | Dami | | +99 | -0 | |
| fix: harden the Layer 1 evidence gate | Dami | | +385 | -103 | |
| fix: make the Jazz migration deployable | Dami | | +166 | -2 | |
| fix: surface every durability failure | Dami | | +81 | -5 | |
| fix: prove cloud reconnect settlement | Dami | | +60 | -20 | |
| ci: gate the M2 layer one journey | Dami | | +35 | -0 | |
| docs: define the M2 graduation boundary | Dami | | +56 | -16 | |
| feat: graduate the M2 reference golden path | Dami | | +2064 | -374 | |
| Merge pull request #21 from FelineStateMachine/chore/repo-devx-polish | FelineStateMachine | | +333 | -10 | |
| docs: use the reserved @lofi-cat JSR scope in create commands | Dami | | +18 | -18 | |
| docs: add README, contributing guide, and issue/PR templates | Dami | | +323 | -0 | |
| Merge pull request #20 from FelineStateMachine/agent/m0-m1-contract-feasibility | FelineStateMachine | | +7144 | -0 | |
| feat: graduate M1 local-first prototype (#4 #5 #6 #8) | Dami | | +4875 | -194 | |
| docs: attach Jazz baseline commit evidence (#7) | Dami | | +1 | -1 | |
| feat: establish exact Jazz 2 baseline (#7) | Dami | | +1553 | -51 | |
| docs: define executable DevX contract v0 (#1 #2 #3) | Dami | | +942 | -0 | |
| chore: establish safe environment contract (#3) | Dami | | +19 | -0 | |
| chore: initialize repository | Dami | | +0 | -0 | |