draken 0.6.0 → 0.8.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 (70) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/MEMORY.md +64 -13
  3. package/README.md +25 -19
  4. package/SETUP.md +26 -3
  5. package/TRAY.md +3 -3
  6. package/VOICE.md +8 -6
  7. package/dist/db/schema.d.ts.map +1 -1
  8. package/dist/db/schema.js +65 -0
  9. package/dist/db/schema.js.map +1 -1
  10. package/dist/memory/readiness.d.ts +4 -3
  11. package/dist/memory/readiness.d.ts.map +1 -1
  12. package/dist/memory/readiness.js +128 -35
  13. package/dist/memory/readiness.js.map +1 -1
  14. package/dist/memory/storage.d.ts.map +1 -1
  15. package/dist/memory/storage.js +1 -0
  16. package/dist/memory/storage.js.map +1 -1
  17. package/dist/routes/sync.d.ts.map +1 -1
  18. package/dist/routes/sync.js +9 -0
  19. package/dist/routes/sync.js.map +1 -1
  20. package/dist/sync/activity.d.ts +11 -1
  21. package/dist/sync/activity.d.ts.map +1 -1
  22. package/dist/sync/activity.js +18 -3
  23. package/dist/sync/activity.js.map +1 -1
  24. package/dist/sync/background.d.ts +7 -2
  25. package/dist/sync/background.d.ts.map +1 -1
  26. package/dist/sync/background.js +66 -19
  27. package/dist/sync/background.js.map +1 -1
  28. package/dist/sync/conversation.d.ts +20 -0
  29. package/dist/sync/conversation.d.ts.map +1 -0
  30. package/dist/sync/conversation.js +127 -0
  31. package/dist/sync/conversation.js.map +1 -0
  32. package/dist/sync/manager.d.ts.map +1 -1
  33. package/dist/sync/manager.js +56 -16
  34. package/dist/sync/manager.js.map +1 -1
  35. package/dist/sync/preparation.d.ts +1 -1
  36. package/dist/sync/preparation.d.ts.map +1 -1
  37. package/dist/sync/preparation.js +23 -5
  38. package/dist/sync/preparation.js.map +1 -1
  39. package/dist/sync/store.d.ts +4 -1
  40. package/dist/sync/store.d.ts.map +1 -1
  41. package/dist/sync/store.js +24 -7
  42. package/dist/sync/store.js.map +1 -1
  43. package/dist/sync/summary-preparation.d.ts +14 -0
  44. package/dist/sync/summary-preparation.d.ts.map +1 -0
  45. package/dist/sync/summary-preparation.js +205 -0
  46. package/dist/sync/summary-preparation.js.map +1 -0
  47. package/dist/sync/tree.d.ts +17 -1
  48. package/dist/sync/tree.d.ts.map +1 -1
  49. package/dist/sync/tree.js +94 -29
  50. package/dist/sync/tree.js.map +1 -1
  51. package/dist/sync/update-status.d.ts +9 -0
  52. package/dist/sync/update-status.d.ts.map +1 -0
  53. package/dist/sync/update-status.js +21 -0
  54. package/dist/sync/update-status.js.map +1 -0
  55. package/dist/sync/usage.d.ts +3 -1
  56. package/dist/sync/usage.d.ts.map +1 -1
  57. package/dist/sync/usage.js +24 -6
  58. package/dist/sync/usage.js.map +1 -1
  59. package/dist/types.d.ts +21 -1
  60. package/dist/types.d.ts.map +1 -1
  61. package/dist/voice/live-context.d.ts +1 -1
  62. package/dist/voice/live-context.d.ts.map +1 -1
  63. package/dist/voice/live-context.js +1 -1
  64. package/dist/voice/live.d.ts.map +1 -1
  65. package/dist/voice/live.js +265 -32
  66. package/dist/voice/live.js.map +1 -1
  67. package/package.json +1 -1
  68. package/public/assets/index-sHcfjDUD.js +131 -0
  69. package/public/index.html +1 -1
  70. package/public/assets/index-DXPfCm7z.js +0 -131
package/VOICE.md CHANGED
@@ -32,8 +32,8 @@ Choosing chat while a one-click call is still preparing consumes that browser ca
32
32
  ## Start and use a call
33
33
 
34
34
  1. Open Draken on **localhost or trusted HTTPS**. Plain LAN HTTP normally cannot access the microphone.
35
- 2. **Sync with Draken** finishes importing each discovered file's captured prefix, prepares the briefing and searchable history, then opens its call. Import errors stop preparation instead of silently freezing an old prefix. On an existing sync, **Call Draken** stays disabled until both are ready. If imported history has changed, use **Prepare history** first. An already-ready sync also offers **Refresh history** to capture later work without rebuilding its frozen briefing.
36
- 3. Any needed history download/indexing happens on the sync page, before a call can start. Progress and **Cancel preparation** are available there; the microphone remains off. Once ready, start the call and allow microphone access. A failed or cancelled preparation does not request permission, and if the page is hidden when preparation finishes, start the call again explicitly. You can also type if microphone permission is unavailable.
35
+ 2. **Sync with Draken** finishes importing each discovered file's captured prefix, prepares the briefing and searchable history, then opens its call. Import errors stop preparation instead of silently freezing an old prefix. On an existing non-ended sync, **Call Draken** stays disabled until both have initially been prepared. Use **Prepare history** if that initial preparation is missing. Ordinary appends and scans do not invalidate already captured context; an already-ready sync also offers **Refresh history** without rebuilding its frozen briefing.
36
+ 3. Initial history download/indexing happens on the sync page, before a call can start. Progress and **Cancel preparation** are available there; the microphone remains off. Once ready, start the call and allow microphone access. A failed or cancelled preparation does not request permission, and if the page is hidden when preparation finishes, start the call again explicitly. You can also type if microphone permission is unavailable.
37
37
  4. Speaker-safe mode pauses input during replies. Use **Stop reply** to speak, or enable **Headphone mode** to allow spoken interruption. Headphones are recommended.
