instar 1.3.339 → 1.3.340

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 (54) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +166 -10
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/config/ConfigDefaults.d.ts.map +1 -1
  5. package/dist/config/ConfigDefaults.js +17 -0
  6. package/dist/config/ConfigDefaults.js.map +1 -1
  7. package/dist/core/AutonomousSessions.d.ts +17 -2
  8. package/dist/core/AutonomousSessions.d.ts.map +1 -1
  9. package/dist/core/AutonomousSessions.js +30 -4
  10. package/dist/core/AutonomousSessions.js.map +1 -1
  11. package/dist/core/CoherenceJournal.d.ts +326 -0
  12. package/dist/core/CoherenceJournal.d.ts.map +1 -0
  13. package/dist/core/CoherenceJournal.js +999 -0
  14. package/dist/core/CoherenceJournal.js.map +1 -0
  15. package/dist/core/CoherenceJournalReader.d.ts +158 -0
  16. package/dist/core/CoherenceJournalReader.d.ts.map +1 -0
  17. package/dist/core/CoherenceJournalReader.js +450 -0
  18. package/dist/core/CoherenceJournalReader.js.map +1 -0
  19. package/dist/core/JournalSyncApplier.d.ts +272 -0
  20. package/dist/core/JournalSyncApplier.d.ts.map +1 -0
  21. package/dist/core/JournalSyncApplier.js +835 -0
  22. package/dist/core/JournalSyncApplier.js.map +1 -0
  23. package/dist/core/StateManager.d.ts +41 -0
  24. package/dist/core/StateManager.d.ts.map +1 -1
  25. package/dist/core/StateManager.js +100 -0
  26. package/dist/core/StateManager.js.map +1 -1
  27. package/dist/core/types.d.ts +35 -0
  28. package/dist/core/types.d.ts.map +1 -1
  29. package/dist/core/types.js.map +1 -1
  30. package/dist/messaging/TelegramAdapter.d.ts +14 -0
  31. package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
  32. package/dist/messaging/TelegramAdapter.js +16 -1
  33. package/dist/messaging/TelegramAdapter.js.map +1 -1
  34. package/dist/scaffold/templates.d.ts.map +1 -1
  35. package/dist/scaffold/templates.js +7 -0
  36. package/dist/scaffold/templates.js.map +1 -1
  37. package/dist/server/routes.d.ts.map +1 -1
  38. package/dist/server/routes.js +54 -3
  39. package/dist/server/routes.js.map +1 -1
  40. package/package.json +2 -2
  41. package/scripts/lint-cas-emit-placement.js +87 -0
  42. package/scripts/lint-journal-actuation-ban.js +63 -0
  43. package/scripts/lint-state-registry.js +313 -0
  44. package/src/data/builtin-manifest.json +46 -46
  45. package/src/data/state-coherence-registry.json +880 -0
  46. package/src/scaffold/templates.ts +7 -0
  47. package/upgrades/1.3.340.md +132 -0
  48. package/upgrades/coherence-journal-p1-1.eli16.md +11 -0
  49. package/upgrades/coherence-journal-p1-2.eli16.md +11 -0
  50. package/upgrades/coherence-journal-p1-3.eli16.md +13 -0
  51. package/upgrades/side-effects/coherence-journal-p1-1.md +68 -0
  52. package/upgrades/side-effects/coherence-journal-p1-2.md +54 -0
  53. package/upgrades/side-effects/coherence-journal-p1-3.md +49 -0
  54. package/upgrades/1.3.339.md +0 -48
