Skip to content

Let the Agent add menu fit its content - #15530

Open
ryan-di wants to merge 2 commits into
nathaniel/agent-panel-v1from
ryan-di/agent-v1/composer-menu-width
Open

Let the Agent add menu fit its content#15530
ryan-di wants to merge 2 commits into
nathaniel/agent-panel-v1from
ryan-di/agent-v1/composer-menu-width

Conversation

@ryan-di

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

Copy link
Copy Markdown
Contributor

Summary

  • let the Agent composer's add-to-prompt menu grow with its content
  • retain the existing 186px minimum while restoring balanced insets around the widest item
  • keep menu actions, alignment, item spacing, and keyboard behavior unchanged

Changes

  • What: Replace the fixed menu width with intrinsic sizing plus the existing minimum, backed by a rendered-geometry browser contract.

Validation

  • targeted FE-1707 Cloud Playwright contract: 3/3
  • Composer component suite: 41/41
  • format, lint, knip, production/browser typecheck, Stylelint, and diff checks passed
  • full Agent spec: 3/5; the two unchanged failures are Cloud flag-off visibility and the existing initial tool-summary expanded state

Review Focus

  • Confirm the menu remains compact at a 186px minimum and grows only when its content requires it.
  • The geometry contract checks that the widest current item keeps balanced left/right content insets.

Screenshots

  • No static screenshot included; the browser geometry contract validates the affected open-menu state directly.

Notes

Linear: FE-1707

@dosubot dosubot Bot added the size:XS This PR changes 0-9 lines, ignoring generated files. label Aug 21, 2026
@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: e3ba5ee5-8ec1-4aff-aac7-acfb2258235a

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, 05:10:06 AM UTC

Links

🎭 Playwright: ❌ 1724 passed, 50 failed · 5 flaky

❌ Failed Tests

