@cortexkit/opencode-magic-context 0.49.25 → 0.49.26

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 (89) hide show
  1. package/dist/auto-search-worker.js +4 -4
  2. package/dist/chunk-embedding-write-worker.js +4 -4
  3. package/dist/{compartment-chunk-embedding-eypvn607.js → compartment-chunk-embedding-96ec8a7h.js} +3 -3
  4. package/dist/{conflict-warning-hook-a27bhggg.js → conflict-warning-hook-dv8fdc2w.js} +4 -4
  5. package/dist/{context-keb00be8.js → context-pjqa24nd.js} +17 -17
  6. package/dist/{embedding-backfill-vddgmem3.js → embedding-backfill-a91rvdf9.js} +5 -5
  7. package/dist/hooks/magic-context/caveman-cleanup.d.ts +14 -0
  8. package/dist/hooks/magic-context/caveman-cleanup.d.ts.map +1 -1
  9. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts +11 -0
  10. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
  11. package/dist/hooks/magic-context/foreign-text-parts.d.ts +47 -0
  12. package/dist/hooks/magic-context/foreign-text-parts.d.ts.map +1 -0
  13. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  14. package/dist/hooks/magic-context/read-session-chunk.d.ts +21 -0
  15. package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -1
  16. package/dist/hooks/magic-context/read-session-raw.d.ts +20 -0
  17. package/dist/hooks/magic-context/read-session-raw.d.ts.map +1 -1
  18. package/dist/hooks/magic-context/tag-messages.d.ts +15 -0
  19. package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
  20. package/dist/hooks/magic-context/transform.d.ts +7 -0
  21. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  22. package/dist/{index-2haxh8h3.js → index-064v90e8.js} +1 -1
  23. package/dist/{index-awcftgmx.js → index-40ma8m0c.js} +3 -3
  24. package/dist/{index-y6xpzjzr.js → index-56tfs78r.js} +37 -27
  25. package/dist/{index-q7ywt6xt.js → index-6g1zq1sk.js} +2 -2
  26. package/dist/{index-3d5wnkq7.js → index-6tmf87w0.js} +1 -1
  27. package/dist/{index-yrrsp47d.js → index-dn2ke3b9.js} +17 -3
  28. package/dist/{index-t6j3qxnd.js → index-e5b61ty6.js} +1 -1
  29. package/dist/{index-0s8454t2.js → index-hjnrp6vy.js} +61 -15
  30. package/dist/{index-c9zrgcnt.js → index-j43m40zd.js} +1 -1
  31. package/dist/{index-7tdtpqrg.js → index-m8va3mma.js} +39 -6
  32. package/dist/{index-z928hmnp.js → index-mphkpyap.js} +1 -1
  33. package/dist/{index-n18sch77.js → index-r3bteyev.js} +5 -5
  34. package/dist/{index-axjgxeww.js → index-rp78nqvr.js} +166 -10
  35. package/dist/{index-z05n7702.js → index-sgchhbvy.js} +1 -1
  36. package/dist/{index-zzrzjnx5.js → index-va2g2q57.js} +3 -3
  37. package/dist/{index-jcr6pe7z.js → index-w55zp7kf.js} +1 -1
  38. package/dist/{index-szf8r0ba.js → index-xbbgcwd2.js} +1 -1
  39. package/dist/{index-ebsvmc5s.js → index-xyx2ge2y.js} +4 -4
  40. package/dist/{index-bhyksfyy.js → index-zn2n24yr.js} +3 -3
  41. package/dist/index.js +30 -28
  42. package/dist/{message-fts-rowid-map-9e1getgs.js → message-fts-rowid-map-4ksatb6f.js} +2 -2
  43. package/dist/{message-index-bounded-vaeqhp9w.js → message-index-bounded-whh5wv4a.js} +6 -6
  44. package/dist/{message-index-3g966xn7.js → message-index-ywx53y30.js} +6 -6
  45. package/dist/migration-worker.js +3 -3
  46. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  47. package/dist/{project-embedding-registry-rstzmb60.js → project-embedding-registry-t9fx6jwh.js} +4 -4
  48. package/dist/raw-ordinal-warmup-worker.js +6 -6
  49. package/dist/{read-session-chunk-z5gnc0zb.js → read-session-chunk-mqmkgdx0.js} +5 -3
  50. package/dist/{read-session-raw-s4amywnh.js → read-session-raw-dy2xxafq.js} +3 -1
  51. package/dist/{recomp-orchestrator-qwqeskhq.js → recomp-orchestrator-qwcz86r1.js} +13 -13
  52. package/dist/{search-archive-mfabzyn2.js → search-archive-8md3twv2.js} +4 -4
  53. package/dist/{search-84zfqeky.js → search-y2t97tbb.js} +10 -10
  54. package/dist/{send-session-notification-ygj4mja0.js → send-session-notification-kzazs7fy.js} +3 -3
  55. package/dist/tools/ctx-reduce/tools.d.ts.map +1 -1
  56. package/dist/{transform-postprocess-phase-hr1ntmjj.js → transform-postprocess-phase-ppm1tfa7.js} +13 -13
  57. package/dist/v2/auto-search-worker.js +4 -4
  58. package/dist/v2/chunk-embedding-write-worker.js +4 -4
  59. package/dist/v2/{compartment-chunk-embedding-tk6g4q80.js → compartment-chunk-embedding-5rmrn09z.js} +3 -3
  60. package/dist/v2/{context-y7wfvdve.js → context-10pj3bwd.js} +176 -27
  61. package/dist/v2/{embedding-backfill-w5qp7t28.js → embedding-backfill-r9mzt2eg.js} +5 -5
  62. package/dist/v2/{message-fts-rowid-map-pqk3a55v.js → message-fts-rowid-map-2s3ta05x.js} +2 -2
  63. package/dist/v2/{message-index-bounded-te303atj.js → message-index-bounded-f4269d3a.js} +5 -5
  64. package/dist/v2/{message-index-fz6b4jeh.js → message-index-v6g8mgn7.js} +5 -5
  65. package/dist/v2/migration-worker.js +3 -3
  66. package/dist/v2/{project-embedding-registry-e7zftfvj.js → project-embedding-registry-tgtmart7.js} +4 -4
  67. package/dist/v2/raw-ordinal-warmup-worker.js +6 -6
  68. package/dist/v2/{read-session-chunk-knvkq1hf.js → read-session-chunk-ym5zvexn.js} +4 -2
  69. package/dist/v2/{read-session-raw-ppjxnqk4.js → read-session-raw-484g8kf2.js} +3 -1
  70. package/dist/v2/{recomp-orchestrator-e8a4jpvr.js → recomp-orchestrator-b44s2snm.js} +10 -10
  71. package/dist/v2/{search-hav4dggf.js → search-75tf953m.js} +9 -9
  72. package/dist/v2/{search-archive-vrwgxv6z.js → search-archive-pmf2c1kb.js} +3 -3
  73. package/dist/v2/{send-session-notification-f8scq6ae.js → send-session-notification-gd21f5rq.js} +1 -1
  74. package/dist/v2/{server-e75vag9d.js → server-317f3x9y.js} +2 -2
  75. package/dist/v2/{server-wxrdher8.js → server-4frtg2z1.js} +1 -1
  76. package/dist/v2/{server-pw21ypwb.js → server-7dpnt0ys.js} +1 -1
  77. package/dist/v2/{server-7weh65vd.js → server-9zh78t8y.js} +59 -13
  78. package/dist/v2/{server-swvhxhxz.js → server-erk2bvdf.js} +39 -6
  79. package/dist/v2/{server-q5z0gag0.js → server-hnmm8yzq.js} +1 -1
  80. package/dist/v2/{server-5brp2rfn.js → server-jcsw05aa.js} +16 -2
  81. package/dist/v2/{server-6a8pxpxg.js → server-k46ec388.js} +3 -3
  82. package/dist/v2/{server-9xbbaekh.js → server-nmwhe524.js} +1 -1
  83. package/dist/v2/{server-tfawsj08.js → server-vjer2jdn.js} +5 -5
  84. package/dist/v2/{server-m6yyn961.js → server-w7x9wgm0.js} +2 -2
  85. package/dist/v2/{server-8j2e7t31.js → server-wj8h2q21.js} +1 -1
  86. package/dist/v2/server.js +2 -2
  87. package/dist/v2/{wrapup-orchestrator-ycs8y6n4.js → wrapup-orchestrator-gwww44st.js} +10 -10
  88. package/dist/{wrapup-orchestrator-f642w8n3.js → wrapup-orchestrator-a9r8r4sk.js} +14 -14
  89. package/package.json +1 -1