38
38
  5. **Mute** releases the microphone tracks. **Stop reply** cuts playback locally and asks the provider to stop; it does not prove immediate remote cancellation. **End call** stops capture/playback and keeps the text history.
39
39
 
@@ -41,22 +41,24 @@ Capture follows a transient browser action, never a URL flag. Reloading or openi
41
41
 
42
42
  Reply waiting is owned by the server's identified user transcript and pending-answer events. Unkeyed WebRTC user events can arrive late and must not switch an already pending reply back to listening, erase its waiting caption, or restart a settled reply. A lookup acknowledgement such as “I’ll check what’s recorded” is not meant to end the answer. Draken keeps the question pending and can automatically resume ChatGPT speech when its context arrives; you should not need to ask “have you checked?” Quiet captions in the dragon scene show **[Thinking...]**, **[Hmmm...]** and **[Hmmmmmm...]** during a pending reply, including silence after an acknowledgement. They change every five seconds without animation. **[Checking...]** and **[Looking that up...]** are used only while the local history worker reports fresh lookup activity; these labels are not proof of a match or exhaustive search. These are visual waiting cues—not the model’s private thoughts, spoken messages, a percentage or an ETA. They are never saved in the transcript or sent to the model. The separate waiting banner and elapsed-wait timer have been removed. Stop, a newer question, interruption, or ending the call cancels the old pending continuation. There is at most one automatic completion cue per question—not a retry loop or a fabricated user message. A failed lookup must be disclosed; a failed or silent continuation produces a visible notice instead of silently retrying.
43
43
 
44
- Work questions use the same original-project evidence selection and deterministic later-report checking as chat: up to sixteen sources in a 32,000-byte historical packet per lookup. A new call inherits project focus from actual saved user turns, not generated answers; explicit switches and follow-ups retain the same scope rules as chat. Old conversation recall remains available when requested. History is captured at the displayed preparation cutoff, not observed live.
44
+ Work questions use the same original-project evidence selection and deterministic later-report checking as chat: up to sixteen sources in a 32,000-byte historical packet per lookup. A new call inherits project focus from actual saved user turns, not generated answers; explicit switches and follow-ups retain the same scope rules as chat. Old conversation recall remains available when requested. Each voice turn pins one prepared-history cutoff. Newly prepared original history can be adopted between turns as dated H evidence; it is not an unprepared live feed and does not rewrite the initial snapshot, E/C references, briefing, saved transcript or notes.
45
45
 
46
46
  The native context envelope remains bounded to 8 KiB. Larger evidence is delivered losslessly in ordered, JSON-quoted parts with a final completion record; the helper's small handoff returns a receipt rather than truncating evidence. Interrupted/failed transfers are not marked complete, and old-turn parts cannot restart speech after Stop. Three distinct archive lookups per turn and duplicate-result/delivery reuse remain. This sends more evidence without another pi call, changing voice engine or raising the concise speaking target. Native quota use is not guaranteed unchanged.
47
47
 
48
48
  Supplied IDs and later-report candidates do not prove that each spoken claim was verified, heard or agreed with. The bounded pi answer-repair pass remains text-only; streamed speech is not post-validated or retractable. Protocol tests and evidence-packet comparisons are not physical-audio or exhaustive answer-quality acceptance. See [MEMORY.md](MEMORY.md) for retrieval limits.
49
49
 
50
- One call may be active at a time, with a 30-minute limit, at most 60 user messages and a 90-second disconnect timeout. These are resource limits, not spending guarantees. A new call cannot start until helper cleanup is confirmed. The browser chooses its reservation UUID before sending creation, so End can release a reservation even if the create response is lost. If End overtakes creation, the server retains a bounded cancellation marker for five minutes; an already-created ID can never be reused. Network loss can still require the disconnect timeout or explicit End previous call.
50
+ A conversation shows **Session ended** after 30 minutes without a real user chat message or voice turn; creation counts as initial intent and an ongoing reply finishes first. Background updates, assistant responses, polling and connection heartbeats do not extend that deadline. Last activity and ending persist across restart. The transcript remains readable and explicit notes/review remain available for the initial snapshot; idle ending neither reviews work nor requests a recap. It releases unreviewed reservations for the next explicit sync. Return home and **Start new sync** to talk again; reopening or replay cannot revive an ended session.
51
+
52
+ One call may be active at a time, with a separate 30-minute connection limit, at most 60 user messages and a 90-second disconnect timeout. These resource limits remain in addition to conversation idle expiry; they are not spending guarantees or unlimited calling. A new call cannot start until helper cleanup is confirmed. The browser chooses its reservation UUID before sending creation, so End can release a reservation even if the create response is lost. If End overtakes creation, the server retains a bounded cancellation marker for five minutes; an already-created ID can never be reused. Network loss can still require the disconnect timeout or explicit End previous call.
51
53
 
52
54
  ## Evidence, records and recap
53
55
 
