Skip to content

Allow editing the last stopped Agent prompt - #15525

Open
ryan-di wants to merge 6 commits into
nathaniel/agent-panel-v1from
ryan-di/agent-v1/edit-sent-prompt
Open

Allow editing the last stopped Agent prompt#15525
ryan-di wants to merge 6 commits into
nathaniel/agent-panel-v1from
ryan-di/agent-v1/edit-sent-prompt

Conversation

@ryan-di

@ryan-di ryan-di commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • allow the last explicitly stopped Agent prompt to be edited and resent
  • restore its text into the focused composer while preserving the original transcript entry
  • keep earlier prompts and normally completed turns non-editable

Validation

  • 67 targeted unit and component tests passed
  • pnpm typecheck, pnpm typecheck:browser, pnpm format:check, pnpm lint, and pnpm knip passed
  • browser coverage was added and statically validated; local execution remains blocked by the browser-test backend configuration
  • manually reviewed through the local dev proxy targeting agent.comfy.org

Notes

Linear: FE-1705 · PM-214

@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 154abc8b-f5bf-4b97-9f48-0e46406a8504

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Aug 21, 2026

Copy link
Copy Markdown

🎨 Storybook: ✅ Built — View Storybook

Details

⏰ Completed at: 08/21/2026, 04:17:33 AM UTC

Links

🎭 Playwright: ❌ 1730 passed, 48 failed · 4 flaky

❌ Failed Tests

📊 Browser Reports
  • chromium: View Report (✅ 1719 / ❌ 43 / ⚠️ 4 / ⏭️ 5)
  • chromium-2x: View Report (✅ 2 / ❌ 0 / ⚠️ 0 / ⏭️ 0)
  • chromium-0.5x: View Report (✅ 1 / ❌ 0 / ⚠️ 0 / ⏭️ 0)
  • mobile-chrome: View Report (✅ 8 / ❌ 5 / ⚠️ 0 / ⏭️ 0)

📦 Bundle Size

⏳ Size data collection in progress…

⚡ Performance Report

canvas-idle: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 84.4 MB heap
canvas-mouse-sweep: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 80.7 MB heap
canvas-zoom-sweep: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 87.5 MB heap
dom-widget-clipping: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 95.4 MB heap
large-graph-idle: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 97.2 MB heap
large-graph-pan: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 97.7 MB heap
large-graph-zoom: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 96.1 MB heap
legacy-node-drag: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 86.8 MB heap
minimap-idle: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 101.3 MB heap
subgraph-dom-widget-clipping: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 96.0 MB heap
subgraph-idle: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 86.0 MB heap
subgraph-mouse-sweep: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 103.0 MB heap
subgraph-transition-enter: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 129ms TBT · 116.4 MB heap
viewport-pan-sweep: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 91.0 MB heap
vue-large-graph-idle: · 55.4 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 189.1 MB heap
vue-large-graph-pan: · 55.4 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 95ms TBT · 203.6 MB heap
workflow-execution: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 86.3 MB heap

ℹ️ No baseline found — significance unavailable.

