@superblocksteam/vite-plugin-file-sync 2.0.151 → 2.0.152-next.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 (224) hide show
  1. package/dist/ai-service/agent/middleware.d.ts.map +1 -1
  2. package/dist/ai-service/agent/middleware.js +10 -1
  3. package/dist/ai-service/agent/middleware.js.map +1 -1
  4. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
  5. package/dist/ai-service/agent/prompts/build-base-system-prompt.js +25 -6
  6. package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
  7. package/dist/ai-service/agent/prompts/build-security-scan-prompt.d.ts.map +1 -1
  8. package/dist/ai-service/agent/prompts/build-security-scan-prompt.js +7 -2
  9. package/dist/ai-service/agent/prompts/build-security-scan-prompt.js.map +1 -1
  10. package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.d.ts +47 -1
  11. package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.d.ts.map +1 -1
  12. package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.js +129 -15
  13. package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.js.map +1 -1
  14. package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
  15. package/dist/ai-service/agent/tools/apis/test-api.js +1 -24
  16. package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
  17. package/dist/ai-service/agent/tools/databases/dev-database-tasks.d.ts +53 -9
  18. package/dist/ai-service/agent/tools/databases/dev-database-tasks.d.ts.map +1 -1
  19. package/dist/ai-service/agent/tools/databases/dev-database-tasks.js +304 -67
  20. package/dist/ai-service/agent/tools/databases/dev-database-tasks.js.map +1 -1
  21. package/dist/ai-service/agent/tools/databases/dev-database-tools.d.ts +47 -1
  22. package/dist/ai-service/agent/tools/databases/dev-database-tools.d.ts.map +1 -1
  23. package/dist/ai-service/agent/tools/databases/dev-database-tools.js +38 -1
  24. package/dist/ai-service/agent/tools/databases/dev-database-tools.js.map +1 -1
  25. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts +391 -0
  26. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts.map +1 -1
  27. package/dist/ai-service/agent/tools/integrations/execute-request.js +257 -44
  28. package/dist/ai-service/agent/tools/integrations/execute-request.js.map +1 -1
  29. package/dist/ai-service/agent/tools/integrations/index.d.ts +1 -1
  30. package/dist/ai-service/agent/tools/integrations/index.d.ts.map +1 -1
  31. package/dist/ai-service/agent/tools/integrations/index.js +1 -1
  32. package/dist/ai-service/agent/tools/integrations/index.js.map +1 -1
  33. package/dist/ai-service/agent/tools/integrations/managed-app-database.d.ts +16 -0
  34. package/dist/ai-service/agent/tools/integrations/managed-app-database.d.ts.map +1 -0
  35. package/dist/ai-service/agent/tools/integrations/managed-app-database.js +31 -0
  36. package/dist/ai-service/agent/tools/integrations/managed-app-database.js.map +1 -0
  37. package/dist/ai-service/agent/tools/integrations/sql-classification.d.ts +44 -0
  38. package/dist/ai-service/agent/tools/integrations/sql-classification.d.ts.map +1 -0
  39. package/dist/ai-service/agent/tools/integrations/sql-classification.js +352 -0
  40. package/dist/ai-service/agent/tools/integrations/sql-classification.js.map +1 -0
  41. package/dist/ai-service/agent/tools/report-security-findings.d.ts +5 -5
  42. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  43. package/dist/ai-service/agent/tools.js +5 -1
  44. package/dist/ai-service/agent/tools.js.map +1 -1
  45. package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
  46. package/dist/ai-service/agent/tools2/registry.js +2 -0
  47. package/dist/ai-service/agent/tools2/registry.js.map +1 -1
  48. package/dist/ai-service/agent/tools2/tools/check-task.d.ts.map +1 -1
  49. package/dist/ai-service/agent/tools2/tools/check-task.js +4 -1
  50. package/dist/ai-service/agent/tools2/tools/check-task.js.map +1 -1
  51. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -1
  52. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +12 -1
  53. package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
  54. package/dist/ai-service/agent/tools2/tools/wait-for-task.d.ts.map +1 -1
  55. package/dist/ai-service/agent/tools2/tools/wait-for-task.js +5 -1
  56. package/dist/ai-service/agent/tools2/tools/wait-for-task.js.map +1 -1
  57. package/dist/ai-service/chat/chat-session-store.d.ts +10 -1
  58. package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
  59. package/dist/ai-service/chat/chat-session-store.js +65 -15
  60. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  61. package/dist/ai-service/context-archive-paths.d.ts +7 -0
  62. package/dist/ai-service/context-archive-paths.d.ts.map +1 -1
  63. package/dist/ai-service/context-archive-paths.js +7 -0
  64. package/dist/ai-service/context-archive-paths.js.map +1 -1
  65. package/dist/ai-service/context-download.d.ts.map +1 -1
  66. package/dist/ai-service/context-download.js +8 -10
  67. package/dist/ai-service/context-download.js.map +1 -1
  68. package/dist/ai-service/context-flush.d.ts +36 -0
  69. package/dist/ai-service/context-flush.d.ts.map +1 -0
  70. package/dist/ai-service/context-flush.js +90 -0
  71. package/dist/ai-service/context-flush.js.map +1 -0
  72. package/dist/ai-service/context-restore.d.ts +64 -0
  73. package/dist/ai-service/context-restore.d.ts.map +1 -0
  74. package/dist/ai-service/context-restore.js +136 -0
  75. package/dist/ai-service/context-restore.js.map +1 -0
  76. package/dist/ai-service/context-upload.d.ts +13 -4
  77. package/dist/ai-service/context-upload.d.ts.map +1 -1
  78. package/dist/ai-service/context-upload.js +28 -18
  79. package/dist/ai-service/context-upload.js.map +1 -1
  80. package/dist/ai-service/dev-database-client.d.ts +51 -0
  81. package/dist/ai-service/dev-database-client.d.ts.map +1 -1
  82. package/dist/ai-service/dev-database-client.js +3 -0
  83. package/dist/ai-service/dev-database-client.js.map +1 -1
  84. package/dist/ai-service/index.d.ts +19 -0
  85. package/dist/ai-service/index.d.ts.map +1 -1
  86. package/dist/ai-service/index.js +449 -182
  87. package/dist/ai-service/index.js.map +1 -1
  88. package/dist/ai-service/llm/context-v2/adapter.d.ts.map +1 -1
  89. package/dist/ai-service/llm/context-v2/adapter.js +1 -0
  90. package/dist/ai-service/llm/context-v2/adapter.js.map +1 -1
  91. package/dist/ai-service/llm/context-v2/compaction/client-side.d.ts +30 -0
  92. package/dist/ai-service/llm/context-v2/compaction/client-side.d.ts.map +1 -1
  93. package/dist/ai-service/llm/context-v2/compaction/client-side.js +77 -4
  94. package/dist/ai-service/llm/context-v2/compaction/client-side.js.map +1 -1
  95. package/dist/ai-service/llm/context-v2/compaction/compaction-strategy.d.ts +5 -0
  96. package/dist/ai-service/llm/context-v2/compaction/compaction-strategy.d.ts.map +1 -1
  97. package/dist/ai-service/llm/context-v2/compaction/server-side.d.ts +1 -0
  98. package/dist/ai-service/llm/context-v2/compaction/server-side.d.ts.map +1 -1
  99. package/dist/ai-service/llm/context-v2/compaction/server-side.js +3 -0
  100. package/dist/ai-service/llm/context-v2/compaction/server-side.js.map +1 -1
  101. package/dist/ai-service/llm/context-v2/compactor.d.ts.map +1 -1
  102. package/dist/ai-service/llm/context-v2/compactor.js +57 -6
  103. package/dist/ai-service/llm/context-v2/compactor.js.map +1 -1
  104. package/dist/ai-service/llm/context-v2/config.d.ts +13 -1
  105. package/dist/ai-service/llm/context-v2/config.d.ts.map +1 -1
  106. package/dist/ai-service/llm/context-v2/config.js +39 -2
  107. package/dist/ai-service/llm/context-v2/config.js.map +1 -1
  108. package/dist/ai-service/llm/context-v2/context-metrics.d.ts +23 -0
  109. package/dist/ai-service/llm/context-v2/context-metrics.d.ts.map +1 -1
  110. package/dist/ai-service/llm/context-v2/context-metrics.js +52 -1
  111. package/dist/ai-service/llm/context-v2/context-metrics.js.map +1 -1
  112. package/dist/ai-service/llm/context-v2/context.d.ts +27 -3
  113. package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
  114. package/dist/ai-service/llm/context-v2/context.js +107 -10
  115. package/dist/ai-service/llm/context-v2/context.js.map +1 -1
  116. package/dist/ai-service/llm/context-v2/manager.d.ts +66 -0
  117. package/dist/ai-service/llm/context-v2/manager.d.ts.map +1 -1
  118. package/dist/ai-service/llm/context-v2/manager.js +194 -2
  119. package/dist/ai-service/llm/context-v2/manager.js.map +1 -1
  120. package/dist/ai-service/llm/context-v2/storage/event-store.d.ts +31 -5
  121. package/dist/ai-service/llm/context-v2/storage/event-store.d.ts.map +1 -1
  122. package/dist/ai-service/llm/context-v2/storage/jsonl-event-store.d.ts +30 -9
  123. package/dist/ai-service/llm/context-v2/storage/jsonl-event-store.d.ts.map +1 -1
  124. package/dist/ai-service/llm/context-v2/storage/jsonl-event-store.js +96 -13
  125. package/dist/ai-service/llm/context-v2/storage/jsonl-event-store.js.map +1 -1
  126. package/dist/ai-service/llm/context-v2/storage/legacy-context-adoption.d.ts +46 -0
  127. package/dist/ai-service/llm/context-v2/storage/legacy-context-adoption.d.ts.map +1 -0
  128. package/dist/ai-service/llm/context-v2/storage/legacy-context-adoption.js +240 -0
  129. package/dist/ai-service/llm/context-v2/storage/legacy-context-adoption.js.map +1 -0
  130. package/dist/ai-service/llm/context-v2/storage/local.d.ts +1 -1
  131. package/dist/ai-service/llm/context-v2/storage/local.d.ts.map +1 -1
  132. package/dist/ai-service/llm/context-v2/storage/local.js +3 -2
  133. package/dist/ai-service/llm/context-v2/storage/local.js.map +1 -1
  134. package/dist/ai-service/llm/context-v2/types.d.ts +5 -1
  135. package/dist/ai-service/llm/context-v2/types.d.ts.map +1 -1
  136. package/dist/ai-service/llm/context-v2/types.js.map +1 -1
  137. package/dist/ai-service/llm/stream/config.d.ts +4 -3
  138. package/dist/ai-service/llm/stream/config.d.ts.map +1 -1
  139. package/dist/ai-service/llm/stream/config.js.map +1 -1
  140. package/dist/ai-service/llm/stream/idle-monitor.d.ts +37 -4
  141. package/dist/ai-service/llm/stream/idle-monitor.d.ts.map +1 -1
  142. package/dist/ai-service/llm/stream/idle-monitor.js +38 -3
  143. package/dist/ai-service/llm/stream/idle-monitor.js.map +1 -1
  144. package/dist/ai-service/policy-agent-metrics.d.ts +18 -0
  145. package/dist/ai-service/policy-agent-metrics.d.ts.map +1 -0
  146. package/dist/ai-service/policy-agent-metrics.js +99 -0
  147. package/dist/ai-service/policy-agent-metrics.js.map +1 -0
  148. package/dist/ai-service/state-machine/clark-fsm.d.ts +9 -0
  149. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  150. package/dist/ai-service/state-machine/helpers/prompt-request-metrics.d.ts +9 -0
  151. package/dist/ai-service/state-machine/helpers/prompt-request-metrics.d.ts.map +1 -1
  152. package/dist/ai-service/state-machine/helpers/prompt-request-metrics.js +27 -0
  153. package/dist/ai-service/state-machine/helpers/prompt-request-metrics.js.map +1 -1
  154. package/dist/ai-service/tasks/factory.d.ts +7 -0
  155. package/dist/ai-service/tasks/factory.d.ts.map +1 -1
  156. package/dist/ai-service/tasks/factory.js +5 -0
  157. package/dist/ai-service/tasks/factory.js.map +1 -1
  158. package/dist/ai-service/tasks/task-store.d.ts +11 -1
  159. package/dist/ai-service/tasks/task-store.d.ts.map +1 -1
  160. package/dist/ai-service/tasks/task-store.js +104 -29
  161. package/dist/ai-service/tasks/task-store.js.map +1 -1
  162. package/dist/ai-service/tasks/types.d.ts +9 -1
  163. package/dist/ai-service/tasks/types.d.ts.map +1 -1
  164. package/dist/extract-api-integrations.d.ts +76 -0
  165. package/dist/extract-api-integrations.d.ts.map +1 -1
  166. package/dist/extract-api-integrations.js +428 -109
  167. package/dist/extract-api-integrations.js.map +1 -1
  168. package/dist/file-sync-vite-plugin.d.ts +1 -1
  169. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  170. package/dist/file-sync-vite-plugin.js +42 -79
  171. package/dist/file-sync-vite-plugin.js.map +1 -1
  172. package/dist/file-system-helpers.d.ts +1 -1
  173. package/dist/file-system-helpers.d.ts.map +1 -1
  174. package/dist/file-system-helpers.js +1 -0
  175. package/dist/file-system-helpers.js.map +1 -1
  176. package/dist/git-auth-state.d.ts +4 -0
  177. package/dist/git-auth-state.d.ts.map +1 -0
  178. package/dist/git-auth-state.js +25 -0
  179. package/dist/git-auth-state.js.map +1 -0
  180. package/dist/git-service/checkpoint-commit-metrics.d.ts +2 -0
  181. package/dist/git-service/checkpoint-commit-metrics.d.ts.map +1 -0
  182. package/dist/git-service/checkpoint-commit-metrics.js +15 -0
  183. package/dist/git-service/checkpoint-commit-metrics.js.map +1 -0
  184. package/dist/git-service/checkpoint-committer.d.ts +22 -0
  185. package/dist/git-service/checkpoint-committer.d.ts.map +1 -0
  186. package/dist/git-service/checkpoint-committer.js +91 -0
  187. package/dist/git-service/checkpoint-committer.js.map +1 -0
  188. package/dist/git-service/commit-live-branch.d.ts +17 -0
  189. package/dist/git-service/commit-live-branch.d.ts.map +1 -0
  190. package/dist/git-service/commit-live-branch.js +28 -0
  191. package/dist/git-service/commit-live-branch.js.map +1 -0
  192. package/dist/git-service/provider-workflow-files.d.ts +12 -0
  193. package/dist/git-service/provider-workflow-files.d.ts.map +1 -0
  194. package/dist/git-service/provider-workflow-files.js +36 -0
  195. package/dist/git-service/provider-workflow-files.js.map +1 -0
  196. package/dist/plugin-options.d.ts +8 -0
  197. package/dist/plugin-options.d.ts.map +1 -1
  198. package/dist/plugin-options.js.map +1 -1
  199. package/dist/policy-gate-runner.d.ts.map +1 -1
  200. package/dist/policy-gate-runner.js +7 -9
  201. package/dist/policy-gate-runner.js.map +1 -1
  202. package/dist/server-rpc/client.d.ts.map +1 -1
  203. package/dist/server-rpc/client.js +2 -0
  204. package/dist/server-rpc/client.js.map +1 -1
  205. package/dist/server-rpc/index.d.ts +43 -1
  206. package/dist/server-rpc/index.d.ts.map +1 -1
  207. package/dist/server-rpc/index.js +143 -5
  208. package/dist/server-rpc/index.js.map +1 -1
  209. package/dist/server-rpc/request-abort-context.d.ts +3 -0
  210. package/dist/server-rpc/request-abort-context.d.ts.map +1 -0
  211. package/dist/server-rpc/request-abort-context.js +23 -0
  212. package/dist/server-rpc/request-abort-context.js.map +1 -0
  213. package/dist/server-rpc/rpc-invalidate-metrics.d.ts +20 -0
  214. package/dist/server-rpc/rpc-invalidate-metrics.d.ts.map +1 -0
  215. package/dist/server-rpc/rpc-invalidate-metrics.js +86 -0
  216. package/dist/server-rpc/rpc-invalidate-metrics.js.map +1 -0
  217. package/dist/socket-manager.d.ts.map +1 -1
  218. package/dist/socket-manager.js +21 -60
  219. package/dist/socket-manager.js.map +1 -1
  220. package/dist/sync-service/index.d.ts +26 -2
  221. package/dist/sync-service/index.d.ts.map +1 -1
  222. package/dist/sync-service/index.js +74 -37
  223. package/dist/sync-service/index.js.map +1 -1
  224. package/package.json +9 -8