54
- - Voice questions do **not** start pi, local transcription or local synthesis. The call receives a bounded briefing, saved notes and source excerpts. Explicit source/history questions can request more data from the same frozen snapshot. Calls use bounded semantic + keyword retrieval across retained older records, using the local index described in [MEMORY.md](MEMORY.md). The local model/index must be prepared before calling is enabled; first preparation may take minutes. During the call, retrieval uses that prepared cutoff and verifies original sources without building new corpus embeddings. Expand **Conversation & details** for the full transcript, sources and any later history progress. Optional **Settings → Automatically index history** accumulates searchable history locally in idle batches of at least 64 source changes. It never creates syncs, summaries or briefings and makes no provider model calls. Creating a sync and generating its briefing require an explicit user action; automatic indexing never starts capture, calls or review. Smaller batches wait for explicit preparation, and keep Call disabled if history is not ready. This block starts collapsed for every call; its progress polling reads metadata only. Those dated excerpts also go to ChatGPT; they are not new snapshot evidence. The embedding runtime is text-only and is not a replacement speech engine.
56
+ - Voice questions do **not** start pi, local transcription or local synthesis. The call receives a bounded briefing, saved notes and source excerpts. Explicit source/history questions can request more data from the same frozen snapshot. Calls use bounded semantic + keyword retrieval across retained older records, using the local index described in [MEMORY.md](MEMORY.md). The local model/index must be prepared before calling is enabled; first preparation may take minutes. During each turn, retrieval uses its pinned prepared cutoff and verifies originals without building new corpus embeddings in the reply. New prepared H history can be adopted only between turns. Missing/damaged captured originals still fail closed; if extra archive lookup is unavailable during an update, disclose that limitation rather than guess or silently fall back. Expand **Conversation & details** for the full transcript, sources and any later history progress. With **Settings → Automatically index history** enabled, active conversations check once a minute and index any positive source changes. Without an active conversation, local indexing retains 64-record batching with no timed small-tail flush. A connected idle call permits local background work between turns, never during a pending response or context delivery; a user turn preempts and drains owned indexing. Updates do not interrupt replies or disable prepared chat. Status is **Up to date**, **Preparing new info…** or **New info ready**, with honest off/unavailable states when applicable. Local indexing alone never creates syncs, summaries or briefings and makes no provider model calls. The NEW **Prepare summaries ahead** switch is a separate paid opt-in, default off even on upgrades with indexing enabled, and requires local indexing. It warms validated summary leaves plus reconciliation/compact final input using the configured summary model, not a final briefing or recap. Creating a sync and generating its final briefing always require an explicit user action; neither background path starts capture, calls or review. Changed unfinished per-session tails and reconciliation can still need work at **Start chat**; cached preparation is not an instant-call promise. Foreground work cancels and awaits owned background provider work. Disabling either setting stops paid work and preserves cache; paid failures pause until explicit retry, while local indexing retains its five-minute retry delay. See [paid preparation](MEMORY.md#optional-paid-summary-preparation) for independent 64-record batching, durable spending and accounting. Only inactive local tails and separately paid batches retain the 64-record wait; live H updates are local-only, not per-minute paid calls. Initial history and briefing preparation remain required once. This block starts collapsed for every call; its progress polling reads metadata only. Those dated excerpts also go to ChatGPT; they are not new snapshot membership or review coverage. The embedding runtime is text-only and is not a replacement speech engine.
55
57
  - The read-only lookup service is not a coding model or a general web search. Tool-execution and approval requests are denied. Calls cannot edit files, deploy work, save decisions by model instruction, finish syncs or advance coverage.
56
58
  - Speech may paraphrase. **Sources supplied** means context was given to the model, not that every spoken claim was verified. Responses are not held for whole-answer JSON validation before playback.
57
59
  - History stores ordered user/assistant messages with generated/interrupted labels. It does not invent question–answer pairs, exact played words, human hearing or agreement. Historical records from the retired engine retain their original playback reports and are labelled separately.
58
60
  - No raw microphone recording is persisted locally. Text, source references and call status are stored in the private SQLite database. There is no retention/purge UI yet.
59
- - Ending the call does not mark the sync reviewed. Closing the call UI requests a short text recap through pi using the sync's cheaper summary model. This is separate from live audio; a browser exit cannot guarantee the request is sent or completes. You can explicitly refresh the recap later.
61
+ - Ending the call does not mark the sync reviewed; idle session expiry does not request a recap. Explicitly closing the call UI requests a short text recap through pi using the sync's cheaper summary model. This is separate from live audio; a browser exit cannot guarantee the request is sent or completes. You can explicitly refresh the recap later.
60
62
 
61
63
  See [the native implementation guide](voice/realtime/README.md) for packet limits, helper restrictions, recall rules and verification details. Provider retention and exact subscription accounting are not promised by Draken.
62
64
 
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAUtC,wBAAgB,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAazC;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAoM5D;AAED,wBAAgB,OAAO,IAAI,IAAI,CAG9B"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAUtC,wBAAgB,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAazC;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAkQ5D;AAED,wBAAgB,OAAO,IAAI,IAAI,CAG9B"}
package/dist/db/schema.js CHANGED
@@ -145,6 +145,28 @@ function initSchema(database) {
145
145
  completed_at TEXT
146
146
  );
147
147
  CREATE INDEX IF NOT EXISTS sync_runs_sync ON sync_runs(sync_id, id);
