Skip to content

Align Agent chat rename and history navigation - #15521

Open
ryan-di wants to merge 2 commits into
nathaniel/agent-panel-v1from
ryan-di/agent-v1/rename-chat
Open

Align Agent chat rename and history navigation#15521
ryan-di wants to merge 2 commits into
nathaniel/agent-panel-v1from
ryan-di/agent-v1/rename-chat

Conversation

@ryan-di

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

Copy link
Copy Markdown
Contributor

Summary

  • add a dedicated Chat History control so the current title can single-click into inline rename
  • keep the chat-options chevron beside the rendered title while allowing the title to use available width before truncating
  • separate the History back icon from the non-interactive Chat History heading
  • preserve the existing menu rename path and keyboard behavior

Validation

  • AgentPanel.test.ts: 4/4
  • ChatHistoryScreen.test.ts: 10/10
  • changed AgentPanelRoot behavior and stale back-control assertions verified
  • pre-commit oxfmt, oxlint, ESLint, Stylelint, typecheck, and knip passed
  • manually reviewed through the local Cloud dev proxy targeting agent.comfy.org

Notes

Linear: FE-1702

@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: 200cf73b-b8a4-4785-bb56-830eaaf8c1f8

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.

@ryan-di ryan-di added the preview-cpu Creates a preview ephemeral environment for this PR (CPU only) label Aug 21, 2026 — with ChatGPT Codex Connector
@github-actions

github-actions Bot commented Aug 21, 2026

Copy link
Copy Markdown

🎭 Playwright: ❌ 1716 passed, 54 failed · 5 flaky

❌ Failed Tests

📊 Browser Reports
  • chromium: View Report (✅ 1705 / ❌ 49 / ⚠️ 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)

🎨 Storybook: ✅ Built — View Storybook

Details

⏰ Completed at: 08/21/2026, 03:12:24 AM UTC

Links

📦 Bundle Size

⏳ Size data collection in progress…

⚡ Performance Report