@@ -0,0 +1,880 @@
1
+ {
2
+ "$schema-note": "Machine form of docs/specs/STATE-COHERENCE-REGISTRY.md (the approved census, census-date 2026-06-05). AUTHORED, NOT build-generated (committed-generated-manifest conflict-loop lesson, COHERENCE-JOURNAL-SPEC §3.6). One entry per durable state category the census enumerates. Consumed by scripts/lint-state-registry.js: every direct durable-write site targeting a state dir / .instar/ must match an entry's `paths` (or carry an inline `/* state-registry: <category> */` annotation). Fields: category (kebab-case id) | description | scope (machine-local | must-be-coherent | derived-cache | coherent-on-demand) | freshness (real-time | eventual | session-boundary | n/a) | conflictShape (single-writer | append-only | lww | n/a) | transport (git | peer-http | none | deferred) | paths (glob-ish hints) | grandfathered (census marked uncertainty, §4e). New state declares its class here at birth.",
3
+ "version": 1,
4
+ "censusDate": "2026-06-05",
5
+ "sourceDoc": "docs/specs/STATE-COHERENCE-REGISTRY.md",
6
+ "entries": [
7
+ {
8
+ "category": "coherence-journal",
9
+ "description": "Per-machine append-only cross-machine event streams (topic-placement / session-lifecycle / autonomous-run); replicated first-hop over the mesh (COHERENCE-JOURNAL-SPEC P1).",
10
+ "scope": "must-be-coherent",
11
+ "freshness": "eventual",
12
+ "conflictShape": "append-only",
13
+ "transport": "peer-http",
14
+ "paths": [
15
+ "state/coherence-journal/"
16
+ ],
17
+ "grandfathered": false
18
+ },
19
+ {
20
+ "category": "commitments",
21
+ "description": "CommitmentTracker single-writer CAS store of user-facing promises and follow-through state.",
22
+ "scope": "must-be-coherent",
23
+ "freshness": "eventual",
24
+ "conflictShape": "single-writer",
25
+ "transport": "peer-http",
26
+ "paths": [
27
+ "state/commitments.json"
28
+ ],
29
+ "grandfathered": false
30
+ },
31
+ {
32
+ "category": "attention-queue",
33
+ "description": "Attention items surfaced to the user, plus the per-source coalescing/suppression ledger.",
34
+ "scope": "must-be-coherent",
35
+ "freshness": "eventual",
36
+ "conflictShape": "single-writer",
37
+ "transport": "peer-http",
38
+ "paths": [
39
+ "state/attention-items.json",
40
+ "state/attention-suppressed.jsonl"
41
+ ],
42
+ "grandfathered": false
43
+ },
44
+ {
45
+ "category": "topic-placement-history",
46
+ "description": "Topic<->machine placement history (does not exist as its own store yet; the journal's first stream materializes it). Distinct from current-owner pool state.",
47
+ "scope": "must-be-coherent",
48
+ "freshness": "eventual",
49
+ "conflictShape": "append-only",
50
+ "transport": "peer-http",
51
+ "paths": [
52
+ "state/coherence-journal/*.topic-placement.jsonl"
53
+ ],
54
+ "grandfathered": false
55
+ },
56
+ {
57
+ "category": "autonomous-working-artifacts",
58
+ "description": "Autonomous run working files and their declared artifact paths (the EXO stranding). Coherent-on-demand: fetched via working-set pull when a topic moves.",
59
+ "scope": "coherent-on-demand",
60
+ "freshness": "session-boundary",
61
+ "conflictShape": "single-writer",
62
+ "transport": "deferred",
63
+ "paths": [
64
+ ".instar/autonomous/",
65
+ ".instar/autonomous/*.local.md",
66
+ "state/autonomous-emergency-stop",
67
+ "autonomous-emergency-stop"
68
+ ],
69
+ "grandfathered": false
70
+ },
71
+ {
72
+ "category": "threadline-conversation-state",
73
+ "description": "Threadline conversation store plus context-thread-map, thread-resume-map, telegram-bridge-bindings.",
74
+ "scope": "must-be-coherent",
75
+ "freshness": "eventual",
76
+ "conflictShape": "single-writer",
77
+ "transport": "peer-http",
78
+ "paths": [
79
+ "threadline/conversations.json",
80
+ "threadline/context-thread-map.json",
81
+ "threadline/thread-resume-map.json",
82
+ "threadline/telegram-bridge-bindings.json"
83
+ ],
84
+ "grandfathered": false
85
+ },
86
+ {
87
+ "category": "message-store-and-threads",
88
+ "description": "Cross-platform A2A message store, threads, and inbox/outbox JSONL indexes.",
89
+ "scope": "must-be-coherent",
90
+ "freshness": "eventual",
91
+ "conflictShape": "append-only",
92
+ "transport": "peer-http",
93
+ "paths": [
94
+ ".instar/messages/store/",
95
+ ".instar/messages/threads/",
96
+ ".instar/messages/inbox.jsonl",
97
+ ".instar/messages/outbox.jsonl"
98
+ ],
99
+ "grandfathered": false
100
+ },
101
+ {
102
+ "category": "topic-project-bindings",
103
+ "description": "Telegram-topic-to-project bindings.",
104
+ "scope": "must-be-coherent",
105
+ "freshness": "eventual",
106
+ "conflictShape": "lww",
107
+ "transport": "peer-http",
108
+ "paths": [
109
+ "topic-project-bindings.json",
110
+ "state/topic-project-bindings.json"
111
+ ],
112
+ "grandfathered": false
113
+ },
114
+ {
115
+ "category": "relationships",
116
+ "description": "Per-person relationship records (one file per identity).",
117
+ "scope": "must-be-coherent",
118
+ "freshness": "eventual",
119
+ "conflictShape": "lww",
120
+ "transport": "peer-http",
121
+ "paths": [
122
+ "relationships/",
123
+ "relationships/*.json"
124
+ ],
125
+ "grandfathered": false
126
+ },
127
+ {
128
+ "category": "users-registry",
129
+ "description": "Multi-user identity / permissions registry.",
130
+ "scope": "must-be-coherent",
131
+ "freshness": "eventual",
132
+ "conflictShape": "lww",
133
+ "transport": "peer-http",
134
+ "paths": [
135
+ "users.json"
136
+ ],
137
+ "grandfathered": false
138
+ },
139
+ {
140
+ "category": "job-definitions",
141
+ "description": "Declarative job definitions (cron / prompt / supervision). The coherent half of jobs.json plus markdown job specs; run state is machine-local (see job-run-state). Field split required before whole-file sync (census §5).",
142
+ "scope": "must-be-coherent",
143
+ "freshness": "eventual",
144
+ "conflictShape": "lww",
145
+ "transport": "git",
146
+ "paths": [
147
+ "jobs.json",
148
+ ".instar/jobs/",
149
+ ".instar/jobs/*.md"
150
+ ],
151
+ "grandfathered": false
152
+ },
153
+ {
154
+ "category": "soul-identity-documents",
155
+ "description": "Soul / identity narrative documents and self-knowledge facts (soul.md, identity.json, AGENT.md/USER.md/MEMORY.md/CLAUDE.md identity scaffold, self-knowledge facts).",
156
+ "scope": "must-be-coherent",
157
+ "freshness": "session-boundary",
158
+ "conflictShape": "single-writer",
159
+ "transport": "git",
160
+ "paths": [
161
+ "soul.md",
162
+ "soul.init.md",
163
+ "state/soul.init.md",
164
+ "identity.json",
165
+ "AGENT.md",
166
+ "USER.md",
167
+ "MEMORY.md",
168
+ "CLAUDE.md",
169
+ "state/self-knowledge-facts.json"
170
+ ],
171
+ "grandfathered": false
172
+ },
173
+ {
174
+ "category": "projects-registry",
175
+ "description": "Multi-spec project registry + plan docs + digest cache (claim-ownership verb already models owner-machine claim).",
176
+ "scope": "must-be-coherent",
177
+ "freshness": "eventual",
178
+ "conflictShape": "single-writer",
179
+ "transport": "peer-http",
180
+ "paths": [
181
+ ".instar/projects/",
182
+ ".instar/projects/*.md"
183
+ ],
184
+ "grandfathered": false
185
+ },
186
+ {
187
+ "category": "learned-preferences",
188
+ "description": "Learned preferences and correction-loop ledger.",
189
+ "scope": "must-be-coherent",
190
+ "freshness": "eventual",
191
+ "conflictShape": "append-only",
192
+ "transport": "peer-http",
193
+ "paths": [
194
+ ".instar/preferences.json",
195
+ "state/correction-ledger.db"
196
+ ],
197
+ "grandfathered": false
198
+ },
199
+ {
200
+ "category": "secret-vault",
201
+ "description": "Encrypted secret vault. The one category that truly replicates today (cross-machine secret sync, X25519-sealed push, receive-only default).",
202
+ "scope": "must-be-coherent",
203
+ "freshness": "eventual",
204
+ "conflictShape": "single-writer",
205
+ "transport": "peer-http",
206
+ "paths": [
207
+ "config.secrets.enc",
208
+ "state/secrets.enc"
209
+ ],
210
+ "grandfathered": false
211
+ },
212
+ {
213
+ "category": "topic-ownership-current",
214
+ "description": "Current topic ownership (session-pool CAS + lease). The live single-writer source of truth for placement; the journal records its mutations.",
215
+ "scope": "must-be-coherent",
216
+ "freshness": "real-time",
217
+ "conflictShape": "single-writer",
218
+ "transport": "peer-http",
219
+ "paths": [
220
+ ".instar/state/session-pool/",
221
+ "state/session-pool/"
222
+ ],
223
+ "grandfathered": false
224
+ },
225
+ {
226
+ "category": "conversation-live-tail",
227
+ "description": "Conversation live-tail replicated holder->standby per the seamlessness spec.",
228
+ "scope": "must-be-coherent",
229
+ "freshness": "real-time",
230
+ "conflictShape": "single-writer",
231
+ "transport": "peer-http",
232
+ "paths": [
233
+ "state/live-tail/"
234
+ ],
235
+ "grandfathered": false
236
+ },
237
+ {
238
+ "category": "fleet-config",
239
+ "description": "Fleet-wide config: feature flags, messaging[] config, monitoring tunables, multiMachine policy. SHARES config.json with machine-local fields (port, paths) -- split-required before whole-file sync (census §5).",
240
+ "scope": "must-be-coherent",
241
+ "freshness": "eventual",
242
+ "conflictShape": "lww",
243
+ "transport": "git",
244
+ "paths": [
245
+ "config.json"
246
+ ],
247
+ "grandfathered": false
248
+ },
249
+ {
250
+ "category": "machine-identity-keys",
251
+ "description": "Machine identity + signing/encryption keypairs. Identity IS the machine; never synced by definition.",
252
+ "scope": "machine-local",
253
+ "freshness": "n/a",
254
+ "conflictShape": "single-writer",
255
+ "transport": "none",
256
+ "paths": [
257
+ "machine/identity.json",
258
+ "machine/*.pem",
259
+ "signing-private.pem",
260
+ "encryption-private.pem"
261
+ ],
262
+ "grandfathered": false
263
+ },
264
+ {
265
+ "category": "per-session-state",
266
+ "description": "Per-session state files. Sessions live and die on one machine; pool transfers create NEW sessions (CONTINUATION), not file copies.",
267
+ "scope": "machine-local",
268
+ "freshness": "real-time",
269
+ "conflictShape": "single-writer",
270
+ "transport": "none",
271
+ "paths": [
272
+ "state/sessions/",
273
+ "state/sessions/*.json"
274
+ ],
275
+ "grandfathered": false
276
+ },
277
+ {
278
+ "category": "job-run-state",
279
+ "description": "Job RUN state: executions, active-job, run-history ledger. Runs are machine events (definitions are the coherent half, job-definitions).",
280
+ "scope": "machine-local",
281
+ "freshness": "eventual",
282
+ "conflictShape": "single-writer",
283
+ "transport": "none",
284
+ "paths": [
285
+ "state/jobs/",
286
+ "state/active-job.json",
287
+ "state/job-runs.jsonl"
288
+ ],
289
+ "grandfathered": false
290
+ },
291
+ {
292
+ "category": "quota-state",
293
+ "description": "Per-account-seat per-machine quota state. Broadcast-view ships via capacity heartbeats (quota-aware placement); the file itself is machine-local.",
294
+ "scope": "machine-local",
295
+ "freshness": "real-time",
296
+ "conflictShape": "single-writer",
297
+ "transport": "none",
298
+ "paths": [
299
+ "quota-state.json",
300
+ "state/quota-state.json"
301
+ ],
302
+ "grandfathered": false
303
+ },
304
+ {
305
+ "category": "resource-samples",
306
+ "description": "ResourceLedger CPU/RSS samples. Physical per-machine telemetry.",
307
+ "scope": "machine-local",
308
+ "freshness": "real-time",
309
+ "conflictShape": "append-only",
310
+ "transport": "none",
311
+ "paths": [
312
+ "state/resource-ledger.db",
313
+ "state/resources.db"
314
+ ],
315
+ "grandfathered": false
316
+ },
317
+ {
318
+ "category": "lease-coordination-state",
319
+ "description": "Lease / coordination state and registry liveness. The lease IS the cross-machine protocol; its state is the protocol's own.",
320
+ "scope": "machine-local",
321
+ "freshness": "real-time",
322
+ "conflictShape": "single-writer",
323
+ "transport": "none",
324
+ "paths": [
325
+ "state/lease-local.json",
326
+ "state/registry-liveness.json"
327
+ ],
328
+ "grandfathered": false
329
+ },
330
+ {
331
+ "category": "nonce-sequence-watermarks",
332
+ "description": "NonceStore replay-protection watermarks. Per-channel per-machine by design.",
333
+ "scope": "machine-local",
334
+ "freshness": "real-time",
335
+ "conflictShape": "single-writer",
336
+ "transport": "none",
337
+ "paths": [
338
+ "state/nonce-store.json",
339
+ "state/nonces/"
340
+ ],
341
+ "grandfathered": false
342
+ },
343
+ {
344
+ "category": "relay-delivery-queues",
345
+ "description": "Pending-relay and message-ledger SQLite queues. Outbound queue drains on the machine that owns the channel seat.",
346
+ "scope": "machine-local",
347
+ "freshness": "real-time",
348
+ "conflictShape": "single-writer",
349
+ "transport": "none",
350
+ "paths": [
351
+ ".instar/state/pending-relay.*.sqlite",
352
+ "state/message-ledger.db"
353
+ ],
354
+ "grandfathered": false
355
+ },
356
+ {
357
+ "category": "messaging-adapter-state",
358
+ "description": "Telegram/iMessage/WhatsApp/Slack adapter state: poll offsets, chat.db, consent.json. Channel seat is held by one machine (lifeline); failover = seat transfer, not state merge.",
359
+ "scope": "machine-local",
360
+ "freshness": "real-time",
361
+ "conflictShape": "single-writer",
362
+ "transport": "none",
363
+ "paths": [
364
+ "state/telegram-offset.json",
365
+ "state/consent.json",
366
+ "state/adapter-state/"
367
+ ],
368
+ "grandfathered": false
369
+ },
370
+ {
371
+ "category": "platform-attachment-caches",
372
+ "description": "Telegram/document attachment caches. Fetchable from the platform on demand.",
373
+ "scope": "machine-local",
374
+ "freshness": "n/a",
375
+ "conflictShape": "single-writer",
376
+ "transport": "none",
377
+ "paths": [
378
+ "telegram-images/",
379
+ "documents/"
380
+ ],
381
+ "grandfathered": false
382
+ },
383
+ {
384
+ "category": "listener-daemon-internals",
385
+ "description": "Listener-daemon IPC internals: inbox/outbox.jsonl.active, pid, sentinels, hmac key. Daemon-local.",
386
+ "scope": "machine-local",
387
+ "freshness": "real-time",
388
+ "conflictShape": "append-only",
389
+ "transport": "none",
390
+ "paths": [
391
+ "state/listener/",
392
+ "state/listener/inbox.jsonl.active",
393
+ "state/listener/outbox.jsonl.active"
394
+ ],
395
+ "grandfathered": false
396
+ },
397
+ {
398
+ "category": "threadline-transport-internals",
399
+ "description": "Threadline transport internals: relay-tokens, mcp-tokens, rate-limits. Connection-scoped; identity-keys are local-secret like machine keys.",
400
+ "scope": "machine-local",
401
+ "freshness": "real-time",
402
+ "conflictShape": "single-writer",
403
+ "transport": "none",
404
+ "paths": [
405
+ "threadline/relay-tokens.json",
406
+ "threadline/mcp-tokens.json",
407
+ "threadline/rate-limits.json"
408
+ ],
409
+ "grandfathered": false
410
+ },
411
+ {
412
+ "category": "process-restart-coordination",
413
+ "description": "Process/restart coordination: boot-id, restart markers, auto-updater state, caffeinate pid, slept-marker. Per-process lifecycle.",
414
+ "scope": "machine-local",
415
+ "freshness": "real-time",
416
+ "conflictShape": "single-writer",
417
+ "transport": "none",
418
+ "paths": [
419
+ "state/boot-id",
420
+ "state/auto-updater.json",
421
+ "state/slept-marker.json",
422
+ "state/lifeline-restart-requested.json"
423
+ ],
424
+ "grandfathered": false
425
+ },
426
+ {
427
+ "category": "ephemeral-caches",
428
+ "description": "Per-boot/ephemeral caches: paste/, stop-gate.db, feature-registry.db, capability manifest. Recomputed or per-machine detection.",
429
+ "scope": "machine-local",
430
+ "freshness": "n/a",
431
+ "conflictShape": "single-writer",
432
+ "transport": "none",
433
+ "paths": [
434
+ "state/paste/",
435
+ "state/stop-gate.db",
436
+ "state/feature-registry.db"
437
+ ],
438
+ "grandfathered": false
439
+ },
440
+ {
441
+ "category": "trust-elevation-incidents",
442
+ "description": "External-op trust elevation / incident state. Debatable whether trust transfers across machines -- flagged for P3+ review rather than silently local.",
443
+ "scope": "machine-local",
444
+ "freshness": "eventual",
445
+ "conflictShape": "single-writer",
446
+ "transport": "none",
447
+ "paths": [
448
+ "state/trust-levels.json",
449
+ "state/trust-incidents.json",
450
+ "state/trust-*.json"
451
+ ],
452
+ "grandfathered": true
453
+ },
454
+ {
455
+ "category": "audit-destructive-ops",
456
+ "description": "Destructive-ops audit stream (411M live -- needs rotation, census §7). Append-only per-machine.",
457
+ "scope": "machine-local",
458
+ "freshness": "n/a",
459
+ "conflictShape": "append-only",
460
+ "transport": "none",
461
+ "paths": [
462
+ "state/destructive-ops.jsonl",
463
+ "logs/destructive-ops.jsonl"
464
+ ],
465
+ "grandfathered": false
466
+ },
467
+ {
468
+ "category": "audit-job-runs",
469
+ "description": "Job-runs audit stream. Append-only per-machine.",
470
+ "scope": "machine-local",
471
+ "freshness": "n/a",
472
+ "conflictShape": "append-only",
473
+ "transport": "none",
474
+ "paths": [
475
+ "state/job-runs.jsonl",
476
+ "logs/job-runs.jsonl"
477
+ ],
478
+ "grandfathered": false
479
+ },
480
+ {
481
+ "category": "audit-reaper",
482
+ "description": "Reaper decision audit stream (keep/kill transitions stamped with pressure tier).",
483
+ "scope": "machine-local",
484
+ "freshness": "n/a",
485
+ "conflictShape": "append-only",
486
+ "transport": "none",
487
+ "paths": [
488
+ "logs/reaper-audit.jsonl"
489
+ ],
490
+ "grandfathered": false
491
+ },
492
+ {
493
+ "category": "audit-reap-log",
494
+ "description": "Reap-log: why a session vanished (one JSON line per shutoff/refused-shutoff).",
495
+ "scope": "machine-local",
496
+ "freshness": "n/a",
497
+ "conflictShape": "append-only",
498
+ "transport": "none",
499
+ "paths": [
500
+ "logs/reap-log.jsonl"
501
+ ],
502
+ "grandfathered": false
503
+ },
504
+ {
505
+ "category": "audit-sentinel-events",
506
+ "description": "Sentinel-events audit stream (silently-stopped family transitions).",
507
+ "scope": "machine-local",
508
+ "freshness": "n/a",
509
+ "conflictShape": "append-only",
510
+ "transport": "none",
511
+ "paths": [
512
+ "logs/sentinel-events.jsonl"
513
+ ],
514
+ "grandfathered": false
515
+ },
516
+ {
517
+ "category": "audit-security",
518
+ "description": "Security audit stream (auth/security events).",
519
+ "scope": "machine-local",
520
+ "freshness": "n/a",
521
+ "conflictShape": "append-only",
522
+ "transport": "none",
523
+ "paths": [
524
+ "security.jsonl",
525
+ "state/security.jsonl",
526
+ "logs/security.jsonl"
527
+ ],
528
+ "grandfathered": false
529
+ },
530
+ {
531
+ "category": "audit-decision-journal",
532
+ "description": "Decision-journal audit stream.",
533
+ "scope": "machine-local",
534
+ "freshness": "n/a",
535
+ "conflictShape": "append-only",
536
+ "transport": "none",
537
+ "paths": [
538
+ "logs/decision-journal.jsonl",
539
+ "state/decision-journal.jsonl"
540
+ ],
541
+ "grandfathered": false
542
+ },
543
+ {
544
+ "category": "audit-activity",
545
+ "description": "Activity audit streams (date-partitioned, ~37M).",
546
+ "scope": "machine-local",
547
+ "freshness": "n/a",
548
+ "conflictShape": "append-only",
549
+ "transport": "none",
550
+ "paths": [
551
+ "logs/activity-*.jsonl",
552
+ "state/activity/"
553
+ ],
554
+ "grandfathered": false
555
+ },
556
+ {
557
+ "category": "audit-watchdog-interventions",
558
+ "description": "Watchdog-interventions audit stream.",
559
+ "scope": "machine-local",
560
+ "freshness": "n/a",
561
+ "conflictShape": "append-only",
562
+ "transport": "none",
563
+ "paths": [
564
+ "logs/watchdog-interventions.jsonl"
565
+ ],
566
+ "grandfathered": false
567
+ },
568
+ {
569
+ "category": "audit-operation-log",
570
+ "description": "External-operation gate operation-log audit stream.",
571
+ "scope": "machine-local",
572
+ "freshness": "n/a",
573
+ "conflictShape": "append-only",
574
+ "transport": "none",
575
+ "paths": [
576
+ "logs/operation-log.jsonl",
577
+ "state/operation-log.jsonl"
578
+ ],
579
+ "grandfathered": false
580
+ },
581
+ {
582
+ "category": "audit-trust-chain",
583
+ "description": "Hash-chained trust-audit / mandate-decision chain.",
584
+ "scope": "machine-local",
585
+ "freshness": "n/a",
586
+ "conflictShape": "append-only",
587
+ "transport": "none",
588
+ "paths": [
589
+ "logs/trust-audit-chain.jsonl",
590
+ "state/trust-audit-chain.jsonl",
591
+ "threadline/trust-audit.jsonl"
592
+ ],
593
+ "grandfathered": false
594
+ },
595
+ {
596
+ "category": "audit-telegram-messages",
597
+ "description": "Telegram message history JSONL (5.2M).",
598
+ "scope": "machine-local",
599
+ "freshness": "n/a",
600
+ "conflictShape": "append-only",
601
+ "transport": "none",
602
+ "paths": [
603
+ "state/telegram-messages.jsonl",
604
+ "logs/telegram-messages.jsonl"
605
+ ],
606
+ "grandfathered": false
607
+ },
608
+ {
609
+ "category": "audit-a2a-messages",
610
+ "description": "Agent-to-agent sent/received audit streams.",
611
+ "scope": "machine-local",
612
+ "freshness": "n/a",
613
+ "conflictShape": "append-only",
614
+ "transport": "none",
615
+ "paths": [
616
+ ".instar/messages/a2a-sent.jsonl",
617
+ ".instar/messages/a2a-received.jsonl"
618
+ ],
619
+ "grandfathered": false
620
+ },
621
+ {
622
+ "category": "audit-prompt-gate",
623
+ "description": "Prompt-gate audit stream.",
624
+ "scope": "machine-local",
625
+ "freshness": "n/a",
626
+ "conflictShape": "append-only",
627
+ "transport": "none",
628
+ "paths": [
629
+ "logs/prompt-gate-audit.jsonl",
630
+ "state/prompt-gate-audit.jsonl"
631
+ ],
632
+ "grandfathered": false
633
+ },
634
+ {
635
+ "category": "audit-recovery-events",
636
+ "description": "Recovery-events audit stream (compaction/recovery lifecycle).",
637
+ "scope": "machine-local",
638
+ "freshness": "n/a",
639
+ "conflictShape": "append-only",
640
+ "transport": "none",
641
+ "paths": [
642
+ "logs/recovery-events.jsonl",
643
+ "state/recovery-events.jsonl"
644
+ ],
645
+ "grandfathered": false
646
+ },
647
+ {
648
+ "category": "audit-skill-telemetry",
649
+ "description": "Skill-telemetry audit stream.",
650
+ "scope": "machine-local",
651
+ "freshness": "n/a",
652
+ "conflictShape": "append-only",
653
+ "transport": "none",
654
+ "paths": [
655
+ "logs/skill-telemetry.jsonl",
656
+ "state/skill-telemetry.jsonl"
657
+ ],
658
+ "grandfathered": false
659
+ },
660
+ {
661
+ "category": "audit-feedback",
662
+ "description": "Feedback audit stream (Rising Tide feedback loop).",
663
+ "scope": "machine-local",
664
+ "freshness": "n/a",
665
+ "conflictShape": "append-only",
666
+ "transport": "none",
667
+ "paths": [
668
+ "state/feedback.jsonl",
669
+ "logs/feedback.jsonl"
670
+ ],
671
+ "grandfathered": false
672
+ },
673
+ {
674
+ "category": "audit-apprenticeship-decisions",
675
+ "description": "Apprenticeship lifecycle gate decisions audit stream.",
676
+ "scope": "machine-local",
677
+ "freshness": "n/a",
678
+ "conflictShape": "append-only",
679
+ "transport": "none",
680
+ "paths": [
681
+ "logs/apprenticeship-decisions.jsonl",
682
+ "state/apprenticeship-decisions.jsonl"
683
+ ],
684
+ "grandfathered": false
685
+ },
686
+ {
687
+ "category": "derived-token-ledger",
688
+ "description": "Token ledger SQLite, rebuilt from Claude Code JSONL transcripts.",
689
+ "scope": "derived-cache",
690
+ "freshness": "eventual",
691
+ "conflictShape": "n/a",
692
+ "transport": "none",
693
+ "paths": [
694
+ "state/token-ledger.db",
695
+ "state/tokens.db"
696
+ ],
697
+ "grandfathered": false
698
+ },
699
+ {
700
+ "category": "derived-semantic-memory",
701
+ "description": "semantic.db / memory.db / episodes -- rebuildable from evidence. (Live-disk: stale since Jun 1 -- investigate separately, census §1.6/§7.)",
702
+ "scope": "derived-cache",
703
+ "freshness": "eventual",
704
+ "conflictShape": "n/a",
705
+ "transport": "none",
706
+ "paths": [
707
+ "state/semantic.db",
708
+ "state/memory.db",
709
+ "state/episodes.db",
710
+ "state/episodes/",
711
+ "memory/semantic.jsonl"
712
+ ],
713
+ "grandfathered": false
714
+ },
715
+ {
716
+ "category": "derived-topic-memory",
717
+ "description": "topic-memory.db (16M, active). Master spec open Q2: promote to COHERENT? -- left derived-cache until P3 review (census honesty).",
718
+ "scope": "derived-cache",
719
+ "freshness": "eventual",
720
+ "conflictShape": "n/a",
721
+ "transport": "none",
722
+ "paths": [
723
+ "state/topic-memory.db"
724
+ ],
725
+ "grandfathered": true
726
+ },
727
+ {
728
+ "category": "derived-project-map",
729
+ "description": "Project-map spatial-awareness scan (refreshable).",
730
+ "scope": "derived-cache",
731
+ "freshness": "eventual",
732
+ "conflictShape": "n/a",
733
+ "transport": "none",
734
+ "paths": [
735
+ "state/project-map.json"
736
+ ],
737
+ "grandfathered": false
738
+ },
739
+ {
740
+ "category": "derived-projects-digest",
741
+ "description": "Projects-digest cache.",
742
+ "scope": "derived-cache",
743
+ "freshness": "eventual",
744
+ "conflictShape": "n/a",
745
+ "transport": "none",
746
+ "paths": [
747
+ "state/projects-digest.cache",
748
+ ".instar/projects/.digest.cache"
749
+ ],
750
+ "grandfathered": false
751
+ },
752
+ {
753
+ "category": "derived-docs-code-sync",
754
+ "description": "docs-code-sync.json derived index.",
755
+ "scope": "derived-cache",
756
+ "freshness": "eventual",
757
+ "conflictShape": "n/a",
758
+ "transport": "none",
759
+ "paths": [
760
+ "state/docs-code-sync.json"
761
+ ],
762
+ "grandfathered": false
763
+ },
764
+ {
765
+ "category": "derived-memory-index",
766
+ "description": "MemoryIndex derived index over memory artifacts.",
767
+ "scope": "derived-cache",
768
+ "freshness": "eventual",
769
+ "conflictShape": "n/a",
770
+ "transport": "none",
771
+ "paths": [
772
+ "state/memory-index.json",
773
+ "memory/index.json"
774
+ ],
775
+ "grandfathered": false
776
+ },
777
+ {
778
+ "category": "derived-framework-model-preferences",
779
+ "description": "framework-model-preferences.db derived cache.",
780
+ "scope": "derived-cache",
781
+ "freshness": "eventual",
782
+ "conflictShape": "n/a",
783
+ "transport": "none",
784
+ "paths": [
785
+ "state/framework-model-preferences.db"
786
+ ],
787
+ "grandfathered": false
788
+ },
789
+ {
790
+ "category": "derived-discovery",
791
+ "description": "discovery.db derived cache (agent discovery).",
792
+ "scope": "derived-cache",
793
+ "freshness": "eventual",
794
+ "conflictShape": "n/a",
795
+ "transport": "none",
796
+ "paths": [
797
+ "state/discovery.db",
798
+ "threadline/discovery.db"
799
+ ],
800
+ "grandfathered": false
801
+ },
802
+ {
803
+ "category": "uncertain-instructions-tracking",
804
+ "description": "state/instructions-tracking/ (59M, 15,180 UUID-keyed JSONL files). Census did not map an owner; volume says it matters. Owner + rotation + class needed (census §4e).",
805
+ "scope": "machine-local",
806
+ "freshness": "eventual",
807
+ "conflictShape": "append-only",
808
+ "transport": "none",
809
+ "paths": [
810
+ "state/instructions-tracking/"
811
+ ],
812
+ "grandfathered": true
813
+ },
814
+ {
815
+ "category": "uncertain-topic-intent-store",
816
+ "description": "TopicIntentStore. Code references it; on-disk location unverified (census §4e).",
817
+ "scope": "derived-cache",
818
+ "freshness": "eventual",
819
+ "conflictShape": "n/a",
820
+ "transport": "none",
821
+ "paths": [
822
+ "state/topic-intent/",
823
+ "state/topic-intent.json"
824
+ ],
825
+ "grandfathered": true
826
+ },
827
+ {
828
+ "category": "uncertain-shared-state-ledger",
829
+ "description": "shared-state.jsonl (SharedStateLedger). Nominally the git-synced cross-machine ledger -- is anything consuming it on real machines? May be the vestigial ancestor of the P1 journal (census §4e).",
830
+ "scope": "must-be-coherent",
831
+ "freshness": "eventual",
832
+ "conflictShape": "append-only",
833
+ "transport": "git",
834
+ "paths": [
835
+ "state/shared-state.jsonl",
836
+ "shared-state.jsonl"
837
+ ],
838
+ "grandfathered": true
839
+ },
840
+ {
841
+ "category": "uncertain-correction-capture-backlog",
842
+ "description": "correction-capture-backlog.db vs correction-ledger.db: two stores, one sentinel -- which is canonical? (census §4e).",
843
+ "scope": "machine-local",
844
+ "freshness": "eventual",
845
+ "conflictShape": "append-only",
846
+ "transport": "none",
847
+ "paths": [
848
+ "state/correction-capture-backlog.db"
849
+ ],
850
+ "grandfathered": true
851
+ },
852
+ {
853
+ "category": "uncertain-project-round-worktrees",
854
+ "description": "ProjectRoundWorktrees / TaskFlow stores. Routes-managed; durable form unverified (census §4e).",
855
+ "scope": "machine-local",
856
+ "freshness": "eventual",
857
+ "conflictShape": "single-writer",
858
+ "transport": "none",
859
+ "paths": [
860
+ "state/project-round-worktrees.json",
861
+ "state/taskflow/"
862
+ ],
863
+ "grandfathered": true
864
+ },
865
+ {
866
+ "category": "legacy-singletons",
867
+ "description": "Stale legacy singletons (anti-patterns.json, quick-facts.json, project-registry.json, May 20 vintage, no live writers found). Retire per census §7.",
868
+ "scope": "machine-local",
869
+ "freshness": "n/a",
870
+ "conflictShape": "single-writer",
871
+ "transport": "none",
872
+ "paths": [
873
+ "state/anti-patterns.json",
874
+ "state/quick-facts.json",
875
+ "state/project-registry.json"
876
+ ],
877
+ "grandfathered": true
878
+ }
879
+ ]
880
+ }