@@ -22,12 +22,14 @@
22
22
  * - `superblocks.clark.context.documents` gauge {mode}
23
23
  * - `superblocks.clark.context.documents_added_total` counter {mode}
24
24
  * - `superblocks.clark.context.documents_dropped_total` counter {mode}
25
+ * - `superblocks.clark.context.compaction_skipped_total` counter {reason}
25
26
  * - `superblocks.clark.context.server_compactions` counter {status}
26
27
  * - `superblocks.clark.context.server_compaction.*` histograms {status}
27
28
  * - `superblocks.clark.context.server_clear_tool_uses` counter
28
29
  * - `superblocks.clark.context.server_clear_tool_uses.*` histograms
29
30
  * - `superblocks.clark.context.restore_empty_created_total` counter
30
31
  * - `superblocks.clark.context.attachment_persist_total` counter {status}
32
+ * - `superblocks.clark.context.checkpoint_restore_outcomes_total` counter {outcome}
31
33
  *
32
34
  * Base cardinality budget (documented contract — growing an enum must be a
33
35
  * deliberate, reviewed change; the regression test pins these counts):
@@ -35,11 +37,13 @@
35
37
  * - source ≤ 5, trigger ≤ 6, load outcome ≤ 5, operation ≤ 2,
36
38
  * mode ≤ 2 across 3 document instruments → 44 baseline/document/outcome
