instar 1.3.339 → 1.3.341
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/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +178 -10
- package/dist/commands/server.js.map +1 -1
- package/dist/config/ConfigDefaults.d.ts.map +1 -1
- package/dist/config/ConfigDefaults.js +17 -0
- package/dist/config/ConfigDefaults.js.map +1 -1
- package/dist/core/AutonomousSessions.d.ts +17 -2
- package/dist/core/AutonomousSessions.d.ts.map +1 -1
- package/dist/core/AutonomousSessions.js +30 -4
- package/dist/core/AutonomousSessions.js.map +1 -1
- package/dist/core/CoherenceJournal.d.ts +326 -0
- package/dist/core/CoherenceJournal.d.ts.map +1 -0
- package/dist/core/CoherenceJournal.js +999 -0
- package/dist/core/CoherenceJournal.js.map +1 -0
- package/dist/core/CoherenceJournalReader.d.ts +158 -0
- package/dist/core/CoherenceJournalReader.d.ts.map +1 -0
- package/dist/core/CoherenceJournalReader.js +450 -0
- package/dist/core/CoherenceJournalReader.js.map +1 -0
- package/dist/core/JournalSyncApplier.d.ts +272 -0
- package/dist/core/JournalSyncApplier.d.ts.map +1 -0
- package/dist/core/JournalSyncApplier.js +835 -0
- package/dist/core/JournalSyncApplier.js.map +1 -0
- package/dist/core/PendingInjectStore.d.ts +54 -0
- package/dist/core/PendingInjectStore.d.ts.map +1 -0
- package/dist/core/PendingInjectStore.js +152 -0
- package/dist/core/PendingInjectStore.js.map +1 -0
- package/dist/core/SessionManager.d.ts +17 -0
- package/dist/core/SessionManager.d.ts.map +1 -1
- package/dist/core/SessionManager.js +70 -1
- package/dist/core/SessionManager.js.map +1 -1
- package/dist/core/StateManager.d.ts +45 -0
- package/dist/core/StateManager.d.ts.map +1 -1
- package/dist/core/StateManager.js +106 -0
- package/dist/core/StateManager.js.map +1 -1
- package/dist/core/types.d.ts +35 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/messaging/TelegramAdapter.d.ts +14 -0
- package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
- package/dist/messaging/TelegramAdapter.js +16 -1
- package/dist/messaging/TelegramAdapter.js.map +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +7 -0
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +54 -3
- package/dist/server/routes.js.map +1 -1
- package/package.json +2 -2
- package/scripts/lint-cas-emit-placement.js +87 -0
- package/scripts/lint-journal-actuation-ban.js +63 -0
- package/scripts/lint-state-registry.js +313 -0
- package/src/data/builtin-manifest.json +47 -47
- package/src/data/state-coherence-registry.json +880 -0
- package/src/scaffold/templates.ts +7 -0
- package/upgrades/1.3.340.md +132 -0
- package/upgrades/1.3.341.md +41 -0
- package/upgrades/coherence-journal-p1-1.eli16.md +11 -0
- package/upgrades/coherence-journal-p1-2.eli16.md +11 -0
- package/upgrades/coherence-journal-p1-3.eli16.md +13 -0
- package/upgrades/side-effects/coherence-journal-p1-1.md +68 -0
- package/upgrades/side-effects/coherence-journal-p1-2.md +54 -0
- package/upgrades/side-effects/coherence-journal-p1-3.md +49 -0
- package/upgrades/side-effects/pending-inject-durability.md +58 -0
- 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
|
+
}
|