Absolute values
Metric Value
canvas-idle: avg frame time 17ms
canvas-idle: p95 frame time 17ms
canvas-idle: layout duration 0ms
canvas-idle: style recalc duration 9ms
canvas-idle: layout count 0
canvas-idle: style recalc count 9
canvas-idle: task duration 460ms
canvas-idle: script duration 7ms
canvas-idle: TBT 0ms
canvas-idle: heap used 84.4 MB
canvas-idle: DOM nodes 17
canvas-idle: event listeners 6
canvas-mouse-sweep: avg frame time 17ms
canvas-mouse-sweep: p95 frame time 17ms
canvas-mouse-sweep: layout duration 6ms
canvas-mouse-sweep: style recalc duration 45ms
canvas-mouse-sweep: layout count 14
canvas-mouse-sweep: style recalc count 80
canvas-mouse-sweep: task duration 905ms
canvas-mouse-sweep: script duration 123ms
canvas-mouse-sweep: TBT 0ms
canvas-mouse-sweep: heap used 80.7 MB
canvas-mouse-sweep: DOM nodes 62
canvas-mouse-sweep: event listeners 4
canvas-zoom-sweep: avg frame time 17ms
canvas-zoom-sweep: p95 frame time 17ms
canvas-zoom-sweep: layout duration 1ms
canvas-zoom-sweep: style recalc duration 19ms
canvas-zoom-sweep: layout count 6
canvas-zoom-sweep: style recalc count 31
canvas-zoom-sweep: task duration 381ms
canvas-zoom-sweep: script duration 10ms
canvas-zoom-sweep: TBT 0ms
canvas-zoom-sweep: heap used 87.5 MB
canvas-zoom-sweep: DOM nodes 77
canvas-zoom-sweep: event listeners 19
dom-widget-clipping: avg frame time 17ms
dom-widget-clipping: p95 frame time 17ms
dom-widget-clipping: layout duration 0ms
dom-widget-clipping: style recalc duration 9ms
dom-widget-clipping: layout count 0
dom-widget-clipping: style recalc count 12
dom-widget-clipping: task duration 378ms
dom-widget-clipping: script duration 56ms
dom-widget-clipping: TBT 0ms
dom-widget-clipping: heap used 95.4 MB
dom-widget-clipping: DOM nodes 19
dom-widget-clipping: event listeners 1
large-graph-idle: avg frame time 17ms
large-graph-idle: p95 frame time 17ms
large-graph-idle: layout duration 0ms
large-graph-idle: style recalc duration 10ms
large-graph-idle: layout count 0
large-graph-idle: style recalc count 10
large-graph-idle: task duration 592ms
large-graph-idle: script duration 16ms
large-graph-idle: TBT 0ms
large-graph-idle: heap used 97.2 MB
large-graph-idle: DOM nodes 19
large-graph-idle: event listeners 5
large-graph-pan: avg frame time 17ms
large-graph-pan: p95 frame time 17ms
large-graph-pan: layout duration 0ms
large-graph-pan: style recalc duration 15ms
large-graph-pan: layout count 0
large-graph-pan: style recalc count 69
large-graph-pan: task duration 1177ms
large-graph-pan: script duration 343ms
large-graph-pan: TBT 0ms
large-graph-pan: heap used 97.7 MB
large-graph-pan: DOM nodes 15
large-graph-pan: event listeners 4
large-graph-zoom: avg frame time 17ms
large-graph-zoom: p95 frame time 17ms
large-graph-zoom: layout duration 12ms
large-graph-zoom: style recalc duration 16ms
large-graph-zoom: layout count 60
large-graph-zoom: style recalc count 66
large-graph-zoom: task duration 1343ms
large-graph-zoom: script duration 385ms
large-graph-zoom: TBT 0ms
large-graph-zoom: heap used 96.1 MB
large-graph-zoom: DOM nodes 14
large-graph-zoom: event listeners 8
legacy-node-drag: avg frame time 17ms
legacy-node-drag: p95 frame time 17ms
legacy-node-drag: layout duration 0ms
legacy-node-drag: style recalc duration 11ms
legacy-node-drag: layout count 0
legacy-node-drag: style recalc count 47
legacy-node-drag: task duration 1485ms
legacy-node-drag: script duration 476ms
legacy-node-drag: TBT 0ms
legacy-node-drag: heap used 86.8 MB
legacy-node-drag: DOM nodes 14
legacy-node-drag: event listeners 185
minimap-idle: avg frame time 17ms
minimap-idle: p95 frame time 17ms
minimap-idle: layout duration 0ms
minimap-idle: style recalc duration 8ms
minimap-idle: layout count 0
minimap-idle: style recalc count 8
minimap-idle: task duration 560ms
minimap-idle: script duration 15ms
minimap-idle: TBT 0ms
minimap-idle: heap used 101.3 MB
minimap-idle: DOM nodes 16
minimap-idle: event listeners 5
subgraph-dom-widget-clipping: avg frame time 17ms
subgraph-dom-widget-clipping: p95 frame time 17ms
subgraph-dom-widget-clipping: layout duration 0ms
subgraph-dom-widget-clipping: style recalc duration 13ms
subgraph-dom-widget-clipping: layout count 0
subgraph-dom-widget-clipping: style recalc count 47
subgraph-dom-widget-clipping: task duration 398ms
subgraph-dom-widget-clipping: script duration 118ms
subgraph-dom-widget-clipping: TBT 0ms
subgraph-dom-widget-clipping: heap used 96.0 MB
subgraph-dom-widget-clipping: DOM nodes 20
subgraph-dom-widget-clipping: event listeners 7
subgraph-idle: avg frame time 17ms
subgraph-idle: p95 frame time 17ms
subgraph-idle: layout duration 0ms
subgraph-idle: style recalc duration 9ms
subgraph-idle: layout count 0
subgraph-idle: style recalc count 9
subgraph-idle: task duration 468ms
subgraph-idle: script duration 8ms
subgraph-idle: TBT 0ms
subgraph-idle: heap used 86.0 MB
subgraph-idle: DOM nodes 18
subgraph-idle: event listeners 6
subgraph-mouse-sweep: avg frame time 17ms
subgraph-mouse-sweep: p95 frame time 17ms
subgraph-mouse-sweep: layout duration 7ms
subgraph-mouse-sweep: style recalc duration 40ms
subgraph-mouse-sweep: layout count 18
subgraph-mouse-sweep: style recalc count 78
subgraph-mouse-sweep: task duration 801ms
subgraph-mouse-sweep: script duration 91ms
subgraph-mouse-sweep: TBT 0ms
subgraph-mouse-sweep: heap used 103.0 MB
subgraph-mouse-sweep: DOM nodes 65
subgraph-mouse-sweep: event listeners 4
subgraph-transition-enter: avg frame time 17ms
subgraph-transition-enter: p95 frame time 17ms
subgraph-transition-enter: layout duration 14ms
subgraph-transition-enter: style recalc duration 30ms
subgraph-transition-enter: layout count 15
subgraph-transition-enter: style recalc count 19
subgraph-transition-enter: task duration 956ms
subgraph-transition-enter: script duration 16ms
subgraph-transition-enter: TBT 129ms
subgraph-transition-enter: heap used 116.4 MB
subgraph-transition-enter: DOM nodes 13673
subgraph-transition-enter: event listeners 2373
viewport-pan-sweep: avg frame time 17ms
viewport-pan-sweep: p95 frame time 17ms
viewport-pan-sweep: layout duration 0ms
viewport-pan-sweep: style recalc duration 41ms
viewport-pan-sweep: layout count 0
viewport-pan-sweep: style recalc count 250
viewport-pan-sweep: task duration 4206ms
viewport-pan-sweep: script duration 1035ms
viewport-pan-sweep: TBT 0ms
viewport-pan-sweep: heap used 91.0 MB
viewport-pan-sweep: DOM nodes -282
viewport-pan-sweep: event listeners -142
vue-large-graph-idle: avg frame time 18ms
vue-large-graph-idle: p95 frame time 17ms
vue-large-graph-idle: layout duration 0ms
vue-large-graph-idle: style recalc duration 0ms
vue-large-graph-idle: layout count 0
vue-large-graph-idle: style recalc count 0
vue-large-graph-idle: task duration 16838ms
vue-large-graph-idle: script duration 116ms
vue-large-graph-idle: TBT 0ms
vue-large-graph-idle: heap used 189.1 MB
vue-large-graph-idle: DOM nodes -8312
vue-large-graph-idle: event listeners -16372
vue-large-graph-pan: avg frame time 18ms
vue-large-graph-pan: p95 frame time 17ms
vue-large-graph-pan: layout duration 0ms
vue-large-graph-pan: style recalc duration 19ms
vue-large-graph-pan: layout count 0
vue-large-graph-pan: style recalc count 176
vue-large-graph-pan: task duration 20656ms
vue-large-graph-pan: script duration 436ms
vue-large-graph-pan: TBT 95ms
vue-large-graph-pan: heap used 203.6 MB
vue-large-graph-pan: DOM nodes -8312
vue-large-graph-pan: event listeners -16366
workflow-execution: avg frame time 17ms
workflow-execution: p95 frame time 17ms
workflow-execution: layout duration 1ms
workflow-execution: style recalc duration 18ms
workflow-execution: layout count 4
workflow-execution: style recalc count 9
workflow-execution: task duration 90ms
workflow-execution: script duration 6ms
workflow-execution: TBT 0ms
workflow-execution: heap used 86.3 MB
workflow-execution: DOM nodes 121
workflow-execution: event listeners 37
Raw data
{
  "timestamp": "2026-08-21T04:29:48.202Z",
  "gitSha": "8df7e074c0f46795e28be4eaa039649839d53925",
  "branch": "ryan-di/agent-v1/edit-sent-prompt",
  "measurements": [
    {
      "name": "canvas-idle",
      "durationMs": 2046.9899999999939,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 9.809,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 482.672,
      "heapDeltaBytes": 1297996,
      "heapUsedBytes": 88635072,
      "domNodes": 18,
      "jsHeapTotalBytes": 5505024,
      "scriptDurationMs": 8.187000000000001,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-idle",
      "durationMs": 2027.6099999999815,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 7.723000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 437.05500000000006,
      "heapDeltaBytes": 1190548,
      "heapUsedBytes": 88331484,
      "domNodes": 16,
      "jsHeapTotalBytes": 5505024,
      "scriptDurationMs": 6.650999999999997,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 2004.0179999999737,
      "styleRecalcs": 81,
      "styleRecalcDurationMs": 49.169999999999995,
      "layouts": 14,
      "layoutDurationMs": 6.343,
      "taskDurationMs": 986.2719999999999,
      "heapDeltaBytes": -3583768,
      "heapUsedBytes": 83593104,
      "domNodes": 63,
      "jsHeapTotalBytes": 6553600,
      "scriptDurationMs": 131.998,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.670000000000012,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1858.6289999999508,
      "styleRecalcs": 78,
      "styleRecalcDurationMs": 40.925999999999995,
      "layouts": 14,
      "layoutDurationMs": 5.187,
      "taskDurationMs": 823.567,
      "heapDeltaBytes": -3787080,
      "heapUsedBytes": 85738752,
      "domNodes": 60,
      "jsHeapTotalBytes": 7077888,
      "scriptDurationMs": 113.01700000000001,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1748.3989999999494,
      "styleRecalcs": 30,
      "styleRecalcDurationMs": 19.929000000000002,
      "layouts": 6,
      "layoutDurationMs": 1.3789999999999998,
      "taskDurationMs": 398.35800000000006,
      "heapDeltaBytes": 4512068,
      "heapUsedBytes": 91714956,
      "domNodes": 76,
      "jsHeapTotalBytes": 6029312,
      "scriptDurationMs": 11.247,
      "eventListeners": 19,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1754.34800000005,
      "styleRecalcs": 31,
      "styleRecalcDurationMs": 17.959,
      "layouts": 6,
      "layoutDurationMs": 1.125,
      "taskDurationMs": 363.068,
      "heapDeltaBytes": 4593364,
      "heapUsedBytes": 91716220,
      "domNodes": 78,
      "jsHeapTotalBytes": 6291456,
      "scriptDurationMs": 9.433999999999997,
      "eventListeners": 19,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 572.4229999999579,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 8.584000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 374.30400000000003,
      "heapDeltaBytes": 11366356,
      "heapUsedBytes": 98783952,
      "domNodes": 18,
      "jsHeapTotalBytes": 5242880,
      "scriptDurationMs": 56.705999999999996,
      "eventListeners": 0,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 607.0170000000417,
      "styleRecalcs": 12,
      "styleRecalcDurationMs": 9.645000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 380.97999999999996,
      "heapDeltaBytes": 11867848,
      "heapUsedBytes": 101353464,
      "domNodes": 20,
      "jsHeapTotalBytes": 6029312,
      "scriptDurationMs": 54.964,
      "eventListeners": 2,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "large-graph-idle",
      "durationMs": 2012.4430000000189,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 10.423000000000002,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 635.999,
      "heapDeltaBytes": -2596876,
      "heapUsedBytes": 101970656,
      "domNodes": 20,
      "jsHeapTotalBytes": 5341184,
      "scriptDurationMs": 17.181,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "large-graph-idle",
      "durationMs": 2030.9090000000651,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 9.014999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 548.3549999999999,
      "heapDeltaBytes": -2357948,
      "heapUsedBytes": 101849000,
      "domNodes": 18,
      "jsHeapTotalBytes": 5603328,
      "scriptDurationMs": 14.143000000000002,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2287.381000000039,
      "styleRecalcs": 69,
      "styleRecalcDurationMs": 15.605,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1215.954,
      "heapDeltaBytes": -4354436,
      "heapUsedBytes": 102427528,
      "domNodes": 16,
      "jsHeapTotalBytes": 7114752,
      "scriptDurationMs": 350.278,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2138.9390000000503,
      "styleRecalcs": 68,
      "styleRecalcDurationMs": 14.021000000000003,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1138.144,
      "heapDeltaBytes": -4374024,
      "heapUsedBytes": 102436336,
      "domNodes": 14,
      "jsHeapTotalBytes": 7901184,
      "scriptDurationMs": 334.925,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "large-graph-zoom",
      "durationMs": 3215.5539999999974,
      "styleRecalcs": 65,
      "styleRecalcDurationMs": 15.386000000000001,
      "layouts": 60,
      "layoutDurationMs": 12.658000000000001,
      "taskDurationMs": 1381.603,
      "heapDeltaBytes": -6121752,
      "heapUsedBytes": 100791388,
      "domNodes": 12,
      "jsHeapTotalBytes": 6127616,
      "scriptDurationMs": 392.844,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.80000000000109
    },
    {
      "name": "large-graph-zoom",
      "durationMs": 3130.818999999974,
      "styleRecalcs": 67,
      "styleRecalcDurationMs": 15.958000000000004,
      "layouts": 60,
      "layoutDurationMs": 12.018,
      "taskDurationMs": 1304.981,
      "heapDeltaBytes": -5436384,
      "heapUsedBytes": 100829344,
      "domNodes": 16,
      "jsHeapTotalBytes": 6389760,
      "scriptDurationMs": 376.241,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "legacy-node-drag",
      "durationMs": 2326.427000000024,
      "styleRecalcs": 48,
      "styleRecalcDurationMs": 11.924000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1470.498,
      "heapDeltaBytes": -17803032,
      "heapUsedBytes": 89981524,
      "domNodes": 16,
      "jsHeapTotalBytes": 7176192,
      "scriptDurationMs": 464.18499999999995,
      "eventListeners": 186,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "legacy-node-drag",
      "durationMs": 2193.0700000000343,
      "styleRecalcs": 46,
      "styleRecalcDurationMs": 10.675,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1499.52,
      "heapDeltaBytes": -17271500,
      "heapUsedBytes": 92057316,
      "domNodes": 12,
      "jsHeapTotalBytes": 8232960,
      "scriptDurationMs": 488.806,
      "eventListeners": 184,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "minimap-idle",
      "durationMs": 2006.3900000000103,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 8.504000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 575.72,
      "heapDeltaBytes": -1116504,
      "heapUsedBytes": 106458104,
      "domNodes": 16,
      "jsHeapTotalBytes": 6397952,
      "scriptDurationMs": 16.442999999999998,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "minimap-idle",
      "durationMs": 1995.995999999991,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 7.331999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 543.849,
      "heapDeltaBytes": -1310684,
      "heapUsedBytes": 106077400,
      "domNodes": 16,
      "jsHeapTotalBytes": 6135808,
      "scriptDurationMs": 14.100999999999999,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 592.4019999999928,
      "styleRecalcs": 47,
      "styleRecalcDurationMs": 12.020999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 402.38700000000006,
      "heapDeltaBytes": 12247896,
      "heapUsedBytes": 99341764,
      "domNodes": 20,
      "jsHeapTotalBytes": 5767168,
      "scriptDurationMs": 116.84700000000001,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 605.9149999999818,
      "styleRecalcs": 47,
      "styleRecalcDurationMs": 14.248000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 392.716,
      "heapDeltaBytes": 12707744,
      "heapUsedBytes": 102061576,
      "domNodes": 20,
      "jsHeapTotalBytes": 5505024,
      "scriptDurationMs": 118.18400000000001,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.670000000000012,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-idle",
      "durationMs": 1996.9559999999547,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 8.85,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 499.045,
      "heapDeltaBytes": 1353552,
      "heapUsedBytes": 88591544,
      "domNodes": 16,
      "jsHeapTotalBytes": 5767168,
      "scriptDurationMs": 9.326999999999998,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2007.0180000000164,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 9.315999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 436.293,
      "heapDeltaBytes": 1977128,
      "heapUsedBytes": 91668732,
      "domNodes": 20,
      "jsHeapTotalBytes": 6291456,
      "scriptDurationMs": 6.549000000000001,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1690.0469999999927,
      "styleRecalcs": 78,
      "styleRecalcDurationMs": 40.088,
      "layouts": 18,
      "layoutDurationMs": 6.9559999999999995,
      "taskDurationMs": 819.6880000000001,
      "heapDeltaBytes": 19693144,
      "heapUsedBytes": 109231180,
      "domNodes": 65,
      "jsHeapTotalBytes": 6553600,
      "scriptDurationMs": 92.919,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1696.4859999999362,
      "styleRecalcs": 77,
      "styleRecalcDurationMs": 39.221,
      "layouts": 18,
      "layoutDurationMs": 6.779,
      "taskDurationMs": 782.811,
      "heapDeltaBytes": 19565936,
      "heapUsedBytes": 106876972,
      "domNodes": 65,
      "jsHeapTotalBytes": 6291456,
      "scriptDurationMs": 88.252,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-transition-enter",
      "durationMs": 1415.2639999999792,
      "styleRecalcs": 19,
      "styleRecalcDurationMs": 29.631000000000004,
      "layouts": 15,
      "layoutDurationMs": 13.516999999999998,
      "taskDurationMs": 956.3800000000002,
      "heapDeltaBytes": 1557092,
      "heapUsedBytes": 122087992,
      "domNodes": 13673,
      "jsHeapTotalBytes": 4980736,
      "scriptDurationMs": 15.81500000000001,
      "eventListeners": 2373,
      "totalBlockingTimeMs": 129,
      "frameDurationMs": 16.670000000000012,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "viewport-pan-sweep",
      "durationMs": 8359.316000000035,
      "styleRecalcs": 250,
      "styleRecalcDurationMs": 44.366,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 4347.765,
      "heapDeltaBytes": -21839228,
      "heapUsedBytes": 84372456,
      "domNodes": -282,
      "jsHeapTotalBytes": 528384,
      "scriptDurationMs": 1040.4070000000002,
      "eventListeners": -143,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "viewport-pan-sweep",
      "durationMs": 8221.98800000001,
      "styleRecalcs": 250,
      "styleRecalcDurationMs": 36.969,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 4063.8300000000004,
      "heapDeltaBytes": 2293408,
      "heapUsedBytes": 106531960,
      "domNodes": -282,
      "jsHeapTotalBytes": 90112,
      "scriptDurationMs": 1029.9959999999999,
      "eventListeners": -141,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 17678.314,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 16745.454999999998,
      "heapDeltaBytes": -27928900,
      "heapUsedBytes": 199003548,
      "domNodes": -8312,
      "jsHeapTotalBytes": 13336576,
      "scriptDurationMs": 116.092,
      "eventListeners": -16371,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.776666666666642,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 17908.811000000016,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 16930.279,
      "heapDeltaBytes": -29768096,
      "heapUsedBytes": 197498000,
      "domNodes": -8312,
      "jsHeapTotalBytes": 14385152,
      "scriptDurationMs": 115.712,
      "eventListeners": -16373,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 18.333333333333332,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 21438.518999999986,
      "styleRecalcs": 177,
      "styleRecalcDurationMs": 19.569000000000003,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 20819.55,
      "heapDeltaBytes": -27322908,
      "heapUsedBytes": 212421408,
      "domNodes": -8312,
      "jsHeapTotalBytes": 13529088,
      "scriptDurationMs": 450.263,
      "eventListeners": -16365,
      "totalBlockingTimeMs": 134,
      "frameDurationMs": 18.33666666666674,
      "p95FrameDurationMs": 16.80000000000291
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 21135.081000000013,
      "styleRecalcs": 175,
      "styleRecalcDurationMs": 18.107999999999958,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 20491.815000000002,
      "heapDeltaBytes": -26115432,
      "heapUsedBytes": 214592764,
      "domNodes": -8312,
      "jsHeapTotalBytes": 13004800,
      "scriptDurationMs": 421.412,
      "eventListeners": -16367,
      "totalBlockingTimeMs": 55,
      "frameDurationMs": 17.776666666666642,
      "p95FrameDurationMs": 16.80000000000291
    },
    {
      "name": "workflow-execution",
      "durationMs": 126.2419999999338,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 19.373,
      "layouts": 6,
      "layoutDurationMs": 2.037,
      "taskDurationMs": 95.11299999999999,
      "heapDeltaBytes": 2961164,
      "heapUsedBytes": 89214332,
      "domNodes": 132,
      "jsHeapTotalBytes": 0,
      "scriptDurationMs": 6.368,
      "eventListeners": 25,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "workflow-execution",
      "durationMs": 113.94299999994928,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 15.861,
      "layouts": 2,
      "layoutDurationMs": 0.7929999999999998,
      "taskDurationMs": 84.23700000000001,
      "heapDeltaBytes": 3159940,
      "heapUsedBytes": 91821452,
      "domNodes": 110,
      "jsHeapTotalBytes": 524288,
      "scriptDurationMs": 5.905999999999998,
      "eventListeners": 49,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    }
  ]
}