@@ -7,18 +7,18 @@ import {
7
7
  setRecompTerminal2,
8
8
  buildRecompDeps2,
9
9
  runManagedRecomp2
10
- } from "./server-7weh65vd.js";
10
+ } from "./server-9zh78t8y.js";
11
11
  import"./server-806rzhs6.js";
12
- import"./server-9xbbaekh.js";
13
- import"./server-6a8pxpxg.js";
14
- import"./server-8j2e7t31.js";
12
+ import"./server-nmwhe524.js";
13
+ import"./server-k46ec388.js";
14
+ import"./server-wj8h2q21.js";
15
15
  import"./server-jjvbk92s.js";
16
- import"./server-q5z0gag0.js";
16
+ import"./server-hnmm8yzq.js";
17
17
  import"./server-4dhv7mqz.js";
18
18
  import"./server-53eh1r8r.js";
19
19
  import"./server-6v3cdzsx.js";
20
20
  import"./server-qt1qqasc.js";
21
- import"./server-5brp2rfn.js";
21
+ import"./server-jcsw05aa.js";
22
22
  import"./server-fa7vtp40.js";
23
23
  import"./server-1zx87sdm.js";
24
24
  import"./server-3vhxy2k5.js";
@@ -29,19 +29,19 @@ import"./server-x8a7jmkh.js";
29
29
  import"./server-vr4szghm.js";
30
30
  import"./server-24g8r2d0.js";
31
31
  import"./server-bsgd4dk1.js";
32
- import"./server-pw21ypwb.js";
32
+ import"./server-7dpnt0ys.js";
33
33
  import"./server-ab1g0wn9.js";
34
- import"./server-e75vag9d.js";
34
+ import"./server-317f3x9y.js";
35
35
  import"./server-fb3zxn06.js";
36
36
  import"./server-wwaw5npa.js";
37
37
  import"./server-fr0wbhdn.js";
38
38
  import"./server-qjvk4a9t.js";
39
- import"./server-wxrdher8.js";
39
+ import"./server-4frtg2z1.js";
40
40
  import"./server-k3t06fxr.js";
41
41
  import"./server-7d6m1p2b.js";
42
42
  import"./server-rqebawx1.js";
43
43
  import"./server-2ra6pwf3.js";
44
- import"./server-swvhxhxz.js";
44
+ import"./server-erk2bvdf.js";
45
45
  import"./server-51779zs2.js";
46
46
  import"./server-gyy4k6mf.js";
47
47
  import"./server-3mz2qh5a.js";
@@ -5,33 +5,33 @@ import {
5
5
  resolveMemoriesByIdsForSearch2,
6
6
  unifiedSearch2,
7
7
  formatSearchResults2
8
- } from "./server-tfawsj08.js";
8
+ } from "./server-vjer2jdn.js";
9
9
  import"./server-kaqs6h31.js";
10
- import"./server-9xbbaekh.js";
11
- import"./server-6a8pxpxg.js";
12
- import"./server-8j2e7t31.js";
10
+ import"./server-nmwhe524.js";
11
+ import"./server-k46ec388.js";
12
+ import"./server-wj8h2q21.js";
13
13
  import"./server-jjvbk92s.js";
14
- import"./server-q5z0gag0.js";
14
+ import"./server-hnmm8yzq.js";
15
15
  import"./server-4dhv7mqz.js";
16
16
  import"./server-qt1qqasc.js";
17
- import"./server-5brp2rfn.js";
17
+ import"./server-jcsw05aa.js";
18
18
  import"./server-fa7vtp40.js";
19
19
  import"./server-1zx87sdm.js";
20
20
  import"./server-3vhxy2k5.js";
21
21
  import"./server-vr4szghm.js";
22
22
  import"./server-24g8r2d0.js";
23
23
  import"./server-bsgd4dk1.js";
24
- import"./server-pw21ypwb.js";
24
+ import"./server-7dpnt0ys.js";
25
25
  import"./server-ab1g0wn9.js";
26
26
  import"./server-wwaw5npa.js";
27
27
  import"./server-fr0wbhdn.js";
28
28
  import"./server-qjvk4a9t.js";
29
- import"./server-wxrdher8.js";
29
+ import"./server-4frtg2z1.js";
30
30
  import"./server-k3t06fxr.js";
31
31
  import"./server-7d6m1p2b.js";
32
32
  import"./server-rqebawx1.js";
33
33
  import"./server-2ra6pwf3.js";
34
- import"./server-swvhxhxz.js";
34
+ import"./server-erk2bvdf.js";
35
35
  import"./server-51779zs2.js";
36
36
  import"./server-gyy4k6mf.js";
37
37
  import"./server-3mz2qh5a.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  renderSearchArchive2,
3
3
  renderSearchArchiveOffThread2
4
- } from "./server-m6yyn961.js";
4
+ } from "./server-w7x9wgm0.js";
5
5
  import"./server-kaqs6h31.js";
6
- import"./server-5brp2rfn.js";
6
+ import"./server-jcsw05aa.js";
7
7
  import"./server-fa7vtp40.js";
8
8
  import"./server-1zx87sdm.js";
9
9
  import"./server-3vhxy2k5.js";
@@ -11,7 +11,7 @@ import"./server-24g8r2d0.js";
11
11
  import"./server-7d6m1p2b.js";
12
12
  import"./server-rqebawx1.js";
