@runfusion/fusion 0.77.0-beta.3 → 0.77.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.js +13158 -10683
- package/dist/child-process-worker.js +9200 -6239
- package/dist/client/.vite/manifest.json +301 -274
- package/dist/client/assets/{AgentDetailView-D-mPbGXe.js → AgentDetailView-CSK_Rnlk.js} +3 -3
- package/dist/client/assets/{AgentPermissionPolicyEditor-Bq3z2QY0.js → AgentPermissionPolicyEditor-kG44Adcm.js} +1 -1
- package/dist/client/assets/{AgentsView-CYg6b9n0.js → AgentsView-ClKwKWnU.js} +4 -4
- package/dist/client/assets/ChatView-DoOqgkPX.js +13 -0
- package/dist/client/assets/{CommandCenter-DDCbSURT.js → CommandCenter-CJxvPbgn.js} +3 -3
- package/dist/client/assets/{DevServerView-DJ459OYL.js → DevServerView-C4nyLONX.js} +1 -1
- package/dist/client/assets/{DirectoryPicker-ClOKp7d1.js → DirectoryPicker-BIvXWIB5.js} +1 -1
- package/dist/client/assets/DocumentsView-DH_aZysM.js +1 -0
- package/dist/client/assets/{EvalsView-DGJFQc1W.js → EvalsView-klRK-GJQ.js} +1 -1
- package/dist/client/assets/{ExperimentalAgentOnboardingModal-CMy3zvnk.js → ExperimentalAgentOnboardingModal-CgBmukIm.js} +1 -1
- package/dist/client/assets/{GoalsView-D-z3Rf4g.js → GoalsView-ysh3X2x6.js} +1 -1
- package/dist/client/assets/{InsightsView-By1AFGbM.js → InsightsView-BbMjCu7J.js} +3 -3
- package/dist/client/assets/MemoryView-B3IgA8Bx.js +3 -0
- package/dist/client/assets/{PiExtensionsManager-_8u94B1u.js → PiExtensionsManager-CZlIw7C3.js} +1 -1
- package/dist/client/assets/PluginManager-vy0YZ2Nx.js +1 -0
- package/dist/client/assets/{PullRequestView-NkCEKKpG.js → PullRequestView-DhhsJV8I.js} +2 -2
- package/dist/client/assets/ReportModal-CQMn4i1y.js +21 -0
- package/dist/client/assets/ReportModal-lzN_xrnM.css +1 -0
- package/dist/client/assets/{ResearchView-BCxXqB8F.js → ResearchView-CVwfs4l3.js} +2 -2
- package/dist/client/assets/{SecretsView-CxK0XDc2.js → SecretsView-CrJfHle9.js} +1 -1
- package/dist/client/assets/{SessionTerminal-CuVsOYc8.js → SessionTerminal-BRI8W1-G.js} +1 -1
- package/dist/client/assets/{SettingsModal-BtV1tIIf.js → SettingsModal-B6U5Umru.js} +1 -1
- package/dist/client/assets/SettingsModal-C5ic1ls7.css +1 -0
- package/dist/client/assets/SettingsModal-h1A_aFqD.js +21 -0
- package/dist/client/assets/{SettingsTextareaRow-YR4pGawU.js → SettingsTextareaRow-O7-u9uMC.js} +1 -1
- package/dist/client/assets/SetupWizardModal-nXfJp8cA.js +2 -0
- package/dist/client/assets/{SkillsView-B4Jc91WM.js → SkillsView-CoWAjvWU.js} +1 -1
- package/dist/client/assets/{WorkflowNodeEditor-DGtYlSHs.js → WorkflowNodeEditor-BFMM3RF_.js} +2 -2
- package/dist/client/assets/{agent-import-generation-CHAXFtOA.js → agent-import-generation-BqDmtTur.js} +1 -1
- package/dist/client/assets/{agentsOrgChartLayout-DsahEyq7.js → agentsOrgChartLayout-C4cLqlV6.js} +1 -1
- package/dist/client/assets/app-BBSLJDbV.js +13 -0
- package/dist/client/assets/app-BKwOvuxE.js +5 -0
- package/dist/client/assets/app-Bvr57EZQ.js +5 -0
- package/dist/client/assets/app-C_PTWuI1.js +13 -0
- package/dist/client/assets/app-DKx18PHE.js +13 -0
- package/dist/client/assets/app-DRW5hIgr.js +13 -0
- package/dist/client/assets/app-DwvelD-n.js +13 -0
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-BKJBR8ob.js → architectureDiagram-3BPJPVTR-CdxcwdRe.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-CqpNEYwI.js → blockDiagram-GPEHLZMM-CfQrRfHR.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-CouyKoYs.js → c4Diagram-AAUBKEIU-Cx7-2SOm.js} +1 -1
- package/dist/client/assets/channel-B4WN1jC_.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-WHWSsNaC.js → chunk-2J33WTMH-D8jvgP3M.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-B-EVACQc.js → chunk-4BX2VUAB-B5tBx_s_.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-CVvNjEpv.js → chunk-55IACEB6-C-F-HQ5Z.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-CV4EKLRh.js → chunk-727SXJPM-BP8Ln-8C.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-DtDpuURf.js → chunk-AQP2D5EJ-DMnTmRmn.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-DPejtS21.js → chunk-FMBD7UC4-D_YdfnNc.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-DGDxBRA_.js → chunk-ND2GUHAM-CULXyuXq.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-D2k1MIuX.js → chunk-QZHKN3VN-CT1BWEJL.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-CKE8RSOv.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CKE8RSOv.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-Cr6PW7Dk.js → cose-bilkent-S5V4N54A-M-3DXa6e.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-QKrqYGWy.js → dagre-BM42HDAG-Bsiqvroz.js} +1 -1
- package/dist/client/assets/{dashboard-view-BQRwsBoj.js → dashboard-view-BEBh_Ei5.js} +1 -1
- package/dist/client/assets/{dashboard-view-BcNU4vFB.js → dashboard-view-Bo_gFjdO.js} +1 -1
- package/dist/client/assets/{dashboard-view-CkPDyljq.js → dashboard-view-CnFFG3cW.js} +1 -1
- package/dist/client/assets/{dashboard-view-BksOkReD.js → dashboard-view-DAHn20ph.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-BBFXrRQl.js → diagram-2AECGRRQ-CZiHoXo5.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-_T4nM0jp.js → diagram-5GNKFQAL-BoJVz4Or.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-BAKmsx_j.js → diagram-KO2AKTUF-DivGQuAL.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-Xdsdd6Gx.js → diagram-LMA3HP47-DkMK7OJp.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-tIHxhnE8.js → diagram-OG6HWLK6-DFFvRcpW.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-HZSbfe0g.js → erDiagram-TEJ5UH35--217vrom.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-C4O3r0DX.js → flowDiagram-I6XJVG4X-CQgWO3xf.js} +1 -1
- package/dist/client/assets/{folder-open-15UiPjYb.js → folder-open-DR6cRcNR.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-DGsKKMEu.js → ganttDiagram-6RSMTGT7-BjDMUrS3.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-BY4kgtHp.js → gitGraphDiagram-PVQCEYII-gKUcDnln.js} +1 -1
- package/dist/client/assets/index-Dki2LBAp.css +1 -0
- package/dist/client/assets/index-oxnX59eO.js +2774 -0
- package/dist/client/assets/{infoDiagram-5YYISTIA-lJBWxF8I.js → infoDiagram-5YYISTIA-BA91T8S5.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-CrE_q16o.js → ishikawaDiagram-YF4QCWOH-0BY5xe-c.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-9V42jgFW.js → journeyDiagram-JHISSGLW-B_OwenbQ.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-B_T-7Vyf.js → kanban-definition-UN3LZRKU-GLabUTKp.js} +1 -1
- package/dist/client/assets/{mermaid.core-CwJ7S3PS.js → mermaid.core-BXo4rxYI.js} +4 -4
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-MYNSgM6G.js → mindmap-definition-RKZ34NQL-DZl6LPoE.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-CtT-wbYj.js → pieDiagram-4H26LBE5-DtHq-4py.js} +1 -1
- package/dist/client/assets/pixelify-sans-cyrillic-400-normal-DfOZNMlW.woff +0 -0
- package/dist/client/assets/pixelify-sans-latin-400-normal-DLrIX9QE.woff2 +0 -0
- package/dist/client/assets/pixelify-sans-latin-400-normal-JapMNN6Z.woff +0 -0
- package/dist/client/assets/pixelify-sans-latin-ext-400-normal-BkfTUL4s.woff +0 -0
- package/dist/client/assets/pixelify-sans-latin-ext-400-normal-DdH6zlBQ.woff2 +0 -0
- package/dist/client/assets/{puzzle-CXdFNN8H.js → puzzle-OVm-I1L4.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-3klC5x4k.js → quadrantDiagram-W4KKPZXB-BdjXhd5d.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-CHfFrsBL.js → requirementDiagram-4Y6WPE33-BoFVjELN.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-Dtktw7Dy.js → sankeyDiagram-5OEKKPKP-B0qyJh-P.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-CuXPMjTU.js → sequenceDiagram-3UESZ5HK-ByY62Eqp.js} +1 -1
- package/dist/client/assets/{shield-alert-D9xqzJwR.js → shield-alert-CDy69fl7.js} +1 -1
- package/dist/client/assets/{standing-instructions-template-CcpV_LRP.js → standing-instructions-template-BsnnRlwm.js} +2 -2
- package/dist/client/assets/{stateDiagram-AJRCARHV-Bj_rDJwQ.js → stateDiagram-AJRCARHV-CwJ-_Phi.js} +1 -1
- package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-D-YYF-kX.js → stateDiagram-v2-BHNVJYJU-Cfvhq8mV.js} +1 -1
- package/dist/client/assets/{timeline-definition-PNZ67QCA-DXalwFMD.js → timeline-definition-PNZ67QCA-Co8VfGN9.js} +1 -1
- package/dist/client/assets/{upload-CWVc30BQ.js → upload-CkqDbEeE.js} +1 -1
- package/dist/client/assets/{useDiscoveredSkillsCache-D2M95Nn0.js → useDiscoveredSkillsCache-BHUasRiZ.js} +1 -1
- package/dist/client/assets/{users-q_-iLqv9.js → users-B8DkpbXD.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-0-aTlrbe.js → vennDiagram-CIIHVFJN-XSJteQrL.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-Bz_e_5wx.js → wardley-L42UT6IY-Btc0FRfF.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DsQu4YnA.js → wardleyDiagram-YWT4CUSO--IcDNmrf.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-K6GQdwVG.js → xychartDiagram-2RQKCTM6-CZW93G6X.js} +1 -1
- package/dist/client/index.html +4 -4
- package/dist/client/theme-data.css +183 -1
- package/dist/client/version.json +1 -1
- package/dist/droid-cli/package.json +1 -1
- package/dist/extension.js +10390 -7118
- package/dist/migrations/0000_initial.sql +3 -0
- package/dist/migrations/0061_fn_066_activity_log_task_id_index.sql +7 -0
- package/dist/migrations/0062_remove_task_subtask_splitting.sql +2 -0
- package/dist/migrations/0063_fn_090_ai_merge_review_reconciliation.sql +2 -0
- package/dist/migrations/0064_fn_094_task_repository_scope.sql +2 -0
- package/dist/pi-claude-cli/package.json +1 -1
- package/dist/pi-claude-cli/src/__tests__/event-bridge.test.ts +29 -1
- package/dist/pi-claude-cli/src/event-bridge.ts +10 -4
- package/dist/plugin-sdk/index.d.ts +301 -189
- package/dist/plugin-sdk/index.js +45 -105
- package/dist/plugins/fusion-plugin-acp-runtime/bundled.js +47 -106
- package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-claude-runtime/bundled.js +47 -106
- package/dist/plugins/fusion-plugin-claude-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-cli-printing-press/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
- package/dist/plugins/fusion-plugin-compound-engineering/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
- package/dist/plugins/fusion-plugin-cursor-runtime/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-dependency-graph/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
- package/dist/plugins/fusion-plugin-droid-runtime/bundled.js +47 -106
- package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-grok-runtime/bundled.js +47 -106
- package/dist/plugins/fusion-plugin-grok-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-hermes-runtime/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-linear-import/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-linear-import/package.json +1 -1
- package/dist/plugins/fusion-plugin-omp-runtime/bundled.js +47 -106
- package/dist/plugins/fusion-plugin-omp-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-openclaw-runtime/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-paperclip-runtime/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-quality/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-quality/package.json +1 -1
- package/dist/plugins/fusion-plugin-reports/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-reports/package.json +1 -1
- package/dist/plugins/fusion-plugin-roadmap/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
- package/dist/plugins/fusion-plugin-todos/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-todos/package.json +1 -1
- package/dist/plugins/fusion-plugin-whatsapp-chat/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
- package/package.json +1 -1
- package/skill/fusion/SKILL.md +1 -1
- package/skill/fusion/references/extension-tools.md +19 -1
- package/skill/fusion/references/fusion-capabilities.md +3 -1
- package/skill/fusion/references/task-structure.md +1 -1
- package/skill/fusion/workflows/specifications.md +2 -2
- package/dist/client/assets/ChatView-qnlDeWDu.js +0 -13
- package/dist/client/assets/DocumentsView-D3Yb4WqD.js +0 -1
- package/dist/client/assets/MemoryView-Dhe8ydZR.js +0 -3
- package/dist/client/assets/PluginManager-ByNlw3zN.js +0 -1
- package/dist/client/assets/ReportModal-DovuZwdY.js +0 -21
- package/dist/client/assets/ReportModal-M3uh98sc.css +0 -1
- package/dist/client/assets/SettingsModal-C-tiAvqQ.js +0 -21
- package/dist/client/assets/SettingsModal-C0FY8MPW.css +0 -1
- package/dist/client/assets/SetupWizardModal-DrbeWku9.js +0 -2
- package/dist/client/assets/app-BgpuMvTU.js +0 -13
- package/dist/client/assets/app-BlexHhbW.js +0 -13
- package/dist/client/assets/app-BsuUOR0P.js +0 -13
- package/dist/client/assets/app-DQVOujmO.js +0 -13
- package/dist/client/assets/app-DjyTRx1N.js +0 -5
- package/dist/client/assets/app-Dniggype.js +0 -13
- package/dist/client/assets/app-EV-lyZ0T.js +0 -5
- package/dist/client/assets/channel-D7yWYIo9.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-cuSqS34E.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-cuSqS34E.js +0 -1
- package/dist/client/assets/index-4c8KmZSa.js +0 -2818
- package/dist/client/assets/index-Bg6JQgJj.css +0 -1
|
@@ -154,6 +154,7 @@ CREATE TABLE IF NOT EXISTS project.tasks (
|
|
|
154
154
|
source_issue_closed_at text,
|
|
155
155
|
merge_details jsonb,
|
|
156
156
|
workspace_worktrees jsonb,
|
|
157
|
+
repository_scope jsonb,
|
|
157
158
|
break_into_subtasks integer DEFAULT 0,
|
|
158
159
|
no_commits_expected integer DEFAULT 0,
|
|
159
160
|
enabled_workflow_steps jsonb DEFAULT '[]',
|
|
@@ -1812,6 +1813,8 @@ CREATE INDEX IF NOT EXISTS "idxCentralActivityLogType"
|
|
|
1812
1813
|
ON central.central_activity_log(type);
|
|
1813
1814
|
CREATE INDEX IF NOT EXISTS "idxCentralActivityLogProjectId"
|
|
1814
1815
|
ON central.central_activity_log(project_id);
|
|
1816
|
+
CREATE INDEX IF NOT EXISTS "idxCentralActivityLogTaskIdTimestamp"
|
|
1817
|
+
ON central.central_activity_log(task_id, timestamp DESC);
|
|
1815
1818
|
|
|
1816
1819
|
CREATE TABLE IF NOT EXISTS central.global_concurrency (
|
|
1817
1820
|
id integer PRIMARY KEY,
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/*
|
|
2
|
+
FNXC:ActivityLogTaskSearch 2026-08-20-04:17:
|
|
3
|
+
Activity Log task search filters durable central history by an exact ID, so upgraded databases need the same
|
|
4
|
+
(task_id, timestamp DESC) index as fresh schemas before operators query a task across project/type filters.
|
|
5
|
+
*/
|
|
6
|
+
CREATE INDEX IF NOT EXISTS "idxCentralActivityLogTaskIdTimestamp"
|
|
7
|
+
ON central.central_activity_log(task_id, timestamp DESC);
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
-- FNXC:TaskSplittingRemoval 2026-08-20-17:42: Complexity must not persist a request that can fan one task into children or delete its parent. This migration removes only the obsolete task flag and leaves every project-scoped task, dependency, prompt, and document intact.
|
|
2
|
+
ALTER TABLE project.tasks DROP COLUMN IF EXISTS break_into_subtasks;
|
|
@@ -179,7 +179,35 @@ describe("createEventBridge", () => {
|
|
|
179
179
|
expect(textEnd1.content).toBe("Second");
|
|
180
180
|
});
|
|
181
181
|
|
|
182
|
-
|
|
182
|
+
/*
|
|
183
|
+
FNXC:ChatStreaming 2026-08-19-13:52:
|
|
184
|
+
The Claude CLI bridge must classify numeric period boundaries before mutating its output accumulator, otherwise source labels and URL paths reach Chat already corrupted.
|
|
185
|
+
*/
|
|
186
|
+
it("preserves the reported dotted model links across text deltas", () => {
|
|
187
|
+
const bridge = createBridgeWithStart();
|
|
188
|
+
bridge.handleEvent({ type: "content_block_start", index: 0, content_block: { type: "text", text: "" } } as any);
|
|
189
|
+
for (const text of [
|
|
190
|
+
"[GPT‑5.",
|
|
191
|
+
"6 Luna](https://developers.openai.com/api/docs/models/gpt-5.",
|
|
192
|
+
"6-luna) [GPT‑5.",
|
|
193
|
+
"6 Sol](https://developers.openai.com/api/docs/models/gpt-5.",
|
|
194
|
+
"6-sol) [GPT‑5.",
|
|
195
|
+
"6 Terra](https://developers.openai.com/api/docs/models/gpt-5.",
|
|
196
|
+
"6-terra)",
|
|
197
|
+
]) {
|
|
198
|
+
bridge.handleEvent({ type: "content_block_delta", index: 0, delta: { type: "text_delta", text } } as any);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
const output = bridge.getOutput();
|
|
202
|
+
const text = (output.content[0] as any).text as string;
|
|
203
|
+
expect(text).toContain("GPT‑5.6 Luna");
|
|
204
|
+
expect(text).not.toContain("5. 6");
|
|
205
|
+
expect(text).toContain("/gpt-5.6-luna");
|
|
206
|
+
expect(text).toContain("/gpt-5.6-sol");
|
|
207
|
+
expect(text).toContain("/gpt-5.6-terra");
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
it("repairs a missing sentence boundary between consecutive text blocks", () => {
|
|
183
211
|
const bridge = createBridgeWithStart();
|
|
184
212
|
|
|
185
213
|
bridge.handleEvent({
|
|
@@ -72,11 +72,17 @@ function normalizeStreamingDelta(previousText: string, nextDelta: string): strin
|
|
|
72
72
|
return nextDelta;
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
+
/*
|
|
76
|
+
FNXC:ChatStreaming 2026-08-19-13:52:
|
|
77
|
+
Numeric dotted tokens and URL path segments are one token even when the provider splits them across deltas; do not insert a sentence space between their digits before Chat persistence.
|
|
78
|
+
*/
|
|
79
|
+
const isNumericTokenContinuation =
|
|
80
|
+
previousChar === "." && /\d/.test(previousText.slice(-2, -1)) && /\d/.test(nextChar);
|
|
81
|
+
|
|
75
82
|
// Claude sometimes splits adjacent sentences across separate deltas or text
|
|
76
|
-
// blocks without preserving the separating space.
|
|
77
|
-
//
|
|
78
|
-
|
|
79
|
-
if (/[.!?]/.test(previousChar) && /[A-Z0-9"'([]/.test(nextChar)) {
|
|
83
|
+
// blocks without preserving the separating space. Keep the repair narrow so
|
|
84
|
+
// code, domains, lowercase continuations, and numeric tokens remain intact.
|
|
85
|
+
if (!isNumericTokenContinuation && /[.!?]/.test(previousChar) && /[A-Z0-9"'([]/.test(nextChar)) {
|
|
80
86
|
return ` ${nextDelta}`;
|
|
81
87
|
}
|
|
82
88
|
|