@cosmicdrift/kumiko-dispatcher-live 0.5.2 → 0.7.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.
- package/CHANGELOG.md +77 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,82 @@
|
|
|
1
1
|
# @cosmicdrift/kumiko-dispatcher-live
|
|
2
2
|
|
|
3
|
+
## 0.7.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 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).
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [bcf43b6]
|
|
12
|
+
- @cosmicdrift/kumiko-headless@0.7.0
|
|
13
|
+
|
|
14
|
+
## 0.6.0
|
|
15
|
+
|
|
16
|
+
### Minor Changes
|
|
17
|
+
|
|
18
|
+
- 8489d18: feat(es-ops): Phase 1.5 — tenantIdOverride + dry-run-validator + E2E-Test + Doku
|
|
19
|
+
|
|
20
|
+
Phase 1.5 schließt die Lücken aus Phase 1 die den ersten Driver-Use-Case
|
|
21
|
+
(publicstatus admin-roles) blockten. Siehe Retro:
|
|
22
|
+
`kumiko-platform/docs/plans/features/es-ops-phase1-retro.md` (PR #9).
|
|
23
|
+
|
|
24
|
+
**A1 — tenantIdOverride:**
|
|
25
|
+
`SeedMigrationContext.systemWriteAs(qn, payload, tenantIdOverride?)`.
|
|
26
|
+
Default SYSTEM_TENANT_ID (unverändert für System-scope-Aggregates wie
|
|
27
|
+
config-values). Mit override: `createSystemUser(tenantIdOverride)` als
|
|
28
|
+
Executor, damit der Event-Store-Executor den Aggregate-Stream im
|
|
29
|
+
richtigen Tenant findet. Fix für die `version_conflict`-Klasse-Bug
|
|
30
|
+
(Memory `feedback_event_store_tenant_consistency.md`).
|
|
31
|
+
|
|
32
|
+
**A2 — dry-run-validator:**
|
|
33
|
+
Runner parsed seed-files vor `migration.run()` per regex
|
|
34
|
+
`systemWriteAs\(["']([^"']+)["']`, sammelt handler-QNs, validiert
|
|
35
|
+
gegen `registry.getWriteHandler(qn)`. Fail-fast mit klarer Message
|
|
36
|
+
|
|
37
|
+
- Datei + QN statt zur Runtime "handler not found". Catched camelCase-
|
|
38
|
+
typos (kebab-case-vs-camelCase Drift) + andere QN-Drift zur Boot-Zeit.
|
|
39
|
+
runProdApp reicht den richtigen Registry rein (`registry` neu in
|
|
40
|
+
RunPendingSeedMigrationsArgs).
|
|
41
|
+
|
|
42
|
+
**A3 — E2E-Test:**
|
|
43
|
+
`packages/bundled-features/src/__tests__/es-ops-e2e.integration.ts`
|
|
44
|
+
mit `setupTestStack`-Pattern: tenant+config Features echt geladen,
|
|
45
|
+
echtes Membership-Aggregate via TenantHandlers.addMember im Demo-Tenant,
|
|
46
|
+
seed-migration ruft update-member-roles mit tenantIdOverride → write
|
|
47
|
+
geht durch, Marker landed, Event in Store, Read-Model aktualisiert.
|
|
48
|
+
Plus typo-Test: seed mit camelCase fail-t Dry-Run mit
|
|
49
|
+
`/dry-run found.*unknown handler-QN/`. **TDD-First**: ohne A1+A2 wäre
|
|
50
|
+
der test rot.
|
|
51
|
+
|
|
52
|
+
**A4 — Doku:**
|
|
53
|
+
`framework/src/es-ops/README.md` erweitert um „Wann brauche ich
|
|
54
|
+
tenantIdOverride?" + „Deployment-Anforderungen" (Docker COPY, Idempotenz,
|
|
55
|
+
Multi-Replica) + „Lokaler Smoke vor Push". Recipe-README + seed-files
|
|
56
|
+
auf neue API aktualisiert.
|
|
57
|
+
|
|
58
|
+
**A5 — Smoke-Skript-Template:**
|
|
59
|
+
`samples/recipes/seed-migration/scripts/smoke.ts` als copy-paste-Template
|
|
60
|
+
für App-Authors: Bun-runnable, offline (read-only, kein DB-Write),
|
|
61
|
+
validiert Module-Load + QN-Resolution + System-User-Access. Recipe-
|
|
62
|
+
README dokumentiert Pflicht-Pattern.
|
|
63
|
+
|
|
64
|
+
**Bonus-Fix:**
|
|
65
|
+
`tenant:write:create`-access auf `["system", "SystemAdmin"]` erweitert
|
|
66
|
+
(symmetrisch zu update-member-roles). Aufgedeckt durch Recipe-Smoke +
|
|
67
|
+
initial-tenants-Seed. Pinning-Test in `tenant.integration.ts` updated.
|
|
68
|
+
|
|
69
|
+
**Test-State:** 45/45 grün (Pre-Push). Typecheck clean. Biome clean.
|
|
70
|
+
as-cast-Audit clean. Guard-silent-skip clean. Recipe-Smoke clean.
|
|
71
|
+
|
|
72
|
+
**Folge-Step (separater PR):** publicstatus driver-sample reaktivieren
|
|
73
|
+
mit lokalem Pre-Push-Smoke gegen publicstatus' echtes Feature-Set.
|
|
74
|
+
|
|
75
|
+
### Patch Changes
|
|
76
|
+
|
|
77
|
+
- Updated dependencies [8489d18]
|
|
78
|
+
- @cosmicdrift/kumiko-headless@0.6.0
|
|
79
|
+
|
|
3
80
|
## 0.5.2
|
|
4
81
|
|
|
5
82
|
### Patch Changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cosmicdrift/kumiko-dispatcher-live",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "HTTP-only Dispatcher for Kumiko UIs. Always-online; failures surface immediately. Default client for web admin/cockpit apps.",
|
|
5
5
|
"license": "BUSL-1.1",
|
|
6
6
|
"author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@cosmicdrift/kumiko-headless": "0.
|
|
27
|
+
"@cosmicdrift/kumiko-headless": "0.7.0"
|
|
28
28
|
},
|
|
29
29
|
"publishConfig": {
|
|
30
30
|
"registry": "https://registry.npmjs.org",
|