13
13
  import"./server-2ra6pwf3.js";
14
- import"./server-swvhxhxz.js";
14
+ import"./server-erk2bvdf.js";
15
15
  import"./server-51779zs2.js";
16
16
  import"./server-gyy4k6mf.js";
17
17
  import"./server-3mz2qh5a.js";
@@ -13,7 +13,7 @@ import"./server-qt1qqasc.js";
13
13
  import"./server-3vhxy2k5.js";
14
14
  import"./server-1bw1wcbp.js";
15
15
  import"./server-2ra6pwf3.js";
16
- import"./server-swvhxhxz.js";
16
+ import"./server-erk2bvdf.js";
17
17
  import"./server-51779zs2.js";
18
18
  import"./server-gzy5w8ya.js";
19
19
  import"./server-6495nmn9.js";
@@ -42,7 +42,7 @@ import {
42
42
  } from "./server-fb3zxn06.js";
43
43
  import {
44
44
  startMessageFtsRowidMapBackfill2
45
- } from "./server-wxrdher8.js";
45
+ } from "./server-4frtg2z1.js";
46
46
  import {
47
47
  LKG_SLOT_CHUNKS_DDL,
48
48
  SESSION_REPLAY_DECISIONS_DDL,
@@ -1221,7 +1221,7 @@ function finishDatabaseOpen(db, dbPath, explicitDbPath, latestSupportedVersion)
1221
1221
  state.running = startMessageFtsRowidMapBackfill2(db, signal).then(async () => {
1222
1222
  if (signal.aborted || !readsOpenCodeStore)
1223
1223
  return;
1224
- const { readRawSessionMessagePage, readRawSessionMessages } = await importPluginModule(() => import("./read-session-chunk-knvkq1hf.js"));
1224
+ const { readRawSessionMessagePage, readRawSessionMessages } = await importPluginModule(() => import("./read-session-chunk-ym5zvexn.js"));
1225
1225
  const { startMessageTimeBackfill } = await importPluginModule(() => import("./message-time-backfill-zvthw6xb.js"));
1226
1226
  if (signal.aborted)
1227
1227
  return;
@@ -5,7 +5,7 @@ import {
5
5
  } from "./server-gzy5w8ya.js";
6
6
  import {
7
7
  runSessionWarmupWorker
8
- } from "./server-swvhxhxz.js";
8
+ } from "./server-erk2bvdf.js";
9
9
  import {
10
10
  logSlowWriteTransaction
11
11
  } from "./server-gyy4k6mf.js";
@@ -13,7 +13,7 @@ import {
13
13
  } from "./server-ab1g0wn9.js";
14
14
  import {
15
15
  messageFtsOrdinalRangeIsMapped2
16
- } from "./server-wxrdher8.js";
16
+ } from "./server-4frtg2z1.js";
17
17
 
18
18
  // src/features/magic-context/compartment-chunk-embedding.ts
19
19
  import { createHash } from "node:crypto";
@@ -40,7 +40,7 @@ import {
40
40
  getProjectChunkEmbeddingModelId2,
41
41
  getProjectEmbeddingMaxInputTokens2,
42
42
  embedItemsForProject2
43
- } from "./server-q5z0gag0.js";
43
+ } from "./server-hnmm8yzq.js";
44
44
  import {
45
45
  hasMeaningfulUserText2,
46
46
  estimateTokens,
@@ -59,8 +59,9 @@ import {
59
59
  isStrictGapHealingMessage2,
60
60
  noteRawSessionSummaryRowWritten2,
61
61
  RawOrdinalsNotReady2,
62
+ dropRawSessionOrdinalCheckpoints2,
62
63
  runSessionWarmupWorker
63
- } from "./server-swvhxhxz.js";
64
+ } from "./server-erk2bvdf.js";
64
65
  import {
65
66
  buildCanonicalChunkTextFromFts2,
66
67
  buildCompartmentSummaryFallbackText2,
@@ -70,7 +71,7 @@ import {
70
71
  replaceCompartmentChunkEmbeddings2,
71
72
  deleteChunkEmbedBackoffForSession2,
72
73
  chunkWindowSourceKey2
73
- } from "./server-pw21ypwb.js";
74
+ } from "./server-7dpnt0ys.js";
74
75
  import {
75
76
  isPidAlive
76
77
  } from "./server-k3t06fxr.js";
@@ -89,7 +90,7 @@ import {
89
90
  toMessageIndexSource2,
90
91
  clearIndexedMessagesInTransaction2,
91
92
  indexSourcesAfterOrdinal2
92
- } from "./server-6a8pxpxg.js";
93
+ } from "./server-k46ec388.js";
93
94
  import {
94
95
  retreatPastHostUnservedRows,
95
96
  snapTerminalCompartmentToServedRow,
@@ -182,12 +183,13 @@ import {
182
183
  readRawSessionMessageIdOrdinalsForRange2,
183
184
  hasRawSessionMessageById2,
184
185
  readRawSessionMessageOrdinalById2,
186
+ resolveHistorianChunkStart2,
185
187
  compareRawSessionMessageOrder2,
186
188
  getRawSessionMessageCount2,
187
189
  getRawSessionTagKeysThrough2,
188
190
  getLegacyProtectedTailStartOrdinal2,
189
191
  readSessionChunk2
190
- } from "./server-5brp2rfn.js";
192
+ } from "./server-jcsw05aa.js";
191
193
  import {
192
194
  getTableColumnNames
193
195
  } from "./server-rqebawx1.js";