148
+ -- Paid cache preparation has no snapshot, reservation or coverage identity.
149
+ CREATE TABLE IF NOT EXISTS background_runs (
150
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
151
+ status TEXT NOT NULL DEFAULT 'running',
152
+ stage TEXT NOT NULL DEFAULT 'Planning',
153
+ summary_model TEXT NOT NULL,
154
+ final_model TEXT NOT NULL,
155
+ invocations INTEGER NOT NULL DEFAULT 0,
156
+ max_invocations INTEGER NOT NULL,
157
+ processed_entries INTEGER NOT NULL DEFAULT 0,
158
+ total_entries INTEGER NOT NULL,
159
+ cache_hits INTEGER NOT NULL DEFAULT 0,
160
+ error TEXT NOT NULL DEFAULT '',
161
+ started_at TEXT NOT NULL,
162
+ completed_at TEXT,
163
+ metrics_json TEXT NOT NULL DEFAULT '[]',
164
+ input_key TEXT NOT NULL,
165
+ source_keys_json TEXT NOT NULL DEFAULT '{}',
166
+ cache_receipt_json TEXT NOT NULL DEFAULT '[]',
167
+ failure_events_json TEXT NOT NULL DEFAULT '[]'
168
+ );
169
+ CREATE INDEX IF NOT EXISTS background_runs_input ON background_runs(input_key, id);
148
170
  CREATE TABLE IF NOT EXISTS voice_calls (
149
171
  id TEXT PRIMARY KEY,
150
172
  sync_id INTEGER NOT NULL REFERENCES syncs(id),
@@ -210,6 +232,9 @@ function initSchema(database) {
210
232
  snapshot_at: 'TEXT',
211
233
  model_config_json: "TEXT NOT NULL DEFAULT '{}'",
212
234
  compression_complete: 'INTEGER NOT NULL DEFAULT 0',
235
+ conversation_last_user_at: 'TEXT',
236
+ conversation_ended_at: 'TEXT',
237
+ conversation_before: 'TEXT',
213
238
  })) {
214
239
  if (!columns.has(name))
215
240
  database.exec(`ALTER TABLE syncs ADD COLUMN ${name} ${definition}`);
@@ -221,6 +246,44 @@ function initSchema(database) {
221
246
  database.exec('ALTER TABLE sync_runs ADD COLUMN request_id TEXT');
222
247
  database.exec('CREATE UNIQUE INDEX IF NOT EXISTS sync_run_request ON sync_runs(request_id) WHERE request_id IS NOT NULL');
223
248
  database.prepare('UPDATE syncs SET snapshot_at = created_at WHERE snapshot_at IS NULL').run();
249
+ if (!columns.has('conversation_last_user_at')) {
250
+ // Only real user activity seeds the idle clock. Generated replies, polls,
251
+ // receipts and background runs are deliberately absent from this migration.
252
+ database.exec(`UPDATE syncs SET conversation_last_user_at=MAX(created_at,
253
+ COALESCE((SELECT MAX(created_at) FROM sync_messages WHERE sync_id=syncs.id AND role='user'),created_at),
254
+ COALESCE((SELECT MAX(m.started_at) FROM live_messages m JOIN live_calls c ON c.id=m.call_id
255
+ WHERE c.sync_id=syncs.id AND m.role='user' AND TRIM(m.text)!=''),created_at)) WHERE status='open'`);
256
+ // An already used v0.7 chat/call passed explicit history preparation. Retain
257
+ // a conservative cutoff even when a newer receipt format needs refreshing.
258
+ database.exec(`UPDATE syncs SET conversation_before=snapshot_at WHERE status='open'
259
+ AND briefing!='' AND compression_complete=1 AND (
260
+ EXISTS(SELECT 1 FROM sync_runs WHERE sync_id=syncs.id AND request_id IS NOT NULL)
261
+ OR EXISTS(SELECT 1 FROM live_calls WHERE sync_id=syncs.id))`);
262
+ // Also preserve prepared-but-not-yet-used chats from the old read-only
263
+ // receipt. This is historical preparation, NOT validation of current inputs.
264
+ const file = path_1.default.join((0, data_dir_1.getDataDir)(), 'memory', 'index.sqlite');
265
+ let memory;
266
+ try {
267
+ if (fs_1.default.existsSync(file)) {
268
+ memory = new better_sqlite3_1.default(file, { readonly: true, fileMustExist: true });
269
+ const raw = memory.prepare("SELECT value FROM meta WHERE key='call-history-ready-v1'").get();
270
+ const marker = raw && raw.value.length <= 1024 ? JSON.parse(raw.value) : null;
271
+ if (marker && typeof marker.before === 'string' && Number.isFinite(Date.parse(marker.before))
272
+ && new Date(marker.before).toISOString() === marker.before && marker.before <= new Date().toISOString()
273
+ && typeof marker.stamp === 'string' && /^[a-f0-9]{64}$/.test(marker.stamp)
274
+ && typeof marker.model === 'string' && marker.model.length > 0
275
+ && marker.model === memory.prepare("SELECT value FROM meta WHERE key='model'").get()?.value
276
+ && memory.prepare("SELECT value FROM meta WHERE key='schema'").get()?.value === 'history-index-v3-contentless') {
277
+ database.prepare(`UPDATE syncs SET conversation_before=? WHERE status='open' AND conversation_before IS NULL
278
+ AND briefing!='' AND compression_complete=1 AND snapshot_at<=?`).run(marker.before, marker.before);
279
+ }
280
+ }
281
+ }
282
+ catch { /* Missing/old caches do not prevent opening the original database. */ }
283
+ finally {
284
+ memory?.close();
285
+ }
286
+ }
224
287
  (0, pointer_migration_1.migratePointers)(database);
225
288
  (0, snapshot_pointers_1.migrateSnapshotPointers)(database);
226
289
  (0, agent_migration_1.migrateAgents)(database);
@@ -231,6 +294,8 @@ function initSchema(database) {
231
294
  const seed = database.prepare('INSERT INTO sync_settings(key,value) VALUES (?,?)');
232
295
  seed.run('auto_index', 'true');
233
296
  }
297
+ // An absent auto_summary preference means false. Never seed paid consent from
298
+ // auto_index or the retired automatic-conversation preference on upgrades.
234
299
  // Preserve the saved indexing choice while withdrawing the retired permission
235
300
  // to create snapshots and spend provider quota in the background.
236
301
  database.exec(`INSERT OR IGNORE INTO sync_settings(key,value)
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":";;;;;AAUA,sBAaC;AAED,gCAoMC;AAED,0BAGC;AAlOD,oEAAsC;AACtC,gDAAwB;AACxB,0CAAyC;AACzC,4CAAoB;AACpB,2DAAkE;AAClE,2DAA8D;AAC9D,uDAAqE;AAErE,IAAI,EAAE,GAA6B,IAAI,CAAC;AAExC,SAAgB,KAAK;IACnB,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,GAAG,GAAG,IAAA,qBAAU,GAAE,CAAC;QACzB,YAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACpD,EAAE,GAAG,IAAI,wBAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;QAC/C,uFAAuF;QACvF,YAAE,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC,CAAC;QACjD,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAChC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC/B,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACjC,IAAI,CAAC;YAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAAC,EAAE,GAAG,IAAI,CAAC;YAAC,MAAM,KAAK,CAAC;QAAC,CAAC;IAC/E,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAgB,UAAU,CAAC,QAA2B;IACpD,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE;QAC1B,2EAA2E;QAC3E,0EAA0E;QAC1E,6EAA6E;QAC7E,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,oEAAoE,CAAC,CAAC,GAAG,EAAE,CAAC;QAC5G,IAAA,mCAAiB,EAAC,QAAQ,CAAC,CAAC;QAC5B,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC,GAAG,EAAE;eAC9F,QAAQ,CAAC,OAAO,CAAC,4DAA4D,CAAC,CAAC,GAAG,EAAU,EAAE,KAAK,KAAK,YAAY,CAAC;QAC3H,6EAA6E;QAC7E,yEAAyE;QACzE,QAAQ,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;MAmBV,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sFAAsF;MACzG,IAAA,8BAAU,EAAC,eAAe,EAAE,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyI5C,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,GAAG,CAAE,QAAQ,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,GAAG,EAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/H,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC;YAC9C,gBAAgB,EAAE,4BAA4B;YAC9C,WAAW,EAAE,MAAM;YACnB,iBAAiB,EAAE,4BAA4B;YAC/C,oBAAoB,EAAE,4BAA4B;SACnD,CAAC,EAAE,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,gCAAgC,IAAI,IAAI,UAAU,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAE,QAAQ,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,GAAG,EAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACtI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;QAC/H,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QACrG,QAAQ,CAAC,IAAI,CAAC,0GAA0G,CAAC,CAAC;QAC1H,QAAQ,CAAC,OAAO,CAAC,qEAAqE,CAAC,CAAC,GAAG,EAAE,CAAC;QAC9F,IAAA,mCAAe,EAAC,QAAQ,CAAC,CAAC;QAAC,IAAA,2CAAuB,EAAC,QAAQ,CAAC,CAAC;QAAC,IAAA,+BAAa,EAAC,QAAQ,CAAC,CAAC;QACtF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAE,QAAQ,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,EAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/I,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;QAC3I,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC;YACnF,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC;QACD,8EAA8E;QAC9E,kEAAkE;QAClE,QAAQ,CAAC,IAAI,CAAC;;wHAEwG,CAAC,CAAC;IACxH,CAAC,CAAC,EAAE,CAAC;AACP,CAAC;AAED,SAAgB,OAAO;IACrB,EAAE,EAAE,KAAK,EAAE,CAAC;IACZ,EAAE,GAAG,IAAI,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,10 @@ export interface HistoryReadiness {
5
5
  before: string | null;
6
6
  }
7
7
  /** A scheduling/readiness hint, not evidence. Original bytes are still verified
8
- * when preparing and retrieving. Include frozen aliases here: unlike the
9
- * strict64 counter, readiness must cover their search links too. */
10
- export declare function historyStamp(source: Database.Database, before?: string, roots?: RootInput): string;
8
+ * when preparing and retrieving. Identity covers admitted records, not mutable
9
+ * import cursors: an append followed by a scan must preserve a prepared prefix.
10
+ * Frozen aliases need their own links even when sourceStamps coalesces them. */
11
+ export declare function historyStamp(source: Database.Database, before?: string, roots?: RootInput, capturedOnly?: boolean): string;
11
12
  export declare function saveHistoryReadiness(db: Database.Database, source: Database.Database, before: string, stamp: string, model: string, roots?: RootInput): void;
12
13
  export declare function indexReadiness(db: Database.Database, source: Database.Database, capturedOnly?: boolean): HistoryReadiness;
13
14
  /** Read-only metadata. Never creates a cache, scans source logs, starts a worker,
@@ -1 +1 @@
1
- {"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../../src/memory/readiness.ts"],"names":[],"mappings":"AAGA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAKlE,MAAM,WAAW,gBAAgB;IAAG,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;AAG3E;;oEAEoE;AACpE,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CA6BlG;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAY5J;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,YAAY,UAAQ,GAAG,gBAAgB,CAgBvH;AAED;oFACoF;AACpF,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,YAAY,UAAQ,GAAG,gBAAgB,CAa3H"}
1
+ {"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../../src/memory/readiness.ts"],"names":[],"mappings":"AAGA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAQlE,MAAM,WAAW,gBAAgB;IAAG,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;AA0B3E;;;gFAGgF;AAChF,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,YAAY,UAAQ,GAAG,MAAM,CA4FxH;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAY5J;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,YAAY,UAAQ,GAAG,gBAAgB,CAqBvH;AAED;oFACoF;AACpF,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,YAAY,UAAQ,GAAG,gBAAgB,CAa3H"}
@@ -16,47 +16,135 @@ const registry_1 = require("../sources/registry");
16
16
  const model_files_1 = require("./model-files");
17
17
  const model_assets_1 = require("./model-assets");
18
18
  const KEY = 'call-history-ready-v1';
19
+ // Keep the storage key so old receipts are replaced by explicit preparation,
20
+ // not mistaken for current coverage. Compatible passages/vectors remain intact.
21
+ const VERSION = 2;
22
+ // Two replaceable slots, not a map of every preparation/cutoff ever requested.
23
+ // Retain only required-file descriptors and digests, never per-entry/frozen JSON.
19
24
  const cached = new WeakMap();
20
- /** A scheduling/readiness hint, not evidence. Original bytes are still verified
21
- * when preparing and retrieving. Include frozen aliases here: unlike the
22
- * strict64 counter, readiness must cover their search links too. */
23
- function historyStamp(source, before, roots) {
24
- if (source.prepare("SELECT value FROM sync_settings WHERE key='source-scan-complete-v1'").get()?.value === '0')
25
- throw new Error('History import has not completed. Scan sessions before calling.');
26
- const now = Date.now(), cutoff = before || new Date(now).toISOString();
27
- const files = (0, crypto_1.createHash)('sha256').update(JSON.stringify((0, registry_1.sourceRoots)(roots)));
28
- for (const row of source.prepare('SELECT s.path,s.file_identity,s.byte_offset,s.scanned_bytes,s.modified_at FROM agent_sessions s JOIN agent_sources a ON a.id=s.agent WHERE s.included=1 AND s.missing=0 AND a.enabled=1 AND EXISTS (SELECT 1 FROM agent_entries e WHERE e.session_id=s.id AND e.is_activity=1) ORDER BY s.id').iterate()) {
25
+ function fileMetadata(files) {
26
+ const metadata = (0, crypto_1.createHash)('sha256');
27
+ for (const row of files) {
29
28
  const stat = fs_1.default.lstatSync(row.path);
30
29
  if (!stat.isFile() || `${stat.dev}:${stat.ino}` !== row.file_identity || stat.size < row.scanned_bytes)
31
30
  throw new Error('Original session file is unavailable.');
32
31
  if (stat.size === row.scanned_bytes && stat.mtime.toISOString() !== row.modified_at)
33
32
  throw new Error('Original session file is unavailable or changed. Prepare history again.');
34
- if (!row.scanned_bytes || row.scanned_bytes < row.byte_offset)
33
+ if (row.scanned_bytes <= 0 || row.scanned_bytes < row.byte_offset || row.byte_offset < row.end)
35
34
  throw new Error('Finish importing history before calling.');
36
- // Later appends belong to a later preparation. Never make an active agent's
37
- // growing log invalidate an already captured and verified prefix forever.
38
- files.update(JSON.stringify([row.path, row.file_identity, row.byte_offset, row.scanned_bytes]));
35
+ // This is only a cache invalidator, NOT receipt identity. A valid append may
36
+ // rebuild metadata without changing the captured stamp. Never read bodies.
37
+ metadata.update(JSON.stringify([stat.dev, stat.ino, stat.size, stat.mtimeMs, stat.ctimeMs]));
38
+ }
39
+ return metadata.digest('hex');
40
+ }
41
+ /** A scheduling/readiness hint, not evidence. Original bytes are still verified
42
+ * when preparing and retrieving. Identity covers admitted records, not mutable
43
+ * import cursors: an append followed by a scan must preserve a prepared prefix.
44
+ * Frozen aliases need their own links even when sourceStamps coalesces them. */
45
+ function historyStamp(source, before, roots, capturedOnly = false) {
46
+ // A failed discovery of a NEW file must block new global coverage, but cannot
47
+ // revoke a previously captured context. Its own files still need completed
48
+ // imports below. Preparing a receipt always uses the strict check.
49
+ if (!capturedOnly && source.prepare("SELECT value FROM sync_settings WHERE key='source-scan-complete-v1'").get()?.value === '0')
50
+ throw new Error('History import has not completed. Scan sessions before calling.');
51
+ const now = Date.now(), cutoff = before || new Date(now).toISOString();
52
+ const rootKey = JSON.stringify((0, registry_1.sourceRoots)(roots));
53
+ const revision = `${VERSION}:${source.pragma('data_version', { simple: true })}:${source.prepare('SELECT total_changes() AS n').get().n}`;
54
+ const slots = cached.get(source) || {};
55
+ cached.set(source, slots);
56
+ const slot = before === undefined ? 'current' : 'captured', prior = slots[slot];
57
+ // Drop before validation/rebuilding so failures cannot leave reusable state.
58
+ delete slots[slot];
59
+ if (prior?.revision === revision && prior.before === before && prior.roots === rootKey
60
+ && now < prior.until && (before !== undefined || now >= prior.from)) {
61
+ // SQL metadata can be cached, external file changes cannot. In particular,
62
+ // frozen-only branches still require their original file on every poll.
63
+ if (fileMetadata(prior.files) === prior.metadata) {
64
+ slots[slot] = prior;
65
+ return prior.stamp;
66
+ }
67
+ }
68
+ let until = Infinity;
69
+ const since = source.prepare("SELECT value FROM sync_settings WHERE key='history_since'").get()?.value || '';
70
+ const sessions = new Map(source.prepare(`SELECT s.id,s.path,s.file_identity,s.byte_offset,s.scanned_bytes,s.modified_at
71
+ FROM agent_sessions s JOIN agent_sources a ON a.id=s.agent
72
+ WHERE s.included=1 AND s.missing=0 AND a.enabled=1 ORDER BY s.id`).all().map(row => [row.id, row]));
73
+ const required = new Map();
74
+ const requirePointer = (session, pointer) => {
75
+ const end = pointer.record_offset + pointer.record_bytes;
76
+ if (!Number.isSafeInteger(pointer.record_offset) || pointer.record_offset < 0 || !Number.isSafeInteger(pointer.record_bytes) || pointer.record_bytes <= 0 || !Number.isSafeInteger(end))
77
+ throw new Error('Invalid history source pointer.');
78
+ required.set(session, Math.max(required.get(session) || 0, end));
79
+ };
80
+ for (const row of source.prepare(`SELECT e.session_id,e.record_offset,e.record_bytes,edit.record_offset AS edit_offset,edit.record_bytes AS edit_bytes
81
+ FROM agent_entries e LEFT JOIN agent_entries edit ON edit.id=e.effective_id
82
+ WHERE e.active=1 AND e.present=1 AND e.is_activity=1 AND e.effective_length>0 AND e.timestamp>=? AND e.timestamp<=?`).iterate(since, cutoff)) {
83
+ if (!sessions.has(row.session_id))
84
+ continue;
85
+ requirePointer(row.session_id, row);
86
+ if (row.edit_offset !== null)
87
+ requirePointer(row.session_id, { record_offset: row.edit_offset, record_bytes: row.edit_bytes });
88
+ }
89
+ const aliases = (0, crypto_1.createHash)('sha256');
90
+ const original = source.prepare('SELECT record_offset,record_bytes,record_hash,present FROM agent_entries WHERE session_id=? AND entry_id=?');
91
+ const verified = new Set();
92
+ const frozenPointer = (session, entry, pointer) => {
93
+ requirePointer(session, pointer);
94
+ const key = JSON.stringify([session, entry, pointer]);
95
+ if (verified.has(key))
96
+ return;
97
+ // A frozen-only superseded branch is not represented by the live stamps.
98
+ // A rescan that removed/rewrote its bytes must still revoke readiness, even
99
+ // though the immutable frozen pointer itself (correctly) never changes.
100
+ const row = original.get(session, entry);
101
+ if (!row?.present || row.record_hash !== pointer.record_hash || row.record_offset !== pointer.record_offset || row.record_bytes !== pointer.record_bytes)
102
+ throw new Error('Original frozen session record is unavailable or changed.');
103
+ verified.add(key);
104
+ };
105
+ const frozen = (sync, item) => {
106
+ if (!sessions.has(item.session_id) || item.timestamp < since)
107
+ return;
108
+ if (item.timestamp > cutoff) {
109
+ if (before === undefined)
110
+ until = Math.min(until, Date.parse(item.timestamp));
111
+ return;
112
+ }
113
+ if (!item.source_pointer)
114
+ throw new Error('History requires verified frozen pointers.');
115
+ frozenPointer(item.session_id, item.entry_id, item.source_pointer.original);
116
+ if (item.source_pointer.edit)
117
+ frozenPointer(item.session_id, item.source_pointer.edit.entry_id, item.source_pointer.edit);
118
+ aliases.update(JSON.stringify([sync, item]));
119
+ };
120
+ for (const row of source.prepare("SELECT i.sync_id,i.evidence_json FROM sync_items i JOIN syncs s ON s.id=i.sync_id WHERE s.status!='discarded' ORDER BY i.sync_id,i.rowid").iterate())
121
+ frozen(row.sync_id, JSON.parse(row.evidence_json));
122
+ for (const row of source.prepare("SELECT id,context_json FROM syncs WHERE status!='discarded' ORDER BY id").iterate()) {
123
+ for (const item of JSON.parse(row.context_json))
124
+ frozen(row.id, item);
125
+ }
126
+ const files = (0, crypto_1.createHash)('sha256').update(rootKey).update(aliases.digest('hex'));
127
+ const descriptors = [];
128
+ for (const [id, row] of sessions) {
129
+ const end = required.get(id);
130
+ if (end === undefined)
131
+ continue;
132
+ descriptors.push({ ...row, end });
133
+ // Cursors are validated, never hashed. They advance on normal append+scan;
134
+ // old record hashes/projections/admission below still detect actual damage.
135
+ files.update(JSON.stringify([id, row.path, row.file_identity]));
39
136
  }
137
+ const metadata = fileMetadata(descriptors);
40
138
  const fileStamp = files.digest('hex');
41
- const revision = `${source.pragma('data_version', { simple: true })}:${source.prepare('SELECT total_changes() AS n').get().n}:${fileStamp}`;
42
- const prior = cached.get(source);
43
- if (prior?.revision === revision && prior.before === before && now < prior.until)
44
- return prior.stamp;
45
- const hash = (0, crypto_1.createHash)('sha256').update(fileStamp).update(JSON.stringify([...(0, stamps_1.sourceStamps)(source, cutoff)]));
46
- for (const row of source.prepare("SELECT i.sync_id,i.evidence_json FROM sync_items i JOIN syncs s ON s.id=i.sync_id WHERE s.status!='discarded' ORDER BY i.rowid").iterate())
47
- hash.update(JSON.stringify(row));
48
- for (const row of source.prepare("SELECT id,context_json FROM syncs WHERE status!='discarded' ORDER BY id").iterate())
49
- hash.update(JSON.stringify(row));
50
- const stamp = hash.digest('hex');
51
- if (!before) {
139
+ const stamp = (0, crypto_1.createHash)('sha256').update(fileStamp).update(JSON.stringify([...(0, stamps_1.sourceStamps)(source, cutoff)])).digest('hex');
140
+ if (before === undefined) {
52
141
  const next = source.prepare(`SELECT MIN(at) AS at FROM (
53
142
  SELECT timestamp AS at FROM agent_entries WHERE timestamp>?
54
143
  UNION ALL SELECT created_at FROM sync_messages WHERE created_at>?
55
144
  UNION ALL SELECT completed_at FROM syncs WHERE completed_at>?)`).get(cutoff, cutoff, cutoff);
56
- cached.set(source, { revision, until: next.at ? Date.parse(next.at) : Infinity, stamp });
145
+ until = Math.min(until, next.at ? Date.parse(next.at) : Infinity);
57
146
  }
58
- else
59
- cached.set(source, { revision, until: Infinity, stamp, before });
147
+ slots[slot] = { revision, roots: rootKey, before, from: now, until, stamp, files: descriptors, metadata };
60
148
  return stamp;
61
149
  }
62
150
  function saveHistoryReadiness(db, source, before, stamp, model, roots) {
@@ -67,13 +155,13 @@ function saveHistoryReadiness(db, source, before, stamp, model, roots) {
67
155
  if (prior && prior.value.length <= 1024) {
68
156
  try {
69
157
  const value = JSON.parse(prior.value);
70
- if (value.stamp === stamp && value.model === model && typeof value.before === 'string'
158
+ if (value.version === VERSION && value.stamp === stamp && value.model === model && typeof value.before === 'string'
71
159
  && new Date(value.before).toISOString() === value.before && value.before <= before)
72
160
  return;
73
161
  }
74
162
  catch { /* Explicit preparation can replace an invalid receipt, not source evidence. */ }
75
163
  }
76
- db.prepare('INSERT INTO meta(key,value) VALUES(?,?) ON CONFLICT(key) DO UPDATE SET value=excluded.value').run(KEY, JSON.stringify({ before, stamp, model }));
164
+ db.prepare('INSERT INTO meta(key,value) VALUES(?,?) ON CONFLICT(key) DO UPDATE SET value=excluded.value').run(KEY, JSON.stringify({ version: VERSION, before, stamp, model }));
77
165
  }
78
166
  function indexReadiness(db, source, capturedOnly = false) {
79
167
  const absent = { ready: false, before: null };
@@ -84,16 +172,21 @@ function indexReadiness(db, source, capturedOnly = false) {
84
172
  if (!row || row.value.length > 1024)
85
173
  return absent;
86
174
  const marker = JSON.parse(row.value);
87
- if (typeof marker.before !== 'string' || !Number.isFinite(Date.parse(marker.before)) || new Date(marker.before).toISOString() !== marker.before || marker.before > new Date().toISOString()
175
+ if (marker.version !== VERSION || typeof marker.before !== 'string' || !Number.isFinite(Date.parse(marker.before)) || new Date(marker.before).toISOString() !== marker.before || marker.before > new Date().toISOString()
88
176
  || typeof marker.stamp !== 'string' || !/^[a-f0-9]{64}$/.test(marker.stamp)
89
177
  || marker.model !== db.prepare("SELECT value FROM meta WHERE key='model'").get()?.value)
90
178
  return absent;
91
- if (db.prepare('SELECT 1 FROM passages p JOIN chunk_links c ON c.passage_id=p.id JOIN records r ON r.ref=c.ref WHERE p.embedded=0 AND r.at<=? LIMIT 1').get(marker.before))
179
+ // Start with incomplete physical passages, not every occurrence/alias. The
180
+ // correlated lookup uses links_passage; new caches also have a tiny partial
181
+ // passages index. Older read-only schemas need no migration to run this.
182
+ if (db.prepare(`SELECT 1 FROM passages p WHERE p.embedded=0 AND EXISTS (
183
+ SELECT 1 FROM chunk_links c JOIN records r ON r.ref=c.ref
184
+ WHERE c.passage_id=p.id AND r.at<=?) LIMIT 1`).get(marker.before))
92
185
  return absent;
93
- // A text conversation may keep using its prepared cutoff while saving new
94
- // messages. Those newer messages are supplied directly, not falsely claimed
95
- // as indexed. Original-file/cursor/admission changes still invalidate it.
96
- return marker.stamp === historyStamp(source, capturedOnly ? marker.before : undefined) ? { ready: true, before: marker.before } : absent;
186
+ // New post-cutoff entries/messages/sessions are not claimed as indexed.
187
+ // An alias of an OLD record still needs a link, regardless of snapshot age;
188
+ // unlike an alias of a post-cutoff record, it must invalidate this receipt.
189
+ return marker.stamp === historyStamp(source, capturedOnly ? marker.before : undefined, undefined, capturedOnly) ? { ready: true, before: marker.before } : absent;
97
190
  }
98
191
  catch {
99
192
  return absent;
@@ -1 +1 @@
1
- {"version":3,"file":"readiness.js","sourceRoot":"","sources":["../../src/memory/readiness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"readiness.js","sourceRoot":"","sources":["../../src/memory/readiness.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/memory/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C;0EAC0E;AAC1E,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAgGnF"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/memory/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C;0EAC0E;AAC1E,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAiGnF"}
@@ -27,6 +27,7 @@ function initHistoryStorage(db, fingerprint) {
27
27
  CREATE TABLE IF NOT EXISTS chunk_links(id INTEGER PRIMARY KEY AUTOINCREMENT,ref TEXT NOT NULL REFERENCES records(ref) ON DELETE CASCADE,offset INTEGER NOT NULL,passage_id INTEGER NOT NULL REFERENCES passages(id));
28
28
  CREATE INDEX IF NOT EXISTS links_ref ON chunk_links(ref);
29
29
  CREATE INDEX IF NOT EXISTS links_passage ON chunk_links(passage_id);
30
+ CREATE INDEX IF NOT EXISTS passages_incomplete ON passages(id) WHERE embedded=0;
30
31
  CREATE VIRTUAL TABLE IF NOT EXISTS passage_vectors USING vec0(embedding float[${embedding_contract_1.EMBEDDING_DIMENSIONS}] distance_metric=cosine);
31
32
  `);
32
33
  if (prior === 'history-index-v1') {
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/memory/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/memory/storage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/routes/sync.ts"],"names":[],"mappings":"AAcA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAoHxB,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/routes/sync.ts"],"names":[],"mappings":"AAgBA,QAAA,MAAM,MAAM,4CAAW,CAAC;AA0HxB,eAAe,MAAM,CAAC"}
@@ -12,7 +12,9 @@ const manager_1 = require("../sync/manager");
12
12
  const background_1 = require("../sync/background");
13
13
  const preparation_1 = require("../sync/preparation");
14
14
  const usage_1 = require("../sync/usage");
15
+ const summary_preparation_1 = require("../sync/summary-preparation");
15
16
  const activity_1 = require("../sync/activity");
17
+ const conversation_1 = require("../sync/conversation");
16
18
  const router = (0, express_1.Router)();
17
19
  function id(req) {
18
20
  const value = Number(req.params.id);
@@ -37,6 +39,12 @@ router.patch('/settings/auto-index', (0, http_1.route)((req, res) => {
37
39
  throw new errors_1.HttpError(400, 'Only boolean enabled is accepted');
38
40
  res.json((0, background_1.setAutoIndex)(req.body.enabled));
39
41
  }));
42
+ router.get('/settings/auto-summary', (0, http_1.route)((_req, res) => res.json((0, summary_preparation_1.summaryPreparationSettings)())));
43
+ router.patch('/settings/auto-summary', (0, http_1.route)(async (req, res) => {
44
+ if (!req.body || Array.isArray(req.body) || typeof req.body.enabled !== 'boolean' || Object.keys(req.body).some(key => key !== 'enabled'))
45
+ throw new errors_1.HttpError(400, 'Only boolean enabled is accepted');
46
+ res.json(await (0, background_1.setAutoSummary)(req.body.enabled));
47
+ }));
40
48
  router.use((req, _res, next) => {
41
49
  if (['POST', 'PATCH', 'DELETE'].includes(req.method))
42
50
  void (0, background_1.yieldBackgroundIndexing)().then(() => next(), next);
@@ -103,6 +111,7 @@ router.post('/syncs', (0, http_1.route)(async (req, res) => {
103
111
  res.json({ sync: (0, store_1.startSync)(since), scan });
104
112
  }));
105
113
  router.get('/syncs/:id', (0, http_1.route)((req, res) => res.json((0, store_1.getSync)(id(req)))));
114
+ router.get('/syncs/:id/conversation', (0, http_1.route)((req, res) => res.json((0, conversation_1.conversationStatus)(id(req)))));
106
115
  router.get('/syncs/:id/progress', (0, http_1.route)((req, res) => res.json((0, store_1.getProgress)(id(req)))));
107
116
  router.get('/syncs/:id/call-readiness', (0, http_1.route)((req, res) => res.json((0, preparation_1.callReadiness)(id(req)))));
108
117
  router.get('/syncs/:id/chat-readiness', (0, http_1.route)((req, res) => { res.json((0, preparation_1.callReadiness)(id(req), true)); }));
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/routes/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/routes/sync.ts"],"names":[],"mappings":"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"}