Summary
The nf-core/reportho report corridor is not merely narrow on current main.
The final row envelopes overlap by 68.2 px, and the shared report trunk crosses
the fetch_ortho section.
This remains the concrete acceptance case for durable corridor settlement. A
reservation record can expose the defect, but this issue closes only when the
final layout honours that reservation.
Current main evidence
Measured at ea232872 after the row-tightening change in PR #1647:
fetch_ortho bottom 466.0
report header/top 397.8
available row interval -68.2
required upper clearance 26.0
required lower clearance 52.0
required total 78.0
capacity slack -146.2
report trunk y 347.8
report trunk x range 356.0 .. 2324.0
The 12 authored report feeders converge onto one simultaneously occupied trunk
lane. That corridor spans columns 0 through 5 and rows 0 through 1. Its exact
final blockers are the bottom of fetch_ortho and the header/top of report.
Why local edge checks miss it
The parser rewrites the authored report connectors through synthetic fan and
merge nodes. The resolved physical graph therefore has no direct
fetch_ortho -> report section pair.
The early placement stage reserves the correct 78 px minimum, but the value has
no route-system owner or full corridor span. Late row tightening cannot connect
that minimum to the report system. It instead selects an unrelated
samplesheets bypass floor over columns 2 through 5 and places report at
397.8 px.
The durable owner must come from authored connector topology and final emission
bindings. It cannot be reconstructed from raw section pairs or final polyline
coincidence.
Historical issue-era evidence
At 32d4f17a8, the failure was less severe:
Stage 2.1 gap 78.00
final gap 53.73
required gap 78.00
capacity deficit -24.27
trunk clearance above 3.73
Stage 6.13 grew the upper envelope by 4 px and Stage 6.15a lifted the lower row
by 20.27 px. _center_inter_row_channel then used its documented narrow-band
fallback. The original report correctly identified that later stages had spent
an earlier reservation. The current regression shows why phase-local minimums
are not enough.
Required fix
The final row and column settlement stage must consume an immutable reservation
owned by the report route system and preserve it after local section extents are
final. Settlement must be monotone and span-aware. It must not re-run all layout
repairs to a fixpoint or introduce a general path solver.
Acceptance:
- the full reportho fixture retains 12 authored feeder connectors, one occupied
lane, span (columns 0..5, rows 0..1), and the 26/52 px clearances;
- current observational evidence names
fetch_ortho and report and reports
the exact -68.2 px interval and -146.2 px slack;
- after settlement, the final emitted corridor satisfies its reservation after
every bbox and canvas adjustment;
- ordinary layouts do not gain unrelated whitespace;
- full CI passes and changed renders receive visual review.
Programme relationship
A narrow fix is acceptable only if it establishes the same durable ownership
boundary. Adding another phase-local row-gap repair does not resolve this issue.
Summary
The nf-core/reportho
reportcorridor is not merely narrow on currentmain.The final row envelopes overlap by 68.2 px, and the shared report trunk crosses
the
fetch_orthosection.This remains the concrete acceptance case for durable corridor settlement. A
reservation record can expose the defect, but this issue closes only when the
final layout honours that reservation.
Current
mainevidenceMeasured at
ea232872after the row-tightening change in PR #1647:The 12 authored report feeders converge onto one simultaneously occupied trunk
lane. That corridor spans columns 0 through 5 and rows 0 through 1. Its exact
final blockers are the bottom of
fetch_orthoand the header/top ofreport.Why local edge checks miss it
The parser rewrites the authored report connectors through synthetic fan and
merge nodes. The resolved physical graph therefore has no direct
fetch_ortho -> reportsection pair.The early placement stage reserves the correct 78 px minimum, but the value has
no route-system owner or full corridor span. Late row tightening cannot connect
that minimum to the report system. It instead selects an unrelated
samplesheetsbypass floor over columns 2 through 5 and placesreportat397.8 px.
The durable owner must come from authored connector topology and final emission
bindings. It cannot be reconstructed from raw section pairs or final polyline
coincidence.
Historical issue-era evidence
At
32d4f17a8, the failure was less severe:Stage 6.13 grew the upper envelope by 4 px and Stage 6.15a lifted the lower row
by 20.27 px.
_center_inter_row_channelthen used its documented narrow-bandfallback. The original report correctly identified that later stages had spent
an earlier reservation. The current regression shows why phase-local minimums
are not enough.
Required fix
The final row and column settlement stage must consume an immutable reservation
owned by the report route system and preserve it after local section extents are
final. Settlement must be monotone and span-aware. It must not re-run all layout
repairs to a fixpoint or introduce a general path solver.
Acceptance:
lane, span
(columns 0..5, rows 0..1), and the 26/52 px clearances;fetch_orthoandreportand reportsthe exact
-68.2px interval and-146.2px slack;every bbox and canvas adjustment;
Programme relationship
expose this deficit without changing geometry and must not close this issue.
A narrow fix is acceptable only if it establishes the same durable ownership
boundary. Adding another phase-local row-gap repair does not resolve this issue.