@@ -197,7 +199,7 @@ import {
197
199
  LATEST_SUPPORTED_VERSION,
198
200
  getPersistedSchemaVersion,
199
201
  openDatabase
200
- } from "./server-e75vag9d.js";
202
+ } from "./server-317f3x9y.js";
201
203
  import {
202
204
  providerMass,
203
205
  calibrationForModelKey,
@@ -259,7 +261,7 @@ import {
259
261
  userFacingFailureCode,
260
262
  promoteSessionFactsDurable,
261
263
  embedPromotedFacts
262
- } from "./server-9xbbaekh.js";
264
+ } from "./server-nmwhe524.js";
263
265
  import {
264
266
  isMarkerCandidateBasisCurrent2,
265
267
  invalidateMarkerCandidateBasis2,
@@ -17258,6 +17260,24 @@ function shouldSuppressHistorianAlert(sessionId) {
17258
17260
  lastHistorianAlertBySession.set(sessionId, Date.now());
17259
17261
  return false;
17260
17262
  }
17263
+ function isServingOrdinalDriftSignal(detail) {
17264
+ if (!detail)
17265
+ return false;
17266
+ if (detail === "raw message count shrank")
17267
+ return true;
17268
+ return /(?:offset|protectedTailStart|eligibleEnd) ordinal \d+ id changed$/.test(detail);
17269
+ }
17270
+ function shouldRefuseStaleSnapshotForDrift(sessionId, detail) {
17271
+ if (hasRawMessageProvider2(sessionId) || !openCodeDbExists())
17272
+ return false;
17273
+ return isServingOrdinalDriftSignal(detail);
17274
+ }
17275
+ function dropDriftedServingOrdinalRanks(sessionId, detail) {
17276
+ if (hasRawMessageProvider2(sessionId) || !openCodeDbExists())
17277
+ return;
17278
+ withReadOnlySessionDb((reader) => dropRawSessionOrdinalCheckpoints2(reader, sessionId));
17279
+ sessionLog2(sessionId, `historian: dropped drifted ordinal checkpoints after exact-read disagreement (${detail}); the next run rebuilds them from a full scan`);
17280
+ }
17261
17281
  function findDanglingPublicationBoundary(sessionId, compartments, messageExists = hasRawSessionMessageById2) {
17262
17282
  for (const compartment of compartments) {
17263
17283
  if (!messageExists(sessionId, compartment.startMessageId)) {
@@ -17425,7 +17445,16 @@ async function runCompartmentAgent(deps) {
17425
17445
  }
17426
17446
  return;
17427
17447
  }
17428
- const offset = priorCompartments.length > 0 ? priorCompartments[priorCompartments.length - 1].endMessage + 1 : 1;
17448
+ let offset;
17449
+ try {
17450
+ offset = resolveHistorianChunkStart2(sessionId, priorCompartments[priorCompartments.length - 1] ?? null);
17451
+ } catch (error) {
17452
+ if (error instanceof RawOrdinalsNotReady2) {
17453
+ deferUntilOrdinalsReady("chunk start unreadable");
17454
+ return;
17455
+ }
17456
+ throw error;
17457
+ }
17429
17458
  let boundarySnapshot = deps.boundarySnapshot ?? null;
17430
17459
  if (!boundarySnapshot) {
17431
17460
  telemetry.failureReason = "missing protected-tail boundary snapshot";
@@ -17435,17 +17464,34 @@ async function runCompartmentAgent(deps) {
17435
17464
  }
17436
17465
  let validation = { ok: true };
17437
17466
  if (boundarySnapshot.rawRangeFingerprint.length > 0) {
17438
- const checked = await validateBoundarySnapshotOffThread({
17439
- db,
17440
- snapshot: boundarySnapshot,
17441
- currentContextLimit: deps.currentContextLimit ?? boundarySnapshot.contextLimit
17442
- });
17467
+ let checked;
17468
+ try {
17469
+ checked = await validateBoundarySnapshotOffThread({
17470
+ db,
17471
+ snapshot: boundarySnapshot,
17472
+ currentContextLimit: deps.currentContextLimit ?? boundarySnapshot.contextLimit
17473
+ });
17474
+ } catch (error) {
17475
+ if (error instanceof RawOrdinalsNotReady2) {
17476
+ deferUntilOrdinalsReady("boundary validation unreadable");
17477
+ return;
17478
+ }
17479
+ throw error;
17480
+ }
17443
17481
  if (checked.kind === "not-ready") {
17444
17482
  deferUntilOrdinalsReady(`boundary validation ${checked.reason}`);
17445
17483
  return;
17446
17484
  }
17447
17485
  validation = checked.result;
17448
17486
  }
17487
+ if (!validation.ok && validation.reason === "stale_snapshot" && shouldRefuseStaleSnapshotForDrift(sessionId, validation.detail)) {
17488
+ dropDriftedServingOrdinalRanks(sessionId, validation.detail ?? validation.reason ?? "stale_snapshot");
17489
+ sessionLog2(sessionId, `historian: refusing to publish over a stale protected-tail snapshot (was: ${validation.detail ?? "stale"}); ending the run without publishing`);
17490
+ telemetry.status = "noop";
17491
+ telemetry.failureReason = "stale_snapshot";
17492
+ rollbackDrainReservation();
17493
+ return;
17494
+ }
17449
17495
  if (!validation.ok && validation.reason === "stale_snapshot") {
17450
17496
  const refreshed = deps.refreshBoundarySnapshot ? deps.refreshBoundarySnapshot(boundarySnapshot, validation) : resolveOpenCodeProtectedTailBoundary({
17451
17497
  db,
@@ -566,6 +566,20 @@ function survivingAnchor(db, set) {
566
566
  }
567
567
  var ordinalCheckpoints = new WeakMap;
568
568
  var ordinalSummarySeeds = new WeakMap;
569
+ function hasLateCommitBehindCheckpoint(db, sessionId, scan) {
570
+ const tail = scan.checkpoints?.at(-1);
571
+ if (!tail || scan.maxRowid === undefined)
572
+ return false;
573
+ const row = db.prepare(`SELECT COUNT(*) AS count FROM message
574
+ WHERE rowid > ? AND +session_id = ?
575
+ AND (time_created, id) <= (?, ?)
576
+ AND NOT (${EXCLUDED_ROW_SQL})`).get(scan.maxRowid, sessionId, tail.timeCreated, tail.id);
577
+ return typeof row?.count === "number" && row.count > 0;
578
+ }
579
+ function discardRetainedOrdinalRanks(db, sessionId) {
580
+ ordinalCheckpoints.get(db)?.delete(sessionId);
581
+ ordinalSummarySeeds.get(db)?.delete(sessionId);
582
+ }
569
583
  var ORDINAL_LOOKUP_LIMIT = 512;
570
584
  function currentOrdinalCheckpoints(db, sessionId) {
571
585
  const cached = ordinalCheckpoints.get(db)?.get(sessionId);
@@ -596,10 +610,16 @@ function extendOrdinalCheckpoints(db, sessionId, scan, limit) {
596
610
  scan.sessionRows = points.at(-1)?.storedCount ?? 0;
597
611
  }
598
612
  const tail = points.at(-1);
599
- const rows = db.prepare(`SELECT id, time_created AS timeCreated, ${EXCLUDED_ROW_SQL} AS excluded FROM message
613
+ const rows = db.prepare(`SELECT id, time_created AS timeCreated, rowid AS rowid, ${EXCLUDED_ROW_SQL} AS excluded FROM message
600
614
  WHERE session_id=?${tail ? " AND (time_created,id) > (?,?)" : ""}
601
615
  ORDER BY time_created,id${limit === undefined ? "" : ` LIMIT ${limit + 1}`}`).all(sessionId, ...tail ? [tail.timeCreated, tail.id] : []);
602
616
  ordinalJsonRowsRead += rows.length;
617
+ if (hasLateCommitBehindCheckpoint(db, sessionId, scan)) {
618
+ discardRetainedOrdinalRanks(db, sessionId);
619
+ if (isMainThread)
620
+ forgetRawSessionSummaryRows2(sessionId);
621
+ return false;
622
+ }
603
623
  if (limit !== undefined && rows.length > limit)
604
624
  return false;
605
625
  let total = scan.total ?? 0;
@@ -616,6 +636,13 @@ function extendOrdinalCheckpoints(db, sessionId, scan, limit) {
616
636
  scan.checkpoints = points;
617
637
  scan.sessionRows += rows.length;
618
638
  scan.total = total;
639
+ if (rows.length > 0) {
640
+ let maxRowid = scan.maxRowid ?? -1;
641
+ for (const row of rows)
642
+ if (row.rowid > maxRowid)
643
+ maxRowid = row.rowid;
644
+ scan.maxRowid = maxRowid;
645
+ }
619
646
  return true;
620
647
  }
621
648
 
@@ -636,6 +663,10 @@ function rawOrdinalSummarySeed2(db, sessionId) {
636
663
  ids: [...new Set([...seed.scan.ids, ...writtenSummaryIds.get(sessionId) ?? []])]
637
664
  };
638
665
  }
666
+ function dropRawSessionOrdinalCheckpoints2(db, sessionId) {
667
+ discardRetainedOrdinalRanks(db, sessionId);
668
+ forgetRawSessionSummaryRows2(sessionId);
669
+ }
639
670
  function boundedOrdinalPrefix(db, sessionId, through) {
640
671
  const cached = currentOrdinalCheckpoints(db, sessionId);
641
672
  if (cached && through === null)
@@ -674,8 +705,7 @@ function boundedOrdinalPrefix(db, sessionId, through) {
674
705
  }
675
706
  function scanRawSessionSummaryRows2(db, sessionId, previous) {
676
707
  return withReadSnapshot(db, () => {
677
- if (previous?.checkpoints) {
678
- extendOrdinalCheckpoints(db, sessionId, previous);
708
+ if (previous?.checkpoints && extendOrdinalCheckpoints(db, sessionId, previous)) {
679
709
  return previous;
680
710
  }
681
711
  if (previous) {
@@ -707,12 +737,15 @@ function scanRawSessionSummaryRows2(db, sessionId, previous) {
707
737
  }
708
738
  anchors.sort((left, right) => right.rowid - left.rowid);
709
739
  anchors.length = Math.min(anchors.length, SUMMARY_ANCHOR_LIMIT);
710
- const keys = db.prepare(`SELECT id, time_created AS timeCreated, ${EXCLUDED_ROW_SQL} AS excluded FROM message WHERE session_id = ?
740
+ const keys = db.prepare(`SELECT id, time_created AS timeCreated, rowid AS rowid, ${EXCLUDED_ROW_SQL} AS excluded FROM message WHERE session_id = ?
711
741
  ORDER BY time_created, id`).all(sessionId);
712
742
  const checkpoints = [];
713
743
  let total = 0;
744
+ let maxRowid;
714
745
  for (let index = 0;index < keys.length; index++) {
715
746
  const key = keys[index];
747
+ if (typeof key.rowid === "number")
748
+ maxRowid = maxRowid === undefined ? key.rowid : Math.max(maxRowid, key.rowid);
716
749
  if (key.excluded !== 1)
717
750
  total++;
718
751
  if (index % 256 === 255 || index === keys.length - 1)
@@ -723,7 +756,7 @@ function scanRawSessionSummaryRows2(db, sessionId, previous) {
723
756
  storedCount: index + 1
724
757
  });
725
758
  }
726
- return { anchors, ids, sessionRows, checkpoints, total };
759
+ return { anchors, ids, sessionRows, checkpoints, total, maxRowid };
727
760
  });
728
761
  }
729
762
  function getRawSessionSummaryEpoch2(sessionId) {
@@ -1297,4 +1330,4 @@ function recordFailure(key, sessionId, failure, detail) {
1297
1330
  log2(`[magic-context] WARN canonical ordinal warm-up failed for ${sessionId} (${failure}: ${detail}); counts remain bounded and callers must defer or retry`);
1298
1331
  }
1299
1332
 
1300
- export { areRustHistorianSyntheticParts2, isStrictGapHealingMessage2, isRawCompactionSummaryInfo2, readRawSessionMessagesFromDb2, readRawSessionMessagePageFromDb2, readRawSessionMessageSummaryPageFromDb2, countRawSessionMessageOrdinalsFromDb2, readRawSessionMessageIdOrdinalsForRangeFromDb2, readRawSessionMessageIdsAtOrdinalsFromDb2, readRawSessionMessageOrdinalPageFromDb2, countStoredRawSessionMessagesFromDb2, readRawSessionTailFromDb2, extractInMemoryMessageViews2, buildInMemoryTailRawMessages2, readRawSessionMessagePartsByIdFromDb2, forgetRawSessionOrdinalWatermark2, forgetRawSessionSummaryRows2, noteRawSessionSummaryRowWritten2, RawOrdinalsNotReady2, rawOrdinalSummarySeed2, scanRawSessionSummaryRows2, getRawSessionSummaryEpoch2, installRawSessionSummaryScan2, isRawSessionSummaryWarm2, readRawSessionMessageOrdinalByIdFromDb2, readRawSessionMessageByIdFromDb2, hasRawSessionMessageByIdFromDb2, readRawSeedTailFromDb2, readRawSessionBoundaryEndpointsFromDb2, runSessionWarmupWorker, prewarmRawSessionOrdinalsForDb };
1333
+ export { areRustHistorianSyntheticParts2, isStrictGapHealingMessage2, isRawCompactionSummaryInfo2, readRawSessionMessagesFromDb2, readRawSessionMessagePageFromDb2, readRawSessionMessageSummaryPageFromDb2, countRawSessionMessageOrdinalsFromDb2, readRawSessionMessageIdOrdinalsForRangeFromDb2, readRawSessionMessageIdsAtOrdinalsFromDb2, readRawSessionMessageOrdinalPageFromDb2, countStoredRawSessionMessagesFromDb2, readRawSessionTailFromDb2, extractInMemoryMessageViews2, buildInMemoryTailRawMessages2, readRawSessionMessagePartsByIdFromDb2, forgetRawSessionOrdinalWatermark2, forgetRawSessionSummaryRows2, noteRawSessionSummaryRowWritten2, RawOrdinalsNotReady2, rawOrdinalSummarySeed2, dropRawSessionOrdinalCheckpoints2, scanRawSessionSummaryRows2, getRawSessionSummaryEpoch2, installRawSessionSummaryScan2, isRawSessionSummaryWarm2, readRawSessionMessageOrdinalByIdFromDb2, readRawSessionMessageByIdFromDb2, hasRawSessionMessageByIdFromDb2, readRawSeedTailFromDb2, readRawSessionBoundaryEndpointsFromDb2, runSessionWarmupWorker, prewarmRawSessionOrdinalsForDb };
@@ -50,7 +50,7 @@ import {
50
50
  countSessionCompartmentEmbedCoverage2,
51
51
  countSessionCompartmentEmbedCoveragePolite2,
52
52
  countUnembeddedSessionCompartmentsPolite2
53
- } from "./server-pw21ypwb.js";
53
+ } from "./server-7dpnt0ys.js";
54
54
  import {
55
55
  acquireGitSweepLease,
56
56
  renewGitSweepLease,
@@ -70,7 +70,7 @@ import {
70
70
  readRawSeedTailFromDb2,
71
71
  readRawSessionBoundaryEndpointsFromDb2,
72
72
  prewarmRawSessionOrdinalsForDb
73
- } from "./server-swvhxhxz.js";
73
+ } from "./server-erk2bvdf.js";
74
74
  import {
75
75
  openCodeDbExists,
76
76
  withReadOnlySessionDb,
@@ -6934,6 +6934,20 @@ function readRawSessionMessageOrdinalById2(sessionId, messageId) {
6934
6934
  return null;
6935
6935
  return withReadOnlySessionDb((db) => readRawSessionMessageOrdinalByIdFromDb2(db, sessionId, messageId));
6936
6936
  }
6937
+ function resolveHistorianChunkStart2(sessionId, newest) {
6938
+ if (!newest)
6939
+ return 1;
6940
+ const fallback = newest.endMessage + 1;
6941
+ if (hasRawMessageProvider2(sessionId))
6942
+ return fallback;
6943
+ const endId = newest.endMessageId;
6944
+ if (typeof endId !== "string" || endId.length === 0)
6945
+ return fallback;
6946
+ const ordinal = readRawSessionMessageOrdinalById2(sessionId, endId);
6947
+ if (typeof ordinal !== "number" || !Number.isFinite(ordinal) || ordinal < 1)
6948
+ return fallback;
6949
+ return ordinal + 1;
6950
+ }
6937
6951
  function readRawSessionMessageOrderPosition(sessionId, messageId) {
6938
6952
  const provider = sessionProviders.get(sessionId)?.provider;
6939
6953
  if (provider) {
@@ -7434,4 +7448,4 @@ function readRawSessionSeedTail2(sessionId, boundaryId, onQuery) {
7434
7448
  });
7435
7449
  }
7436
7450
 
7437
- export { expandToolPart, askAnswerLines, markHostUnservedRow, retreatPastHostUnservedRows, snapTerminalCompartmentToServedRow, isHostRenderedSystemMessage, markCoveredInstructionRow, isCoveredInstructionRow, takeCoveredInstructionRows, cloneKeepingCoveredInstructionMarks, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, stripSystemInjection, isTextPart, isToolPartWithOutput, isFilePart, toolPartHasUserAnswer, DreamTokenBudgetExceeded, TOKEN_BUDGET_FINALIZE_MESSAGE, registerBudgetFinalizeChild, releaseBudgetFinalizeChild, createDreamTokenBudget, TOOL_USE_DISABLED, needsBlockedRead, withBlockedReadInstruction, rememberV1HiddenRun, recordToolParameters, createDroppedInputGuard, assertExecutableToolInput, isEditTool, MERGED_REASONING_PARTS_PREFIX, decodeMergedReasoningParts, MAX_EXECUTE_THRESHOLD, escalationBands, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, readEpochFloorSnapshot, getProtectionWindowForSession, SESSION_META_SELECT_COLUMNS, META_COLUMNS, BOOLEAN_META_KEYS, NULL_BIND_META_KEYS, isSessionMetaRow, getDefaultSessionMeta, ensureSessionMetaRow, toSessionMeta, persistCachedM0, clearCachedM0M1, clearCachedM0, withReplayEnvelopeSnapshot, invalidateReplayEnvelopeSnapshot, isRustMarkerAdmissionFenced, setRustMarkerAdmissionFence, ReplayDocumentError, readReplayEnvelope, readReplayDocument, updateReplayDocument, writeReplayDocument, isEmergencyRecoveryArmed, isProviderOverflowReconfirmed, isProviderOverflowFailClosedProven, getEmergencyRecoveryArmedAt, describeProtectedTailDrainBudgetSkip, loadPersistedUsage, loadProtectedTailMeta, markProtectedTailPolicyV3Seeded, recordProtectedTailPublicationFloor, recordProtectedTailNoEligibleHead, resetProtectedTailNoEligibleHead, getWrapupInProgressState, isWrapupInProgress, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, getProtectedTailDrainBudgetSkip, reserveProtectedTailDrainTokens, clearEmergencyDrainLatch, recordHistorianDrainFailure, clearHistorianDrainFailure, rollbackProtectedTailDrainReservation, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, setPersistedNoteNudgeTrigger, setPersistedNoteNudgeTriggerMessageId, getNoteNudgeAnchors, getAutoSearchHintDecisions, deliverNoteNudgeAtomic, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, queueAutoSearchHintDecisionRetirement, flushAutoSearchHintDecisionRetirement, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, getNoteLastReadAt, setNoteLastReadAt, getHistorianFailureState, incrementHistorianFailure, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, parseStrippedPlaceholderState, serializeStrippedPlaceholderState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, THINKING_BINDING_STRIP_ORDER_END_MARKER, thinkingBindingRecoveryFrozenId, COMPACTION_OFF_THINKING_FROZEN_PREFIX, compactionOffThinkingFrozenId, compactionOffFrozenThinkingIds, getThinkingBindingRecoveryTarget, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, parseProcessedImageMarkers, serializeProcessedImageMarkers, getProcessedImageMarkers, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, replacePendingCompactionMarkerStateIf, clearPendingCompactionMarkerStateIf, getPendingPiCompactionMarkerState, clearPendingPiCompactionMarkerStateIf, logPiCompactionMarkerClear, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, getReasoningRemovalState, addRemovedReasoningIds, markDropLeavesReasoning, detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, modelAcceptsEmptyContent, isAnthropicFamilyRoute, neutralizeDroppedReasoningPart, restoreNeutralizedReasoningPart, isNeutralizedReasoningPart, variantChangeBustsProviderCache, makeSentinel, makeWholeMessageSentinel, isSentinel, replaySentinelByMessageIds, isInActiveAnthropicTurn, activeAnthropicTurnStart, hasAnthropicReasoning, markServedShapeRepair, prepareServedShapeRepair, stripSystemInjectedMessages, stripDroppedPlaceholderMessages, replayClearedReasoning, replayStrippedInlineThinking, clearOldReasoning, stripClearedReasoning, captureInlineThinkingRepairs, stripInlineThinking, findReasoningBearingAssistantIds, findLatestAssistantReasoningMutationExemptMessage, snapshotTrailingBlankSourceDecisions, findTrailingBlankDecisionCandidates, applyFrozenTrailingBlankDecisions, stripReasoningFromAssistantIds, findMergedReasoningStripDecisions, stripReasoningFromMergedAssistants, getEmptyImageParts, stripProcessedImages, projectOpencodeReasoningBudgetCutoff, DEFAULT_KEEP_REASONING_TOKENS, resolveKeepReasoningTokens, reasoningStepCost, reasoningBudgetCutoff, reasoningTextAndOpaque, opencodeReasoningBudgetCutoff, describeFinalWireTail, estimatePartImageTokens, estimateMessageTokens, wireContentBytes, createFinalWireUsageTracker, estimateFinalWireInputTokens, estimateAppendedWireTokens, SKELETON_REAL_INPUT_MAX_BYTES, partHasCompletedResult, extractToolCallObservation, ToolMutationBatch, createToolDropTarget, resolveHostServedBoundaryId2, hasRawMessageProvider2, setRawMessageProvider2, setBoundedRawMessageProvider2, withRawMessageProvider2, cleanUserText2, withRawSessionMessageCache2, readRawSessionMessages2, readRawSessionMessagePage2, getRawSessionMessageOrdinalCount2, RAW_MESSAGE_VISIT_PAGE_SIZE2, visitRawSessionMessages2, visitRawSessionMessagesAsync2, readRawSessionMessageRange2, prepareRawSessionOrdinals2, primeTailRawMessageCache2, getCachedAbsoluteMessageCount2, primeInMemoryTailRawMessageCache2, readRawSessionMessageOrdinalPage2, getRawSessionStoredMessageCount2, readRawSessionMessageIdOrdinalsForRange2, readRawSessionMessageIdOrdinals2, readRawSessionMessagePartsById2, readRawSessionBoundaryEndpoints2, hasRawSessionMessageById2, readRawSessionMessageOrdinalById2, compareRawSessionMessageOrder2, readRawSessionMessageById2, getRawSessionMessageCount2, RAW_SESSION_TAG_KEY_PAGE_SIZE2, getRawSessionTagKeysThrough2, getLegacyProtectedTailStartOrdinal2, getProtectedTailStartOrdinal2, readSessionChunk2, getRawSessionMessageIdsThrough2, readRawSessionSeedTail2 };
7451
+ export { expandToolPart, askAnswerLines, markHostUnservedRow, retreatPastHostUnservedRows, snapTerminalCompartmentToServedRow, isHostRenderedSystemMessage, markCoveredInstructionRow, isCoveredInstructionRow, takeCoveredInstructionRows, cloneKeepingCoveredInstructionMarks, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, stripSystemInjection, isTextPart, isToolPartWithOutput, isFilePart, toolPartHasUserAnswer, DreamTokenBudgetExceeded, TOKEN_BUDGET_FINALIZE_MESSAGE, registerBudgetFinalizeChild, releaseBudgetFinalizeChild, createDreamTokenBudget, TOOL_USE_DISABLED, needsBlockedRead, withBlockedReadInstruction, rememberV1HiddenRun, recordToolParameters, createDroppedInputGuard, assertExecutableToolInput, isEditTool, MERGED_REASONING_PARTS_PREFIX, decodeMergedReasoningParts, MAX_EXECUTE_THRESHOLD, escalationBands, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, readEpochFloorSnapshot, getProtectionWindowForSession, SESSION_META_SELECT_COLUMNS, META_COLUMNS, BOOLEAN_META_KEYS, NULL_BIND_META_KEYS, isSessionMetaRow, getDefaultSessionMeta, ensureSessionMetaRow, toSessionMeta, persistCachedM0, clearCachedM0M1, clearCachedM0, withReplayEnvelopeSnapshot, invalidateReplayEnvelopeSnapshot, isRustMarkerAdmissionFenced, setRustMarkerAdmissionFence, ReplayDocumentError, readReplayEnvelope, readReplayDocument, updateReplayDocument, writeReplayDocument, isEmergencyRecoveryArmed, isProviderOverflowReconfirmed, isProviderOverflowFailClosedProven, getEmergencyRecoveryArmedAt, describeProtectedTailDrainBudgetSkip, loadPersistedUsage, loadProtectedTailMeta, markProtectedTailPolicyV3Seeded, recordProtectedTailPublicationFloor, recordProtectedTailNoEligibleHead, resetProtectedTailNoEligibleHead, getWrapupInProgressState, isWrapupInProgress, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, getProtectedTailDrainBudgetSkip, reserveProtectedTailDrainTokens, clearEmergencyDrainLatch, recordHistorianDrainFailure, clearHistorianDrainFailure, rollbackProtectedTailDrainReservation, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, setPersistedNoteNudgeTrigger, setPersistedNoteNudgeTriggerMessageId, getNoteNudgeAnchors, getAutoSearchHintDecisions, deliverNoteNudgeAtomic, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, queueAutoSearchHintDecisionRetirement, flushAutoSearchHintDecisionRetirement, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, getNoteLastReadAt, setNoteLastReadAt, getHistorianFailureState, incrementHistorianFailure, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, parseStrippedPlaceholderState, serializeStrippedPlaceholderState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, THINKING_BINDING_STRIP_ORDER_END_MARKER, thinkingBindingRecoveryFrozenId, COMPACTION_OFF_THINKING_FROZEN_PREFIX, compactionOffThinkingFrozenId, compactionOffFrozenThinkingIds, getThinkingBindingRecoveryTarget, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, parseProcessedImageMarkers, serializeProcessedImageMarkers, getProcessedImageMarkers, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, replacePendingCompactionMarkerStateIf, clearPendingCompactionMarkerStateIf, getPendingPiCompactionMarkerState, clearPendingPiCompactionMarkerStateIf, logPiCompactionMarkerClear, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, getReasoningRemovalState, addRemovedReasoningIds, markDropLeavesReasoning, detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, modelAcceptsEmptyContent, isAnthropicFamilyRoute, neutralizeDroppedReasoningPart, restoreNeutralizedReasoningPart, isNeutralizedReasoningPart, variantChangeBustsProviderCache, makeSentinel, makeWholeMessageSentinel, isSentinel, replaySentinelByMessageIds, isInActiveAnthropicTurn, activeAnthropicTurnStart, hasAnthropicReasoning, markServedShapeRepair, prepareServedShapeRepair, stripSystemInjectedMessages, stripDroppedPlaceholderMessages, replayClearedReasoning, replayStrippedInlineThinking, clearOldReasoning, stripClearedReasoning, captureInlineThinkingRepairs, stripInlineThinking, findReasoningBearingAssistantIds, findLatestAssistantReasoningMutationExemptMessage, snapshotTrailingBlankSourceDecisions, findTrailingBlankDecisionCandidates, applyFrozenTrailingBlankDecisions, stripReasoningFromAssistantIds, findMergedReasoningStripDecisions, stripReasoningFromMergedAssistants, getEmptyImageParts, stripProcessedImages, projectOpencodeReasoningBudgetCutoff, DEFAULT_KEEP_REASONING_TOKENS, resolveKeepReasoningTokens, reasoningStepCost, reasoningBudgetCutoff, reasoningTextAndOpaque, opencodeReasoningBudgetCutoff, describeFinalWireTail, estimatePartImageTokens, estimateMessageTokens, wireContentBytes, createFinalWireUsageTracker, estimateFinalWireInputTokens, estimateAppendedWireTokens, SKELETON_REAL_INPUT_MAX_BYTES, partHasCompletedResult, extractToolCallObservation, ToolMutationBatch, createToolDropTarget, resolveHostServedBoundaryId2, hasRawMessageProvider2, setRawMessageProvider2, setBoundedRawMessageProvider2, withRawMessageProvider2, cleanUserText2, withRawSessionMessageCache2, readRawSessionMessages2, readRawSessionMessagePage2, getRawSessionMessageOrdinalCount2, RAW_MESSAGE_VISIT_PAGE_SIZE2, visitRawSessionMessages2, visitRawSessionMessagesAsync2, readRawSessionMessageRange2, prepareRawSessionOrdinals2, primeTailRawMessageCache2, getCachedAbsoluteMessageCount2, primeInMemoryTailRawMessageCache2, readRawSessionMessageOrdinalPage2, getRawSessionStoredMessageCount2, readRawSessionMessageIdOrdinalsForRange2, readRawSessionMessageIdOrdinals2, readRawSessionMessagePartsById2, readRawSessionBoundaryEndpoints2, hasRawSessionMessageById2, readRawSessionMessageOrdinalById2, resolveHistorianChunkStart2, compareRawSessionMessageOrder2, readRawSessionMessageById2, getRawSessionMessageCount2, RAW_SESSION_TAG_KEY_PAGE_SIZE2, getRawSessionTagKeysThrough2, getLegacyProtectedTailStartOrdinal2, getProtectedTailStartOrdinal2, readSessionChunk2, getRawSessionMessageIdsThrough2, readRawSessionSeedTail2 };
@@ -35,7 +35,7 @@ import {
35
35
  } from "./server-rqebawx1.js";
36
36
  import {
37
37
  cleanUserText2
38
- } from "./server-5brp2rfn.js";
38
+ } from "./server-jcsw05aa.js";
39
39
  import {
40
40
  BoundedSessionMap
41
41
  } from "./server-7d6m1p2b.js";
@@ -45,10 +45,10 @@ import {
45
45
  messageFtsOrdinalRangeIsMapped2,
46
46
  getMessageFtsRowidMapBackfillProgress2,
47
47
  deleteUnmappedMessageFtsRows2
48
- } from "./server-wxrdher8.js";
48
+ } from "./server-4frtg2z1.js";
49
49
  import {
50
50
  deleteChunkEmbedBackoffForSession2
51
- } from "./server-pw21ypwb.js";
51
+ } from "./server-7dpnt0ys.js";
52
52
  import {
53
53
  sameProjectDirectory
54
54
  } from "./server-knvkbfvh.js";
@@ -17,7 +17,7 @@ import {
17
17
  } from "./server-wwaw5npa.js";
18
18
  import {
19
19
  embedTextForProject2
20
- } from "./server-q5z0gag0.js";
20
+ } from "./server-hnmm8yzq.js";
21
21
  import {
22
22
  saveEmbeddingIfHashMatches
23
23
  } from "./server-4dhv7mqz.js";
@@ -22,7 +22,7 @@ import {
22
22
  loadCompartmentChunkEmbeddingsForSearch2,
23
23
  peekCompartmentChunkSearchPool2,
24
24
  warmCompartmentChunkSearchPool2
25
- } from "./server-pw21ypwb.js";
25
+ } from "./server-7dpnt0ys.js";
26
26
  import {
27
27
  recordEmbeddingMeasurement,
28
28
  saveCommitEmbedding,
@@ -39,7 +39,7 @@ import {
39
39
  enqueueShadowEmbeddingItems2,
40
40
  getProjectEmbeddingSnapshot2,
41
41
  embedItemsForProject2
42
- } from "./server-q5z0gag0.js";
42
+ } from "./server-hnmm8yzq.js";
43
43
  import {
44
44
  getProjectEmbeddings2
45
45
  } from "./server-4dhv7mqz.js";
@@ -48,7 +48,7 @@ import {
48
48
  isEmbeddingEnabled,
49
49
  embedText,
50
50
  ensureMemoryEmbeddings2
51
- } from "./server-8j2e7t31.js";
51
+ } from "./server-wj8h2q21.js";
52
52
  import {
53
53
  ModuleMemoryAuthorityError2,
54
54
  getMemoriesByProject2,
@@ -63,13 +63,13 @@ import {
63
63
  sanitizeFtsQuery,
64
64
  searchMemoriesFTS,
65
65
  searchMemoriesFTSUnion
66
- } from "./server-9xbbaekh.js";
66
+ } from "./server-nmwhe524.js";
67
67
  import {
68
68
  cleanSearchText,
69
69
  keywordRelevance,
70
70
  matchedSearchSnippet,
71
71
  getIndexedMessageCorpusSize2
72
- } from "./server-6a8pxpxg.js";
72
+ } from "./server-k46ec388.js";
73
73
  import {
74
74
  MESSAGE_FTS_SESSION_FILTER_SQL,
75
75
  withMessageFtsSessionFilter
@@ -6,7 +6,7 @@ import {
6
6
  } from "./server-gzy5w8ya.js";
7
7
  import {
8
8
  runSessionWarmupWorker
9
- } from "./server-swvhxhxz.js";
9
+ } from "./server-erk2bvdf.js";
10
10
  import {
11
11
  estimateTokens
12
12
  } from "./server-3mz2qh5a.js";
