Skip to content

feat(rate-of-closure): inspect exact putting samples - #4443

Draft
d-sorgcodexagent[bot] wants to merge 2 commits into
codex/4433-variation-auto-prominencefrom
codex/4433-putting-sample-inspector
Draft

feat(rate-of-closure): inspect exact putting samples#4443
d-sorgcodexagent[bot] wants to merge 2 commits into
codex/4433-variation-auto-prominencefrom
codex/4433-putting-sample-inspector

Conversation

@d-sorgcodexagent

Copy link
Copy Markdown
Contributor

What changed

  • add a shared Python/TypeScript putting-sample presentation plan capped at 1,024 exact samples from up to 30,001 retained solver rows
  • synchronize path and speed markers through one runtime-local raw sample selection with rendered-pixel pointer picking and keyboard navigation
  • stage immutable result, plan, context, and generation bundles before UI publication; malformed or failed recomputes retain the exact prior accepted evidence
  • expose the complete producing putter, resolved pace, green, hole, and kernel context while keeping first-run failure honest
  • align putting input domains across React, PyQt, and the TypeScript physics boundary
  • add three-viewport React and two-DPI PyQt rendered diagnostics, workflow authority, strict cross-runtime fixtures, and canonical handoffs

Why

Issue #4433 requires the visualization itself to be the primary, intuitive interaction surface on every matched React/PyQt tab. Putting previously rendered as a static result and drew every legal raw sample. This child makes the visible trajectory directly inspectable while preserving the raw scientific result and bounded rendering.

Scientific and UX boundaries

Selection is presentation-only: it does not rerun the solver, interpolate, mutate exports, or change the accepted result. Runtime-local sample indices are not claimed as portable cross-runtime solver identity. React browser evidence covers the production-reachable selected state; dependency-failure retention remains component-tested because bounded production editors expose no genuine browser failure path. PyQt diagnostics exercise a real dependency failure. Artifacts remain diagnostic, not approved goldens, and #4433 stays open for remaining tabs, AT validation, portable raw solver goldens, and approved baselines.

Validation

  • Python Rate suite: 1,327 passed
  • React Vitest: 118 files / 983 tests passed
  • focused Python/PyQt: 27 passed
  • focused React/model: 54 passed
  • Playwright: 3/3 at 1440x900, 1280x720, and 390x844
  • PyQt rendered: 2/2 at 100% and 150% DPI
  • TypeScript, ESLint, production build, Ruff, format, MyPy, workflow/governance, diff, and changed-file size gates passed
  • independent exact-SHA adversarial review: GO

Stack

Draft child of #4442 (codex/4433-variation-auto-prominence) and part of visualization epic #4433. Do not merge before its parent stack is approved and lands.

@d-sorgcodexagent

Copy link
Copy Markdown
Contributor Author

Hosted quality-gate correction published at exact head 647b0431f1173a0d2b7b85e208241d161b2fbac7 by normal fast-forward from 162407b7.

Root cause: pinned MyPy 1.13 inferred the variadic transformed-coordinate tuple as tuple[float, ...], not the declared (int, float, float). The adapter now constructs the exact typed triple explicitly and narrows adjacent Qt text/bool/float binding returns. This is static-only; putting selection, geometry, physics, evidence, and PR topology are unchanged.

Local evidence: CPython 3.12 + MyPy 1.13 clean on all five changed Python sources; focused Putting GUI/planner 27/27; Ruff/format/docs/diff clean; independent exact-SHA GO. No manual CI rerun was requested; the branch update supplies the protected run naturally.

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.

0 participants