canvas-idle: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 85.8 MB heap
canvas-mouse-sweep: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 80.5 MB heap
canvas-zoom-sweep: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 88.8 MB heap
dom-widget-clipping: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 95.5 MB heap
large-graph-idle: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 98.4 MB heap
large-graph-pan: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 96.5 MB heap
large-graph-zoom: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 98.0 MB heap
legacy-node-drag: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 90.0 MB heap
minimap-idle: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 101.4 MB heap
subgraph-dom-widget-clipping: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 96.1 MB heap
subgraph-idle: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 87.1 MB heap
subgraph-mouse-sweep: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 104.1 MB heap
subgraph-transition-enter: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 145ms TBT · 104.1 MB heap
viewport-pan-sweep: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 92.3 MB heap
vue-large-graph-idle: · 56.2 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 189.5 MB heap
vue-large-graph-pan: · 56.3 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 80ms TBT · 197.8 MB heap
workflow-execution: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 87.4 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 8
canvas-idle: task duration 549ms
canvas-idle: script duration 10ms
canvas-idle: TBT 0ms
canvas-idle: heap used 85.8 MB
canvas-idle: DOM nodes 15
canvas-idle: event listeners 6
canvas-mouse-sweep: avg frame time 17ms
canvas-mouse-sweep: p95 frame time 17ms
canvas-mouse-sweep: layout duration 5ms
canvas-mouse-sweep: style recalc duration 40ms
canvas-mouse-sweep: layout count 14
canvas-mouse-sweep: style recalc count 78
canvas-mouse-sweep: task duration 874ms
canvas-mouse-sweep: script duration 116ms
canvas-mouse-sweep: TBT 0ms
canvas-mouse-sweep: heap used 80.5 MB
canvas-mouse-sweep: DOM nodes 61
canvas-mouse-sweep: event listeners 5
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 423ms
canvas-zoom-sweep: script duration 13ms
canvas-zoom-sweep: TBT 0ms
canvas-zoom-sweep: heap used 88.8 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 11
dom-widget-clipping: task duration 377ms
dom-widget-clipping: script duration 57ms
dom-widget-clipping: TBT 0ms
dom-widget-clipping: heap used 95.5 MB
dom-widget-clipping: DOM nodes 18
dom-widget-clipping: event listeners 2
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 9ms
large-graph-idle: layout count 0
large-graph-idle: style recalc count 9
large-graph-idle: task duration 613ms
large-graph-idle: script duration 16ms
large-graph-idle: TBT 0ms
large-graph-idle: heap used 98.4 MB
large-graph-idle: DOM nodes 18
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 1259ms
large-graph-pan: script duration 356ms
large-graph-pan: TBT 0ms
large-graph-pan: heap used 96.5 MB
large-graph-pan: DOM nodes 15
large-graph-pan: event listeners 8
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 65
large-graph-zoom: task duration 1446ms
large-graph-zoom: script duration 398ms
large-graph-zoom: TBT 0ms
large-graph-zoom: heap used 98.0 MB
large-graph-zoom: DOM nodes 12
large-graph-zoom: event listeners 9
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 1516ms
legacy-node-drag: script duration 477ms
legacy-node-drag: TBT 0ms
legacy-node-drag: heap used 90.0 MB
legacy-node-drag: DOM nodes 15
legacy-node-drag: event listeners 187
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 9
minimap-idle: task duration 631ms
minimap-idle: script duration 17ms
minimap-idle: TBT 0ms
minimap-idle: heap used 101.4 MB
minimap-idle: DOM nodes 17
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 12ms
subgraph-dom-widget-clipping: layout count 0
subgraph-dom-widget-clipping: style recalc count 47
subgraph-dom-widget-clipping: task duration 415ms
subgraph-dom-widget-clipping: script duration 125ms
subgraph-dom-widget-clipping: TBT 0ms
subgraph-dom-widget-clipping: heap used 96.1 MB
subgraph-dom-widget-clipping: DOM nodes 20
subgraph-dom-widget-clipping: event listeners 8
subgraph-idle: avg frame time 17ms
subgraph-idle: p95 frame time 17ms
subgraph-idle: layout duration 0ms
subgraph-idle: style recalc duration 10ms
subgraph-idle: layout count 0
subgraph-idle: style recalc count 10
subgraph-idle: task duration 501ms
subgraph-idle: script duration 9ms
subgraph-idle: TBT 0ms
subgraph-idle: heap used 87.1 MB
subgraph-idle: DOM nodes 19
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 41ms
subgraph-mouse-sweep: layout count 18
subgraph-mouse-sweep: style recalc count 78
subgraph-mouse-sweep: task duration 801ms
subgraph-mouse-sweep: script duration 90ms
subgraph-mouse-sweep: TBT 0ms
subgraph-mouse-sweep: heap used 104.1 MB
subgraph-mouse-sweep: DOM nodes 66
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 32ms
subgraph-transition-enter: layout count 17
subgraph-transition-enter: style recalc count 21
subgraph-transition-enter: task duration 972ms
subgraph-transition-enter: script duration 19ms
subgraph-transition-enter: TBT 145ms
subgraph-transition-enter: heap used 104.1 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 40ms
viewport-pan-sweep: layout count 0
viewport-pan-sweep: style recalc count 251
viewport-pan-sweep: task duration 4550ms
viewport-pan-sweep: script duration 1082ms
viewport-pan-sweep: TBT 0ms
viewport-pan-sweep: heap used 92.3 MB
viewport-pan-sweep: DOM nodes -280
viewport-pan-sweep: event listeners -143
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 16938ms
vue-large-graph-idle: script duration 115ms
vue-large-graph-idle: TBT 0ms
vue-large-graph-idle: heap used 189.5 MB
vue-large-graph-idle: DOM nodes -8312
vue-large-graph-idle: event listeners -16370
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 21ms
vue-large-graph-pan: layout count 0
vue-large-graph-pan: style recalc count 175
vue-large-graph-pan: task duration 20745ms
vue-large-graph-pan: script duration 436ms
vue-large-graph-pan: TBT 80ms
vue-large-graph-pan: heap used 197.8 MB
vue-large-graph-pan: DOM nodes -8312
vue-large-graph-pan: event listeners -16363
workflow-execution: avg frame time 17ms
workflow-execution: p95 frame time 17ms
workflow-execution: layout duration 1ms
workflow-execution: style recalc duration 19ms
workflow-execution: layout count 3
workflow-execution: style recalc count 12
workflow-execution: task duration 98ms
workflow-execution: script duration 9ms
workflow-execution: TBT 0ms
workflow-execution: heap used 87.4 MB
workflow-execution: DOM nodes 135
workflow-execution: event listeners 62
Raw data
{
  "timestamp": "2026-08-21T03:24:18.810Z",
  "gitSha": "98e49995e217de22388335af7991af05f440d43c",
  "branch": "ryan-di/agent-v1/rename-chat",
  "measurements": [
    {
      "name": "canvas-idle",
      "durationMs": 2173.631999999998,
      "styleRecalcs": 7,
      "styleRecalcDurationMs": 6.5900000000000025,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 587.226,
      "heapDeltaBytes": 1580260,
      "heapUsedBytes": 91113568,
      "domNodes": 14,
      "jsHeapTotalBytes": 5767168,
      "scriptDurationMs": 9.637999999999998,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-idle",
      "durationMs": 2035.6580000000122,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 7.969,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 510.838,
      "heapDeltaBytes": 1419788,
      "heapUsedBytes": 88765472,
      "domNodes": 16,
      "jsHeapTotalBytes": 5505024,
      "scriptDurationMs": 9.506999999999998,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1862.308999999982,
      "styleRecalcs": 75,
      "styleRecalcDurationMs": 37.176,
      "layouts": 14,
      "layoutDurationMs": 4.524,
      "taskDurationMs": 872.159,
      "heapDeltaBytes": -4317248,
      "heapUsedBytes": 82966884,
      "domNodes": 58,
      "jsHeapTotalBytes": 6815744,
      "scriptDurationMs": 112.627,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1891.499000000067,
      "styleRecalcs": 80,
      "styleRecalcDurationMs": 42.753,
      "layouts": 14,
      "layoutDurationMs": 5.182,
      "taskDurationMs": 876.2330000000001,
      "heapDeltaBytes": -3438372,
      "heapUsedBytes": 85945532,
      "domNodes": 64,
      "jsHeapTotalBytes": 7602176,
      "scriptDurationMs": 119.985,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1747.1279999999751,
      "styleRecalcs": 30,
      "styleRecalcDurationMs": 18.764,
      "layouts": 6,
      "layoutDurationMs": 1.3890000000000002,
      "taskDurationMs": 411.548,
      "heapDeltaBytes": 4485776,
      "heapUsedBytes": 91910152,
      "domNodes": 75,
      "jsHeapTotalBytes": 6029312,
      "scriptDurationMs": 12.633000000000003,
      "eventListeners": 19,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1743.186000000037,
      "styleRecalcs": 32,
      "styleRecalcDurationMs": 20.191,
      "layouts": 6,
      "layoutDurationMs": 1.1929999999999998,
      "taskDurationMs": 433.485,
      "heapDeltaBytes": 4984900,
      "heapUsedBytes": 94260192,
      "domNodes": 78,
      "jsHeapTotalBytes": 6029312,
      "scriptDurationMs": 14.032000000000002,
      "eventListeners": 19,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 572.1139999999991,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 9.216999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 359.097,
      "heapDeltaBytes": 11819668,
      "heapUsedBytes": 101377384,
      "domNodes": 18,
      "jsHeapTotalBytes": 6029312,
      "scriptDurationMs": 56.181,
      "eventListeners": 2,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 622.3019999999906,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 8.363,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 394.868,
      "heapDeltaBytes": 11739556,
      "heapUsedBytes": 98983252,
      "domNodes": 18,
      "jsHeapTotalBytes": 5767168,
      "scriptDurationMs": 58.507000000000005,
      "eventListeners": 2,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "large-graph-idle",
      "durationMs": 1999.213999999995,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 7.576,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 573.7160000000001,
      "heapDeltaBytes": -2588664,
      "heapUsedBytes": 101790024,
      "domNodes": 16,
      "jsHeapTotalBytes": 5603328,
      "scriptDurationMs": 15.475,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "large-graph-idle",
      "durationMs": 2006.2399999999343,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 10.497,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 652.8760000000001,
      "heapDeltaBytes": -1852504,
      "heapUsedBytes": 104512704,
      "domNodes": 20,
      "jsHeapTotalBytes": 6397952,
      "scriptDurationMs": 17.477,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2432.7240000000074,
      "styleRecalcs": 69,
      "styleRecalcDurationMs": 15.806999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1277.9150000000002,
      "heapDeltaBytes": -4195888,
      "heapUsedBytes": 101161520,
      "domNodes": 16,
      "jsHeapTotalBytes": 6877184,
      "scriptDurationMs": 364.76399999999995,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2490.423999999962,
      "styleRecalcs": 68,
      "styleRecalcDurationMs": 14.505999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1239.3079999999998,
      "heapDeltaBytes": -3899416,
      "heapUsedBytes": 101167808,
      "domNodes": 14,
      "jsHeapTotalBytes": 6615040,
      "scriptDurationMs": 347.999,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "large-graph-zoom",
      "durationMs": 3459.57999999996,
      "styleRecalcs": 65,
      "styleRecalcDurationMs": 16.269999999999996,
      "layouts": 60,
      "layoutDurationMs": 12.559000000000001,
      "taskDurationMs": 1466.904,
      "heapDeltaBytes": -5328200,
      "heapUsedBytes": 101359904,
      "domNodes": 12,
      "jsHeapTotalBytes": 5603328,
      "scriptDurationMs": 400.129,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-zoom",
      "durationMs": 3279.8669999999674,
      "styleRecalcs": 65,
      "styleRecalcDurationMs": 16.181999999999995,
      "layouts": 60,
      "layoutDurationMs": 12.558,
      "taskDurationMs": 1424.337,
      "heapDeltaBytes": -4182196,
      "heapUsedBytes": 104197036,
      "domNodes": 12,
      "jsHeapTotalBytes": 6397952,
      "scriptDurationMs": 396.783,
      "eventListeners": 10,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "legacy-node-drag",
      "durationMs": 2611.8119999999863,
      "styleRecalcs": 48,
      "styleRecalcDurationMs": 12.2,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1515.9579999999999,
      "heapDeltaBytes": -17773860,
      "heapUsedBytes": 89909744,
      "domNodes": 16,
      "jsHeapTotalBytes": 6389760,
      "scriptDurationMs": 476.061,
      "eventListeners": 186,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666696,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "legacy-node-drag",
      "durationMs": 2640.350000000012,
      "styleRecalcs": 47,
      "styleRecalcDurationMs": 11.831000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1517.0140000000001,
      "heapDeltaBytes": -10643684,
      "heapUsedBytes": 98772272,
      "domNodes": 14,
      "jsHeapTotalBytes": 7602176,
      "scriptDurationMs": 477.76000000000005,
      "eventListeners": 188,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "minimap-idle",
      "durationMs": 2007.1520000000191,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 9.042000000000002,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 628.7320000000001,
      "heapDeltaBytes": -1289944,
      "heapUsedBytes": 106345100,
      "domNodes": 18,
      "jsHeapTotalBytes": 6135808,
      "scriptDurationMs": 17.070999999999998,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "minimap-idle",
      "durationMs": 2007.5830000000678,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 7.7840000000000025,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 632.3689999999999,
      "heapDeltaBytes": -989632,
      "heapUsedBytes": 106307800,
      "domNodes": 16,
      "jsHeapTotalBytes": 6397952,
      "scriptDurationMs": 17.290999999999997,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 586.2470000000144,
      "styleRecalcs": 46,
      "styleRecalcDurationMs": 10.891,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 408.148,
      "heapDeltaBytes": 12717664,
      "heapUsedBytes": 102199096,
      "domNodes": 18,
      "jsHeapTotalBytes": 6029312,
      "scriptDurationMs": 122.517,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 630.773999999974,
      "styleRecalcs": 48,
      "styleRecalcDurationMs": 12.853,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 421.143,
      "heapDeltaBytes": 11830248,
      "heapUsedBytes": 99245764,
      "domNodes": 22,
      "jsHeapTotalBytes": 5505024,
      "scriptDurationMs": 127.457,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2007.8139999999962,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 10.333,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 479.829,
      "heapDeltaBytes": 1860200,
      "heapUsedBytes": 91385200,
      "domNodes": 20,
      "jsHeapTotalBytes": 6029312,
      "scriptDurationMs": 7.961999999999999,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2005.1570000000538,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 9.461,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 522.173,
      "heapDeltaBytes": 1743476,
      "heapUsedBytes": 91331844,
      "domNodes": 18,
      "jsHeapTotalBytes": 6291456,
      "scriptDurationMs": 10.293999999999999,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1691.673000000037,
      "styleRecalcs": 77,
      "styleRecalcDurationMs": 40.269,
      "layouts": 18,
      "layoutDurationMs": 6.479,
      "taskDurationMs": 777.1680000000001,
      "heapDeltaBytes": 19647264,
      "heapUsedBytes": 109095320,
      "domNodes": 65,
      "jsHeapTotalBytes": 5767168,
      "scriptDurationMs": 88.18200000000002,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1692.641999999978,
      "styleRecalcs": 78,
      "styleRecalcDurationMs": 41.823,
      "layouts": 18,
      "layoutDurationMs": 6.725,
      "taskDurationMs": 823.9100000000001,
      "heapDeltaBytes": 19675896,
      "heapUsedBytes": 109286304,
      "domNodes": 66,
      "jsHeapTotalBytes": 6553600,
      "scriptDurationMs": 91.77099999999999,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "subgraph-transition-enter",
      "durationMs": 1401.3619999999491,
      "styleRecalcs": 21,
      "styleRecalcDurationMs": 31.89199999999999,
      "layouts": 17,
      "layoutDurationMs": 14.133,
      "taskDurationMs": 972.3789999999999,
      "heapDeltaBytes": -6026856,
      "heapUsedBytes": 109131296,
      "domNodes": 13673,
      "jsHeapTotalBytes": 6029312,
      "scriptDurationMs": 19.009000000000004,
      "eventListeners": 2373,
      "totalBlockingTimeMs": 145,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "viewport-pan-sweep",
      "durationMs": 8947.43299999999,
      "styleRecalcs": 251,
      "styleRecalcDurationMs": 39.485,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 4565.699,
      "heapDeltaBytes": 4382684,
      "heapUsedBytes": 108711700,
      "domNodes": -281,
      "jsHeapTotalBytes": 1069056,
      "scriptDurationMs": 1091.865,
      "eventListeners": -143,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "viewport-pan-sweep",
      "durationMs": 8782.032000000072,
      "styleRecalcs": 250,
      "styleRecalcDurationMs": 40.825,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 4535.023,
      "heapDeltaBytes": -21445192,
      "heapUsedBytes": 84755332,
      "domNodes": -279,
      "jsHeapTotalBytes": 4096,
      "scriptDurationMs": 1071.5430000000001,
      "eventListeners": -143,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 17865.434000000052,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 16944.313000000002,
      "heapDeltaBytes": -38366168,
      "heapUsedBytes": 198941656,
      "domNodes": -8312,
      "jsHeapTotalBytes": 13598720,
      "scriptDurationMs": 113.782,
      "eventListeners": -16369,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.779999999999927,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 17738.317000000054,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 16932.575,
      "heapDeltaBytes": -27616900,
      "heapUsedBytes": 198403184,
      "domNodes": -8312,
      "jsHeapTotalBytes": 15695872,
      "scriptDurationMs": 116.74499999999999,
      "eventListeners": -16371,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.776666666666642,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 21267.86599999997,
      "styleRecalcs": 174,
      "styleRecalcDurationMs": 20.960000000000033,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 20674.524999999998,
      "heapDeltaBytes": -23216200,
      "heapUsedBytes": 202170816,
      "domNodes": -8312,
      "jsHeapTotalBytes": 12742656,
      "scriptDurationMs": 433.755,
      "eventListeners": -16363,
      "totalBlockingTimeMs": 82,
      "frameDurationMs": 17.776666666666642,
      "p95FrameDurationMs": 16.80000000000291
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 21426.466000000004,
      "styleRecalcs": 176,
      "styleRecalcDurationMs": 20.633999999999986,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 20816.461,
      "heapDeltaBytes": -14722228,
      "heapUsedBytes": 212590428,
      "domNodes": -8312,
      "jsHeapTotalBytes": 10645504,
      "scriptDurationMs": 438.60600000000005,
      "eventListeners": -16363,
      "totalBlockingTimeMs": 78,
      "frameDurationMs": 17.776666666666642,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "workflow-execution",
      "durationMs": 479.52199999997447,
      "styleRecalcs": 18,
      "styleRecalcDurationMs": 24.715,
      "layouts": 3,
      "layoutDurationMs": 1.625,
      "taskDurationMs": 125.691,
      "heapDeltaBytes": 5278824,
      "heapUsedBytes": 93788000,
      "domNodes": 148,
      "jsHeapTotalBytes": 524288,
      "scriptDurationMs": 11.860000000000001,
      "eventListeners": 99,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "workflow-execution",
      "durationMs": 98.35400000008576,
      "styleRecalcs": 5,
      "styleRecalcDurationMs": 12.352999999999998,
      "layouts": 2,
      "layoutDurationMs": 1.107,
      "taskDurationMs": 70.298,
      "heapDeltaBytes": 3073664,
      "heapUsedBytes": 89525780,
      "domNodes": 122,
      "jsHeapTotalBytes": 0,
      "scriptDurationMs": 5.635000000000002,
      "eventListeners": 25,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998,
      "p95FrameDurationMs": 16.799999999999272
    }
  ]
}