📊 Browser Reports
  • chromium: View Report (✅ 1713 / ❌ 45 / ⚠️ 5 / ⏭️ 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.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 86.7 MB heap
canvas-mouse-sweep: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 81.7 MB heap
canvas-zoom-sweep: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 90.1 MB heap
dom-widget-clipping: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 96.4 MB heap
large-graph-idle: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 98.3 MB heap
large-graph-pan: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 96.0 MB heap
large-graph-zoom: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 98.1 MB heap
legacy-node-drag: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 86.0 MB heap
minimap-idle: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 100.1 MB heap
subgraph-dom-widget-clipping: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 94.5 MB heap
subgraph-idle: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 86.2 MB heap
subgraph-mouse-sweep: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 103.0 MB heap
subgraph-transition-enter: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 58ms TBT · 118.5 MB heap
viewport-pan-sweep: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 94.7 MB heap
vue-large-graph-idle: · 58.1 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 192.5 MB heap
vue-large-graph-pan: · 57.1 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 2ms TBT · 207.7 MB heap
workflow-execution: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 87.2 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 7ms
canvas-idle: layout count 0
canvas-idle: style recalc count 10
canvas-idle: task duration 355ms
canvas-idle: script duration 8ms
canvas-idle: TBT 0ms
canvas-idle: heap used 86.7 MB
canvas-idle: DOM nodes 20
canvas-idle: event listeners 5
canvas-mouse-sweep: avg frame time 17ms
canvas-mouse-sweep: p95 frame time 17ms
canvas-mouse-sweep: layout duration 4ms
canvas-mouse-sweep: style recalc duration 27ms
canvas-mouse-sweep: layout count 14
canvas-mouse-sweep: style recalc count 75
canvas-mouse-sweep: task duration 506ms
canvas-mouse-sweep: script duration 70ms
canvas-mouse-sweep: TBT 0ms
canvas-mouse-sweep: heap used 81.7 MB
canvas-mouse-sweep: DOM nodes 61
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 16ms
canvas-zoom-sweep: layout count 6
canvas-zoom-sweep: style recalc count 32
canvas-zoom-sweep: task duration 287ms
canvas-zoom-sweep: script duration 11ms
canvas-zoom-sweep: TBT 0ms
canvas-zoom-sweep: heap used 90.1 MB
canvas-zoom-sweep: DOM nodes 78
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 7ms
dom-widget-clipping: layout count 0
dom-widget-clipping: style recalc count 14
dom-widget-clipping: task duration 231ms
dom-widget-clipping: script duration 36ms
dom-widget-clipping: TBT 0ms
dom-widget-clipping: heap used 96.4 MB
dom-widget-clipping: DOM nodes 23
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 6ms
large-graph-idle: layout count 0
large-graph-idle: style recalc count 10
large-graph-idle: task duration 335ms
large-graph-idle: script duration 12ms
large-graph-idle: TBT 0ms
large-graph-idle: heap used 98.3 MB
large-graph-idle: DOM nodes 20
large-graph-idle: event listeners 4
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 767ms
large-graph-pan: script duration 229ms
large-graph-pan: TBT 0ms
large-graph-pan: heap used 96.0 MB
large-graph-pan: DOM nodes 18
large-graph-pan: event listeners 6
large-graph-zoom: avg frame time 17ms
large-graph-zoom: p95 frame time 17ms
large-graph-zoom: layout duration 13ms
large-graph-zoom: style recalc duration 16ms
large-graph-zoom: layout count 60
large-graph-zoom: style recalc count 68
large-graph-zoom: task duration 916ms
large-graph-zoom: script duration 262ms
large-graph-zoom: TBT 0ms
large-graph-zoom: heap used 98.1 MB
large-graph-zoom: DOM nodes 18
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 12ms
legacy-node-drag: layout count 0
legacy-node-drag: style recalc count 48
legacy-node-drag: task duration 976ms
legacy-node-drag: script duration 311ms
legacy-node-drag: TBT 0ms
legacy-node-drag: heap used 86.0 MB
legacy-node-drag: DOM nodes 16
legacy-node-drag: event listeners 186
minimap-idle: avg frame time 17ms
minimap-idle: p95 frame time 17ms
minimap-idle: layout duration 0ms
minimap-idle: style recalc duration 7ms
minimap-idle: layout count 0
minimap-idle: style recalc count 9
minimap-idle: task duration 389ms
minimap-idle: script duration 14ms
minimap-idle: TBT 0ms
minimap-idle: heap used 100.1 MB
minimap-idle: DOM nodes 18
minimap-idle: event listeners 6
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 11ms
subgraph-dom-widget-clipping: layout count 0
subgraph-dom-widget-clipping: style recalc count 48
subgraph-dom-widget-clipping: task duration 273ms
subgraph-dom-widget-clipping: script duration 80ms
subgraph-dom-widget-clipping: TBT 0ms
subgraph-dom-widget-clipping: heap used 94.5 MB
subgraph-dom-widget-clipping: DOM nodes 22
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 7ms
subgraph-idle: layout count 0
subgraph-idle: style recalc count 10
subgraph-idle: task duration 262ms
subgraph-idle: script duration 5ms
subgraph-idle: TBT 0ms
subgraph-idle: heap used 86.2 MB
subgraph-idle: DOM nodes 20
subgraph-idle: event listeners 6
subgraph-mouse-sweep: avg frame time 17ms
subgraph-mouse-sweep: p95 frame time 17ms
subgraph-mouse-sweep: layout duration 6ms
subgraph-mouse-sweep: style recalc duration 30ms
subgraph-mouse-sweep: layout count 18
subgraph-mouse-sweep: style recalc count 78
subgraph-mouse-sweep: task duration 539ms
subgraph-mouse-sweep: script duration 71ms
subgraph-mouse-sweep: TBT 0ms
subgraph-mouse-sweep: heap used 103.0 MB
subgraph-mouse-sweep: DOM nodes 67
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 10ms
subgraph-transition-enter: style recalc duration 20ms
subgraph-transition-enter: layout count 17
subgraph-transition-enter: style recalc count 21
subgraph-transition-enter: task duration 544ms
subgraph-transition-enter: script duration 10ms
subgraph-transition-enter: TBT 58ms
subgraph-transition-enter: heap used 118.5 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 43ms
viewport-pan-sweep: layout count 0
viewport-pan-sweep: style recalc count 249
viewport-pan-sweep: task duration 2800ms
viewport-pan-sweep: script duration 721ms
viewport-pan-sweep: TBT 0ms
viewport-pan-sweep: heap used 94.7 MB
viewport-pan-sweep: DOM nodes -281
viewport-pan-sweep: event listeners -154
vue-large-graph-idle: avg frame time 17ms
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 11548ms
vue-large-graph-idle: script duration 73ms
vue-large-graph-idle: TBT 0ms
vue-large-graph-idle: heap used 192.5 MB
vue-large-graph-idle: DOM nodes -8314
vue-large-graph-idle: event listeners -16381
vue-large-graph-pan: avg frame time 17ms
vue-large-graph-pan: p95 frame time 17ms
vue-large-graph-pan: layout duration 0ms
vue-large-graph-pan: style recalc duration 13ms
vue-large-graph-pan: layout count 0
vue-large-graph-pan: style recalc count 72
vue-large-graph-pan: task duration 14154ms
vue-large-graph-pan: script duration 303ms
vue-large-graph-pan: TBT 2ms
vue-large-graph-pan: heap used 207.7 MB
vue-large-graph-pan: DOM nodes -8312
vue-large-graph-pan: event listeners -16376
workflow-execution: avg frame time 17ms
workflow-execution: p95 frame time 17ms
workflow-execution: layout duration 2ms
workflow-execution: style recalc duration 13ms
workflow-execution: layout count 7
workflow-execution: style recalc count 12
workflow-execution: task duration 64ms
workflow-execution: script duration 5ms
workflow-execution: TBT 0ms
workflow-execution: heap used 87.2 MB
workflow-execution: DOM nodes 138
workflow-execution: event listeners 61
Raw data
{
  "timestamp": "2026-08-21T05:19:04.690Z",
  "gitSha": "217cd6afc8ad2d3d374cfed379906c27c530b657",
  "branch": "ryan-di/agent-v1/composer-menu-width",
  "measurements": [
    {
      "name": "canvas-idle",
      "durationMs": 2082.380999999998,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 7.809,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 430.71200000000005,
      "heapDeltaBytes": 1496416,
      "heapUsedBytes": 90789324,
      "domNodes": 20,
      "jsHeapTotalBytes": 6291456,
      "scriptDurationMs": 10.670999999999998,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "canvas-idle",
      "durationMs": 2009.636999999998,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 5.552999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 278.627,
      "heapDeltaBytes": 1562356,
      "heapUsedBytes": 91100052,
      "domNodes": 20,
      "jsHeapTotalBytes": 5767168,
      "scriptDurationMs": 4.926,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1699.5600000000195,
      "styleRecalcs": 75,
      "styleRecalcDurationMs": 29.134,
      "layouts": 14,
      "layoutDurationMs": 4.276999999999999,
      "taskDurationMs": 542.42,
      "heapDeltaBytes": -3790232,
      "heapUsedBytes": 85539604,
      "domNodes": 61,
      "jsHeapTotalBytes": 6815744,
      "scriptDurationMs": 75.394,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1688.8000000000147,
      "styleRecalcs": 75,
      "styleRecalcDurationMs": 25.246000000000006,
      "layouts": 14,
      "layoutDurationMs": 4.042,
      "taskDurationMs": 468.79699999999997,
      "heapDeltaBytes": -3871308,
      "heapUsedBytes": 85735524,
      "domNodes": 61,
      "jsHeapTotalBytes": 6553600,
      "scriptDurationMs": 64.888,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1668.9910000000054,
      "styleRecalcs": 32,
      "styleRecalcDurationMs": 15.373999999999999,
      "layouts": 6,
      "layoutDurationMs": 1.1729999999999998,
      "taskDurationMs": 267.424,
      "heapDeltaBytes": 4892220,
      "heapUsedBytes": 94391248,
      "domNodes": 79,
      "jsHeapTotalBytes": 6291456,
      "scriptDurationMs": 9.923,
      "eventListeners": 19,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1707.3290000000725,
      "styleRecalcs": 31,
      "styleRecalcDurationMs": 17.54,
      "layouts": 6,
      "layoutDurationMs": 1.101,
      "taskDurationMs": 306.183,
      "heapDeltaBytes": 4938828,
      "heapUsedBytes": 94475156,
      "domNodes": 77,
      "jsHeapTotalBytes": 5767168,
      "scriptDurationMs": 12.681,
      "eventListeners": 19,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 407.78499999998985,
      "styleRecalcs": 14,
      "styleRecalcDurationMs": 8.255999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 248.08599999999998,
      "heapDeltaBytes": 11837400,
      "heapUsedBytes": 101115016,
      "domNodes": 24,
      "jsHeapTotalBytes": 6029312,
      "scriptDurationMs": 38.61000000000001,
      "eventListeners": 0,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.663333333333338,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 391.1550000000261,
      "styleRecalcs": 13,
      "styleRecalcDurationMs": 6.674000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 214.05,
      "heapDeltaBytes": 11658412,
      "heapUsedBytes": 101065536,
      "domNodes": 22,
      "jsHeapTotalBytes": 5767168,
      "scriptDurationMs": 34.071,
      "eventListeners": 2,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000273
    },
    {
      "name": "large-graph-idle",
      "durationMs": 1991.0750000000235,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 6.391000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 351.885,
      "heapDeltaBytes": -1990812,
      "heapUsedBytes": 104382488,
      "domNodes": 18,
      "jsHeapTotalBytes": 6135808,
      "scriptDurationMs": 11.668999999999999,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-idle",
      "durationMs": 1997.4359999999933,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 6.122999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 318.78499999999997,
      "heapDeltaBytes": -2441648,
      "heapUsedBytes": 101831956,
      "domNodes": 22,
      "jsHeapTotalBytes": 5865472,
      "scriptDurationMs": 11.411999999999999,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2055.645000000027,
      "styleRecalcs": 69,
      "styleRecalcDurationMs": 15.402999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 821.5999999999999,
      "heapDeltaBytes": -5023220,
      "heapUsedBytes": 99983600,
      "domNodes": 18,
      "jsHeapTotalBytes": 6615040,
      "scriptDurationMs": 238.90599999999998,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2061.692999999991,
      "styleRecalcs": 68,
      "styleRecalcDurationMs": 15.006,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 712.5440000000001,
      "heapDeltaBytes": -5443200,
      "heapUsedBytes": 101370600,
      "domNodes": 18,
      "jsHeapTotalBytes": 7639040,
      "scriptDurationMs": 218.18099999999998,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-zoom",
      "durationMs": 3103.595999999982,
      "styleRecalcs": 67,
      "styleRecalcDurationMs": 16.216,
      "layouts": 60,
      "layoutDurationMs": 13.357999999999999,
      "taskDurationMs": 951.9129999999999,
      "heapDeltaBytes": -3875988,
      "heapUsedBytes": 104553064,
      "domNodes": 16,
      "jsHeapTotalBytes": 8495104,
      "scriptDurationMs": 267.801,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "large-graph-zoom",
      "durationMs": 3056.2079999999696,
      "styleRecalcs": 68,
      "styleRecalcDurationMs": 16.361,
      "layouts": 60,
      "layoutDurationMs": 13.339,
      "taskDurationMs": 880.1620000000001,
      "heapDeltaBytes": -5347792,
      "heapUsedBytes": 101267476,
      "domNodes": 20,
      "jsHeapTotalBytes": 6389760,
      "scriptDurationMs": 255.38499999999996,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "legacy-node-drag",
      "durationMs": 2071.021999999971,
      "styleRecalcs": 48,
      "styleRecalcDurationMs": 11,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1012.294,
      "heapDeltaBytes": -17192412,
      "heapUsedBytes": 90392564,
      "domNodes": 16,
      "jsHeapTotalBytes": 6914048,
      "scriptDurationMs": 328.02,
      "eventListeners": 186,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "legacy-node-drag",
      "durationMs": 2080.1549999999907,
      "styleRecalcs": 48,
      "styleRecalcDurationMs": 12.021,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 938.818,
      "heapDeltaBytes": -17127892,
      "heapUsedBytes": 90051112,
      "domNodes": 16,
      "jsHeapTotalBytes": 6914048,
      "scriptDurationMs": 294.01800000000003,
      "eventListeners": 186,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "minimap-idle",
      "durationMs": 1998.9799999999605,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 7.184999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 454.1189999999999,
      "heapDeltaBytes": -1382000,
      "heapUsedBytes": 106106468,
      "domNodes": 18,
      "jsHeapTotalBytes": 6397952,
      "scriptDurationMs": 15.673,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "minimap-idle",
      "durationMs": 2002.9140000000325,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 6.072000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 323.77599999999995,
      "heapDeltaBytes": -1978348,
      "heapUsedBytes": 103833940,
      "domNodes": 18,
      "jsHeapTotalBytes": 6127616,
      "scriptDurationMs": 11.777,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 442.65300000000707,
      "styleRecalcs": 49,
      "styleRecalcDurationMs": 11.770000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 284.00000000000006,
      "heapDeltaBytes": 11881400,
      "heapUsedBytes": 99003768,
      "domNodes": 24,
      "jsHeapTotalBytes": 5767168,
      "scriptDurationMs": 82.51400000000001,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999727
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 396.3820000000169,
      "styleRecalcs": 47,
      "styleRecalcDurationMs": 9.799000000000003,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 261.307,
      "heapDeltaBytes": 11916868,
      "heapUsedBytes": 99153384,
      "domNodes": 20,
      "jsHeapTotalBytes": 5505024,
      "scriptDurationMs": 78.106,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666682,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-idle",
      "durationMs": 1992.603000000031,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 6.871,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 276.42100000000005,
      "heapDeltaBytes": 1601492,
      "heapUsedBytes": 88917008,
      "domNodes": 20,
      "jsHeapTotalBytes": 6029312,
      "scriptDurationMs": 5.86,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-idle",
      "durationMs": 1992.5479999999425,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 6.683999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 248.08599999999998,
      "heapDeltaBytes": 2259940,
      "heapUsedBytes": 91915336,
      "domNodes": 20,
      "jsHeapTotalBytes": 6029312,
      "scriptDurationMs": 4.102999999999999,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1711.0900000000129,
      "styleRecalcs": 77,
      "styleRecalcDurationMs": 32.789,
      "layouts": 18,
      "layoutDurationMs": 6.0489999999999995,
      "taskDurationMs": 594.6170000000001,
      "heapDeltaBytes": 19614740,
      "heapUsedBytes": 106878700,
      "domNodes": 65,
      "jsHeapTotalBytes": 6291456,
      "scriptDurationMs": 79.19900000000001,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1673.6640000000307,
      "styleRecalcs": 79,
      "styleRecalcDurationMs": 28.029,
      "layouts": 18,
      "layoutDurationMs": 5.082,
      "taskDurationMs": 483.5539999999999,
      "heapDeltaBytes": 19646960,
      "heapUsedBytes": 109124732,
      "domNodes": 69,
      "jsHeapTotalBytes": 6291456,
      "scriptDurationMs": 63.78500000000001,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-transition-enter",
      "durationMs": 815.215999999964,
      "styleRecalcs": 21,
      "styleRecalcDurationMs": 19.813,
      "layouts": 17,
      "layoutDurationMs": 9.506000000000002,
      "taskDurationMs": 543.5909999999999,
      "heapDeltaBytes": 21019012,
      "heapUsedBytes": 124235540,
      "domNodes": 13673,
      "jsHeapTotalBytes": 5767168,
      "scriptDurationMs": 10.410000000000002,
      "eventListeners": 2373,
      "totalBlockingTimeMs": 58,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "viewport-pan-sweep",
      "durationMs": 8107.672000000037,
      "styleRecalcs": 249,
      "styleRecalcDurationMs": 43.53,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 2936.1300000000006,
      "heapDeltaBytes": 1444232,
      "heapUsedBytes": 107368864,
      "domNodes": -281,
      "jsHeapTotalBytes": 720896,
      "scriptDurationMs": 727.982,
      "eventListeners": -139,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.669999999999952,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "viewport-pan-sweep",
      "durationMs": 8090.188000000012,
      "styleRecalcs": 249,
      "styleRecalcDurationMs": 41.717,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 2663.445,
      "heapDeltaBytes": -13085336,
      "heapUsedBytes": 91310176,
      "domNodes": -280,
      "jsHeapTotalBytes": -434176,
      "scriptDurationMs": 714.505,
      "eventListeners": -169,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333338,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 13133.189000000017,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 12480.805999999999,
      "heapDeltaBytes": -57022792,
      "heapUsedBytes": 202322352,
      "domNodes": -8316,
      "jsHeapTotalBytes": 20676608,
      "scriptDurationMs": 85.985,
      "eventListeners": -16379,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.219999999999953,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 11517.540999999937,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 10616.139000000001,
      "heapDeltaBytes": -41718348,
      "heapUsedBytes": 201345464,
      "domNodes": -8312,
      "jsHeapTotalBytes": 12058624,
      "scriptDurationMs": 59.818999999999996,
      "eventListeners": -16383,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.220000000000073,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 14885.4409999999,
      "styleRecalcs": 72,
      "styleRecalcDurationMs": 13.818999999999997,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 14296.544,
      "heapDeltaBytes": -26158724,
      "heapUsedBytes": 215819812,
      "domNodes": -8312,
      "jsHeapTotalBytes": 15626240,
      "scriptDurationMs": 308.30100000000004,
      "eventListeners": -16375,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.776666666666642,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 14562.699000000066,
      "styleRecalcs": 72,
      "styleRecalcDurationMs": 12.701000000000018,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 14010.677999999998,
      "heapDeltaBytes": -8245204,
      "heapUsedBytes": 219749920,
      "domNodes": -8312,
      "jsHeapTotalBytes": 20901888,
      "scriptDurationMs": 298.161,
      "eventListeners": -16377,
      "totalBlockingTimeMs": 3,
      "frameDurationMs": 17.219999999999953,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "workflow-execution",
      "durationMs": 73.41900000005808,
      "styleRecalcs": 6,
      "styleRecalcDurationMs": 10.741,
      "layouts": 5,
      "layoutDurationMs": 1.55,
      "taskDurationMs": 55.146,
      "heapDeltaBytes": 3082792,
      "heapUsedBytes": 89334348,
      "domNodes": 126,
      "jsHeapTotalBytes": 0,
      "scriptDurationMs": 4.725,
      "eventListeners": 25,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.663333333333338,
      "p95FrameDurationMs": 16.700000000000273
    },
    {
      "name": "workflow-execution",
      "durationMs": 418.7089999999216,
      "styleRecalcs": 17,
      "styleRecalcDurationMs": 15.16,
      "layouts": 9,
      "layoutDurationMs": 2.2960000000000003,
      "taskDurationMs": 73.769,
      "heapDeltaBytes": 5100832,
      "heapUsedBytes": 93570352,
      "domNodes": 149,
      "jsHeapTotalBytes": 0,
      "scriptDurationMs": 5.018,
      "eventListeners": 97,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    }
  ]
}

@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

✅ All modified and coverable lines are covered by tests.

@@                     Coverage Diff                      @@
##           nathaniel/agent-panel-v1   #15530      +/-   ##
============================================================
+ Coverage                     77.50%   79.84%   +2.33%     
============================================================
  Files                          2263     1937     -326     
  Lines                        122289   117510    -4779     
  Branches                      36629    35529    -1100     
============================================================
- Hits                          94785    93820     -965     
+ Misses                        26896    23189    -3707     
+ Partials                        608      501     -107     
Flag Coverage Δ
unit 74.33% <ø> (+0.03%) ⬆️
website-unit ?

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

Files with missing lines Coverage Δ
...nch/extensions/agent/components/agent/Composer.vue 99.08% <ø> (+<0.01%) ⬆️

... 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:XS This PR changes 0-9 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant