First-hands-on feedback round from Jeroen's make atlas session — two UI defects fixed (T-1140), one design revision recorded (D-226 T-1124 §5).
T-1140 — overlay bar overflow + dev-id leakage (fixed here)
The overlay toggle bar was a single HBoxContainer row: 17 chips at 42px min overflowed the right screen edge (the positioning also guessed the bar's width with a 520px fallback, so the row started too far right on top of everything). Now an HFlowContainer with ALIGNMENT_END: the viewer hands it everything right of the header (OVERLAY_BAR_HEADER_RESERVE = 360) and rows wrap right-aligned. Verified by live capture — all 18 chips visible, right-aligned, wrapping when the window narrows.
OVERLAY_DEFS tooltips leaked dev provenance into player-facing text: ticket ids (#960, T-960, T-1046, T-1118, T-1119) and decision ids (D-181, D-226, D-243). All stripped to plain language; the visibility-ladder semantics survive as words ("public signal", "observable — requires presence", "needs corporate contact", "needs insider access").
D-226 T-1124 §5 entry revision (design record, no code here)
Jeroen's ruling: the planetary pixel-scaling pan/zoom "is only messing with the pixels" — the planetary heightmap view becomes fixed, and regional-map entry becomes an explicit click-through: hover shows a rectangle cursor representing the regional-mode bounds, click descends centered on the click point. Replaces the zoom-threshold LOD swap (DISTRICT_WINDOW_MIN_ZOOM retired before ever being built); D-013's zoom-owns-descent superseded for this seam only. In-mode behavior (§4 pan-refetch/debounce/cache/border-fade) unchanged; morph transition explicitly deferred. The current pan/zoom ships until T-1138 lands the replacement — removed in the same change so close inspection is never stranded. T-1138's description updated accordingly (including the not-to-scale rectangle-cursor question the screen design must resolve, and the note that the T-1120 set_view capture API must survive).
Verification
gdlint clean on both touched files; test_atlas_overlays 44/44; full gdUnit suite via the pre-push gate.
Live capture (tests/run-visual atlas_gen_open): bar renders all 18 chips right-aligned within bounds.
pql decisions validate clean on the amendment.
Tickets: T-1140 (fixed), T-1138 (updated)
## Summary
First-hands-on feedback round from Jeroen's `make atlas` session — two UI defects fixed (T-1140), one design revision recorded (D-226 T-1124 §5).
### T-1140 — overlay bar overflow + dev-id leakage (fixed here)
- The overlay toggle bar was a single `HBoxContainer` row: 17 chips at 42px min overflowed the right screen edge (the positioning also guessed the bar's width with a 520px fallback, so the row started too far right on top of everything). Now an `HFlowContainer` with `ALIGNMENT_END`: the viewer hands it everything right of the header (`OVERLAY_BAR_HEADER_RESERVE = 360`) and rows wrap right-aligned. Verified by live capture — all 18 chips visible, right-aligned, wrapping when the window narrows.
- `OVERLAY_DEFS` tooltips leaked dev provenance into player-facing text: ticket ids (#960, T-960, T-1046, T-1118, T-1119) and decision ids (D-181, D-226, D-243). All stripped to plain language; the visibility-ladder semantics survive as words ("public signal", "observable — requires presence", "needs corporate contact", "needs insider access").
### D-226 T-1124 §5 entry revision (design record, no code here)
Jeroen's ruling: the planetary pixel-scaling pan/zoom "is only messing with the pixels" — the planetary heightmap view becomes **fixed**, and regional-map entry becomes an explicit **click-through**: hover shows a rectangle cursor representing the regional-mode bounds, click descends centered on the click point. Replaces the zoom-threshold LOD swap (`DISTRICT_WINDOW_MIN_ZOOM` retired before ever being built); D-013's zoom-owns-descent superseded for this seam only. In-mode behavior (§4 pan-refetch/debounce/cache/border-fade) unchanged; morph transition explicitly deferred. The current pan/zoom ships until T-1138 lands the replacement — removed in the same change so close inspection is never stranded. T-1138's description updated accordingly (including the not-to-scale rectangle-cursor question the screen design must resolve, and the note that the T-1120 `set_view` capture API must survive).
### Verification
- gdlint clean on both touched files; `test_atlas_overlays` 44/44; full gdUnit suite via the pre-push gate.
- Live capture (`tests/run-visual atlas_gen_open`): bar renders all 18 chips right-aligned within bounds.
- `pql decisions validate` clean on the amendment.
Tickets: T-1140 (fixed), T-1138 (updated)
Jeroen's first make atlas hands-on: 17 overlay chips in a single
HBoxContainer row ran off the right screen edge (positioning also
guessed the bar's width with a 520px fallback). The bar is now an
HFlowContainer with ALIGNMENT_END; the viewer gives it everything
right of the header (OVERLAY_BAR_HEADER_RESERVE) and rows wrap
right-aligned — verified via live capture, all 18 chips visible.
OVERLAY_DEFS tooltips leaked dev provenance into player-facing text —
ticket ids (#960, T-960, T-1046, T-1118, T-1119) and decision ids
(D-181, D-226, D-243) mean nothing in-game. Stripped to plain
language; the visibility-ladder semantics (public signal / observable
/ needs corporate contact / needs insider access) stay.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The regional-map entry changes from zoom-threshold LOD swap to
explicit click-through: the planetary heightmap view becomes FIXED
(pan/zoom removed together with its replacement in T-1138, never
before); hovering shows a rectangle cursor representing the
regional-mode bounds; click descends centered on the click point's
derived DistrictPos. DISTRICT_WINDOW_MIN_ZOOM retired before ever
being built; D-013's zoom-owns-descent superseded for this seam only
(click owns descent). In-mode behavior unchanged (pan-only refetch,
debounce, cache, border-fade). Morph transition explicitly deferred.
Open at T-1138: the rectangle is an affordance, not to scale — n=64
is ~131 km = a few px on a planetary canvas; resolve the honest
representation in the screen design. T-1138 description updated;
T-1140 filed for the two companion UI defects fixed alongside.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Hoshe's finding: the wrap fix gave the bar container the full
header-adjacent width, and with ALIGNMENT_END + the pre-existing
MOUSE_FILTER_STOP that left a ~700px dead strip (1920px screens) left
of the chips silently swallowing map clicks/drags near the top edge —
a regression the wrap change introduced by widening the rect without
revisiting the filter. Two edits: the container is now
MOUSE_FILTER_IGNORE (the legend-panel/header/empty-notice idiom; chip
Buttons STOP their own events so toggles and tooltips are unaffected),
and _is_over_ui() no longer checks the bar rect (with IGNORE, chip
events never reach the viewer — checking the wide rect would recreate
the dead strip). Regression test pins both: filter mode + an
empty-strip point not registering as UI.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Round 1 verified clean: tooltip cleanup complete (18/18 defs intact, no dev ids anywhere in OVERLAY_DEFS or GENERATION_LEGEND, visibility-ladder semantics preserved as words); FlowContainer conversion correct (h_separation/v_separation override names, ALIGNMENT_END right-alignment); D-226 §5 entry-revision amendment internally consistent (cleanly names what it retires — DISTRICT_WINDOW_MIN_ZOOM, zoom-owns-descent for this seam — with a consistent T-1138 pointer); pql decisions validate clean.
Round-1 finding (fixed in 872aea041): the wrap fix widened the bar container to the full header-adjacent width, and the pre-existing MOUSE_FILTER_STOP turned the empty flow area left of the right-aligned chips into a ~700px dead strip (1920px screens) silently swallowing map clicks/drags near the top edge. Fix confirmed as two necessary edits, not one: container → MOUSE_FILTER_IGNORE (the legend-panel/header/empty-notice idiom; chip Buttons keep Godot's default STOP and still catch their own clicks/tooltips), AND _is_over_ui() drops the bar-rect check — verified independent of the filter fix because _is_over_ui() is a manual point-in-rect check called directly from _gui_input(), not routed through Control input propagation; either edit alone would have left the strip dead through the other path. Regression test geometry independently re-derived (bar spans 1528px, chips occupy 824px, strip point lands 8px into the 704px empty zone); assertions verified to fail pre-fix. Locked/disabled chips' tooltips unaffected (native mechanism, Buttons keep STOP). 46/46 suite + gdlint re-run independently.
#
File
Issue
Status
1
atlas_overlay_bar.gd:37 + atlas_viewer.gd:709
Widened bar rect + STOP filter = dead input strip near top edge
Runtime verification: full gdUnit suite via the pre-push gate on every push; live capture (atlas_gen_open) confirms all 18 chips render right-aligned within bounds; test_atlas_overlays 46/46 with the new input-regression test.
## Review: atlas-companion-friction → main (type: code + governance) — round 2 (fix round)
Single reviewer (proportionality: small bug-fix PR; the governance change transcribes a ruling Jeroen made directly).
### Hoshe (QA): APPROVE (round 1: REQUEST_CHANGES, 1 finding — fixed and confirmed)
Round 1 verified clean: tooltip cleanup complete (18/18 defs intact, no dev ids anywhere in OVERLAY_DEFS or GENERATION_LEGEND, visibility-ladder semantics preserved as words); FlowContainer conversion correct (`h_separation`/`v_separation` override names, `ALIGNMENT_END` right-alignment); D-226 §5 entry-revision amendment internally consistent (cleanly names what it retires — `DISTRICT_WINDOW_MIN_ZOOM`, zoom-owns-descent for this seam — with a consistent T-1138 pointer); `pql decisions validate` clean.
**Round-1 finding (fixed in 872aea041):** the wrap fix widened the bar container to the full header-adjacent width, and the pre-existing `MOUSE_FILTER_STOP` turned the empty flow area left of the right-aligned chips into a **~700px dead strip** (1920px screens) silently swallowing map clicks/drags near the top edge. Fix confirmed as **two necessary edits, not one**: container → `MOUSE_FILTER_IGNORE` (the legend-panel/header/empty-notice idiom; chip Buttons keep Godot's default `STOP` and still catch their own clicks/tooltips), AND `_is_over_ui()` drops the bar-rect check — verified independent of the filter fix because `_is_over_ui()` is a manual point-in-rect check called directly from `_gui_input()`, not routed through Control input propagation; either edit alone would have left the strip dead through the other path. Regression test geometry independently re-derived (bar spans 1528px, chips occupy 824px, strip point lands 8px into the 704px empty zone); assertions verified to fail pre-fix. Locked/disabled chips' tooltips unaffected (native mechanism, Buttons keep `STOP`). 46/46 suite + gdlint re-run independently.
| # | File | Issue | Status |
|---|------|-------|--------|
| 1 | atlas_overlay_bar.gd:37 + atlas_viewer.gd:709 | Widened bar rect + STOP filter = dead input strip near top edge | FIXED (872aea041) + regression test |
### Verdict: APPROVED
Runtime verification: full gdUnit suite via the pre-push gate on every push; live capture (`atlas_gen_open`) confirms all 18 chips render right-aligned within bounds; `test_atlas_overlays` 46/46 with the new input-regression test.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
First-hands-on feedback round from Jeroen's
make atlassession — two UI defects fixed (T-1140), one design revision recorded (D-226 T-1124 §5).T-1140 — overlay bar overflow + dev-id leakage (fixed here)
HBoxContainerrow: 17 chips at 42px min overflowed the right screen edge (the positioning also guessed the bar's width with a 520px fallback, so the row started too far right on top of everything). Now anHFlowContainerwithALIGNMENT_END: the viewer hands it everything right of the header (OVERLAY_BAR_HEADER_RESERVE = 360) and rows wrap right-aligned. Verified by live capture — all 18 chips visible, right-aligned, wrapping when the window narrows.OVERLAY_DEFStooltips leaked dev provenance into player-facing text: ticket ids (#960, T-960, T-1046, T-1118, T-1119) and decision ids (D-181, D-226, D-243). All stripped to plain language; the visibility-ladder semantics survive as words ("public signal", "observable — requires presence", "needs corporate contact", "needs insider access").D-226 T-1124 §5 entry revision (design record, no code here)
Jeroen's ruling: the planetary pixel-scaling pan/zoom "is only messing with the pixels" — the planetary heightmap view becomes fixed, and regional-map entry becomes an explicit click-through: hover shows a rectangle cursor representing the regional-mode bounds, click descends centered on the click point. Replaces the zoom-threshold LOD swap (
DISTRICT_WINDOW_MIN_ZOOMretired before ever being built); D-013's zoom-owns-descent superseded for this seam only. In-mode behavior (§4 pan-refetch/debounce/cache/border-fade) unchanged; morph transition explicitly deferred. The current pan/zoom ships until T-1138 lands the replacement — removed in the same change so close inspection is never stranded. T-1138's description updated accordingly (including the not-to-scale rectangle-cursor question the screen design must resolve, and the note that the T-1120set_viewcapture API must survive).Verification
test_atlas_overlays44/44; full gdUnit suite via the pre-push gate.tests/run-visual atlas_gen_open): bar renders all 18 chips right-aligned within bounds.pql decisions validateclean on the amendment.Tickets: T-1140 (fixed), T-1138 (updated)
Review: atlas-companion-friction → main (type: code + governance) — round 2 (fix round)
Single reviewer (proportionality: small bug-fix PR; the governance change transcribes a ruling Jeroen made directly).
Hoshe (QA): APPROVE (round 1: REQUEST_CHANGES, 1 finding — fixed and confirmed)
Round 1 verified clean: tooltip cleanup complete (18/18 defs intact, no dev ids anywhere in OVERLAY_DEFS or GENERATION_LEGEND, visibility-ladder semantics preserved as words); FlowContainer conversion correct (
h_separation/v_separationoverride names,ALIGNMENT_ENDright-alignment); D-226 §5 entry-revision amendment internally consistent (cleanly names what it retires —DISTRICT_WINDOW_MIN_ZOOM, zoom-owns-descent for this seam — with a consistent T-1138 pointer);pql decisions validateclean.Round-1 finding (fixed in
872aea041): the wrap fix widened the bar container to the full header-adjacent width, and the pre-existingMOUSE_FILTER_STOPturned the empty flow area left of the right-aligned chips into a ~700px dead strip (1920px screens) silently swallowing map clicks/drags near the top edge. Fix confirmed as two necessary edits, not one: container →MOUSE_FILTER_IGNORE(the legend-panel/header/empty-notice idiom; chip Buttons keep Godot's defaultSTOPand still catch their own clicks/tooltips), AND_is_over_ui()drops the bar-rect check — verified independent of the filter fix because_is_over_ui()is a manual point-in-rect check called directly from_gui_input(), not routed through Control input propagation; either edit alone would have left the strip dead through the other path. Regression test geometry independently re-derived (bar spans 1528px, chips occupy 824px, strip point lands 8px into the 704px empty zone); assertions verified to fail pre-fix. Locked/disabled chips' tooltips unaffected (native mechanism, Buttons keepSTOP). 46/46 suite + gdlint re-run independently.872aea041) + regression testVerdict: APPROVED
Runtime verification: full gdUnit suite via the pre-push gate on every push; live capture (
atlas_gen_open) confirms all 18 chips render right-aligned within bounds;test_atlas_overlays46/46 with the new input-regression test.Pull request closed