@ryan-di
ryan-di marked this pull request as ready for review August 21, 2026 04:17
@dosubot dosubot Bot added the size:M This PR changes 30-99 lines, ignoring generated files. label Aug 21, 2026
@github-actions github-actions Bot added the risk:R2 PR risk grade (advisory shadow check; grader-owned) label Aug 21, 2026
@codecov

codecov Bot commented Aug 21, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 96.42857% with 1 line in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
...ensions/agent/composables/agent/useAgentSession.ts 94.44% 1 Missing ⚠️
@@                     Coverage Diff                      @@
##           nathaniel/agent-panel-v1   #15525      +/-   ##
============================================================
+ Coverage                     77.50%   79.84%   +2.33%     
============================================================
  Files                          2263     1937     -326     
  Lines                        122289   117538    -4751     
  Branches                      36629    34465    -2164     
============================================================
- Hits                          94785    93847     -938     
+ Misses                        26896    23190    -3706     
+ Partials                        608      501     -107     
Flag Coverage Δ
unit 74.34% <96.42%> (+0.04%) ⬆️
website-unit ?

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
src/workbench/extensions/agent/AgentPanelRoot.vue 98.04% <ø> (ø)
...h/extensions/agent/components/agent/AgentPanel.vue 97.16% <100.00%> (+0.02%) ⬆️
...nch/extensions/agent/components/agent/Composer.vue 99.09% <100.00%> (+0.01%) ⬆️
...nsions/agent/components/agent/ConversationView.vue 100.00% <100.00%> (ø)
...ons/agent/components/agent/message/UserMessage.vue 100.00% <100.00%> (ø)
...ensions/agent/composables/agent/useAgentSession.ts 96.73% <94.44%> (-0.19%) ⬇️

... and 340 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:R2 PR risk grade (advisory shadow check; grader-owned) size:M This PR changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant