@cosmicdrift/kumiko-renderer-web 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/package.json +5 -5
  2. package/src/__tests__/avatar.test.tsx +1 -2
  3. package/src/__tests__/combobox.test.tsx +1 -2
  4. package/src/__tests__/config-edit.test.tsx +5 -8
  5. package/src/__tests__/create-app.test.tsx +30 -10
  6. package/src/__tests__/date-input.test.tsx +2 -3
  7. package/src/__tests__/default-app-shell.test.tsx +1 -2
  8. package/src/__tests__/dispatcher-context.test.tsx +1 -2
  9. package/src/__tests__/dispatcher-status-wiring.test.tsx +5 -6
  10. package/src/__tests__/kumiko-screen.test.tsx +2 -3
  11. package/src/__tests__/language-switcher.test.tsx +2 -3
  12. package/src/__tests__/money-input.test.tsx +8 -9
  13. package/src/__tests__/nav-base-path.test.tsx +1 -2
  14. package/src/__tests__/nav-search-params.test.tsx +1 -2
  15. package/src/__tests__/nav-tree.test.tsx +1 -2
  16. package/src/__tests__/nav.test.tsx +16 -9
  17. package/src/__tests__/primitives.test.tsx +53 -54
  18. package/src/__tests__/render-edit.test.tsx +3 -4
  19. package/src/__tests__/render-list-column-renderer.test.tsx +3 -4
  20. package/src/__tests__/render-list-debounce.test.tsx +9 -10
  21. package/src/__tests__/render-list.test.tsx +3 -4
  22. package/src/__tests__/sidebar.test.tsx +1 -2
  23. package/src/__tests__/theme-toggle.test.tsx +4 -5
  24. package/src/__tests__/toast.test.tsx +1 -2
  25. package/src/__tests__/use-form.test.tsx +6 -7
  26. package/src/__tests__/use-query-live.test.tsx +1 -2
  27. package/src/__tests__/use-query.test.tsx +7 -8
  28. package/src/__tests__/use-store.test.tsx +2 -3
  29. package/src/__tests__/visual-tree-integration.test.tsx +1 -2
  30. package/src/__tests__/workspace-shell.test.tsx +2 -4
  31. package/src/app/create-app.tsx +5 -3
  32. package/src/layout/__tests__/visual-tree.test.tsx +33 -30
  33. package/CHANGELOG.md +0 -477
