From 59d7ae4bb75dc5081fec5a35149143d35b2e4651 Mon Sep 17 00:00:00 2001 From: "yanan.zhangyn" Date: Mon, 7 Sep 2026 14:49:15 +0800 Subject: [PATCH 1/2] fix(studio): restore fast updates and reuse harness sessions --- frontend/src/ui/SandboxAgentWorkspace.css | 4 + frontend/src/ui/SandboxAgentWorkspace.tsx | 23 ++--- .../tests/sandboxSessionPresentation.test.mjs | 4 + tests/cli/test_frontend_agent_proxy.py | 43 ++++++++ tests/cli/test_studio_release.py | 35 +++++++ .../cli/test_studio_sidecar_prerequisites.py | 98 ++++++++++++++++++- tests/cli/test_studio_update.py | 18 +++- veadk/cli/cli_frontend.py | 2 + veadk/cli/frontend_agent_proxy.py | 44 +++++++-- veadk/cli/studio_dependencies.py | 14 ++- veadk/cli/studio_package.py | 63 ++++++++---- .../{index-CWDqbw2d.js => index-BghMFnjN.js} | 12 +-- ...CswQsFp-.js => CodeDiffEditor-DqQIQjjY.js} | 2 +- ...zI.js => MarkdownPromptEditor-s7eQqghJ.js} | 2 +- .../{arc-BRIBmO6l.js => arc-U0016Dxb.js} | 2 +- ...hannel-DCVGXWk6.js => channel-CaKgKiXs.js} | 2 +- ...ex.es-DrzzXS5_.js => index.es-BG3_BTp-.js} | 2 +- ...n-BTaCSO8j.js => jspdf.es.min-Df6srQ2e.js} | 6 +- ...{linear-CninhuV9.js => linear-CfIcNiPP.js} | 2 +- ...{index-6iK8WaPZ.css => index-BilOAbdo.css} | 2 +- ...qj.js => abnfDiagram-N423BO3Z-pZs22V0-.js} | 2 +- ... architectureDiagram-T3A2C74G-BDUspHNj.js} | 2 +- ...0.js => blockDiagram-VBNYF7ZC-CLyorRKg.js} | 2 +- ...KZDr.js => c4Diagram-5PPSVZJV-Cae4gy7g.js} | 2 +- ...BCZ9NaUt.js => chunk-2GRJ4B5K-CsxmIqME.js} | 2 +- ...CQvjPuBR.js => chunk-2Q5K7J3B-BBfqg1zM.js} | 2 +- ...BYglFznQ.js => chunk-5RXB4S5H-BXC-12VF.js} | 2 +- ...C3AftBEf.js => chunk-5VM5RSS4-BUuVvI3_.js} | 2 +- ...-4-TS_XI.js => chunk-6Q2QTUOP-BAMwxW8C.js} | 2 +- ...tYY3Rp1M.js => chunk-GF5L2VYU-CopkVVcD.js} | 2 +- ...IJftlVd3.js => chunk-JWPE2WC7-CnOYqciR.js} | 2 +- ...CmLcZunb.js => chunk-KBJHAD2P-BjHMFaWV.js} | 2 +- ...IkdKW-aa.js => chunk-RYQCIY6F-CgUJXTQz.js} | 2 +- ...CwyCD15Y.js => chunk-XXDRQBXY-D1mvyA-R.js} | 2 +- .../mermaid/classDiagram-JCYQIIEL-B3UoohtC.js | 1 + .../mermaid/classDiagram-JCYQIIEL-BGW3l9Ak.js | 1 - .../classDiagram-v2-OCEON4UE-B3UoohtC.js | 1 + .../classDiagram-v2-OCEON4UE-BGW3l9Ak.js | 1 - ...8.js => cose-bilkent-JH36ORCC-CmheEffx.js} | 2 +- ...8g5uDh.js => cynefin-OW5HDTMX-BDEKezxG.js} | 2 +- ...js => cynefinDiagram-MW4NZA55-ChLLNXju.js} | 2 +- ...B7gTN0QM.js => dagre-VZM6K2ZE-mz2Xz3uP.js} | 2 +- ...b2U5Gk.js => diagram-7IWD3JNH-BLRGvaRA.js} | 2 +- ...CqErWv.js => diagram-B4RE2ZJO-DW5rcXCO.js} | 2 +- ..._cnNRP.js => diagram-LBJQPF4R-CwZ5JfXy.js} | 2 +- ...fY2HL4.js => diagram-Q27KOJAE-OMr-4g1c.js} | 2 +- ...Dy2Sum.js => diagram-UB23O5K3-Ba1z5Z84.js} | 2 +- ...lU.js => ebnfDiagram-BXEA7PRR-M9b2d1BE.js} | 2 +- ...P1sy.js => erDiagram-JOGREHBK-BhhzuVhC.js} | 2 +- ...y7.js => flowDiagram-UKHOOZJN-BnMBJoUW.js} | 2 +- ...C.js => ganttDiagram-PKOTCBZU-Cte4pA_E.js} | 2 +- ...s => gitGraphDiagram-DS77QQ5N-CKhOzY2l.js} | 2 +- ...pa.js => infoDiagram-6WML65LV-CTlXoskR.js} | 2 +- ...s => ishikawaDiagram-WSZJBQD7-BY0FA-Hx.js} | 2 +- ...js => journeyDiagram-NVQOT4AX-xfdDF0eR.js} | 2 +- ...=> kanban-definition-27J2QSJJ-Dp1MWLQ4.js} | 2 +- ...e-o4kwdQTf.js => mermaid.core-zvRmi_H8.js} | 8 +- ...> mindmap-definition-FAOFIHXS-C4HMbRuU.js} | 2 +- ...G7y.js => pegDiagram-VL7TDLO6-ChUZwIPn.js} | 2 +- ...mEl.js => pieDiagram-7S7Q4E2Y-CRPDTFAS.js} | 2 +- ...s => quadrantDiagram-CIZ2JOQS-CjlmFCI4.js} | 2 +- ...s => railroadDiagram-AXF67PYL-OvRL3Aqr.js} | 2 +- ...> requirementDiagram-LRYGKXZP-BcH8jW5-.js} | 2 +- ....js => sankeyDiagram-W5VNT64P-CiawNi1Y.js} | 2 +- ...s => sequenceDiagram-SI44F4Z6-DYijrPjz.js} | 2 +- ...wP.js => sizeCapture-X5ZJPWSS-Dw9vj0yB.js} | 2 +- ...i.js => stateDiagram-OKZ733FA-D_yegtAR.js} | 2 +- .../stateDiagram-v2-UEYNNEHI-CON1xX1Q.js | 1 - .../stateDiagram-v2-UEYNNEHI-CyeTdqHj.js | 1 + ...vq8M.js => swimlanes-SLNWSIFB-Dx-21Bxz.js} | 4 +- .../swimlanesDiagram-ULZ7WXOC-1_GRLMGz.js | 8 ++ .../swimlanesDiagram-ULZ7WXOC-2LlC4jf1.js | 8 -- ... timeline-definition-Z64GVDOM-15gq1ysl.js} | 2 +- ...Yk.js => vennDiagram-T6HMQDX7-BaqcIeAW.js} | 2 +- ...js => wardleyDiagram-T6FBY63Y-Cb9xJDoM.js} | 2 +- ...js => xychartDiagram-ELKLHX3M-DZr8r99o.js} | 2 +- veadk/webui/index.html | 4 +- 77 files changed, 385 insertions(+), 125 deletions(-) rename veadk/webui/assets/app/{index-CWDqbw2d.js => index-BghMFnjN.js} (99%) rename veadk/webui/assets/chunks/{CodeDiffEditor-CswQsFp-.js => CodeDiffEditor-DqQIQjjY.js} (99%) rename veadk/webui/assets/chunks/{MarkdownPromptEditor-s0vhypzI.js => MarkdownPromptEditor-s7eQqghJ.js} (99%) rename veadk/webui/assets/chunks/{arc-BRIBmO6l.js => arc-U0016Dxb.js} (98%) rename veadk/webui/assets/chunks/{channel-DCVGXWk6.js => channel-CaKgKiXs.js} (53%) rename veadk/webui/assets/chunks/{index.es-DrzzXS5_.js => index.es-BG3_BTp-.js} (99%) rename veadk/webui/assets/chunks/{jspdf.es.min-BTaCSO8j.js => jspdf.es.min-Df6srQ2e.js} (99%) rename veadk/webui/assets/chunks/{linear-CninhuV9.js => linear-CfIcNiPP.js} (98%) rename veadk/webui/assets/styles/{index-6iK8WaPZ.css => index-BilOAbdo.css} (96%) rename veadk/webui/assets/visualizations/mermaid/{abnfDiagram-N423BO3Z-CLhCDHqj.js => abnfDiagram-N423BO3Z-pZs22V0-.js} (86%) rename veadk/webui/assets/visualizations/mermaid/{architectureDiagram-T3A2C74G-XC2oCEAz.js => architectureDiagram-T3A2C74G-BDUspHNj.js} (99%) rename veadk/webui/assets/visualizations/mermaid/{blockDiagram-VBNYF7ZC-BJwagFU0.js => blockDiagram-VBNYF7ZC-CLyorRKg.js} (99%) rename veadk/webui/assets/visualizations/mermaid/{c4Diagram-5PPSVZJV-DDsaKZDr.js => c4Diagram-5PPSVZJV-Cae4gy7g.js} (99%) rename veadk/webui/assets/visualizations/mermaid/{chunk-2GRJ4B5K-BCZ9NaUt.js => chunk-2GRJ4B5K-CsxmIqME.js} (93%) rename veadk/webui/assets/visualizations/mermaid/{chunk-2Q5K7J3B-CQvjPuBR.js => chunk-2Q5K7J3B-BBfqg1zM.js} (66%) rename veadk/webui/assets/visualizations/mermaid/{chunk-5RXB4S5H-BYglFznQ.js => chunk-5RXB4S5H-BXC-12VF.js} (99%) rename veadk/webui/assets/visualizations/mermaid/{chunk-5VM5RSS4-C3AftBEf.js => chunk-5VM5RSS4-BUuVvI3_.js} (83%) rename veadk/webui/assets/visualizations/mermaid/{chunk-6Q2QTUOP--4-TS_XI.js => chunk-6Q2QTUOP-BAMwxW8C.js} (99%) rename veadk/webui/assets/visualizations/mermaid/{chunk-GF5L2VYU-tYY3Rp1M.js => chunk-GF5L2VYU-CopkVVcD.js} (99%) rename veadk/webui/assets/visualizations/mermaid/{chunk-JWPE2WC7-IJftlVd3.js => chunk-JWPE2WC7-CnOYqciR.js} (78%) rename veadk/webui/assets/visualizations/mermaid/{chunk-KBJHAD2P-CmLcZunb.js => chunk-KBJHAD2P-BjHMFaWV.js} (87%) rename veadk/webui/assets/visualizations/mermaid/{chunk-RYQCIY6F-IkdKW-aa.js => chunk-RYQCIY6F-CgUJXTQz.js} (99%) rename veadk/webui/assets/visualizations/mermaid/{chunk-XXDRQBXY-CwyCD15Y.js => chunk-XXDRQBXY-D1mvyA-R.js} (53%) create mode 100644 veadk/webui/assets/visualizations/mermaid/classDiagram-JCYQIIEL-B3UoohtC.js delete mode 100644 veadk/webui/assets/visualizations/mermaid/classDiagram-JCYQIIEL-BGW3l9Ak.js create mode 100644 veadk/webui/assets/visualizations/mermaid/classDiagram-v2-OCEON4UE-B3UoohtC.js delete mode 100644 veadk/webui/assets/visualizations/mermaid/classDiagram-v2-OCEON4UE-BGW3l9Ak.js rename veadk/webui/assets/visualizations/mermaid/{cose-bilkent-JH36ORCC-at40AjX8.js => cose-bilkent-JH36ORCC-CmheEffx.js} (99%) rename veadk/webui/assets/visualizations/mermaid/{cynefin-OW5HDTMX-DK8g5uDh.js => cynefin-OW5HDTMX-BDEKezxG.js} (99%) rename veadk/webui/assets/visualizations/mermaid/{cynefinDiagram-MW4NZA55-u6l3R1fM.js => cynefinDiagram-MW4NZA55-ChLLNXju.js} (98%) rename veadk/webui/assets/visualizations/mermaid/{dagre-VZM6K2ZE-B7gTN0QM.js => dagre-VZM6K2ZE-mz2Xz3uP.js} (97%) rename veadk/webui/assets/visualizations/mermaid/{diagram-7IWD3JNH-Cib2U5Gk.js => diagram-7IWD3JNH-BLRGvaRA.js} (96%) rename veadk/webui/assets/visualizations/mermaid/{diagram-B4RE2ZJO-BdCqErWv.js => diagram-B4RE2ZJO-DW5rcXCO.js} (97%) rename veadk/webui/assets/visualizations/mermaid/{diagram-LBJQPF4R-aN_cnNRP.js => diagram-LBJQPF4R-CwZ5JfXy.js} (94%) rename veadk/webui/assets/visualizations/mermaid/{diagram-Q27KOJAE-oqfY2HL4.js => diagram-Q27KOJAE-OMr-4g1c.js} (98%) rename veadk/webui/assets/visualizations/mermaid/{diagram-UB23O5K3-CCDy2Sum.js => diagram-UB23O5K3-Ba1z5Z84.js} (95%) rename veadk/webui/assets/visualizations/mermaid/{ebnfDiagram-BXEA7PRR-B_7xrqlU.js => ebnfDiagram-BXEA7PRR-M9b2d1BE.js} (87%) rename veadk/webui/assets/visualizations/mermaid/{erDiagram-JOGREHBK-Dw0YP1sy.js => erDiagram-JOGREHBK-BhhzuVhC.js} (99%) rename veadk/webui/assets/visualizations/mermaid/{flowDiagram-UKHOOZJN-DohdPCy7.js => flowDiagram-UKHOOZJN-BnMBJoUW.js} (99%) rename veadk/webui/assets/visualizations/mermaid/{ganttDiagram-PKOTCBZU-B5s5ColC.js => ganttDiagram-PKOTCBZU-Cte4pA_E.js} (99%) rename veadk/webui/assets/visualizations/mermaid/{gitGraphDiagram-DS77QQ5N-B_EOGUhG.js => gitGraphDiagram-DS77QQ5N-CKhOzY2l.js} (99%) rename veadk/webui/assets/visualizations/mermaid/{infoDiagram-6WML65LV-xJ3bDHpa.js => infoDiagram-6WML65LV-CTlXoskR.js} (69%) rename veadk/webui/assets/visualizations/mermaid/{ishikawaDiagram-WSZJBQD7-CWIDfy-k.js => ishikawaDiagram-WSZJBQD7-BY0FA-Hx.js} (99%) rename veadk/webui/assets/visualizations/mermaid/{journeyDiagram-NVQOT4AX-Kgorn1Ex.js => journeyDiagram-NVQOT4AX-xfdDF0eR.js} (98%) rename veadk/webui/assets/visualizations/mermaid/{kanban-definition-27J2QSJJ-BCHLvaYW.js => kanban-definition-27J2QSJJ-Dp1MWLQ4.js} (99%) rename veadk/webui/assets/visualizations/mermaid/{mermaid.core-o4kwdQTf.js => mermaid.core-zvRmi_H8.js} (98%) rename veadk/webui/assets/visualizations/mermaid/{mindmap-definition-FAOFIHXS-CtBDvB2m.js => mindmap-definition-FAOFIHXS-C4HMbRuU.js} (98%) rename veadk/webui/assets/visualizations/mermaid/{pegDiagram-VL7TDLO6-DWls5G7y.js => pegDiagram-VL7TDLO6-ChUZwIPn.js} (87%) rename veadk/webui/assets/visualizations/mermaid/{pieDiagram-7S7Q4E2Y-MdDS6mEl.js => pieDiagram-7S7Q4E2Y-CRPDTFAS.js} (96%) rename veadk/webui/assets/visualizations/mermaid/{quadrantDiagram-CIZ2JOQS-BmWiWPoP.js => quadrantDiagram-CIZ2JOQS-CjlmFCI4.js} (99%) rename veadk/webui/assets/visualizations/mermaid/{railroadDiagram-AXF67PYL-CowO4col.js => railroadDiagram-AXF67PYL-OvRL3Aqr.js} (84%) rename veadk/webui/assets/visualizations/mermaid/{requirementDiagram-LRYGKXZP-7fFeIG33.js => requirementDiagram-LRYGKXZP-BcH8jW5-.js} (99%) rename veadk/webui/assets/visualizations/mermaid/{sankeyDiagram-W5VNT64P-Drnv_lFP.js => sankeyDiagram-W5VNT64P-CiawNi1Y.js} (99%) rename veadk/webui/assets/visualizations/mermaid/{sequenceDiagram-SI44F4Z6-DOpbHena.js => sequenceDiagram-SI44F4Z6-DYijrPjz.js} (99%) rename veadk/webui/assets/visualizations/mermaid/{sizeCapture-X5ZJPWSS-Q6WiJlwP.js => sizeCapture-X5ZJPWSS-Dw9vj0yB.js} (87%) rename veadk/webui/assets/visualizations/mermaid/{stateDiagram-OKZ733FA-BLjMV6vi.js => stateDiagram-OKZ733FA-D_yegtAR.js} (96%) delete mode 100644 veadk/webui/assets/visualizations/mermaid/stateDiagram-v2-UEYNNEHI-CON1xX1Q.js create mode 100644 veadk/webui/assets/visualizations/mermaid/stateDiagram-v2-UEYNNEHI-CyeTdqHj.js rename veadk/webui/assets/visualizations/mermaid/{swimlanes-SLNWSIFB-XvQrvq8M.js => swimlanes-SLNWSIFB-Dx-21Bxz.js} (99%) create mode 100644 veadk/webui/assets/visualizations/mermaid/swimlanesDiagram-ULZ7WXOC-1_GRLMGz.js delete mode 100644 veadk/webui/assets/visualizations/mermaid/swimlanesDiagram-ULZ7WXOC-2LlC4jf1.js rename veadk/webui/assets/visualizations/mermaid/{timeline-definition-Z64GVDOM-BBIcejBO.js => timeline-definition-Z64GVDOM-15gq1ysl.js} (99%) rename veadk/webui/assets/visualizations/mermaid/{vennDiagram-T6HMQDX7-0emkMUYk.js => vennDiagram-T6HMQDX7-BaqcIeAW.js} (99%) rename veadk/webui/assets/visualizations/mermaid/{wardleyDiagram-T6FBY63Y-Co7E2jLu.js => wardleyDiagram-T6FBY63Y-Cb9xJDoM.js} (99%) rename veadk/webui/assets/visualizations/mermaid/{xychartDiagram-ELKLHX3M-RiyFP2yn.js => xychartDiagram-ELKLHX3M-DZr8r99o.js} (99%) diff --git a/frontend/src/ui/SandboxAgentWorkspace.css b/frontend/src/ui/SandboxAgentWorkspace.css index 46883a0ca..ca307d3fa 100644 --- a/frontend/src/ui/SandboxAgentWorkspace.css +++ b/frontend/src/ui/SandboxAgentWorkspace.css @@ -115,6 +115,10 @@ background: hsl(var(--panel)); } +.sandbox-agent-workspace-surface [hidden] { + display: none; +} + .sandbox-agent-workspace-state { display: grid; height: 100%; diff --git a/frontend/src/ui/SandboxAgentWorkspace.tsx b/frontend/src/ui/SandboxAgentWorkspace.tsx index 3c124b625..f26742be6 100644 --- a/frontend/src/ui/SandboxAgentWorkspace.tsx +++ b/frontend/src/ui/SandboxAgentWorkspace.tsx @@ -108,28 +108,29 @@ export function SandboxAgentWorkspace({
- {surface === "main" ? ( +