cc-viewer 1.8.20 → 1.9.1
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/cli.js +33 -4
- package/dist/assets/App-DM-fbhNd.js +2 -0
- package/dist/assets/App-DOZI5HME.css +1 -0
- package/dist/assets/{MdxEditorPanel-Dpn-4ydO.css → MdxEditorPanel-DTfdj6GS.css} +1 -1
- package/dist/assets/{MdxEditorPanel-Dsnv2wIw.js → MdxEditorPanel-DjwOQDh0.js} +1 -1
- package/dist/assets/Mobile-BD-hefIH.js +1 -0
- package/dist/assets/ProxyStatsModal-pYa_0QVL.js +1 -0
- package/dist/assets/{_baseUniq-B3e4JaL0.js → _baseUniq-CwQykUuc.js} +1 -1
- package/dist/assets/{arc-DnoPn_qY.js → arc-EdUdBxtG.js} +1 -1
- package/dist/assets/{architectureDiagram-Q4EWVU46-DrPKTbxH.js → architectureDiagram-Q4EWVU46-DtBIdElY.js} +1 -1
- package/dist/assets/{blockDiagram-DXYQGD6D-CEaO0Vcw.js → blockDiagram-DXYQGD6D-guNZIKkZ.js} +1 -1
- package/dist/assets/{c4Diagram-AHTNJAMY-BLaawFeg.js → c4Diagram-AHTNJAMY-xV5vB-Z9.js} +1 -1
- package/dist/assets/{channel-DnYR1fF4.js → channel-DYEktNap.js} +1 -1
- package/dist/assets/{chunk-4BX2VUAB-Bfd4edKZ.js → chunk-4BX2VUAB-ZTkItpvj.js} +1 -1
- package/dist/assets/{chunk-4TB4RGXK-t2nMQmY7.js → chunk-4TB4RGXK-dYIewyyR.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-C6tLOjGX.js → chunk-55IACEB6-CSsPNgPX.js} +1 -1
- package/dist/assets/{chunk-EDXVE4YY-dWCvxbCb.js → chunk-EDXVE4YY-CnMiuqzQ.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-BHELZLPK.js → chunk-FMBD7UC4-CVpATPZ3.js} +1 -1
- package/dist/assets/{chunk-OYMX7WX6-C8XTkH1S.js → chunk-OYMX7WX6-Dpq4s8dW.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-CD0j6SAs.js → chunk-QZHKN3VN-Bnojh6X6.js} +1 -1
- package/dist/assets/{chunk-YZCP3GAM-D4dKfXJJ.js → chunk-YZCP3GAM-BYqK4Dsa.js} +1 -1
- package/dist/assets/classDiagram-6PBFFD2Q-ClGF33bF.js +1 -0
- package/dist/assets/classDiagram-v2-HSJHXN6E-ClGF33bF.js +1 -0
- package/dist/assets/clone-CFj55h49.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-BF2HsiSD.js → cose-bilkent-S5V4N54A-OJ7mmWyV.js} +1 -1
- package/dist/assets/{dagre-KV5264BT-f3h967yx.js → dagre-KV5264BT-B1Kwd_Rk.js} +1 -1
- package/dist/assets/{diagram-5BDNPKRD-B9PzHQfh.js → diagram-5BDNPKRD-D8qrw8sp.js} +1 -1
- package/dist/assets/{diagram-G4DWMVQ6-kR953Bqm.js → diagram-G4DWMVQ6-ip-N4ho8.js} +1 -1
- package/dist/assets/{diagram-MMDJMWI5-DAewa2eg.js → diagram-MMDJMWI5-2PZaskUF.js} +1 -1
- package/dist/assets/{diagram-TYMM5635-C8HNTH6I.js → diagram-TYMM5635-CeAOQUZP.js} +1 -1
- package/dist/assets/{erDiagram-SMLLAGMA-BQ5P8wWK.js → erDiagram-SMLLAGMA-BCBaEYEb.js} +1 -1
- package/dist/assets/{flowDiagram-DWJPFMVM-BIpEkrMR.js → flowDiagram-DWJPFMVM-CsGyIqcX.js} +1 -1
- package/dist/assets/{ganttDiagram-T4ZO3ILL-CWqSfB5v.js → ganttDiagram-T4ZO3ILL-COsj3FZ-.js} +1 -1
- package/dist/assets/{gitGraphDiagram-UUTBAWPF-Ba-9yEbQ.js → gitGraphDiagram-UUTBAWPF-DvQVQGJG.js} +1 -1
- package/dist/assets/{graph-D3zXKQ6P.js → graph-BSB9fDSP.js} +1 -1
- package/dist/assets/{index-G3xd-gLo.js → index-BRw4Iz2O.js} +1 -1
- package/dist/assets/{index-DClD_EkN.js → index-Bo-12bug.js} +1 -1
- package/dist/assets/{index-DSd5P3WQ.js → index-BuVComcY.js} +1 -1
- package/dist/assets/{index-HLrnYsI1.js → index-CNNAYjkF.js} +1 -1
- package/dist/assets/{index-Bm3A5VLb.js → index-DKufsAzx.js} +1 -1
- package/dist/assets/{index-C9N0rZ7Z.js → index-DXBfwPYD.js} +1 -1
- package/dist/assets/index-DkIhbLjr.js +2 -0
- package/dist/assets/{index-Nvk8r3tO.css → index-Dz36p_bA.css} +1 -1
- package/dist/assets/{index-Q8wp4Nof.js → index-eM2ih5n7.js} +1 -1
- package/dist/assets/{infoDiagram-42DDH7IO-Cxm79ZJR.js → infoDiagram-42DDH7IO-eNucS4iW.js} +1 -1
- package/dist/assets/{ishikawaDiagram-UXIWVN3A-Cd0vZP1B.js → ishikawaDiagram-UXIWVN3A-Dxxj-gUX.js} +1 -1
- package/dist/assets/{journeyDiagram-VCZTEJTY-B2b57HXk.js → journeyDiagram-VCZTEJTY-yJJzVEBb.js} +1 -1
- package/dist/assets/{jszip.min-Bj5uiEb2.js → jszip.min-ByI0ds5u.js} +1 -1
- package/dist/assets/{kanban-definition-6JOO6SKY-YCERiUCO.js → kanban-definition-6JOO6SKY-2rfTi2zw.js} +1 -1
- package/dist/assets/{layout-Do5TlO2U.js → layout-DTmHj0Wm.js} +1 -1
- package/dist/assets/{linear-BiJNTDgN.js → linear-BOA3a9FE.js} +1 -1
- package/dist/assets/{mermaid.core-Dg0McRZt.js → mermaid.core-5H-NR79H.js} +3 -3
- package/dist/assets/{min-T51iefht.js → min-CpjFTEec.js} +1 -1
- package/dist/assets/{mindmap-definition-QFDTVHPH-Cu_GJxY3.js → mindmap-definition-QFDTVHPH-B8KCjFgB.js} +1 -1
- package/dist/assets/{pieDiagram-DEJITSTG-DldHHZXi.js → pieDiagram-DEJITSTG-BARy96g5.js} +1 -1
- package/dist/assets/{quadrantDiagram-34T5L4WZ-BzyTPNAJ.js → quadrantDiagram-34T5L4WZ-DYoTapuI.js} +1 -1
- package/dist/assets/{requirementDiagram-MS252O5E-C5xxFkvG.js → requirementDiagram-MS252O5E-EeANLLK2.js} +1 -1
- package/dist/assets/{sankeyDiagram-XADWPNL6-OxdjoaE1.js → sankeyDiagram-XADWPNL6-DmQ-YVPj.js} +1 -1
- package/dist/assets/seqResourceLoaders-BdWMUSrC.css +41 -0
- package/dist/assets/seqResourceLoaders-Dzy1J6G9.js +2 -0
- package/dist/assets/{sequenceDiagram-FGHM5R23-C7c89uIS.js → sequenceDiagram-FGHM5R23-SZtW0rYC.js} +1 -1
- package/dist/assets/{stateDiagram-FHFEXIEX-ssdJnDrO.js → stateDiagram-FHFEXIEX-CEygsIld.js} +1 -1
- package/dist/assets/{stateDiagram-v2-QKLJ7IA2-BP-0WClK.js → stateDiagram-v2-QKLJ7IA2-BU1XPhBe.js} +1 -1
- package/dist/assets/{timeline-definition-GMOUNBTQ-sWScEpSM.js → timeline-definition-GMOUNBTQ-DhPBaQBt.js} +1 -1
- package/dist/assets/{vendor-antd-DKIytXho.js → vendor-antd-CS_S2mBN.js} +1 -1
- package/dist/assets/{vendor-codemirror-4qgXq03k.js → vendor-codemirror-B5l-VbBO.js} +1 -1
- package/dist/assets/{vendor-mdxeditor-D5Z5D9fq.js → vendor-mdxeditor-Cz09a1_I.js} +2 -2
- package/dist/assets/{vendor-qrcode-B7lb5qk1.js → vendor-qrcode-qbbntD6-.js} +1 -1
- package/dist/assets/{vendor-virtuoso-BqoXlbhH.js → vendor-virtuoso-Sk8fQ4Hx.js} +1 -1
- package/dist/assets/{vennDiagram-DHZGUBPP-DNfXR0ge.js → vennDiagram-DHZGUBPP-NniTHxDw.js} +1 -1
- package/dist/assets/{wardley-RL74JXVD-JXd--CRD.js → wardley-RL74JXVD-D9SNOrDw.js} +1 -1
- package/dist/assets/{wardleyDiagram-NUSXRM2D-DHmNyVPM.js → wardleyDiagram-NUSXRM2D-DvHXKNza.js} +1 -1
- package/dist/assets/{xychartDiagram-5P7HB3ND-CTb0gltZ.js → xychartDiagram-5P7HB3ND-CaiwPTQB.js} +1 -1
- package/dist/index.html +5 -5
- package/package.json +1 -1
- package/server/interceptor.js +119 -13
- package/server/lib/chat-queue.js +67 -4
- package/server/lib/same-origin.js +22 -0
- package/server/lib/v2/convert.js +1 -1
- package/server/lib/v2/layout.js +28 -3
- package/server/lib/v2/live-feed.js +41 -4
- package/server/lib/v2/resume-list.js +150 -0
- package/server/lib/v2/session-select.js +63 -14
- package/server/lib/v2/v2-writer.js +172 -34
- package/server/lib/v2/view-router.js +83 -0
- package/server/lib/view-root.js +209 -0
- package/server/pty-manager.js +790 -159
- package/server/routes/ask-perm.js +21 -1
- package/server/routes/events.js +123 -7
- package/server/routes/expert.js +46 -14
- package/server/routes/files-content.js +72 -7
- package/server/routes/files-fs.js +28 -3
- package/server/routes/git.js +31 -5
- package/server/routes/preferences.js +1 -16
- package/server/routes/project-meta.js +32 -3
- package/server/routes/proxy-stats.js +33 -5
- package/server/routes/resume.js +302 -0
- package/server/routes/search.js +23 -1
- package/server/routes/skills.js +18 -2
- package/server/routes/v2.js +6 -1
- package/server/routes/workspaces.js +10 -3
- package/server/server.js +191 -25
- package/server/system-prompt-templates/presets/kimi-k3.md +1 -1
- package/server/workspace-registry.js +15 -1
- package/dist/assets/App-CesjoFSv.js +0 -2
- package/dist/assets/App-M61pqQEx.css +0 -1
- package/dist/assets/Mobile-bvGZ392d.js +0 -1
- package/dist/assets/ProxyStatsModal-HFk51cI8.js +0 -1
- package/dist/assets/classDiagram-6PBFFD2Q-BecPAAuk.js +0 -1
- package/dist/assets/classDiagram-v2-HSJHXN6E-BecPAAuk.js +0 -1
- package/dist/assets/clone-B0_ghF3F.js +0 -1
- package/dist/assets/index-DanpP6qP.js +0 -2
- package/dist/assets/seqResourceLoaders-BumAjQDW.css +0 -41
- package/dist/assets/seqResourceLoaders-ByHQMNIi.js +0 -2
package/cli.js
CHANGED
|
@@ -19,6 +19,7 @@ import { normalizeBasePath } from './server/lib/base-path.js';
|
|
|
19
19
|
import { mergeSettingsIntoArgs } from './server/lib/settings-merge.js';
|
|
20
20
|
import { splitSdkLaunchArgs, resolveLaunchSystemPrompt, insertBeforeDashDash } from './server/lib/launch-config.js';
|
|
21
21
|
import { createHardenedCleanup, installWinKeypressFallback } from './server/lib/term-signals.js';
|
|
22
|
+
import { reportSwallowed } from '@ccv/core/error-report';
|
|
22
23
|
|
|
23
24
|
const __dirname = fileURLToPath(new URL('.', import.meta.url));
|
|
24
25
|
|
|
@@ -552,7 +553,7 @@ async function runCliMode(extraClaudeArgs = [], cwd, noOpen = false) {
|
|
|
552
553
|
}
|
|
553
554
|
|
|
554
555
|
// 3. 启动 PTY 中的 claude
|
|
555
|
-
const { spawnClaude,
|
|
556
|
+
const { spawnClaude, killAllMain, onPtyExit } = await import('./server/pty-manager.js');
|
|
556
557
|
const { isCodeFuseManagedEnvironment } = await import('./server/lib/codefuse-managed-mode.js');
|
|
557
558
|
const codeFuseManaged = isCodeFuseManagedEnvironment();
|
|
558
559
|
let managedExitCode = 0;
|
|
@@ -566,8 +567,20 @@ async function runCliMode(extraClaudeArgs = [], cwd, noOpen = false) {
|
|
|
566
567
|
// cannot look like a second cleanup request and force the hardened 130 exit path.
|
|
567
568
|
removeManagedExitListener?.();
|
|
568
569
|
removeManagedExitListener = null;
|
|
569
|
-
|
|
570
|
-
|
|
570
|
+
// Kill ALL main PTYs, not just the active one — cross-project /resume keeps
|
|
571
|
+
// the previous project's main PTY alive, and it must not outlive this process
|
|
572
|
+
// as an orphan (node-pty children are session leaders; no OS cascade kill).
|
|
573
|
+
// killAllMain is idempotent and equals killPty() in the single-PTY case.
|
|
574
|
+
killAllMain();
|
|
575
|
+
// Reap scratch/resume children too — without this they outlive the main
|
|
576
|
+
// process as orphans (node-pty children are session leaders; the OS does
|
|
577
|
+
// not cascade-kill them). killAllScratch is idempotent.
|
|
578
|
+
return Promise.all([
|
|
579
|
+
serverMod.stopViewer(),
|
|
580
|
+
import('./server/scratch-pty-manager.js')
|
|
581
|
+
.then(({ killAllScratch }) => killAllScratch())
|
|
582
|
+
.catch((e) => reportSwallowed('cli.cleanup.scratch', e)),
|
|
583
|
+
]);
|
|
571
584
|
},
|
|
572
585
|
exit: (code) => process.exit(code ?? managedExitCode),
|
|
573
586
|
});
|
|
@@ -589,6 +602,16 @@ async function runCliMode(extraClaudeArgs = [], cwd, noOpen = false) {
|
|
|
589
602
|
process.exit(1);
|
|
590
603
|
}
|
|
591
604
|
|
|
605
|
+
// Keep the launcher-verified executable available to later workspace launches
|
|
606
|
+
// (POST /api/workspaces/launch → deps.workspaceClaudePath). Without this the
|
|
607
|
+
// route falls back to resolveNativePath(), which can pick a DIFFERENT binary
|
|
608
|
+
// than the one just spawned (e.g. the npm global build instead of the
|
|
609
|
+
// CodeFuse-managed one) — on managed machines that binary is SIGKILLed on
|
|
610
|
+
// exec, so a [+] project launch dies instantly (the "terminal loads history
|
|
611
|
+
// but claude never starts" bug). Restores the wiring dropped in f209f508.
|
|
612
|
+
serverMod.setWorkspaceClaudeArgs(extraClaudeArgs);
|
|
613
|
+
serverMod.setWorkspaceClaudePath(claudePath, isNpmVersion);
|
|
614
|
+
|
|
592
615
|
// 4. 自动打开浏览器
|
|
593
616
|
const protocol = serverMod.getProtocol();
|
|
594
617
|
const basePath = normalizeBasePath(process.env.CCV_BASE_PATH);
|
|
@@ -898,7 +921,13 @@ async function runSdkMode(extraClaudeArgs = [], cwd, noOpen = false) {
|
|
|
898
921
|
const cleanup = createHardenedCleanup({
|
|
899
922
|
doCleanup: () => {
|
|
900
923
|
sdkManager.stopSession();
|
|
901
|
-
|
|
924
|
+
// Reap scratch/resume children (see runCliMode cleanup); idempotent.
|
|
925
|
+
return Promise.all([
|
|
926
|
+
serverMod.stopViewer(),
|
|
927
|
+
import('./server/scratch-pty-manager.js')
|
|
928
|
+
.then(({ killAllScratch }) => killAllScratch())
|
|
929
|
+
.catch((e) => reportSwallowed('cli.cleanup.scratch', e)),
|
|
930
|
+
]);
|
|
902
931
|
},
|
|
903
932
|
});
|
|
904
933
|
process.on('SIGINT', cleanup);
|