Skip to content

fix(rate UI): keep toolstrip menus inside constrained viewports - #4301

Closed
d-sorgcodexagent[bot] wants to merge 11 commits into
feat/4284-camera-snap-trackingfrom
fix/rate-mobile-tools-menu
Closed

fix(rate UI): keep toolstrip menus inside constrained viewports#4301
d-sorgcodexagent[bot] wants to merge 11 commits into
feat/4284-camera-snap-trackingfrom
fix/rate-mobile-tools-menu

Conversation

@d-sorgcodexagent

@d-sorgcodexagent d-sorgcodexagent Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • keep File, View, and Tools popovers inside a collision-safe 16 px viewport gutter
  • preserve the desktop anchor and native details/summary keyboard/accessibility behavior
  • reuse one fail-closed viewport-clamp contract across all three menus
  • normally incorporate the exact repaired camera parent without rebasing, retargeting, rewriting, or force-pushing
  • reconcile the canonical specification and all Rate handoffs in the same merge commit

Tracks #4300 under epic #4218. This draft does not close either issue.

Exact current topology

  • head: 16a1167c31126238163297983862004afc5001d9
  • first parent / prior qualified child: 5c8efcbe5fcd6f993ef947a85e39852d268780a6
  • second parent / repaired camera PR feat(rate-of-closure): add camera tracking and snap views #4298: 104503aac9779b195d46d38e8ed32611ffc8dfd7
  • preserved base: feat/4284-camera-snap-tracking
  • immutable mobile implementation: ebd804ff24e7ce5ca58c7d1495c438ab1dcd83b5

Mobile-toolstrip production/test code did not conflict. Only four additive current-state handoff/spec files required reconciliation.

Current composed-tree verification

  • 32 focused Python/PyQt camera and four-surface tests passed
  • 8 focused React toolstrip/clamp tests passed
  • 2 Chromium desktop/constrained-HiDPI menu cases passed
  • TypeScript, zero-warning ESLint, and Vite production build passed (195 modules)
  • pinned MyPy 1.13 passed 3 changed production files; Ruff/format passed 4 Python files
  • four-surface authority, changed-Python policy, module-size, and whitespace gates passed
  • exact repaired parent was independently qualified before propagation with 272 focused Python/PyQt tests, 670 React tests, 26 Rust tests, and pinned MyPy on 33 production files

Release boundary

Protected current-head CI, required review, native rendered qualification, installed UpstreamDrift conformance, parent integration, and dependency-ordered release remain open. This draft is not evidence that #4300, #4284, #4264, #4260, or #4218 is complete.

# Conflicts:
#	AGENT_HANDOFF.md
#	SPEC.md
#	docs/development/RATE_OF_CLOSURE_CAMPAIGN_HANDOFF.md
#	src/rate_of_closure/AGENT_HANDOFF.md
# Conflicts:
#	SPEC.md
#	docs/development/RATE_OF_CLOSURE_CAMPAIGN_HANDOFF.md
codex-scheduled added 2 commits August 10, 2026 18:47
# Conflicts:
#	AGENT_HANDOFF.md
#	SPEC.md
#	docs/development/RATE_OF_CLOSURE_CAMPAIGN_HANDOFF.md
#	src/rate_of_closure/AGENT_HANDOFF.md
@dieterolson

Copy link
Copy Markdown
Collaborator

Superseded by #4466, which consolidates all 43 open src/rate_of_closure PRs into one
branch. Closing this one is measured, not assumed: verify_coverage.sh reports
safe=43 NOT-covered=0 against consolidated/rate-closure-remainder-2026-08-13, so this
PR's head is contained and nothing here is dropped.

Stacks were folded top-down (each child into its own parent, then the parent upward), so
non-tip work is included rather than skipped — including 8067ca79a (#4171, CAD export
artifact validation) and f9afa9d96 (#4309, strict ground result playback), each of which
lived in exactly one PR and is absent from its stack tip.

The consolidation also repairs defects the merge exposed, listed in #4466: two unguarded
datetime.UTC imports that break the Python 3.10 lane, a PyQt module registry that could no
longer construct the main window, the club-assembly binding and STL/sidecar controls that had
been dropped from the wired tree, and a filelock dependency that would have failed
tests (3.11) at collection.

Reopen this PR if you need its branch; the branch itself is untouched.

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