package/CHANGELOG.md DELETED
@@ -1,477 +0,0 @@
1
- # @cosmicdrift/kumiko-renderer-web
2
-
3
- ## 0.13.0
4
-
5
- ### Patch Changes
6
-
7
- - @cosmicdrift/kumiko-headless@0.13.0
8
- - @cosmicdrift/kumiko-renderer@0.13.0
9
- - @cosmicdrift/kumiko-dispatcher-live@0.13.0
10
-
11
- ## 0.12.2
12
-
13
- ### Patch Changes
14
-
15
- - @cosmicdrift/kumiko-headless@0.12.2
16
- - @cosmicdrift/kumiko-renderer@0.12.2
17
- - @cosmicdrift/kumiko-dispatcher-live@0.12.2
18
-
19
- ## 0.12.1
20
-
21
- ### Patch Changes
22
-
23
- - @cosmicdrift/kumiko-headless@0.12.1
24
- - @cosmicdrift/kumiko-renderer@0.12.1
25
- - @cosmicdrift/kumiko-dispatcher-live@0.12.1
26
-
27
- ## 0.12.0
28
-
29
- ### Patch Changes
30
-
31
- - @cosmicdrift/kumiko-dispatcher-live@0.12.0
32
- - @cosmicdrift/kumiko-headless@0.12.0
33
- - @cosmicdrift/kumiko-renderer@0.12.0
34
-
35
- ## 0.11.2
36
-
37
- ### Patch Changes
38
-
39
- - @cosmicdrift/kumiko-headless@0.11.2
40
- - @cosmicdrift/kumiko-renderer@0.11.2
41
- - @cosmicdrift/kumiko-dispatcher-live@0.11.2
42
-
43
- ## 0.11.1
44
-
45
- ### Patch Changes
46
-
47
- - @cosmicdrift/kumiko-dispatcher-live@0.11.1
48
- - @cosmicdrift/kumiko-headless@0.11.1
49
- - @cosmicdrift/kumiko-renderer@0.11.1
50
-
51
- ## 0.11.0
52
-
53
- ### Patch Changes
54
-
55
- - @cosmicdrift/kumiko-headless@0.11.0
56
- - @cosmicdrift/kumiko-renderer@0.11.0
57
- - @cosmicdrift/kumiko-dispatcher-live@0.11.0
58
-
59
- ## 0.10.0
60
-
61
- ### Patch Changes
62
-
63
- - @cosmicdrift/kumiko-headless@0.10.0
64
- - @cosmicdrift/kumiko-renderer@0.10.0
65
- - @cosmicdrift/kumiko-dispatcher-live@0.10.0
66
-
67
- ## 0.9.0
68
-
69
- ### Patch Changes
70
-
71
- - @cosmicdrift/kumiko-headless@0.9.0
72
- - @cosmicdrift/kumiko-renderer@0.9.0
73
- - @cosmicdrift/kumiko-dispatcher-live@0.9.0
74
-
75
- ## 0.8.1
76
-
77
- ### Patch Changes
78
-
79
- - @cosmicdrift/kumiko-headless@0.8.1
80
- - @cosmicdrift/kumiko-renderer@0.8.1
81
- - @cosmicdrift/kumiko-dispatcher-live@0.8.1
82
-
83
- ## 0.8.0
84
-
85
- ### Patch Changes
86
-
87
- - @cosmicdrift/kumiko-headless@0.8.0
88
- - @cosmicdrift/kumiko-renderer@0.8.0
89
- - @cosmicdrift/kumiko-dispatcher-live@0.8.0
90
-
91
- ## 0.7.0
92
-
93
- ### Minor Changes
94
-
95
- - bcf43b6: es-ops: `SeedMembershipRow` exposes `streamTenantId` (stream-tenant aus `kumiko_events.v1`) neben dem payload-`tenantId`. Seed-Authors müssen den `kumiko_events`-JOIN nicht mehr selbst bauen — `m.streamTenantId` ist der korrekte Wert für `systemWriteAs`'s `tenantIdOverride` wenn das Aggregate von einem fremden Executor angelegt wurde (typisches `seedTenantMembership(by=systemAdmin)`-Pattern).
96
-
97
- ### Patch Changes
98
-
99
- - Updated dependencies [bcf43b6]
100
- - @cosmicdrift/kumiko-dispatcher-live@0.7.0
101
- - @cosmicdrift/kumiko-headless@0.7.0
102
- - @cosmicdrift/kumiko-renderer@0.7.0
103
-
104
- ## 0.6.0
105
-
106
- ### Minor Changes
107
-
108
- - 8489d18: feat(es-ops): Phase 1.5 — tenantIdOverride + dry-run-validator + E2E-Test + Doku
109
-
110
- Phase 1.5 schließt die Lücken aus Phase 1 die den ersten Driver-Use-Case
111
- (publicstatus admin-roles) blockten. Siehe Retro:
112
- `kumiko-platform/docs/plans/features/es-ops-phase1-retro.md` (PR #9).
113
-
114
- **A1 — tenantIdOverride:**
115
- `SeedMigrationContext.systemWriteAs(qn, payload, tenantIdOverride?)`.
116
- Default SYSTEM_TENANT_ID (unverändert für System-scope-Aggregates wie
117
- config-values). Mit override: `createSystemUser(tenantIdOverride)` als
118
- Executor, damit der Event-Store-Executor den Aggregate-Stream im
119
- richtigen Tenant findet. Fix für die `version_conflict`-Klasse-Bug
120
- (Memory `feedback_event_store_tenant_consistency.md`).
121
-
122
- **A2 — dry-run-validator:**
123
- Runner parsed seed-files vor `migration.run()` per regex
124
- `systemWriteAs\(["']([^"']+)["']`, sammelt handler-QNs, validiert
125
- gegen `registry.getWriteHandler(qn)`. Fail-fast mit klarer Message
126
-
127
- - Datei + QN statt zur Runtime "handler not found". Catched camelCase-
128
- typos (kebab-case-vs-camelCase Drift) + andere QN-Drift zur Boot-Zeit.
129
- runProdApp reicht den richtigen Registry rein (`registry` neu in
130
- RunPendingSeedMigrationsArgs).
131
-
132
- **A3 — E2E-Test:**
133
- `packages/bundled-features/src/__tests__/es-ops-e2e.integration.ts`
134
- mit `setupTestStack`-Pattern: tenant+config Features echt geladen,
135
- echtes Membership-Aggregate via TenantHandlers.addMember im Demo-Tenant,
136
- seed-migration ruft update-member-roles mit tenantIdOverride → write
137
- geht durch, Marker landed, Event in Store, Read-Model aktualisiert.
138
- Plus typo-Test: seed mit camelCase fail-t Dry-Run mit
139
- `/dry-run found.*unknown handler-QN/`. **TDD-First**: ohne A1+A2 wäre
140
- der test rot.
141
-
142
- **A4 — Doku:**
143
- `framework/src/es-ops/README.md` erweitert um „Wann brauche ich
144
- tenantIdOverride?" + „Deployment-Anforderungen" (Docker COPY, Idempotenz,
145
- Multi-Replica) + „Lokaler Smoke vor Push". Recipe-README + seed-files
146
- auf neue API aktualisiert.
147
-
148
- **A5 — Smoke-Skript-Template:**
149
- `samples/recipes/seed-migration/scripts/smoke.ts` als copy-paste-Template
150
- für App-Authors: Bun-runnable, offline (read-only, kein DB-Write),
151
- validiert Module-Load + QN-Resolution + System-User-Access. Recipe-
152
- README dokumentiert Pflicht-Pattern.
153
-
154
- **Bonus-Fix:**
155
- `tenant:write:create`-access auf `["system", "SystemAdmin"]` erweitert
156
- (symmetrisch zu update-member-roles). Aufgedeckt durch Recipe-Smoke +
157
- initial-tenants-Seed. Pinning-Test in `tenant.integration.ts` updated.
158
-
159
- **Test-State:** 45/45 grün (Pre-Push). Typecheck clean. Biome clean.
160
- as-cast-Audit clean. Guard-silent-skip clean. Recipe-Smoke clean.
161
-
162
- **Folge-Step (separater PR):** publicstatus driver-sample reaktivieren
163
- mit lokalem Pre-Push-Smoke gegen publicstatus' echtes Feature-Set.
164
-
165
- ### Patch Changes
166
-
167
- - Updated dependencies [8489d18]
168
- - @cosmicdrift/kumiko-dispatcher-live@0.6.0
169
- - @cosmicdrift/kumiko-headless@0.6.0
170
- - @cosmicdrift/kumiko-renderer@0.6.0
171
-
172
- ## 0.5.2
173
-
174
- ### Patch Changes
175
-
176
- - 4f0d781: fix(tenant): updateMemberRoles erlaubt "system"-Rolle (symmetrisch zu create)
177
-
178
- Drift innerhalb des tenant-Features: `tenant:write:create` akzeptierte
179
- `["system", "SystemAdmin"]`, `tenant:write:update-member-roles` aber
180
- nur `["SystemAdmin"]`. Konsequenz: ops-tooling und seed-migrations
181
- (`createSystemUser` mit `roles: ["system"]`) konnten den Handler nicht
182
- aufrufen — `access_denied`.
183
-
184
- Live entdeckt beim ersten Driver-Sample der es-ops Phase 1: publicstatus
185
- seed `2026-05-20-fix-admin-roles.ts` rief `update-member-roles` via
186
- `systemWriteAs` → access_denied → Pod CrashLoopBackOff.
187
-
188
- Plus access-rule-Pinning-Test in `tenant.integration.ts`-scenario-7.
189
-
190
- - Updated dependencies [4f0d781]
191
- - @cosmicdrift/kumiko-dispatcher-live@0.5.2
192
- - @cosmicdrift/kumiko-headless@0.5.2
193
- - @cosmicdrift/kumiko-renderer@0.5.2
194
-
195
- ## 0.5.1
196
-
197
- ### Patch Changes
198
-
199
- - 0e00015: fix(es-ops): path.resolve statt path.join für seedsDir → seed-files
200
-
201
- Bun's `await import()` braucht absolute Pfade. Wenn der App-Author
202
- `runProdApp({ seedsDir: "./seeds" })` setzt (relativ), würde
203
- `path.join("./seeds", "foo.ts")` einen relativen Pfad liefern → Bun's
204
- Import-Resolver such relativ zum `runner.ts`-Modul (nicht zum
205
- `process.cwd()`) → `Cannot find module 'seeds/...' from '<runner-path>'`.
206
-
207
- `path.resolve` löst gegen `process.cwd()` auf → absolute Pfade →
208
- Import funktioniert. Aufgedeckt beim ersten Live-Boot der publicstatus-
209
- Driver-Migration (Pod CrashLoopBackOff).
210
-
211
- - Updated dependencies [0e00015]
212
- - @cosmicdrift/kumiko-dispatcher-live@0.5.1
213
- - @cosmicdrift/kumiko-headless@0.5.1
214
- - @cosmicdrift/kumiko-renderer@0.5.1
215
-
216
- ## 0.5.0
217
-
218
- ### Minor Changes
219
-
220
- - 7ff69ab: feat(es-ops): Phase 1 — file-based seed-migrations
221
-
222
- Neues first-class Operations-Pattern fürs Framework. Liefert `seed-migrations`
223
- als drizzle-migrate-equivalent für Event-Sourcing-Aggregate-Updates die
224
- idempotent-Seeder nicht erfassen können (z.B. „Member hat schon eine
225
- Rolle, aber jetzt soll noch eine dazukommen").
226
-
227
- Public-API:
228
-
229
- - `runProdApp({ seedsDir })` — Auto-apply pending Migrations beim Boot
230
- - `SeedMigration`-Interface (default-Export einer `seeds/<id>.ts`-File)
231
- - `SeedMigrationContext` mit `systemWriteAs` (ruft existing write-handler
232
- als System-User) + Read-Helpers (`findUserByEmail`,
233
- `findMembershipsOfUser`, `findTenants`)
234
- - CLI: `bunx kumiko ops seed:new|status|apply`
235
- - Tracking-Table `kumiko_es_operations` mit `operation_type`-Discriminator
236
- (vorbereitet auf Phase 2+ Operations: projection-rebuild, event-replay,
237
- stream-migration, ...)
238
- - Env-Flags: `KUMIKO_SKIP_ES_OPS=1` (alle skippen für Recovery),
239
- `KUMIKO_SKIP_ES_OPS_<ID>=1` (einzelne kaputte skippen)
240
-
241
- Garantien: single-run via tracking, atomic via per-migration-Tx,
242
- chronological order via filename-prefix, fail-stop bei Failure (kein
243
- Partial-Apply), ES-konform via Handler-Dispatch.
244
-
245
- Sub-path-Export: `@cosmicdrift/kumiko-framework/es-ops`
246
-
247
- Plan-Doc: `kumiko-platform/docs/plans/features/es-ops.md`
248
- Recipe: `samples/recipes/seed-migration/`
249
- Driver-Use-Case: publicstatus admin-roles-drift (parallel-Branch
250
- `feat/es-ops-driver-admin-roles`).
251
-
252
- Phase 2+ skizziert + offen markiert — Implementation pro Use-Case.
253
-
254
- ### Patch Changes
255
-
256
- - Updated dependencies [7ff69ab]
257
- - @cosmicdrift/kumiko-dispatcher-live@0.5.0
258
- - @cosmicdrift/kumiko-headless@0.5.0
259
- - @cosmicdrift/kumiko-renderer@0.5.0
260
-
261
- ## 0.4.1
262
-
263
- ### Patch Changes
264
-
265
- - 010b410: feat(auth-email-password): "Bestätigungs-Mail erneut senden" im LoginScreen
266
-
267
- LoginScreen bietet bei reason=email_not_verified jetzt einen Resend-Link
268
- im Fehler-Banner — der existierende `requestEmailVerification`-Endpoint
269
- wird direkt aufgerufen, der Banner wechselt nach Erfolg zum Info-Variant
270
- ("Wir haben dir eine neue Bestätigungs-Mail geschickt.").
271
-
272
- UX-Details:
273
-
274
- - Bei 429 → inline-Hint "Bitte warte kurz und versuche es erneut."
275
- - Bei Netzwerk/sonstigen Fehlern → inline-Hint "Konnte nicht senden."
276
- - Anti-Typo-Gate: ändert der User die Email-Eingabe nach dem Login-Fail,
277
- verschwindet der Resend-Link — sonst würde Resend silent-success an die
278
- geänderte (potentiell typoed) Adresse gehen ohne User-Feedback.
279
- - Andere Failure-Codes (invalid_credentials etc.) zeigen weiterhin keinen
280
- Resend-Link.
281
-
282
- i18n: 4 neue Keys (DE+EN) im `auth.login.resend*`-Namespace, additive.
283
- Apps die ihre Translations override-en müssen nichts ändern.
284
-
285
- Additive UI-Feature — keine API-Breaks, keine Schema-Migration.
286
-
287
- - Updated dependencies [010b410]
288
- - @cosmicdrift/kumiko-dispatcher-live@0.4.1
289
- - @cosmicdrift/kumiko-headless@0.4.1
290
- - @cosmicdrift/kumiko-renderer@0.4.1
291
-
292
- ## 0.4.0
293
-
294
- ### Minor Changes
295
-
296
- - 825e7d2: Visual-Tree V.1.4 → V.1.6 — Feature-complete Editor + Folder-Hierarchy + Roving-tabindex.
297
-
298
- **V.1.4** — explicit `folder?: string` Schema-Field auf text-block-entity. Slug bleibt
299
- kebab-only validiert, Folder explizit gesetzt. Tree gruppiert via `groupBlocksByFolder`
300
- (ersetzt `groupBlocksBySlugPrefix`). `Subscribe<T>` Signature um optional `emitError`
301
- erweitert für explicit async-error-Pfade. ProviderBranch zeigt Error-Banner mit
302
- Retry-Button. Drift-Test pinnt seedTextBlock-vs-set.write Slug-Validation.
303
-
304
- **V.1.4b** — URL-State-Routing für Editor-Target via `nav.searchParams`. F5 + Back-Button
305
- stellen den Editor-State wieder her. Format: `?t=text-content:edit&a_slug=...&a_lang=...`.
306
- Plus `useDispatchTarget` hook ersetzt globalen `dispatchTarget` als empfohlenen Production-
307
- Pfad (legacy bleibt für Test-Hooks).
308
-
309
- **V.1.5** — Arrow-Key-Navigation (`<aside role="tree">`, ARIA-tree-Pattern) + SSE-driven
310
- Tree-Refresh. `ClientFeatureDefinition.treeEntities?: string[]` listet Entity-Namen pro
311
- Provider; live-events triggern provider-re-mount → Stale-Tree-state="stub"→"filled"
312
- flippt nach save automatisch.
313
-
314
- **V.1.5c+d** — Active-Node-Highlight (explicit blue + 2px border-l + scrollIntoView),
315
- VS-Code-Polish (compact spacing, focus-visible, folder-icon-color text-amber, indent-
316
- guides per ancestor-depth), Folder-Wrapper für legal-pages ("📁 Legal" + slug-first
317
- Verschachtelung) und text-content ("📁 Content").
318
-
319
- **V.1.6** — Multi-level Folder-Splitting (`folder="page/marketing"` → nested folders,
320
- walk-or-create-pattern, folder/leaf-collision-tolerant). Roving-tabindex (nur focused-
321
- treeitem hat tabIndex=0, Tab cyclt aus dem Tree raus).
322
-
323
- 35/35 kumiko check PASS, 13/13 group-blocks + 22/22 text-content integration tests grün.
324
- Browser + Keyboard lokal validated.
325
-
326
- **Breaking**: `TreeContext` Type entfernt (V.1.2 SR2-Rip — war nie genutzt). Provider sind
327
- session-bound: `TreeChildrenSubscribe = () => Subscribe<T>` statt `(ctx) => Subscribe<T>`.
328
-
329
- **V.1.7-Followups**: useEffect-deps in VisualTree-focus-init (Performance), Cancellation-
330
- Token in TreeProvider's fetch (emit-after-unmount-warning), inline-rename, drag-drop,
331
- file-icons per slug-extension, parent-jump bei ArrowLeft auf collapsed-item.
332
-
333
- ### Patch Changes
334
-
335
- - Updated dependencies [825e7d2]
336
- - @cosmicdrift/kumiko-dispatcher-live@0.4.0
337
- - @cosmicdrift/kumiko-headless@0.4.0
338
- - @cosmicdrift/kumiko-renderer@0.4.0
339
-
340
- ## 0.3.0
341
-
342
- ### Minor Changes
343
-
344
- - 0.3.0 bringt zwei neue Subsysteme (Step-Engine Tier-3 + Visual-Tree) plus
345
- eine AST-Codemod-Pipeline als Vorarbeit für den L2-AI-Layer.
346
-
347
- ### Breaking Changes
348
-
349
- - `skipTransitionGuard` → `unsafeSkipTransitionGuard` (Rename in
350
- feature-ast + engine). Der `unsafe`-Prefix macht die Tragweite des
351
- Casts sichtbar und ist konsistent zur `unsafeProjectionUpsert`- und
352
- `r.rawTable`-Konvention. Migration: 1:1-Ersetzung, keine Verhaltens-Änderung.
353
-
354
- ### Features
355
-
356
- - **Step-Engine M.4 — Tier-3 Workflow-Engine.** Neue Step-Vocabulary
357
- `wait`, `waitForEvent`, `retry` ermöglicht persistierte Long-Running-Flows
358
- über Job-Boundaries hinweg. Q7 Snapshot-at-Start hängt jedem Step-Run
359
- einen SHA-256-Fingerprint des Aggregat-Zustands an, sodass Replays
360
- deterministisch gegen den ursprünglichen Eingangszustand laufen.
361
- - **Visual-Tree V.1.x — Tree-API + Editor-Panel.** Neue `VisualTree`-
362
- Component plus TreeProvider-Pattern; erste TreeProviders für
363
- `text-content` und `legal-pages` (CMS-light + Impressum/Privacy).
364
- Fundament für den späteren No-Code-Designer (~3000 LOC, 98 Tests).
365
- - **Codemod-Pipeline.** AST-basierte Patcher-Module für strukturelle
366
- Feature-Edits — wird vom kommenden L2-AI-Layer als Tool-Surface
367
- verwendet, ist aber eigenständig nutzbar für ts-morph-style Migrationen.
368
- - **user-data-rights Sample-Recipe.** DSGVO Art. 15/17/18/20 vollständig
369
- als Sample-Recipe (`samples/recipes/`) inklusive README — zeigt die
370
- Export- und Forget-Pipeline gegen den `compliance-profiles`-Default
371
- (`eu-dsgvo`).
372
-
373
- ### Fixes
374
-
375
- - `tier-engine`: auto-default-tier-Hook benutzt jetzt `ctx.db.raw` für
376
- Event-Store-Operationen (#37, vorher: stiller Bug, 22 Tage live).
377
- - `engine`: unsafe-projection-upsert nutzt `as never` statt `as any` —
378
- schmaler Cast-Surface, weniger Compiler-Knebel.
379
- - `visual-tree`: runtime-isolation marker für client-konsumierte Files,
380
- damit der Multi-Entry-Build den richtigen Bundle-Split bekommt.
381
- - `feature-ast`: vollständiger `unsafeSkipTransitionGuard`-Rename (war
382
- in zwei Modulen noch der alte Name).
383
- - `framework`: Error-Reasons + `noConsole`-Lint + No-Date-API-Guard
384
- wieder push-ready.
385
-
386
- ### Library-Updates
387
-
388
- hono 4.12, jose 6.2, stripe 22.1, meilisearch 0.58, marked 18,
389
- bun-types 1.3.13, lucide-react 1.14, bullmq 5.76, ioredis 5.10,
390
- i18next 26.0, react + radix-ui-primitives auf aktuelle Minors.
391
-
392
- ### Patch Changes
393
-
394
- - Updated dependencies
395
- - @cosmicdrift/kumiko-dispatcher-live@0.3.0
396
- - @cosmicdrift/kumiko-headless@0.3.0
397
- - @cosmicdrift/kumiko-renderer@0.3.0
398
-
399
- ## 0.2.3
400
-
401
- ### Patch Changes
402
-
403
- - @cosmicdrift/kumiko-dispatcher-live@0.2.3
404
- - @cosmicdrift/kumiko-headless@0.2.3
405
- - @cosmicdrift/kumiko-renderer@0.2.3
406
-
407
- ## 0.2.2
408
-
409
- ### Patch Changes
410
-
411
- - 7a7da3e: Re-publish 0.2.1 → 0.2.2 mit korrekt aufgelösten cross-package-Versionen.
412
- 0.2.1 hatte `workspace:*` als Wert in den dependencies (npm publish ohne
413
- yarn-pack rewrite), Konsumenten bekamen "Workspace not found".
414
-
415
- publish-with-oidc.sh nutzt jetzt `yarn pack` (rewrited workspace:\*) +
416
- `npm publish <tarball>` (OIDC + provenance).
417
-
418
- - Updated dependencies [7a7da3e]
419
- - @cosmicdrift/kumiko-headless@0.2.2
420
- - @cosmicdrift/kumiko-dispatcher-live@0.2.2
421
- - @cosmicdrift/kumiko-renderer@0.2.2
422
-
423
- ## 0.2.1
424
-
425
- ### Patch Changes
426
-
427
- - 48b7f6a: CI: switch publish to npm-CLI with OIDC Trusted Publishing + provenance.
428
- No source changes — verifies the new publish path produces a verified-
429
- provenance attestation on npmjs.com instead of token-based publish.
430
- - Updated dependencies [48b7f6a]
431
- - @cosmicdrift/kumiko-headless@0.2.1
432
- - @cosmicdrift/kumiko-dispatcher-live@0.2.1
433
- - @cosmicdrift/kumiko-renderer@0.2.1
434
-
435
- ## 0.2.0
436
-
437
- ### Minor Changes
438
-
439
- - 6c70b6f: fix(tenant): seedTenant idempotent gegen Event-Store-Projection-Drift.
440
-
441
- Verhindert version_conflict beim App-Boot wenn Aggregat existiert aber
442
- Projection-Row fehlt (rebuild-drift, async-lag, manueller DB-Eingriff).
443
-
444
- ### Patch Changes
445
-
446
- - Updated dependencies [6c70b6f]
447
- - @cosmicdrift/kumiko-dispatcher-live@0.2.0
448
- - @cosmicdrift/kumiko-headless@0.2.0
449
- - @cosmicdrift/kumiko-renderer@0.2.0
450
-
451
- ## 0.1.0
452
-
453
- ### Minor Changes
454
-
455
- - 59ba6d7: Initial public release of Kumiko — AI-native backend builder.
456
-
457
- What ships in 0.1.0:
458
-
459
- - **Engine** (`@cosmicdrift/kumiko-framework`): `defineFeature`, `r.entity`, `r.writeHandler`, `r.queryHandler`, `r.projection`, `r.multiStreamProjection`, `r.hook`, `r.translations`, `r.crud`, `r.referenceData`, `r.screen`, `r.nav`, `r.authClaims`, full lifecycle pipeline with field-level access checks
460
- - **Pipeline** (`@cosmicdrift/kumiko-framework`): `createDispatcher`, JWT auth via jose, Zod schema validation, role-based access checks, command/write/query split
461
- - **DB** (`@cosmicdrift/kumiko-framework`): Drizzle helpers (`buildDrizzleTable`, `applyCursorQuery`), CRUD executor, Postgres dialect, optimistic locking, soft delete, multi-tenant scoping
462
- - **Event sourcing** (`@cosmicdrift/kumiko-framework`): aggregate streams, single + multi-stream projections, event upcasters, asOf queries, archive support, AsyncDaemon-pattern dispatcher
463
- - **Bundled features** (`@cosmicdrift/kumiko-bundled-features`): auth-email-password, sessions, tenants, users, jobs, secrets, file-provider-s3, mail-transport-smtp/inmemory, billing-foundation, cap-counter, channel-in-app, delivery, feature-toggles, legal-pages
464
- - **Renderer** (`@cosmicdrift/kumiko-renderer`, `@cosmicdrift/kumiko-renderer-web`): schema-driven CRUD UI for React + Expo Web, override paths, list debounce, theme tokens
465
- - **Headless** (`@cosmicdrift/kumiko-headless`): view-models for list/edit screens, locale-aware
466
- - **Dev server** (`@cosmicdrift/kumiko-dev-server`): `runDevApp`, `runProdApp`, `kumiko-build` for production bundles (client + server), Docker-ready
467
- - **Realtime** (`@cosmicdrift/kumiko-dispatcher-live`): SSE broadcast across tenants, Redis Pub/Sub backend
468
- - **CLI** (`bin/kumiko.ts`): interactive dev menu, test runners, check pipeline (Biome + TypeScript + 18 guards + Vitest)
469
-
470
- This is a pre-1.0 release — APIs may change between minor versions. Breaking changes will be documented per release.
471
-
472
- ### Patch Changes
473
-
474
- - Updated dependencies [59ba6d7]
475
- - @cosmicdrift/kumiko-dispatcher-live@0.1.0
476
- - @cosmicdrift/kumiko-headless@0.1.0
477
- - @cosmicdrift/kumiko-renderer@0.1.0