@github-actions github-actions Bot added the risk:R2 PR risk grade (advisory shadow check; grader-owned) label Aug 21, 2026
@ryan-di
ryan-di marked this pull request as ready for review August 21, 2026 03:12
@dosubot dosubot Bot added the size:M This PR changes 30-99 lines, ignoring generated files. 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   #15521      +/-   ##
============================================================
+ 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% <100.00%> (+0.03%) ⬆️
website-unit ?

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

Files with missing lines Coverage Δ
...h/extensions/agent/components/agent/AgentPanel.vue 97.11% <100.00%> (-0.03%) ⬇️
...sions/agent/components/agent/ChatHistoryScreen.vue 100.00% <100.00%> (ø)

... and 341 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.

@ryan-di

ryan-di commented Aug 21, 2026

Copy link
Copy Markdown
Contributor Author

Related context: PM-163.

The parent Agent branch already implemented PM-163's left-chevron icon and Back to previous chat tooltip, and PM-163 is already QA Passed. This PR preserves that behavior and further refines the control by making the chevron the sole back-navigation target while rendering Chat History as a non-interactive heading. Treating this as a related refinement rather than claiming that #15521 fixes or closes PM-163.

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

Labels

preview-cpu Creates a preview ephemeral environment for this PR (CPU only) 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