Skip to content

fix(progress-report): one nav group, one id=stamp, no build-plan.html note (#479 items 1–3) - #486

Merged
MendixMau merged 2 commits into
masterfrom
fix/progress-report-nav-479
Oct 20, 2026
Merged

MendixMau merged 2 commits into
masterfrom
fix/progress-report-nav-479

Conversation

@MendixMau

@MendixMau MendixMau commented Oct 20, 2026 •

Copy link
Copy Markdown
Owner

Direct lane

What changed and why (one paragraph):
Fixes #479 (items 1–3). Item 4 (page names) is left open for the maintainer. Top bar: the sticky .snav bar loses the Stage P 0 … 6 chips (they repeated the stage rail right below) and the IntersectionObserver that outlined them; it is now one group of section links, Stages · Build · Pages · Tips (Tips only when a session log was read), with Stages jumping to the stage rail heading (id=stages). #stages and #build-detail get the same 56px scroll margin as the other targets, so they do not land under the bar. The bar stays sticky with the existing phone rule (nowrap; overflow-x:auto under 520px), every #stage-N card anchor stays, and the header line now starts with Current stage: Stage N: <name>, linked to its card (plain Current stage: unknown when PROJECT.md names no stage). id=stamp: five elements carried it (Last updated, session log last event, the build/score/plan notes, the footer note). Only "Last updated" keeps it. The others get unique ids (lastevent, lastbuild, modelscore, planread, rebuildnote) plus a data-stamp marker. The one reader that depended on the id, build-plan-status.sh --refresh's no-rewrite comparison, now filters id=stamp|data-stamp. Pages written before this change still compare. The filter now depends on both scripts: a project whose bin/build-plan-status.sh is locally edited keeps the old id=stamp filter after sync (sync reports a modified copy and does not overwrite it). Such a project's page is then rewritten on every refresh until it runs sync-project.sh --only-bin build-plan-status.sh --upgrade-bin build-plan-status.sh. The autoreload script never read stamp; it reads livetxt/livebtn, which sit on the id=stamp line and stay unique. Header: "replaces the former build-plan.html" is removed (the note stays under "How this was measured" and in the release notes).

Impact

Row Answer
Process — human steps or gates added/removed; does anything new block; new stage artifacts none: generated page layout only; nothing new blocks
Dependencies — shared files touched; order vs other open PRs; new tools/platform assumptions; new artifact reads + their producer project-bin/progress-report.py, project-bin/build-plan-status.sh (refresh filter only). The two must ship together: a project with a locally edited bin/build-plan-status.sh keeps the old filter after sync and rewrites the page on every refresh, so it needs sync-project.sh --only-bin build-plan-status.sh --upgrade-bin build-plan-status.sh alongside this. Builds on #472 and #475, both on master. No new tools, no new artifact reads
Context cost — always-loaded words per role none: no routed or always-loaded file touched
Behaviour — A/B result for agent-read text n/a: scripts only
Runtime — seconds/resources added or saved n/a (one less IntersectionObserver in the page)

Field evidence: invented demo projects in the fixtures only. The rendered P7 page has grep -c 'id=stamp' = 1 and no duplicate ids. --refresh leaves an unchanged page byte-identical. Not yet re-run on a live project.

  • No client data anywhere in the diff (leak guard clean; whole-word client-name grep of added lines = 0)
  • Size cap: 5 files, about +75/−17 including fixtures and CHANGELOG
  • Test tier reached: T1, the scoped fixtures. test-progress-report 101/0, -polish 53/0 (new P7: nav, scroll margins, unknown stage, stamps), -pages 54/0, -field-fixes 105/0 (F11 flipped, F14 stamp assertions), -gitignore 15/0, test-build-plan-json 70/0, test-build-plan-status-args 6/0, test-windows-msys-paths 9/0. check-scripts, check-portability, check-pr-discipline origin/master and the leak guard are clean
  • For a changed instrument: no parser of tool output changed; path handling is untouched, so the layout and platform cases do not apply
  • For a new skill: n/a
  • CHANGELOG.md line appended, credited "— MendixMau (review 2026-10-20)"
  • New bug entries: n/a

https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw


Generated by Claude Code

… note (#479 items 1-3)

- Top bar: drop the Stage P 0..6 chips and their outline observer; the bar is
  one group of section links (Stages, Build, Pages, Tips) with Stages jumping
  to the stage rail (id=stages). Sticky and phone rules kept, #stage-N card
  anchors kept, and the header line now states the current stage.
- id=stamp: only the "Last updated" span keeps it. The session-log span, the
  build/score/plan notes and the footer note get unique ids plus a data-stamp
  marker. build-plan-status.sh --refresh now ignores lines matching
  id=stamp|data-stamp, so its no-rewrite rule is unchanged and pages written
  before this still compare.
- Header: "replaces the former build-plan.html" removed.

Fixtures: polish P7 (nav, anchors, current stage, unique ids, stamp count,
volatile-line markers, --refresh byte-identical); field-fixes F11 flipped,
F14 asserts the autoreload's live controls ride on the one id=stamp line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
…tage, dead rule, sync note)

- #stages and #build-detail get the 56px scroll margin, so the nav targets
  no longer land under the sticky bar; asserted in polish P7.
- An unreadable current stage renders plain "Current stage: unknown"
  instead of a link to #stage-P; asserted in polish P7.
- Drop the dead .snav b{flex:0 0 auto} phone rule.
- CHANGELOG: a project with a locally edited bin/build-plan-status.sh keeps
  the old id=stamp filter after sync and rewrites the page on every
  refresh; it needs sync-project.sh --only-bin build-plan-status.sh
  --upgrade-bin build-plan-status.sh alongside this.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
@MendixMau
MendixMau merged commit 0149cb8 into master Oct 20, 2026
2 checks passed
MendixMau added a commit that referenced this pull request Oct 20, 2026
Merges six independently reviewed bug fixes. Each was MERGE after one fix round.
- #486 progress-report nav (#479 items 1-3)
- #480 conformance-check (#470)
- #482 page-fidelity popup (#471)
- #481 monkey sign-out i18n (#469)
- #484 bare $VAR before non-ASCII (#467)
- #485 \t in sed/grep brackets (#468)

Verified on the integrated tree:
- check-scripts, check-portability, render-routing --check, pr-discipline and the leak guard are clean.
- progress-report polish 53, field-fixes 105 and pages 54 pass.
- conformance-absent-marker 24, monkey-left-app 22, page-fidelity-mocks 78, status-bare-var 3, sed-tab-bracket 9, context-pack 55 and bug03-gates 47 pass.
Field runs on real projects are owed by the maintainer.

Fixes #479 items 1-3, #470, #471, #469, #467, #468.
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.

Progress report: one nav group (drop the stage chips), duplicate id=stamp, stale header wording, page names

2 participants