@@ -17,7 +17,7 @@ import {
17
17
  import {
18
18
  hasRawMessageProvider2,
19
19
  readRawSessionMessageIdOrdinalsForRange2
20
- } from "./server-5brp2rfn.js";
20
+ } from "./server-jcsw05aa.js";
21
21
 
22
22
  // src/tools/ctx-expand/search-archive.ts
23
23
  var archiveReadsOnThisThread = 0;
@@ -15,7 +15,7 @@ import {
15
15
  OpenAICompatibleEmbeddingProvider,
16
16
  getProjectEmbeddingSnapshot2,
17
17
  embedBatchForProject2
18
- } from "./server-q5z0gag0.js";
18
+ } from "./server-hnmm8yzq.js";
19
19
  import {
20
20
  isEmbeddingHostBusy2
21
21
  } from "./server-qt1qqasc.js";
package/dist/v2/server.js CHANGED
@@ -7874,7 +7874,7 @@ var require_src2 = __commonJS(function(exports, module) {
7874
7874
  // package.json
7875
7875
  var package_default = {
7876
7876
  name: "@cortexkit/opencode-magic-context",
7877
- version: "0.49.25",
7877
+ version: "0.49.26",
7878
7878
  type: "module",
7879
7879
  description: "OpenCode plugin for Magic Context — cross-session memory and context management",
7880
7880
  main: "dist/index.js",
@@ -8195,7 +8195,7 @@ async function setup(context) {
8195
8195
  if (claimStorageBackupWarningCheck() && isMagicContextStorageOutsideEngram(storageDir)) {
8196
8196
  log2(`[magic-context] Magic Context storage is at ${storageDir}, outside the folder Engram backs up (~/.local/share/cortexkit/magic-context). It is not included in CortexKit backups.`);
8197
8197
  }
8198
- const { registerContext } = await import("./context-y7wfvdve.js");
8198
+ const { registerContext } = await import("./context-10pj3bwd.js");
8199
8199
  setHarness2("opencode2");
8200
8200
  bindStaleBuildNotice({}, import.meta.url, "opencode2");
8201
8201
  const duties = await registerContext(context);