PR014 viewport boundary: development verification

Input commit baf629a7d0c927f20658801f114235abc8f3edb5 plus owner-provided PR014 RST/PNG. The owner requested analysis, a plan and the complete V-cycle. This is a local presentation fix, not a release. Before/after execution and scoped concept review are recorded here and in Round 11: PR014 visible viewport boundary.

Before-fix reproduction

Firefox reproduced a node crossing the actual overflow edge in file/HTTP. The marker has 0 px width/style none, while the node is absent above the edge and visible just inside it. Both desired-marker assertions fail as expected.

  • Baseline runner report (retained in the engineering checkout)

  • Baseline diagnostics (retained in the engineering checkout)

  • Before geometry (retained in the engineering checkout)

  • Before screenshot (retained in the engineering checkout)

After-fix development result

The scoped fix passes 70 checks: two complete marker variants plus eight adjacent Firefox usability/offline/negative-arrow cases and all 60 non-browser tests. The explicit content-box top border remains fixed while the graph moves; actual hit tests locate the clip edge. Narrow/wide resizing and a global border-box host rule preserve the 975 px client area. Keyboard expansion and independent views work. The rendered clipped-node screenshot was visually inspected.

The packaged CSS matches the source asset byte-for-byte; an isolated installed wheel host without Node and the source-archive rebuild checks pass. JavaScript, state, graph/layout algorithms, dependencies and version are unchanged. Full capacity and complete release qualification were not rerun for this static presentation fix; their older evidence is not claimed as a new result.

  • After report (retained in the engineering checkout)

  • Non-browser/package report (retained in the engineering checkout)

  • After clipped-node screenshot (retained in the engineering checkout)

  • After geometry (retained in the engineering checkout)

  • Source/package identity (retained in the engineering checkout)

  • Exact commands (retained in the engineering checkout)

  • Summary and retained failed attempts (retained in the engineering checkout)

  • Clean installed consumer identity (retained in the engineering checkout)

  • Source archive inventory (retained in the engineering checkout)

  • Strict executable mapping (retained in the engineering checkout)

Environment: Windows 11, Python 3.13.17, Firefox 158.0.1 and geckodriver 0.37.1, external browser requests blocked. Canonical executions use enclosing report completion timestamps, not invented per-variant times. Baseline identity is retained separately from the final CSS identity. No commit or release is made.

Final documentation checks

Warnings-as-errors Sphinx and full –require-test-coverage validation passed: 56 SHR, 10 SYS, 62 SWR, 110 canonical cases and 606 executions. Strict executable mapping covers 72 system/software requirements and 136 executable cases, with no unknown IDs or unmapped active requirements; this inventory is not a claim that the entire 136-case release selection was rerun. The 70-check development selection above covers this static viewport fix and its relevant regressions.

  • Final build log (retained in the engineering checkout)

  • Final evidence validation (retained in the engineering checkout)

  • Requirement paths (retained in the engineering checkout)

  • Requirement-to-case paths (retained in the engineering checkout)