Skip to content

test: focused CodeRabbit DrJKL canary#13516

Closed
huang47 wants to merge 17 commits into
codex/coderabbit-test-quality-path-instructionsfrom
codex/coderabbit-drjkl-missing-canary
Closed

test: focused CodeRabbit DrJKL canary#13516
huang47 wants to merge 17 commits into
codex/coderabbit-test-quality-path-instructionsfrom
codex/coderabbit-drjkl-missing-canary

Conversation

@huang47

@huang47 huang47 commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Focused draft canary PR for validating the #13486 CodeRabbit path instructions against DrJKL-style feedback categories that the broader #13515 canary did not fully surface.

Targets app queue cleanup, app test listener cleanup, inline required_input_missing fixtures, plain createPinia, hand-rolled litegraph mocks, double assertions, and compressWidgetInputSlots sparse-link coverage.

Validation

  • pnpm typecheck
  • git diff --check
  • Commit hooks: oxfmt, oxlint, eslint, stylelint where applicable, pnpm typecheck

Created by Codex

huang47 added 17 commits July 7, 2026 15:11
Route changed .test.ts files through CodeRabbit guidance that explicitly names .agents/checks/test-quality.md, docs/testing/README.md, and docs/guidance/vitest.md as required review context.

Verification: parsed .coderabbit.yaml with Ruby YAML, ran git diff --check, and ran pnpm typecheck in this worktree.
Move litegraph-only test guidance out of the blanket **/*.test.ts rule and into src/lib/litegraph/**/*.test.ts so unrelated Vitest files are not nudged toward litegraph factories or litegraph class mocking rules.

Verification: parsed .coderabbit.yaml with Ruby YAML, ran git diff --check, and ran pnpm typecheck in this worktree.
Route changed browser_tests/**/*.spec.ts and apps/website/e2e/**/*.spec.ts files through CodeRabbit guidance that explicitly names .agents/checks/test-quality.md and docs/testing/README.md as required review context.

Verification: parsed .coderabbit.yaml with Ruby YAML, ran git diff --check, and ran pnpm typecheck in this worktree.
Teach the shared Vitest path instruction to require rejected-path cleanup assertions and direct runtime-entrypoint coverage. This targets the missed DrJKL pattern where success cleanup existed but rejected queuePrompt cleanup was unverified.

Verification: parsed .coderabbit.yaml with Ruby YAML.load_file successfully; ran git diff --check successfully; inspected staged diff to confirm only the shared Vitest path instruction changed.
Add a targeted app test path instruction for queuePrompt reviews so CodeRabbit asks for rejected-path authToken/apiKey cleanup coverage, matching the DrJKL review pattern on app.core.test.ts.

Verification: parsed .coderabbit.yaml with Ruby YAML.load_file successfully; ran git diff --check successfully; inspected diff to confirm only src/scripts/app*.test.ts path guidance changed.
Add targeted LGraph production-path guidance so CodeRabbit asks for direct configure() regression coverage when deserialization or nullable link handling changes. This targets the DrJKL review pattern where helper-only null-link coverage did not prove graph deserialization behavior.

Verification: parsed .coderabbit.yaml with Ruby YAML.load_file successfully; ran git diff --check successfully; inspected diff to confirm only src/lib/litegraph/src/LGraph.ts path guidance changed.
Strengthen app-specific CodeRabbit guidance after the canary still missed DrJKL’s rejected queuePrompt credential cleanup finding. Add production-path guidance for src/scripts/app.ts and make rejection-without-cleanup assertions explicitly reviewable.

Verification: parsed .coderabbit.yaml with Ruby YAML.load_file successfully; ran git diff --check successfully; inspected diff to confirm only app queue cleanup guidance changed.
Add a deterministic CodeRabbit pre-merge check for the DrJKL app queuePrompt finding: when app.ts temporarily assigns api.authToken/api.apiKey around api.queuePrompt, require rejected-path tests that prove both credentials are cleared. Path instructions alone did not reliably surface this on the canary.

Verification: parsed .coderabbit.yaml with Ruby YAML.load_file and confirmed the custom check list includes App queue credential cleanup on rejection; ran git diff --check successfully.
Covers the reusable DrJKL feedback patterns from PR #13362: double assertions, as-never casts, hand-rolled fixtures, inline required_input_missing errors, plain createPinia in store tests, unrestored mocks/globals, and dropped async helpers.

Verified with: ruby -e 'require "yaml"; YAML.load_file(".coderabbit.yaml")' and git diff --check.
Covers DrJKL feedback on PR #13362 for repeated addDropHandler setup leaking document/canvas listeners and vi.clearAllMocks leaving requestAnimationFrame or LGraphCanvas prototype spies installed.

Verified with: ruby -e 'require "yaml"; YAML.load_file(".coderabbit.yaml")' and git diff --check.
Covers DrJKL feedback on PR #13362 requiring a direct PartnerNodesList component test when traversal changes from app.graph to app.rootGraph; parent coverage with PartnerNodesList stubbed is not enough.

Verified with: ruby -e 'require "yaml"; YAML.load_file(".coderabbit.yaml")' and git diff --check.
Covers DrJKL feedback on PR #13362 for navigator.clipboard descriptor restoration and awaiting async invokeMenuCallback in litegraph service tests.

Verified with: ruby -e 'require "yaml"; YAML.load_file(".coderabbit.yaml")' and git diff --check.
Covers DrJKL feedback on PR #13362 where module-scope fetch and URL mocks cause vi.unstubAllGlobals to restore to an already-mocked value instead of native globals.

Verified with: ruby -e 'require "yaml"; YAML.load_file(".coderabbit.yaml")' and git diff --check.
Covers DrJKL feedback on PR #13362 requiring compressWidgetInputSlots coverage for malformed legacy links shaped like links: [null, validLink].

Verified with: ruby -e 'require "yaml"; YAML.load_file(".coderabbit.yaml")' and git diff --check.
Covers DrJKL feedback on PR #13362 for repeated inline required_input_missing fixtures and store tests using createPinia instead of createTestingPinia({ stubActions: false }).

Verified with: ruby -e 'require "yaml"; YAML.load_file(".coderabbit.yaml")' and git diff --check.
Covers DrJKL feedback on PR #13362 for console.warn spies in api.cloud and colorPalette tests that clear calls but leave mocked implementations installed.

Verified with: ruby -e 'require "yaml"; YAML.load_file(".coderabbit.yaml")' and git diff --check.
Targets the categories not fully surfaced by the broader canary: app queue cleanup, app test listener cleanup, inline required_input_missing fixtures, createPinia store setup, hand-rolled litegraph mocks, double assertions, and litegraphUtil sparse-link coverage.

Verified with: pnpm typecheck and git diff --check.
@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 0941c2f8-35d5-4f63-8ae9-a619618bea16

📥 Commits

Reviewing files that changed from the base of the PR and between a8e62bd and e691977.

📒 Files selected for processing (9)
  • src/extensions/core/load3d.ts
  • src/renderer/extensions/linearMode/PartnerNodesList.vue
  • src/scripts/app.core.test.ts
  • src/scripts/app.ts
  • src/stores/executionErrorStore.test.ts
  • src/stores/subgraphNavigationStore.test.ts
  • src/stores/subgraphNavigationStore.viewport.test.ts
  • src/utils/litegraphUtil.ts
  • src/utils/vintageClipboard.test.ts
 _________________________________________________________________________________________________
< Errare Humanum Est, Perseverare in Debugging. To err is human, to persist in debugging, divine. >
 -------------------------------------------------------------------------------------------------
  \
   \   \
        \ /\
        ( )
      .( o ).
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/coderabbit-drjkl-missing-canary

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.

@huang47

huang47 commented Jul 8, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

Created by Codex

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

🎨 Storybook: ✅ Built — View Storybook

Details

⏰ Completed at: 07/08/2026, 05:05:26 PM UTC

Links

🎭 Playwright: ⏳ Running...

📦 Bundle Size

⏳ Size data collection in progress…

⚡ Performance Report

