Skip to content

Fix stress pointer readiness and add a narrow CI diagnostic - #150

Merged
tannerlinsley merged 1 commit into
mainfrom
taren/fast-stress-diagnostics
Sep 11, 2026
Merged

Fix stress pointer readiness and add a narrow CI diagnostic#150
tannerlinsley merged 1 commit into
mainfrom
taren/fast-stress-diagnostics

Conversation

@tannerlinsley

@tannerlinsley tannerlinsley commented Sep 10, 2026

Copy link
Copy Markdown
Member

What changed

  • Wait for pointer listener registration before dispatching trusted browser input.
  • Bound missing input and unsettled pointer probes to two seconds, with cleanup and specific errors.
  • Add opt-in phase logs and a manual diagnostic for one TanStack multi-series timing cell. This dispatch skips the broad jobs, memory soak, and retries.
  • Leave ordinary PR job selection, sample counts, and timeouts unchanged. Pointer samples add one readiness roundtrip, not another workload.

Checks

  • 69 benchmark and workflow tests pass.
  • Standard TanStack multi-series diagnostic passes locally, timing cell 6.35 seconds.
  • Normal quick multi-series workload passes across all five libraries in 13.6 seconds total.
  • Targeted hosted diagnostic passes: timing cell 12.96 seconds, benchmark step 14 seconds, whole job 56 seconds including 36 seconds of setup. Zero correctness failures or retries. All broad jobs skipped.
  • Hosted diagnostic logs and phase artifacts: https://github.com/TanStack/charts/actions/runs/34509269806

The hosted timeout cause is still unconfirmed. These changes close the input-registration race and preserve phase evidence if it happens again. This is harness and CI work only, with no package release.

Summary by CodeRabbit

  • New Features

    • Added an optional chart-library benchmark diagnostics mode for targeted timing investigations.
    • Diagnostics can run a single benchmark scenario and generate phase-timing results.
    • Added pointer interaction timing measurements with timeout and cancellation handling.
    • Added a workflow option to run diagnostics independently from the standard benchmark suite.
  • Improvements

    • Diagnostic runs now skip retries and memory-soak measurements for faster, focused results.
    • Diagnostic artifacts use distinct filenames and are preserved even when the run encounters issues.

@coderabbitai

coderabbitai Bot commented Sep 10, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: c102af66-d2c9-4136-8911-0710f2dea000

📥 Commits

Reviewing files that changed from the base of the PR and between 015f5f2 and 2f5e895.

📒 Files selected for processing (8)
  • .github/workflows/chart-library-benchmarks.yml
  • scripts/benchmark/stress-diagnostics.mjs
  • scripts/benchmark/stress-diagnostics.test.mjs
  • scripts/benchmark/stress-pointer.mjs
  • scripts/benchmark/stress-pointer.test.mjs
  • scripts/ci-workflow.test.mjs
  • scripts/classify-ci-changes.mjs
  • scripts/stress-chart-libraries.mjs

Included review availability: Your plan provides up to 4 included reviews per hour; 3 remain after this review.


📝 Walkthrough

Walkthrough

The change adds a manual stress diagnostic workflow, phase timing capture, trusted pointer timing utilities, diagnostic artifact output, and CI classification for the new modules.

Changes

Stress benchmark diagnostics

Layer / File(s) Summary
Diagnostic and pointer timing primitives
scripts/benchmark/stress-diagnostics.mjs, scripts/benchmark/stress-pointer.mjs, scripts/benchmark/*.test.mjs
The new helpers record benchmark phases and measure pointer activation or signature changes. Tests cover disabled diagnostics, timing, cancellation, invalid states, timeouts, and input failures.
Benchmark diagnostic execution
scripts/stress-chart-libraries.mjs
The benchmark adds --diagnostics, records host and page phases, writes stress-diagnostics.jsonl, disables retries and memory soak, and uses the shared pointer timing helpers.
Manual diagnostic workflow isolation
.github/workflows/chart-library-benchmarks.yml, scripts/ci-workflow.test.mjs
The workflow adds the diagnose_stats input and runs one TanStack statistics workload. Diagnostic mode skips normal benchmark and CI jobs and uploads phase artifacts.
Stress change classification
scripts/classify-ci-changes.mjs
The new diagnostic and pointer modules now classify as stress-related changes.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant WorkflowDispatch
  participant StatsDiagnostic
  participant StressBenchmark
  participant BrowserPage
  participant DiagnosticsFile
  participant ArtifactStore
  WorkflowDispatch->>StatsDiagnostic: set diagnose_stats
  StatsDiagnostic->>StressBenchmark: run one stats-multi-series-line diagnostic
  StressBenchmark->>BrowserPage: execute benchmark and pointer timing
  BrowserPage->>StressBenchmark: emit phase messages
  StressBenchmark->>DiagnosticsFile: append phase records
  StatsDiagnostic->>ArtifactStore: upload diagnostic artifacts
Loading

Merge Risk: ⚪ Minimal · up to 2f5e8

The diagnostic path is isolated from normal CI, and the pointer timing changes clean up bounded probes on failure. No merge-blocking risk remains.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 12.50% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 8 functions across 7 files. (1 skipped: 1… Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the two primary changes: fixing stress pointer readiness and adding a focused CI diagnostic.
Full details: Docstring Coverage

Explanation

Docstring coverage is 12.50% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 8 functions across 7 files. (1 skipped: 1 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch taren/fast-stress-diagnostics

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.

@nx-cloud

nx-cloud Bot commented Sep 10, 2026

Copy link
Copy Markdown

View your CI Pipeline Execution ↗ for commit 2f5e895

Command Status Duration Result
nx run charts-workspace:ci-distributed ✅ Succeeded 3m 13s View ↗
nx run charts-workspace:package-check ✅ Succeeded <1s View ↗
nx run charts-workspace:benchmark-check ✅ Succeeded 1m 9s View ↗

☁️ Nx Cloud last updated this comment at 2026-09-10 17:42:18 UTC

@tannerlinsley
tannerlinsley merged commit 6ab8b4c into main Sep 11, 2026
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant