Skip to content

feat(rate-of-closure): land the first React web/src/model slice of #4466 - #4530

Merged
dieterolson merged 4 commits into
mainfrom
feat/roc-web-model-slice
Aug 18, 2026
Merged

feat(rate-of-closure): land the first React web/src/model slice of #4466#4530
dieterolson merged 4 commits into
mainfrom
feat/roc-web-model-slice

Conversation

@dieterolson

Copy link
Copy Markdown
Collaborator

101 files: capability observation + result export, club assembly binding and engineering sidecar wire, ground playback workspace, regional-ground variation request/workspace/target projection, scalar ensemble contract, wind-strategy plot data, and their tests.

This tree diverged in BOTH directions

Every earlier slice found the branch behind main in a few files. The React tree is the opposite problem at scale:

I initially copied 324 modified files in bulk, then reset it. Against a tree where main demonstrably owns 129 files the branch never saw, that was not a safe operation — shipping it would have reverted precisely the work this series exists to protect.

What lands instead

The provably safe subset: files whose main→branch diff deletes nothing, then an iterative drop of added files whose dependencies need a main-newer module. Converged in 5 rounds.

flight.ts and wind.test.ts are explicitly held at main's version so the #4518 ground-crossing guard and the 1e-9 parity tolerance (#4513) survive — verified after the fact, not assumed.

29 added files are deferred. They aren't broken; they need their main-side counterparts, and a later slice can carry both together.

Verification

  • tsc --noEmit clean
  • eslint clean
  • 1,324 React tests passing across 157 files
  • production Vite build succeeds (223 modules)
  • no Python or Rust changes

Part of epic #4103.

🤖 Generated with Claude Code



101 files: capability observation and result export, club assembly binding and
engineering sidecar wire, ground playback workspace, regional-ground variation
request/workspace/target projection, scalar ensemble contract, wind-strategy
plot data, and their tests.

The React tree cannot be taken wholesale, and the measurement is worth
recording because it is the opposite of what the earlier slices found. This
tree has diverged in *both* directions:

- 129 files exist on main that the branch lacks entirely — the Morris component
  chain (`MorrisWorkflowPanel`, `MorrisResults`, `MorrisFactorEditor`,
  `MorrisWorkspaceActions`), `LaunchMonitorLinkedScatter`,
  `morrisAuthorityProxy`, and 15 Playwright specs, all landed by #4473. This is
  the React mirror of the `application/morris/**` situation in #4524.
- 125 of the 270 modified `model` files delete content on the branch side. The
  worst, `morrisGlobalSensitivityContract.ts`, is +0/-355 — a strict subset of
  main.

I first copied 324 modified files in bulk and then reset it: against a tree
where main demonstrably owns 129 files the branch never saw, that was not a
safe operation, and shipping it would have reverted exactly the kind of work
this whole series has been protecting.

What lands instead is the provably safe subset: files whose main->branch diff
deletes nothing, then an iterative drop of added files whose dependencies need
a main-newer module. That converged in five rounds. `flight.ts` and
`wind.test.ts` are explicitly held at main's version so the #4518 ground-crossing
guard and the 1e-9 parity tolerance (#4513) survive — verified after the fact,
not assumed.

29 added files are deferred. They are not broken; they need their main-side
counterparts, and a later slice can carry both together.

Verified: `tsc --noEmit` clean, `eslint` clean, 1,324 React tests passing across
157 files, production Vite build succeeds. No Python or Rust changes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@dieterolson
dieterolson enabled auto-merge (squash) August 18, 2026 07:32
codex-scheduled added 3 commits August 18, 2026 00:33
Another agent landed 1.17.28 on main while this branch was open. Renumbered
rather than leaving a duplicate version in the change log.
@dieterolson
dieterolson merged commit c12761f into main Aug 18, 2026
16 checks passed
dieterolson added a commit that referenced this pull request Aug 18, 2026
Adds the 45 component, hook and release files that #4530's model-only
slice left behind: the camera control bar, club canvas viewport and
playback controls, the ground-playback panels, regional execution
evidence and ledger tables, the regional surface plan panel, the scalar
ensemble and wind-strategy scatters, the wind-strategy panel, the view
compositor, seven hooks, the webRuntime descriptor, authorityProxyConfig,
the release artifact generator and contract, and the ground-tee visual
Playwright spec.

Of 125 candidates only 45 could land. Ten symbols the rest need are absent
from main and live in five modules that diverged in both directions --
flight, capabilityOptimizer, variationRegistry, mesh and
flightPlaybackDrawing. None can be taken wholesale; every one deletes
content relative to main, and flight's addition re-types
FlightResult.trajectory and rewrites simulateFlight to delegate through an
options-based integrator. That is a reimplementation on main's newer core,
not a file move, and is tracked separately.

PrimaryViewTabs.test.tsx is reverted to main's version: this slice's copy
was additive by line count yet failed against main's unchanged component.
The prune script is hardened to refuse to remove any file present on
origin/main -- it deleted TorqueProfilePanel.test.tsx on this pass.

Verified: tsc clean, eslint clean, 1,399 tests across 170 files, and the
production Vite build succeeds.

Co-authored-by: codex-scheduled <codex-scheduled@users.noreply.github.com>
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