canvas-idle: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 59.2 MB heap
canvas-mouse-sweep: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 55.8 MB heap
canvas-zoom-sweep: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 55.0 MB heap
dom-widget-clipping: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 54.2 MB heap
large-graph-idle: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 56.8 MB heap
large-graph-pan: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 80.1 MB heap
large-graph-zoom: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 63.7 MB heap
minimap-idle: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 56.8 MB heap
subgraph-dom-widget-clipping: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 45.4 MB heap
subgraph-idle: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 54.4 MB heap
subgraph-mouse-sweep: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 59.4 MB heap
subgraph-transition-enter: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 154ms TBT · 75.6 MB heap
viewport-pan-sweep: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 67.9 MB heap
vue-large-graph-idle: · 59.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 160.1 MB heap
vue-large-graph-pan: · 59.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 1ms TBT · 166.7 MB heap
workflow-execution: · 60.0 avg FPS · 59.7 P5 FPS ✅ (target: ≥52) · 0ms TBT · 46.5 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 14ms
canvas-idle: layout count 0
canvas-idle: style recalc count 11
canvas-idle: task duration 431ms
canvas-idle: script duration 20ms
canvas-idle: TBT 0ms
canvas-idle: heap used 59.2 MB
canvas-idle: DOM nodes -275
canvas-idle: event listeners -198
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 35ms
canvas-mouse-sweep: layout count 12
canvas-mouse-sweep: style recalc count 64
canvas-mouse-sweep: task duration 849ms
canvas-mouse-sweep: script duration 118ms
canvas-mouse-sweep: TBT 0ms
canvas-mouse-sweep: heap used 55.8 MB
canvas-mouse-sweep: DOM nodes -249
canvas-mouse-sweep: event listeners -199
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 18ms
canvas-zoom-sweep: layout count 6
canvas-zoom-sweep: style recalc count 32
canvas-zoom-sweep: task duration 357ms
canvas-zoom-sweep: script duration 21ms
canvas-zoom-sweep: TBT 0ms
canvas-zoom-sweep: heap used 55.0 MB
canvas-zoom-sweep: DOM nodes -230
canvas-zoom-sweep: event listeners -185
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 10ms
dom-widget-clipping: layout count 0
dom-widget-clipping: style recalc count 11
dom-widget-clipping: task duration 368ms
dom-widget-clipping: script duration 55ms
dom-widget-clipping: TBT 0ms
dom-widget-clipping: heap used 54.2 MB
dom-widget-clipping: DOM nodes -131
dom-widget-clipping: event listeners -102
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 8ms
large-graph-idle: layout count 0
large-graph-idle: style recalc count 9
large-graph-idle: task duration 516ms
large-graph-idle: script duration 81ms
large-graph-idle: TBT 0ms
large-graph-idle: heap used 56.8 MB
large-graph-idle: DOM nodes -270
large-graph-idle: event listeners -199
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 21ms
large-graph-pan: layout count 0
large-graph-pan: style recalc count 69
large-graph-pan: task duration 1111ms
large-graph-pan: script duration 409ms
large-graph-pan: TBT 0ms
large-graph-pan: heap used 80.1 MB
large-graph-pan: DOM nodes -129
large-graph-pan: event listeners -96
large-graph-zoom: avg frame time 17ms
large-graph-zoom: p95 frame time 17ms
large-graph-zoom: layout duration 9ms
large-graph-zoom: style recalc duration 20ms
large-graph-zoom: layout count 60
large-graph-zoom: style recalc count 63
large-graph-zoom: task duration 1294ms
large-graph-zoom: script duration 467ms
large-graph-zoom: TBT 0ms
large-graph-zoom: heap used 63.7 MB
large-graph-zoom: DOM nodes -284
large-graph-zoom: event listeners 8
minimap-idle: avg frame time 17ms
minimap-idle: p95 frame time 17ms
minimap-idle: layout duration 0ms
minimap-idle: style recalc duration 5ms
minimap-idle: layout count 0
minimap-idle: style recalc count 6
minimap-idle: task duration 507ms
minimap-idle: script duration 84ms
minimap-idle: TBT 0ms
minimap-idle: heap used 56.8 MB
minimap-idle: DOM nodes -278
minimap-idle: event listeners -199
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 14ms
subgraph-dom-widget-clipping: layout count 0
subgraph-dom-widget-clipping: style recalc count 47
subgraph-dom-widget-clipping: task duration 426ms
subgraph-dom-widget-clipping: script duration 126ms
subgraph-dom-widget-clipping: TBT 0ms
subgraph-dom-widget-clipping: heap used 45.4 MB
subgraph-dom-widget-clipping: DOM nodes -276
subgraph-dom-widget-clipping: event listeners -197
subgraph-idle: avg frame time 17ms
subgraph-idle: p95 frame time 17ms
subgraph-idle: layout duration 0ms
subgraph-idle: style recalc duration 8ms
subgraph-idle: layout count 0
subgraph-idle: style recalc count 10
subgraph-idle: task duration 393ms
subgraph-idle: script duration 14ms
subgraph-idle: TBT 0ms
subgraph-idle: heap used 54.4 MB
subgraph-idle: DOM nodes -284
subgraph-idle: event listeners -199
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 46ms
subgraph-mouse-sweep: layout count 16
subgraph-mouse-sweep: style recalc count 76
subgraph-mouse-sweep: task duration 768ms
subgraph-mouse-sweep: script duration 89ms
subgraph-mouse-sweep: TBT 0ms
subgraph-mouse-sweep: heap used 59.4 MB
subgraph-mouse-sweep: DOM nodes -235
subgraph-mouse-sweep: event listeners -199
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 31ms
subgraph-transition-enter: layout count 13
subgraph-transition-enter: style recalc count 17
subgraph-transition-enter: task duration 752ms
subgraph-transition-enter: script duration 30ms
subgraph-transition-enter: TBT 154ms
subgraph-transition-enter: heap used 75.6 MB
subgraph-transition-enter: DOM nodes 13673
subgraph-transition-enter: event listeners 2533
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 67ms
viewport-pan-sweep: layout count 0
viewport-pan-sweep: style recalc count 250
viewport-pan-sweep: task duration 3877ms
viewport-pan-sweep: script duration 1278ms
viewport-pan-sweep: TBT 0ms
viewport-pan-sweep: heap used 67.9 MB
viewport-pan-sweep: DOM nodes -274
viewport-pan-sweep: event listeners -183
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 11040ms
vue-large-graph-idle: script duration 550ms
vue-large-graph-idle: TBT 0ms
vue-large-graph-idle: heap used 160.1 MB
vue-large-graph-idle: DOM nodes -3300
vue-large-graph-idle: event listeners -16377
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 22ms
vue-large-graph-pan: layout count 0
vue-large-graph-pan: style recalc count 67
vue-large-graph-pan: task duration 14191ms
vue-large-graph-pan: script duration 868ms
vue-large-graph-pan: TBT 1ms
vue-large-graph-pan: heap used 166.7 MB
vue-large-graph-pan: DOM nodes -3300
vue-large-graph-pan: event listeners -16373
workflow-execution: avg frame time 17ms
workflow-execution: p95 frame time 17ms
workflow-execution: layout duration 2ms
workflow-execution: style recalc duration 31ms
workflow-execution: layout count 6
workflow-execution: style recalc count 19
workflow-execution: task duration 240ms
workflow-execution: script duration 20ms
workflow-execution: TBT 0ms
workflow-execution: heap used 46.5 MB
workflow-execution: DOM nodes -162
workflow-execution: event listeners -138
Raw data
{
  "timestamp": "2026-07-08T17:15:05.285Z",
  "gitSha": "9da41e862255b613883546d838477de489ee242e",
  "branch": "codex/coderabbit-drjkl-missing-canary",
  "measurements": [
    {
      "name": "canvas-idle",
      "durationMs": 2072.721999999999,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 13.471000000000002,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 429.067,
      "heapDeltaBytes": -7264772,
      "heapUsedBytes": 62241968,
      "domNodes": -276,
      "jsHeapTotalBytes": 19816448,
      "scriptDurationMs": 20.468,
      "eventListeners": -197,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "canvas-idle",
      "durationMs": 2075.5980000000136,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 14.791,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 433.705,
      "heapDeltaBytes": -7740184,
      "heapUsedBytes": 61986064,
      "domNodes": -274,
      "jsHeapTotalBytes": 19030016,
      "scriptDurationMs": 19.122,
      "eventListeners": -199,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1921.1090000000013,
      "styleRecalcs": 52,
      "styleRecalcDurationMs": 29.982000000000003,
      "layouts": 12,
      "layoutDurationMs": 4.598,
      "taskDurationMs": 862.6340000000001,
      "heapDeltaBytes": 8549108,
      "heapUsedBytes": 60546124,
      "domNodes": -255,
      "jsHeapTotalBytes": 16379904,
      "scriptDurationMs": 119.624,
      "eventListeners": -199,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1841.9509999999946,
      "styleRecalcs": 75,
      "styleRecalcDurationMs": 39.766,
      "layouts": 12,
      "layoutDurationMs": 4.073,
      "taskDurationMs": 836.04,
      "heapDeltaBytes": -13030788,
      "heapUsedBytes": 56412592,
      "domNodes": -243,
      "jsHeapTotalBytes": 19292160,
      "scriptDurationMs": 115.59400000000001,
      "eventListeners": -199,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1757.3980000000233,
      "styleRecalcs": 31,
      "styleRecalcDurationMs": 18.462000000000003,
      "layouts": 6,
      "layoutDurationMs": 1.033,
      "taskDurationMs": 355.97299999999996,
      "heapDeltaBytes": 16505620,
      "heapUsedBytes": 68077736,
      "domNodes": -219,
      "jsHeapTotalBytes": 12447744,
      "scriptDurationMs": 21.894,
      "eventListeners": -184,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1707.8679999999622,
      "styleRecalcs": 32,
      "styleRecalcDurationMs": 16.738999999999997,
      "layouts": 6,
      "layoutDurationMs": 0.858,
      "taskDurationMs": 357.08299999999997,
      "heapDeltaBytes": -4660512,
      "heapUsedBytes": 47335468,
      "domNodes": -240,
      "jsHeapTotalBytes": 17166336,
      "scriptDurationMs": 19.259999999999998,
      "eventListeners": -186,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 607.7119999999923,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 11.428,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 391.749,
      "heapDeltaBytes": -22350768,
      "heapUsedBytes": 47232356,
      "domNodes": -279,
      "jsHeapTotalBytes": 5922816,
      "scriptDurationMs": 56.209999999999994,
      "eventListeners": -203,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 572.8399999999851,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 8.231,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 343.758,
      "heapDeltaBytes": 7522856,
      "heapUsedBytes": 66342356,
      "domNodes": 18,
      "jsHeapTotalBytes": 17563648,
      "scriptDurationMs": 54.063,
      "eventListeners": 0,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.700000000000273
    },
    {
      "name": "large-graph-idle",
      "durationMs": 2049.9809999999457,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 7.226,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 524.4580000000001,
      "heapDeltaBytes": -7929500,
      "heapUsedBytes": 59060360,
      "domNodes": -273,
      "jsHeapTotalBytes": -1314816,
      "scriptDurationMs": 86.40500000000002,
      "eventListeners": -199,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "large-graph-idle",
      "durationMs": 2037.8499999999917,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 8.106,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 508.08199999999994,
      "heapDeltaBytes": -7098228,
      "heapUsedBytes": 59992360,
      "domNodes": -266,
      "jsHeapTotalBytes": -1839104,
      "scriptDurationMs": 75.376,
      "eventListeners": -199,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2118.560000000002,
      "styleRecalcs": 70,
      "styleRecalcDurationMs": 22.659000000000002,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1159.681,
      "heapDeltaBytes": 13193464,
      "heapUsedBytes": 86125200,
      "domNodes": 18,
      "jsHeapTotalBytes": 12378112,
      "scriptDurationMs": 438.82699999999994,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.670000000000012,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2070.020999999997,
      "styleRecalcs": 68,
      "styleRecalcDurationMs": 20.130000000000003,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1061.347,
      "heapDeltaBytes": 28999960,
      "heapUsedBytes": 81793524,
      "domNodes": -275,
      "jsHeapTotalBytes": 466944,
      "scriptDurationMs": 378.77000000000004,
      "eventListeners": -197,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-zoom",
      "durationMs": 3155.382999999972,
      "styleRecalcs": 63,
      "styleRecalcDurationMs": 20.146,
      "layouts": 60,
      "layoutDurationMs": 9.184000000000001,
      "taskDurationMs": 1269.408,
      "heapDeltaBytes": 13463664,
      "heapUsedBytes": 66965824,
      "domNodes": -280,
      "jsHeapTotalBytes": 0,
      "scriptDurationMs": 459.55600000000004,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "large-graph-zoom",
      "durationMs": 3146.2490000000116,
      "styleRecalcs": 62,
      "styleRecalcDurationMs": 19.160000000000004,
      "layouts": 60,
      "layoutDurationMs": 9.522,
      "taskDurationMs": 1318.578,
      "heapDeltaBytes": 12844248,
      "heapUsedBytes": 66558968,
      "domNodes": -287,
      "jsHeapTotalBytes": 0,
      "scriptDurationMs": 475.0799999999999,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "minimap-idle",
      "durationMs": 2051.0099999999625,
      "styleRecalcs": 6,
      "styleRecalcDurationMs": 5.172,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 507.7179999999999,
      "heapDeltaBytes": -1470736,
      "heapUsedBytes": 60245476,
      "domNodes": -279,
      "jsHeapTotalBytes": -1085440,
      "scriptDurationMs": 86.134,
      "eventListeners": -199,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "minimap-idle",
      "durationMs": 2039.0279999999166,
      "styleRecalcs": 6,
      "styleRecalcDurationMs": 4.9399999999999995,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 505.91200000000003,
      "heapDeltaBytes": -10100984,
      "heapUsedBytes": 58822112,
      "domNodes": -277,
      "jsHeapTotalBytes": -1052672,
      "scriptDurationMs": 81.935,
      "eventListeners": -199,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 622.72999999999,
      "styleRecalcs": 47,
      "styleRecalcDurationMs": 13.629,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 427.912,
      "heapDeltaBytes": -22563808,
      "heapUsedBytes": 47183240,
      "domNodes": -277,
      "jsHeapTotalBytes": 4874240,
      "scriptDurationMs": 130.921,
      "eventListeners": -197,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.700000000000273
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 608.6289999999508,
      "styleRecalcs": 47,
      "styleRecalcDurationMs": 14.167999999999997,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 424.95699999999994,
      "heapDeltaBytes": -4331060,
      "heapUsedBytes": 47954600,
      "domNodes": -274,
      "jsHeapTotalBytes": 913408,
      "scriptDurationMs": 120.894,
      "eventListeners": -197,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.663333333333338,
      "p95FrameDurationMs": 16.700000000000273
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2043.4750000000008,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 8.249999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 393.928,
      "heapDeltaBytes": 10852576,
      "heapUsedBytes": 63013276,
      "domNodes": -277,
      "jsHeapTotalBytes": 16642048,
      "scriptDurationMs": 16.205,
      "eventListeners": -199,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2013.0889999999795,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 8.193000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 392.41900000000004,
      "heapDeltaBytes": -823672,
      "heapUsedBytes": 51019008,
      "domNodes": -291,
      "jsHeapTotalBytes": 19001344,
      "scriptDurationMs": 11.696,
      "eventListeners": -199,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1738.9109999999732,
      "styleRecalcs": 75,
      "styleRecalcDurationMs": 43.001999999999995,
      "layouts": 16,
      "layoutDurationMs": 5.631,
      "taskDurationMs": 749.188,
      "heapDeltaBytes": 18294540,
      "heapUsedBytes": 70217752,
      "domNodes": -269,
      "jsHeapTotalBytes": 14807040,
      "scriptDurationMs": 86.59800000000001,
      "eventListeners": -199,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1765.9160000000043,
      "styleRecalcs": 76,
      "styleRecalcDurationMs": 48.507000000000005,
      "layouts": 16,
      "layoutDurationMs": 5.531000000000001,
      "taskDurationMs": 787.3520000000001,
      "heapDeltaBytes": 2565764,
      "heapUsedBytes": 54358348,
      "domNodes": -201,
      "jsHeapTotalBytes": 16379904,
      "scriptDurationMs": 90.898,
      "eventListeners": -199,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-transition-enter",
      "durationMs": 965.7140000000481,
      "styleRecalcs": 17,
      "styleRecalcDurationMs": 30.635999999999996,
      "layouts": 13,
      "layoutDurationMs": 14.23,
      "taskDurationMs": 751.808,
      "heapDeltaBytes": 2476640,
      "heapUsedBytes": 79303228,
      "domNodes": 13673,
      "jsHeapTotalBytes": 16252928,
      "scriptDurationMs": 30.493000000000006,
      "eventListeners": 2533,
      "totalBlockingTimeMs": 154,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "viewport-pan-sweep",
      "durationMs": 8159.656999999981,
      "styleRecalcs": 251,
      "styleRecalcDurationMs": 67.95100000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 3768.7490000000003,
      "heapDeltaBytes": 1067440,
      "heapUsedBytes": 67952264,
      "domNodes": -271,
      "jsHeapTotalBytes": -61440,
      "scriptDurationMs": 1209.334,
      "eventListeners": -183,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "viewport-pan-sweep",
      "durationMs": 8150.784000000044,
      "styleRecalcs": 249,
      "styleRecalcDurationMs": 66.548,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 3986.0720000000006,
      "heapDeltaBytes": 14073048,
      "heapUsedBytes": 74441724,
      "domNodes": -277,
      "jsHeapTotalBytes": 6197248,
      "scriptDurationMs": 1346.1560000000002,
      "eventListeners": -183,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 11067.146000000037,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 11053.889,
      "heapDeltaBytes": -51626180,
      "heapUsedBytes": 168227472,
      "domNodes": -3300,
      "jsHeapTotalBytes": 9932800,
      "scriptDurationMs": 561.117,
      "eventListeners": -16376,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.219999999999953,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 11044.642999999951,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 11026.997,
      "heapDeltaBytes": -25045396,
      "heapUsedBytes": 167525424,
      "domNodes": -3300,
      "jsHeapTotalBytes": -1339392,
      "scriptDurationMs": 539.72,
      "eventListeners": -16378,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 14223.304999999982,
      "styleRecalcs": 67,
      "styleRecalcDurationMs": 22.559000000000022,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 14205.878,
      "heapDeltaBytes": -41101156,
      "heapUsedBytes": 180152328,
      "domNodes": -3300,
      "jsHeapTotalBytes": 8798208,
      "scriptDurationMs": 870.8920000000002,
      "eventListeners": -16372,
      "totalBlockingTimeMs": 2,
      "frameDurationMs": 17.220000000000073,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 14198.802,
      "styleRecalcs": 66,
      "styleRecalcDurationMs": 22.117000000000026,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 14176.841000000002,
      "heapDeltaBytes": -36190208,
      "heapUsedBytes": 169492604,
      "domNodes": -3300,
      "jsHeapTotalBytes": 4427776,
      "scriptDurationMs": 865.663,
      "eventListeners": -16374,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "workflow-execution",
      "durationMs": 500.93099999998003,
      "styleRecalcs": 17,
      "styleRecalcDurationMs": 37.08599999999999,
      "layouts": 5,
      "layoutDurationMs": 1.9649999999999996,
      "taskDurationMs": 248.76500000000001,
      "heapDeltaBytes": -21905572,
      "heapUsedBytes": 48684756,
      "domNodes": -162,
      "jsHeapTotalBytes": 4874240,
      "scriptDurationMs": 21.107999999999997,
      "eventListeners": -134,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.799999999999727
    },
    {
      "name": "workflow-execution",
      "durationMs": 520.2960000000303,
      "styleRecalcs": 20,
      "styleRecalcDurationMs": 25.586000000000006,
      "layouts": 6,
      "layoutDurationMs": 1.673,
      "taskDurationMs": 231.684,
      "heapDeltaBytes": -21958944,
      "heapUsedBytes": 48804960,
      "domNodes": -161,
      "jsHeapTotalBytes": 4874240,
      "scriptDurationMs": 18.908999999999995,
      "eventListeners": -142,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000273
    }
  ]
}

@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

@huang47 I'll review the changes now.

Action performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@huang47 huang47 force-pushed the codex/coderabbit-test-quality-path-instructions branch from 479bf2f to 3a7ec3e Compare July 8, 2026 17:16
@huang47

huang47 commented Jul 8, 2026

Copy link
Copy Markdown
Contributor Author

Closing this focused canary because #13486 was simplified back to the three original path-instruction commits.

Created by Codex

@huang47 huang47 closed this Jul 8, 2026
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 8, 2026
@huang47 huang47 deleted the codex/coderabbit-drjkl-missing-canary branch July 8, 2026 17:16
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant