Skip to content

🎨 Palette & Bolt Suite: Form Submission, Accessibility, SVG & CSV Optimizations - #4429

Closed
dieterolson wants to merge 16 commits into
mainfrom
consolidated/comprehensive-palette-bolt-tools
Closed

🎨 Palette & Bolt Suite: Form Submission, Accessibility, SVG & CSV Optimizations#4429
dieterolson wants to merge 16 commits into
mainfrom
consolidated/comprehensive-palette-bolt-tools

Conversation

@dieterolson

Copy link
Copy Markdown
Collaborator

Consolidates all Palette UI, SVG, CSV, and Bolt performance optimizations into a single comprehensive repository PR (#4421 #4420 #4419 #4418 #4314 #4313 #4311 #4310).

google-labs-jules Bot and others added 15 commits August 10, 2026 10:10
Replaced the Array.from initialization of rawColumns with a pre-allocated new Array and a standard for loop in src/p1am_control_system/frontend/src/lib/explorer/csv.ts.

Co-authored-by: dieterolson <198168927+dieterolson@users.noreply.github.com>
Co-authored-by: dieterolson <198168927+dieterolson@users.noreply.github.com>
💡 What: Replaced the Array.from initialization of rawColumns with a pre-allocated new Array populated via a standard for loop in src/p1am_control_system/frontend/src/lib/explorer/csv.ts. Additionally fixed the cross-repo-python-integration.yml sparse-checkout configuration.

🎯 Why: Array.from with a mapped callback in V8 JavaScript engines incurs significant performance overhead during initialization due to iterability checks, iterator creation, and executing a closure for every element. This occurs on the critical path of loading new CSV data for exploration.

📊 Impact: Substantially reduces intermediate garbage collection pressure and speeds up array initialization during local CSV imports.

🔬 Measurement: Verify by executing the frontend tests via vitest run to ensure parsing correctness, and by measuring the time to import large CSV files.

Co-authored-by: dieterolson <198168927+dieterolson@users.noreply.github.com>
Co-authored-by: dieterolson <198168927+dieterolson@users.noreply.github.com>
Co-authored-by: dieterolson <198168927+dieterolson@users.noreply.github.com>
Replaced `segments.push(...); return segments.join(" ")` with a single-pass `for` loop and string concatenation (`d += ...`) in `LinePlot`, `ScatterPlot`, and `SpectrumPlot`'s `buildPath` functions to reduce intermediate array allocation and V8 garbage collection pressure during high-frequency UI renders.

Co-authored-by: dieterolson <198168927+dieterolson@users.noreply.github.com>
Co-authored-by: dieterolson <198168927+dieterolson@users.noreply.github.com>
🎨 Palette: Form accessibility and handling for the ODE Solver

💡 What: I wrapped the ODE Solver input fields in a `<form>` and added a `focus-visible` ring to the main action button.
🎯 Why: This enables native "Enter" key support for inputs, improving keyboard UX. It also ensures the button has a clear focus state when tabbing.
♿ Accessibility: Improved keyboard navigation and overall form handling flow.

Co-authored-by: dieterolson <198168927+dieterolson@users.noreply.github.com>
…nsolidated/comprehensive-palette-bolt-tools
…nsolidated/comprehensive-palette-bolt-tools
…olidated/comprehensive-palette-bolt-tools
… consolidated/comprehensive-palette-bolt-tools
@dieterolson

Copy link
Copy Markdown
Collaborator Author

Closing as superseded — this exact content lands in #4438

This PR is the real palette/bolt suite (16 commits, merges of #4313, #4314, #4419, #4420 plus the palette/bolt commits). Its content is not being dropped: it is already present, in full, on consolidated/codex-variation-suite (#4438), which is what will be merged.

Evidence (git, 2026-08-13, against origin/main @ 3e8959915)

A squash of this PR — 91ea71b93 🎨 Palette & Bolt Suite: … (#4429) — was pushed onto three consolidation branches by the prior consolidation attempt while this PR was left open on its own unsquashed branch. 91ea71b93 is an ancestor of consolidated/codex-variation-suite and differs from this branch's head in only 2 files.

Comparing this branch head against #4438's head:

So #4438's tree is a strict semantic superset of this one. Merging #4438 lands 100% of this PR's work plus the motion-view extraction, with correct formatting and a green quality-gate — instead of re-running ~18 queued workflow jobs here to fix formatting that #4438 has already fixed.

What this means for the issues this PR closes

The Closes list above (#4421, #4420, #4419, #4418, #4314, #4313, #4311, #4310) will be satisfied by #4438, not by this PR. Each has been annotated accordingly.

Queued workflow runs on this branch are being cancelled to free the runner fleet (584 queued runs against 1 executing at the time of this triage).

auto-merge was automatically disabled August 14, 2026 02:48

Pull request was closed

This was referenced Aug 14, 2026
dieterolson added a commit that referenced this pull request Aug 14, 2026
…tion (#4438)

Consolidates the Palette & Bolt suite that originated in #4429 (squash 91ea71b,
itself covering merges of #4313, #4314, #4419, #4420) plus a movement-optimizer
motion-view extraction, with Python formatting corrected to the CI-pinned
ruff==0.14.10 and a Python 3.10 regression reverted.

Substance:
- Palette: form semantics, useId() label binding and role="alert" in
  RotationConverter.tsx and ODESolverCalculator.tsx.
- Bolt: single-pass CSV string building in chartSnapshot.ts, Array.from removal
  in explorer/csv.ts, fewer intermediate allocations for SVG paths in
  LinePlot/ScatterPlot/SpectrumPlot.tsx.
- refactor(movement-optimizer): extract MotionViewMixin into
  src/movement_optimizer/gui/motion_view.py.
- fix(ci): correct sparse-checkout paths in cross-repo-python-integration.yml.
- fix(tests): restore timezone.utc in test_action_audit.py; a pre-commit ruff
  pass had moved a noqa off its line, letting UP017 rewrite the import to
  datetime.UTC, which does not exist on Python 3.10.

Supersedes, all closed as containing nothing this branch lacks:
- #4429 — the original palette/bolt branch; quality-gate red at Format Check
  because its own pre-commit commits re-wrapped 86 files with a ruff that
  disagrees with the pin. Proven a strict semantic subset of this tree by
  normalising both sides with one ruff format pass.
- #4437 and #4439 — byte-identical trees to each other (7fc2ce4), each only
  the #4429 squash plus a lint commit, despite advertising flight and
  rate-of-closure work.

Palette/Bolt work items carried: #4310, #4311, #4313, #4314, #4418, #4419,
#4420, #4421.

None of the 59 still-open agent PRs named in the three closed PRs' descriptions
are in this diff; they remain open and unconsolidated.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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