37
39
  * series.
40
+ * - compaction_skipped reason ≤ 2 across 1 counter → 2 series.
38
41
  * - server_compaction status ≤ 3, path ≤ 2 across 1 counter + 7 histograms → 48 series.
39
42
  * - server_clear_tool_uses has no labels across 1 counter + 2 histograms → 3 series.
40
43
  * - restore_empty_created_total has no labels → 1 series.
41
44
  * - attachment_persist_total status ≤ 2 → 2 series.
42
- * - Combined base: 74 worst-case series. Keep org/app identity in logs or
45
+ * - checkpoint_restore_outcomes_total outcome 5 → 5 series.
46
+ * - Combined base: 103 worst-case series. Keep org/app identity in logs or
43
47
  * traces, not metric labels.
44
48
  */
45
49
  import { metrics, } from "@opentelemetry/api";
@@ -71,6 +75,8 @@ export const CONTEXT_LOAD_OUTCOMES = [
71
75
  export const CONTEXT_FILE_OPERATIONS = ["load", "persist"];
72
76
  export const CONTEXT_DOCUMENT_MODES = ["inline", "reference"];
73
77
  export const COMPACTION_PATHS = ["client", "server"];
78
+ /** Why a client-side compaction was skipped instead of running. */
79
+ export const COMPACTION_SKIP_REASONS = ["rearm_latch"];
74
80
  export const SERVER_COMPACTION_STATUSES = [
75
81
  "cancelled",
76
82
  "completed",
@@ -78,12 +84,34 @@ export const SERVER_COMPACTION_STATUSES = [
78
84
  ];
79
85
  /** Outcome of persisting a prompt's uploaded attachments into the context. */
80
86
  export const ATTACHMENT_PERSIST_STATUSES = ["failure", "success"];
87
+ /**
88
+ * Final outcome of a checkpoint restore (version rollback). Low-cardinality so
89
+ * the rare failure branches are countable/alertable instead of only appearing
90
+ * as log lines:
91
+ * - `restored`: context rolled back and the server chat truncated to match.
92
+ * - `chat_truncate_failed`: context rolled back but the server chat truncation
93
+ * failed after retries — context and chat diverge (needs attention).
94
+ * - `aborted`: the event-log truncation threw; the rollback was not confirmed
95
+ * (warm path: nothing was mutated; cold path: the archive was installed but
96
+ * could not be truncated).
97
+ * - `unhealed`: the snapshot could not be made consistent, so the rollback was
98
+ * not applied and the chat was preserved.
99
+ * - `no_checkpoint`: the cold (remote) restore found no checkpoint to install.
100
+ */
101
+ export const CHECKPOINT_RESTORE_OUTCOMES = [
102
+ "aborted",
103
+ "chat_truncate_failed",
104
+ "no_checkpoint",
105
+ "restored",
106
+ "unhealed",
107
+ ];
81
108
  const METER_NAME = "superblocks.clark.context";
82
109
  const METRIC_LOAD_DURATION = "superblocks.clark.context.load_duration_seconds";
83
110
  const METRIC_PERSIST_DURATION = "superblocks.clark.context.persist_duration_seconds";
84
111
  const METRIC_LOAD_OUTCOMES = "superblocks.clark.context.load_outcomes_total";
85
112
  const METRIC_FILE_BYTES = "superblocks.clark.context.file_bytes";
86
113
  const METRIC_RESTORE_EMPTY_CREATED = "superblocks.clark.context.restore_empty_created_total";
114
+ const METRIC_CHECKPOINT_RESTORE = "superblocks.clark.context.checkpoint_restore_outcomes_total";
87
115
  const METRIC_ATTACHMENT_PERSIST = "superblocks.clark.context.attachment_persist_total";
88
116
  // APPS-4891 intentionally replaced the old {state} document metric shape.
89
117
  // Consumers should query documents{mode} for current counts and
@@ -91,6 +119,7 @@ const METRIC_ATTACHMENT_PERSIST = "superblocks.clark.context.attachment_persist_
91
119
  const METRIC_DOCUMENTS = "superblocks.clark.context.documents";
92
120
  const METRIC_DOCUMENTS_ADDED = "superblocks.clark.context.documents_added_total";
93
121
  const METRIC_DOCUMENTS_DROPPED = "superblocks.clark.context.documents_dropped_total";
122
+ const METRIC_COMPACTION_SKIPPED = "superblocks.clark.context.compaction_skipped_total";
94
123
  const METRIC_SERVER_COMPACTIONS = "superblocks.clark.context.server_compactions";
95
124
  const METRIC_SERVER_COMPACTION_DURATION = "superblocks.clark.context.server_compaction.duration_seconds";
96
125
  const METRIC_SERVER_COMPACTION_MESSAGES_BEFORE = "superblocks.clark.context.server_compaction.messages_before";
@@ -175,6 +204,10 @@ class ClarkContextMetrics {
175
204
  description: "Count of prompt-attachment persistence outcomes when a turn carries uploaded attachments.",
176
205
  unit: "{persist}",
177
206
  }),
207
+ compactionSkippedCounter: meter.createCounter(METRIC_COMPACTION_SKIPPED, {
208
+ description: "Count of client-side compactions skipped instead of run, by reason (e.g. the re-arm latch suppressing a redundant same-turn re-fire).",
209
+ unit: "{compaction}",
210
+ }),
178
211
  documentCountGauge,
179
212
  documentsAddedCounter: meter.createCounter(METRIC_DOCUMENTS_ADDED, {
180
213
  description: "Direct documents added to provider-bound Clark context before provider-cap enforcement.",
@@ -207,6 +240,10 @@ class ClarkContextMetrics {
207
240
  description: "Count of remote context restore attempts that still created a new empty Clark context.",
208
241
  unit: "{restore}",
209
242
  }),
243
+ checkpointRestoreCounter: meter.createCounter(METRIC_CHECKPOINT_RESTORE, {
244
+ description: "Count of Clark checkpoint restores (version rollbacks) by final low-cardinality outcome.",
245
+ unit: "{restore}",
246
+ }),
210
247
  serverCompactionCounter: meter.createCounter(METRIC_SERVER_COMPACTIONS, {
211
248
  description: "Count of Anthropic server-side context compaction lifecycle outcomes.",
212
249
  unit: "{compaction}",
@@ -307,6 +344,9 @@ class ClarkContextMetrics {
307
344
  recordRestoreEmptyCreated() {
308
345
  this.getInstruments().restoreEmptyCreatedCounter.add(1);
309
346
  }
347
+ recordCheckpointRestore(outcome) {
348
+ this.getInstruments().checkpointRestoreCounter.add(1, { outcome });
349
+ }
310
350
  recordFileBytes(input) {
311
351
  this.getInstruments().fileBytesHistogram.record(Math.max(0, input.bytes), {
312
352
  operation: input.operation,
@@ -359,6 +399,11 @@ class ClarkContextMetrics {
359
399
  instruments.serverCompactionInputTokensRemovedHistogram.record(clampCount(input.inputTokensBefore - input.inputTokensAfter), attributes);
360
400
  }
361
401
  }
402
+ recordCompactionSkipped(input) {
403
+ this.getInstruments().compactionSkippedCounter.add(1, {
404
+ reason: input.reason,
405
+ });
406
+ }
362
407
  recordContextOccupancy(tokens) {
363
408
  this.getInstruments().contextOccupancyHistogram.record(clampCount(tokens));
364
409
  }
@@ -420,6 +465,9 @@ export function recordContextLoadOutcome(input) {
420
465
  export function recordContextRestoreEmptyCreated() {
421
466
  clarkContextMetrics.recordRestoreEmptyCreated();
422
467
  }
468
+ export function recordCheckpointRestore(outcome) {
469
+ clarkContextMetrics.recordCheckpointRestore(outcome);
470
+ }
423
471
  export function recordContextFileBytes(input) {
424
472
  clarkContextMetrics.recordFileBytes(input);
425
473
  }
@@ -433,6 +481,9 @@ export function recordCompaction(input) {
433
481
  const { applicationId: _applicationId, organizationId: _organizationId, ...metricsInput } = input;
434
482
  clarkContextMetrics.recordCompaction(metricsInput);
435
483
  }
484
+ export function recordCompactionSkipped(input) {
485
+ clarkContextMetrics.recordCompactionSkipped(input);
486
+ }
436
487
  export function recordContextOccupancy(tokens) {
437
488
  clarkContextMetrics.recordContextOccupancy(tokens);
438
489
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context-metrics.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/context-metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-metrics.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/context-metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,OAAO,EACL,OAAO,GAIR,MAAM,oBAAoB,CAAC;AAE5B,0EAA0E;AAC1E,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,OAAO;IACP,WAAW;IACX,QAAQ;IACR,KAAK;IACL,QAAQ;CACA,CAAC;AAGX,sEAAsE;AACtE,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,aAAa;IACb,YAAY;IACZ,QAAQ;IACR,UAAU;IACV,UAAU;IACV,UAAU;CACF,CAAC;AAGX,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,eAAe;IACf,iBAAiB;IACjB,gBAAgB;IAChB,eAAe;IACf,mBAAmB;CACX,CAAC;AAGX,iEAAiE;AACjE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,SAAS,CAAU,CAAC;AAGpE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAU,CAAC;AAGvE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAG9D,mEAAmE;AACnE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,aAAa,CAAU,CAAC;AAGhE,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,WAAW;IACX,WAAW;IACX,aAAa;CACL,CAAC;AAGX,8EAA8E;AAC9E,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,SAAS,EAAE,SAAS,CAAU,CAAC;AAG3E;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,SAAS;IACT,sBAAsB;IACtB,eAAe;IACf,UAAU;IACV,UAAU;CACF,CAAC;AASX,MAAM,UAAU,GAAG,2BAA2B,CAAC;AAE/C,MAAM,oBAAoB,GAAG,iDAAiD,CAAC;AAC/E,MAAM,uBAAuB,GAC3B,oDAAoD,CAAC;AACvD,MAAM,oBAAoB,GAAG,+CAA+C,CAAC;AAC7E,MAAM,iBAAiB,GAAG,sCAAsC,CAAC;AACjE,MAAM,4BAA4B,GAChC,uDAAuD,CAAC;AAC1D,MAAM,yBAAyB,GAC7B,6DAA6D,CAAC;AAChE,MAAM,yBAAyB,GAC7B,oDAAoD,CAAC;AAEvD,0EAA0E;AAC1E,gEAAgE;AAChE,0EAA0E;AAC1E,MAAM,gBAAgB,GAAG,qCAAqC,CAAC;AAC/D,MAAM,sBAAsB,GAC1B,iDAAiD,CAAC;AACpD,MAAM,wBAAwB,GAC5B,mDAAmD,CAAC;AACtD,MAAM,yBAAyB,GAC7B,oDAAoD,CAAC;AACvD,MAAM,yBAAyB,GAC7B,8CAA8C,CAAC;AACjD,MAAM,iCAAiC,GACrC,8DAA8D,CAAC;AACjE,MAAM,wCAAwC,GAC5C,6DAA6D,CAAC;AAChE,MAAM,uCAAuC,GAC3C,4DAA4D,CAAC;AAC/D,MAAM,yCAAyC,GAC7C,8DAA8D,CAAC;AACjE,MAAM,4CAA4C,GAChD,iEAAiE,CAAC;AACpE,MAAM,2CAA2C,GAC/C,gEAAgE,CAAC;AACnE,MAAM,6CAA6C,GACjD,kEAAkE,CAAC;AACrE,MAAM,6BAA6B,GACjC,kDAAkD,CAAC;AACrD,MAAM,mCAAmC,GACvC,oEAAoE,CAAC;AACvE,MAAM,0CAA0C,GAC9C,uEAAuE,CAAC;AAC1E,MAAM,wBAAwB,GAAG,4CAA4C,CAAC;AAC9E,MAAM,+BAA+B,GACnC,mDAAmD,CAAC;AACtD,MAAM,0BAA0B,GAC9B,8CAA8C,CAAC;AACjD,MAAM,8BAA8B,GAClC,kDAAkD,CAAC;AACrD,MAAM,6BAA6B,GACjC,uDAAuD,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,wBAAwB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAE5D;;;GAGG;AACH,MAAM,kBAAkB,GAAG;IACzB,EAAE,GAAG,IAAI;IACT,GAAG,GAAG,IAAI;IACV,IAAI,GAAG,IAAI;IACX,CAAC,GAAG,IAAI,GAAG,IAAI;IACf,EAAE,GAAG,IAAI,GAAG,IAAI;IAChB,GAAG,GAAG,IAAI,GAAG,IAAI;CAClB,CAAC;AACF,MAAM,qBAAqB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1E,MAAM,mBAAmB,GAAG;IAC1B,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;CACvE,CAAC;AAEF;;;;;GAKG;AACH,MAAM,sBAAsB,GAAG;IAC7B,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;CACtD,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC;AAChC,MAAM,SAAS,GAAG,CAAC,UAAkB,EAAU,EAAE,CAC/C,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,cAAc,CAAC;AAC3C,MAAM,UAAU,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAmCjE,MAAM,mBAAmB;IACN,qBAAqB,GAAG,IAAI,GAAG,EAG7C,CAAC;IACa,yBAAyB,GAAG,IAAI,GAAG,EAAU,CAAC;IACvD,WAAW,CAAoB;IAC/B,iBAAiB,CAA0B;IAElC,qBAAqB,GAAG,CAAC,MAAwB,EAAQ,EAAE;QAC1E,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,EAAE,CAAC;YACjE,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC;IAEF;;;;OAIG;IACK,cAAc;QACpB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,cAAc,CACvD,IAAI,CAAC,qBAAqB,CAC3B,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,MAAM,kBAAkB,GAAG,KAAK,CAAC,qBAAqB,CAAC,gBAAgB,EAAE;YACvE,WAAW,EACT,sEAAsE;YACxE,IAAI,EAAE,YAAY;SACnB,CAAC,CAAC;QACH,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC3D,IAAI,CAAC,iBAAiB,GAAG;YACvB,wBAAwB,EAAE,KAAK,CAAC,aAAa,CAAC,yBAAyB,EAAE;gBACvE,WAAW,EACT,2FAA2F;gBAC7F,IAAI,EAAE,WAAW;aAClB,CAAC;YACF,wBAAwB,EAAE,KAAK,CAAC,aAAa,CAAC,yBAAyB,EAAE;gBACvE,WAAW,EACT,uIAAuI;gBACzI,IAAI,EAAE,cAAc;aACrB,CAAC;YACF,kBAAkB;YAClB,qBAAqB,EAAE,KAAK,CAAC,aAAa,CAAC,sBAAsB,EAAE;gBACjE,WAAW,EACT,yFAAyF;gBAC3F,IAAI,EAAE,YAAY;aACnB,CAAC;YACF,uBAAuB,EAAE,KAAK,CAAC,aAAa,CAAC,wBAAwB,EAAE;gBACrE,WAAW,EACT,kGAAkG;gBACpG,IAAI,EAAE,YAAY;aACnB,CAAC;YACF,kBAAkB,EAAE,KAAK,CAAC,eAAe,CAAC,iBAAiB,EAAE;gBAC3D,WAAW,EACT,iFAAiF;gBACnF,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,EAAE,wBAAwB,EAAE,kBAAkB,EAAE;aACzD,CAAC;YACF,aAAa,EAAE,KAAK,CAAC,eAAe,CAAC,oBAAoB,EAAE;gBACzD,WAAW,EACT,sJAAsJ;gBACxJ,IAAI,EAAE,GAAG;gBACT,MAAM,EAAE,EAAE,wBAAwB,EAAE,wBAAwB,EAAE;aAC/D,CAAC;YACF,gBAAgB,EAAE,KAAK,CAAC,eAAe,CAAC,uBAAuB,EAAE;gBAC/D,WAAW,EACT,2FAA2F;gBAC7F,IAAI,EAAE,GAAG;gBACT,MAAM,EAAE,EAAE,wBAAwB,EAAE,wBAAwB,EAAE;aAC/D,CAAC;YACF,mBAAmB,EAAE,KAAK,CAAC,aAAa,CAAC,oBAAoB,EAAE;gBAC7D,WAAW,EACT,gEAAgE;gBAClE,IAAI,EAAE,QAAQ;aACf,CAAC;YACF,0BAA0B,EAAE,KAAK,CAAC,aAAa,CAC7C,4BAA4B,EAC5B;gBACE,WAAW,EACT,wFAAwF;gBAC1F,IAAI,EAAE,WAAW;aAClB,CACF;YACD,wBAAwB,EAAE,KAAK,CAAC,aAAa,CAAC,yBAAyB,EAAE;gBACvE,WAAW,EACT,0FAA0F;gBAC5F,IAAI,EAAE,WAAW;aAClB,CAAC;YACF,uBAAuB,EAAE,KAAK,CAAC,aAAa,CAAC,yBAAyB,EAAE;gBACtE,WAAW,EACT,uEAAuE;gBACzE,IAAI,EAAE,cAAc;aACrB,CAAC;YACF,iCAAiC,EAAE,KAAK,CAAC,eAAe,CACtD,iCAAiC,EACjC;gBACE,WAAW,EACT,qFAAqF;gBACvF,IAAI,EAAE,GAAG;gBACT,MAAM,EAAE,EAAE,wBAAwB,EAAE,wBAAwB,EAAE;aAC/D,CACF;YACD,yCAAyC,EAAE,KAAK,CAAC,eAAe,CAC9D,2CAA2C,EAC3C;gBACE,WAAW,EACT,uEAAuE;gBACzE,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,EAAE,wBAAwB,EAAE,mBAAmB,EAAE;aAC1D,CACF;YACD,0CAA0C,EAAE,KAAK,CAAC,eAAe,CAC/D,4CAA4C,EAC5C;gBACE,WAAW,EACT,wEAAwE;gBAC1E,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,EAAE,wBAAwB,EAAE,mBAAmB,EAAE;aAC1D,CACF;YACD,2CAA2C,EAAE,KAAK,CAAC,eAAe,CAChE,6CAA6C,EAC7C;gBACE,WAAW,EACT,+EAA+E;gBACjF,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,EAAE,wBAAwB,EAAE,mBAAmB,EAAE;aAC1D,CACF;YACD,sCAAsC,EAAE,KAAK,CAAC,eAAe,CAC3D,uCAAuC,EACvC;gBACE,WAAW,EACT,0DAA0D;gBAC5D,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,EAAE,wBAAwB,EAAE,qBAAqB,EAAE;aAC5D,CACF;YACD,uCAAuC,EAAE,KAAK,CAAC,eAAe,CAC5D,wCAAwC,EACxC;gBACE,WAAW,EACT,2DAA2D;gBAC7D,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,EAAE,wBAAwB,EAAE,qBAAqB,EAAE;aAC5D,CACF;YACD,wCAAwC,EAAE,KAAK,CAAC,eAAe,CAC7D,yCAAyC,EACzC;gBACE,WAAW,EACT,0DAA0D;gBAC5D,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,EAAE,wBAAwB,EAAE,qBAAqB,EAAE;aAC5D,CACF;YACD,0BAA0B,EAAE,KAAK,CAAC,aAAa,CAC7C,6BAA6B,EAC7B;gBACE,WAAW,EACT,+DAA+D;gBACjE,IAAI,EAAE,SAAS;aAChB,CACF;YACD,iCAAiC,EAAE,KAAK,CAAC,eAAe,CACtD,mCAAmC,EACnC;gBACE,WAAW,EACT,yEAAyE;gBAC3E,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,EAAE,wBAAwB,EAAE,qBAAqB,EAAE;aAC5D,CACF;YACD,uCAAuC,EAAE,KAAK,CAAC,eAAe,CAC5D,0CAA0C,EAC1C;gBACE,WAAW,EACT,gEAAgE;gBAClE,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,EAAE,wBAAwB,EAAE,mBAAmB,EAAE;aAC1D,CACF;YACD,yBAAyB,EAAE,KAAK,CAAC,eAAe,CAC9C,wBAAwB,EACxB;gBACE,WAAW,EACT,wEAAwE;gBAC1E,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,EAAE,wBAAwB,EAAE,mBAAmB,EAAE;aAC1D,CACF;YACD,8BAA8B,EAAE,KAAK,CAAC,eAAe,CACnD,+BAA+B,EAC/B;gBACE,WAAW,EACT,0EAA0E;gBAC5E,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,EAAE,wBAAwB,EAAE,mBAAmB,EAAE;aAC1D,CACF;YACD,0BAA0B,EAAE,KAAK,CAAC,eAAe,CAC/C,0BAA0B,EAC1B;gBACE,WAAW,EACT,qMAAqM;gBACvM,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,EAAE,wBAAwB,EAAE,mBAAmB,EAAE;aAC1D,CACF;YACD,8BAA8B,EAAE,KAAK,CAAC,eAAe,CACnD,8BAA8B,EAC9B;gBACE,WAAW,EACT,oKAAoK;gBACtK,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,EAAE,wBAAwB,EAAE,sBAAsB,EAAE;aAC7D,CACF;YACD,6BAA6B,EAAE,KAAK,CAAC,eAAe,CAClD,6BAA6B,EAC7B;gBACE,WAAW,EACT,6EAA6E;gBAC/E,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,EAAE,wBAAwB,EAAE,qBAAqB,EAAE;aAC5D,CACF;SACF,CAAC;QACF,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,UAAU,CAAC,KAAwD;QACjE,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;YACtE,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,KAGb;QACC,IAAI,CAAC,cAAc,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;YACzE,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,KAGjB;QACC,IAAI,CAAC,cAAc,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE;YAC/C,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAED,yBAAyB;QACvB,IAAI,CAAC,cAAc,EAAE,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,uBAAuB,CAAC,OAAiC;QACvD,IAAI,CAAC,cAAc,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,eAAe,CAAC,KAGf;QACC,IAAI,CAAC,cAAc,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE;YACxE,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,uBAAuB,CAAC,KAA0C;QAChE,IAAI,CAAC,cAAc,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,EAAE;YACpD,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,KAKf;QACC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACvE,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACpB,WAAW,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YACtB,WAAW,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,KAQhB;QACC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC;QACF,WAAW,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACvD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACnC,WAAW,CAAC,iCAAiC,CAAC,MAAM,CAClD,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,EAC3B,UAAU,CACX,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACvC,WAAW,CAAC,uCAAuC,CAAC,MAAM,CACxD,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,EAChC,UAAU,CACX,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACtC,WAAW,CAAC,sCAAsC,CAAC,MAAM,CACvD,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,EAC/B,UAAU,CACX,CAAC;QACJ,CAAC;QACD,IACE,KAAK,CAAC,cAAc,KAAK,SAAS;YAClC,KAAK,CAAC,aAAa,KAAK,SAAS,EACjC,CAAC;YACD,WAAW,CAAC,wCAAwC,CAAC,MAAM,CACzD,UAAU,CAAC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,aAAa,CAAC,EACtD,UAAU,CACX,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YAC1C,WAAW,CAAC,0CAA0C,CAAC,MAAM,CAC3D,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,EACnC,UAAU,CACX,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACzC,WAAW,CAAC,yCAAyC,CAAC,MAAM,CAC1D,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAClC,UAAU,CACX,CAAC;QACJ,CAAC;QACD,IACE,KAAK,CAAC,iBAAiB,KAAK,SAAS;YACrC,KAAK,CAAC,gBAAgB,KAAK,SAAS,EACpC,CAAC;YACD,WAAW,CAAC,2CAA2C,CAAC,MAAM,CAC5D,UAAU,CAAC,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,gBAAgB,CAAC,EAC5D,UAAU,CACX,CAAC;QACJ,CAAC;IACH,CAAC;IAED,uBAAuB,CAAC,KAAuC;QAC7D,IAAI,CAAC,cAAc,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,EAAE;YACpD,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAED,sBAAsB,CAAC,MAAc;QACnC,IAAI,CAAC,cAAc,EAAE,CAAC,yBAAyB,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,2BAA2B,CAAC,KAI3B;QACC,IAAI,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACxD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACxC,WAAW,CAAC,8BAA8B,CAAC,MAAM,CAC/C,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,CAClC,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YAC1C,sEAAsE;YACtE,yEAAyE;YACzE,sEAAsE;YACtE,mDAAmD;YACnD,WAAW,CAAC,0BAA0B,CAAC,MAAM,CAC3C,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,CACpC,CAAC;YACF,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;gBAChC,WAAW,CAAC,8BAA8B,CAAC,MAAM,CAC/C,CAAC,KAAK,CAAC,iBAAiB,CACzB,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,8BAA8B,CAAC,KAAa;QAC1C,IAAI,CAAC,cAAc,EAAE,CAAC,6BAA6B,CAAC,MAAM,CACxD,UAAU,CAAC,KAAK,CAAC,CAClB,CAAC;IACJ,CAAC;IAED,sBAAsB,CAAC,KAOtB;QACC,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,yBAAyB,CAAC,KAGzB;QACC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,WAAW,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACxC,WAAW,CAAC,iCAAiC,CAAC,MAAM,CAClD,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,CAClC,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;YAC3C,WAAW,CAAC,uCAAuC,CAAC,MAAM,CACxD,UAAU,CAAC,KAAK,CAAC,kBAAkB,CAAC,CACrC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,gBAAgB;QACd,IAAI,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,cAAc,CACvD,IAAI,CAAC,qBAAqB,CAC3B,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACnC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC;CACF;AAED,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC;AAEtD,MAAM,UAAU,iBAAiB,CAAC,KAIjC;IACC,mBAAmB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAIpC;IACC,mBAAmB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAGxC;IACC,mBAAmB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,gCAAgC;IAC9C,mBAAmB,CAAC,yBAAyB,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,OAAiC;IAEjC,mBAAmB,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAItC;IACC,mBAAmB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAKtC;IACC,mBAAmB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAEvC;IACC,mBAAmB,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,KAQyB;IAEzB,MAAM,EACJ,aAAa,EAAE,cAAc,EAC7B,cAAc,EAAE,eAAe,EAC/B,GAAG,YAAY,EAChB,GAAG,KAAK,CAAC;IACV,mBAAmB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAEvC;IACC,mBAAmB,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAc;IACnD,mBAAmB,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAI3C;IACC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO;IACT,CAAC;IACD,mBAAmB,CAAC,2BAA2B,CAAC;QAC9C,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,eAAe,EAAE,KAAK,CAAC,eAAe;KACvC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAa;IAC1D,mBAAmB,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAOyB;IAEzB,MAAM,EACJ,aAAa,EAAE,cAAc,EAC7B,cAAc,EAAE,eAAe,EAC/B,GAAG,YAAY,EAChB,GAAG,KAAK,CAAC;IACV,mBAAmB,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,KAGyB;IAEzB,MAAM,EACJ,aAAa,EAAE,cAAc,EAC7B,cAAc,EAAE,eAAe,EAC/B,GAAG,YAAY,EAChB,GAAG,KAAK,CAAC;IACV,mBAAmB,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,mCAAmC;IACjD,mBAAmB,CAAC,gBAAgB,EAAE,CAAC;AACzC,CAAC"}
@@ -21,9 +21,9 @@ interface ContextV2Options {
21
21
  /** Event store for appending live conversation events (prompt_sent, response_received). */
22
22
  eventStore?: EventStore;
23
23
  /**
24
- * Full context identifier (appId + userId + name) used to partition event
25
- * log writes. Keying on `appId` alone would let two users sharing the same
26
- * application surface each other's conversation history.
24
+ * Full context identifier used to partition event log writes. Partitioning
25
+ * is by `appId` and `name`: the reasoning context is app-scoped, so every
26
+ * editor of an application shares one event log per context name.
27
27
  */
28
28
  contextId?: ContextId;
29
29
  /**
@@ -72,6 +72,7 @@ export declare class ContextV2 implements Context {
72
72
  private completedTurnCount;
73
73
  private lastCompactionAtTurnIndex;
74
74
  private isDisposed;
75
+ private readonly inFlightPersists;
75
76
  constructor(options: ContextV2Options);
76
77
  private _cachedMessages;
77
78
  /**
@@ -148,6 +149,12 @@ export declare class ContextV2 implements Context {
148
149
  * O(history) scan per message.
149
150
  */
150
151
  addResponses(responses: ModelMessage[], usage: LanguageModelUsage): Promise<void>;
152
+ /**
153
+ * Begin a user turn. Resets per-turn compaction state (the re-arm latch) so
154
+ * a fresh turn's first compaction is unguarded. Called by the
155
+ * adapter's startTurn, once per managed generation (see LLMClient.streamText).
156
+ */
157
+ startTurn(): void;
151
158
  /**
152
159
  * Persist the full record once, at the end of a generation.
153
160
  *
@@ -232,11 +239,28 @@ export declare class ContextV2 implements Context {
232
239
  * prompt size even though only tool outputs were pruned in place.
233
240
  */
234
241
  private markPreCompactionBaselines;
242
+ /**
243
+ * Await every persist that is currently mid-flight, then resolve.
244
+ *
245
+ * A persist that has already passed the {@link persist} dispose guard is
246
+ * committed to writing the snapshot; `dispose()` cannot recall it. A caller
247
+ * about to overwrite that snapshot with rolled-back state (checkpoint restore
248
+ * heals the snapshot to match the truncated event log) must drain first, or
249
+ * the late write lands after the heal and clobbers the rollback — and
250
+ * re-emits `contextPersisted`, flushing the poisoned state remotely. Drains
251
+ * until stable in case a persist enqueues while we await, though after
252
+ * `dispose()` none should start.
253
+ */
254
+ drainPersists(): Promise<void>;
235
255
  /**
236
256
  * Persist failures are swallowed (logged + recorded on the span) — a
237
257
  * storage error must never fail the conversation turn that triggered it.
258
+ *
259
+ * Tracks the returned promise in {@link inFlightPersists} so a concurrent
260
+ * {@link drainPersists} can await a write that has already begun.
238
261
  */
239
262
  private persist;
263
+ private runPersist;
240
264
  }
241
265
  export {};
242
266
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/context-v2/context.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { getPrefixedLogger } from "../../../util/logger.js";
5
5
  import { LLMObsTracer } from "../../llmobs/tracer.js";
6
6
  import { findBreakpoints } from "./caching.js";
7
7
  import { SERVER_COMPACTION_INTERRUPTED_SUMMARY, SERVER_COMPACTION_SUMMARY, ServerSideCompactionStrategy, } from "./compaction/server-side.js";
8
- import { DEFAULT_OPTIONS, DEFAULT_CACHING } from "./config.js";
8
+ import { DEFAULT_CACHING, resolveContextOptionsV2 } from "./config.js";
9
9
  import { recordContextPersist, recordServerCompaction, recordTurnsSinceLastCompaction, } from "./context-metrics.js";
10
10
  import { OperationQueue } from "./operation-queue.js";
11
11
  import { CLIENT_COMPACTION_MARKER } from "./storage/event-types.js";
@@ -163,9 +163,14 @@ export class ContextV2 {
163
163
  // When disposed, this context may still be referenced by in-flight streams.
164
164
  // Keep it inert so stale generations cannot persist cleared history.
165
165
  isDisposed = false;
166
+ // Persists currently mid-flight. A persist that has already passed the
167
+ // dispose guard is committed to writing the snapshot, so `dispose()` alone
168
+ // cannot stop it; `drainPersists()` lets a caller that is about to overwrite
169
+ // the snapshot (checkpoint restore) wait for those writes to land first.
170
+ inFlightPersists = new Set();
166
171
  constructor(options) {
167
172
  this.rootDir = options.rootDir;
168
- this.config = { ...DEFAULT_OPTIONS, ...options.config };
173
+ this.config = resolveContextOptionsV2(options.config);
169
174
  this.caching = { ...DEFAULT_CACHING, ...options.caching };
170
175
  this.onPersist = options.onPersist;
171
176
  this.tracer = options.tracer;
@@ -197,7 +202,7 @@ export class ContextV2 {
197
202
  this._cachedMessages = null;
198
203
  }
199
204
  updateConfig(config) {
200
- this.config = { ...this.config, ...config };
205
+ this.config = resolveContextOptionsV2({ ...this.config, ...config });
201
206
  this.invalidateMessageCache();
202
207
  this.compaction.updateConfig(config);
203
208
  }
@@ -479,6 +484,14 @@ export class ContextV2 {
479
484
  await this.runCompactionIfNeeded(lastResponse, usage);
480
485
  }
481
486
  }
487
+ /**
488
+ * Begin a user turn. Resets per-turn compaction state (the re-arm latch) so
489
+ * a fresh turn's first compaction is unguarded. Called by the
490
+ * adapter's startTurn, once per managed generation (see LLMClient.streamText).
491
+ */
492
+ startTurn() {
493
+ this.compaction.onTurnStart();
494
+ }
482
495
  /**
483
496
  * Persist the full record once, at the end of a generation.
484
497
  *
@@ -800,6 +813,10 @@ export class ContextV2 {
800
813
  status: "completed",
801
814
  });
802
815
  }
816
+ if (this.isDisposed) {
817
+ logger.warn(`Skipping server-compaction event append for context '${this.contextId?.name ?? "ephemeral"}': context was disposed (concurrent checkpoint restore or New Chat)`);
818
+ return;
819
+ }
803
820
  if (!this.eventStore || !this.contextId) {
804
821
  logger.info("Server-side compaction detected (no event store configured)", {
805
822
  ...(durationMs !== undefined
@@ -825,9 +842,19 @@ export class ContextV2 {
825
842
  };
826
843
  const retainedMessages = markedMessages.slice(1);
827
844
  try {
828
- await this.eventStore.appendEvent(this.contextId, entry);
845
+ await this.eventStore.appendEvent(this.contextId, entry, {
846
+ shouldAbort: () => this.isDisposed,
847
+ });
829
848
  for (const message of retainedMessages) {
830
- await this.eventStore.appendEvent(this.contextId, this.toEventLogEntry(message));
849
+ // Re-check per iteration: the loop awaits between writes, so a
850
+ // concurrent New Chat / checkpoint restore can dispose the shared
851
+ // instance mid-replay. Stop rather than append the rest into the
852
+ // (possibly just-cleared) shared log for every editor.
853
+ if (this.isDisposed) {
854
+ logger.warn(`Stopping server-compaction replay for context '${this.contextId?.name ?? "ephemeral"}': context disposed mid-write (concurrent checkpoint restore or New Chat)`);
855
+ break;
856
+ }
857
+ await this.eventStore.appendEvent(this.contextId, this.toEventLogEntry(message), { shouldAbort: () => this.isDisposed });
831
858
  }
832
859
  }
833
860
  catch (err) {
@@ -900,6 +927,14 @@ export class ContextV2 {
900
927
  return this.compaction.getProtectedToolNames(this.messages);
901
928
  }
902
929
  async appendEvent(type, message, usage) {
930
+ if (this.isDisposed) {
931
+ // The event log is the primary load source (manager.loadRecord replays
932
+ // it before legacy/remote), so a late in-flight append from a disposed
933
+ // shared instance would resurrect the just-cleared/restored conversation
934
+ // for every editor. Skip — and log, since it was previously invisible.
935
+ logger.warn(`Skipping '${type}' event append for context '${this.contextId?.name ?? "ephemeral"}': context was disposed (concurrent checkpoint restore or New Chat)`);
936
+ return;
937
+ }
903
938
  if (!this.eventStore || !this.contextId) {
904
939
  return;
905
940
  }
@@ -917,13 +952,19 @@ export class ContextV2 {
917
952
  ...(usage && { usage }),
918
953
  };
919
954
  try {
920
- await this.eventStore.appendEvent(this.contextId, entry);
955
+ await this.eventStore.appendEvent(this.contextId, entry, {
956
+ shouldAbort: () => this.isDisposed,
957
+ });
921
958
  }
922
959
  catch (err) {
923
960
  logger.error(`Failed to append ${type} event: ${err}`);
924
961
  }
925
962
  }
926
963
  async appendCompactionWindow(messages) {
964
+ if (this.isDisposed) {
965
+ logger.warn(`Skipping compaction-window event append for context '${this.contextId?.name ?? "ephemeral"}': context was disposed (concurrent checkpoint restore or New Chat)`);
966
+ return;
967
+ }
927
968
  if (!this.eventStore || !this.contextId) {
928
969
  return;
929
970
  }
@@ -958,10 +999,17 @@ export class ContextV2 {
958
999
  timestamp: Date.now(),
959
1000
  role: "system",
960
1001
  content: CLIENT_COMPACTION_MARKER,
961
- });
1002
+ }, { shouldAbort: () => this.isDisposed });
962
1003
  }
963
1004
  for (const message of windowMessages) {
964
- await this.eventStore.appendEvent(this.contextId, this.toEventLogEntry(message));
1005
+ // Re-check per iteration: see onCompactionDetected — a dispose during
1006
+ // the loop's awaits must stop the replay, not keep appending into a
1007
+ // shared log a concurrent New Chat / restore may have just cleared.
1008
+ if (this.isDisposed) {
1009
+ logger.warn(`Stopping compaction-window replay for context '${this.contextId?.name ?? "ephemeral"}': context disposed mid-write (concurrent checkpoint restore or New Chat)`);
1010
+ break;
1011
+ }
1012
+ await this.eventStore.appendEvent(this.contextId, this.toEventLogEntry(message), { shouldAbort: () => this.isDisposed });
965
1013
  }
966
1014
  logger.info(`Wrote ${windowMessages.length} client-side compaction message(s) to event log ` +
967
1015
  `(anchor: ${needsMarker ? "phase-1 marker" : "isSummary message"})`);
@@ -1042,17 +1090,66 @@ export class ContextV2 {
1042
1090
  };
1043
1091
  });
1044
1092
  }
1093
+ /**
1094
+ * Await every persist that is currently mid-flight, then resolve.
1095
+ *
1096
+ * A persist that has already passed the {@link persist} dispose guard is
1097
+ * committed to writing the snapshot; `dispose()` cannot recall it. A caller
1098
+ * about to overwrite that snapshot with rolled-back state (checkpoint restore
1099
+ * heals the snapshot to match the truncated event log) must drain first, or
1100
+ * the late write lands after the heal and clobbers the rollback — and
1101
+ * re-emits `contextPersisted`, flushing the poisoned state remotely. Drains
1102
+ * until stable in case a persist enqueues while we await, though after
1103
+ * `dispose()` none should start.
1104
+ */
1105
+ async drainPersists() {
1106
+ while (this.inFlightPersists.size > 0) {
1107
+ await Promise.allSettled([...this.inFlightPersists]);
1108
+ }
1109
+ }
1045
1110
  /**
1046
1111
  * Persist failures are swallowed (logged + recorded on the span) — a
1047
1112
  * storage error must never fail the conversation turn that triggered it.
1113
+ *
1114
+ * Tracks the returned promise in {@link inFlightPersists} so a concurrent
1115
+ * {@link drainPersists} can await a write that has already begun.
1048
1116
  */
1049
- async persist(trigger) {
1050
- if (this.isDisposed || !this.onPersist) {
1117
+ persist(trigger) {
1118
+ const run = this.runPersist(trigger);
1119
+ this.inFlightPersists.add(run);
1120
+ // `runPersist` swallows the storage error itself (logs + records on the
1121
+ // span), so `run` only rejects for a failure OUTSIDE that try — the tracer
1122
+ // or persist-accounting path. Log it here rather than an empty catch: this
1123
+ // is the sole place a fire-and-forget persist's out-of-band failure is
1124
+ // observable, and `drainPersists` deliberately discards settled results.
1125
+ void run
1126
+ .catch((err) => logger.error(`Persist tracking failed for context '${this.contextId?.name ?? "ephemeral"}': ${err}`))
1127
+ .finally(() => this.inFlightPersists.delete(run));
1128
+ return run;
1129
+ }
1130
+ async runPersist(trigger) {
1131
+ if (this.isDisposed) {
1132
+ // A concurrent checkpoint restore or New Chat disposes the shared
1133
+ // ContextV2 instance (all editors of an app share one, keyed
1134
+ // appId::name). An in-flight turn can still reach here; persisting now
1135
+ // would silently clobber the just-restored/cleared context, so skip —
1136
+ // and log it, since the collision was previously invisible.
1137
+ logger.warn(`Skipping '${trigger}' persist for context '${this.contextId?.name ?? "ephemeral"}': context was disposed (concurrent checkpoint restore or New Chat)`);
1138
+ return;
1139
+ }
1140
+ if (!this.onPersist) {
1051
1141
  return;
1052
1142
  }
1053
1143
  const onPersist = this.onPersist;
1054
1144
  const tracer = this.tracer ?? LLMObsTracer.instance;
1055
1145
  await tracer.trace({ kind: "task", name: "context.persist" }, async (span) => {
1146
+ // Re-check after the tracer's async boundary: dispose() may have run
1147
+ // between the guard above and here. No await sits between this check
1148
+ // and the onPersist call below, so this closes the clobber window.
1149
+ if (this.isDisposed) {
1150
+ logger.warn(`Skipping '${trigger}' persist for context '${this.contextId?.name ?? "ephemeral"}': context disposed mid-persist (concurrent checkpoint restore or New Chat)`);
1151
+ return;
1152
+ }
1056
1153
  const startedAt = performance.now();
1057
1154
  // Capture CPU time and event-loop activity across the await so a slow
1058
1155
  // persist can be classified after the fact. The persist