Skip to content

Progress report: tabs, Changes tab, bugs via gh, Build tab focus - #569

Open
MendixMau wants to merge 1 commit into
masterfrom
feat/progress-report-tabs
Open

MendixMau wants to merge 1 commit into
masterfrom
feat/progress-report-tabs

Conversation

@MendixMau

Copy link
Copy Markdown
Owner

What the tabs do

The progress report was four reports stacked on one long page. Now it has tabs in the sticky bar:

  • Overview: current stage, project KPIs (including a new Changes waiting count), the stage rail
  • Build: the phase being built (open) plus the three unfinished phases with the most recent built rows, as cards. Other unfinished phases and completed phases fold into two groups.
  • Changes (new): the PROJECT.md Change log as a backlog, with status counts and the plan rows that name each CR. A split ask leads with its (part: ...).
  • Performance: session totals, time, context, tokens and sub-agents.
  • Pages: master's Project pages tree.
  • Notes, tips and bugs: tips first, then Encountered bugs or limitations from docs/bugs.jsonl. Each open bug gets buttons that copy its file-bugs.sh command, one per repo. The person runs that command, which redacts, looks for duplicates, asks y/N and files through gh. The page itself never posts anything. The method notes are folded at the bottom.

Without JavaScript every section shows on one page, as before. The chosen tab survives the 30 s reload. A link into a hidden tab switches to that tab first. Show all puts everything back on one page for searching and printing.

file-bugs --to mxcli|toolkit also files the same finding to the other repo. The row keeps its target and the second URL goes under also.<repo>. Without gh or a GitHub login, --file exits 0, posts nothing and names the way out (gh auth login, or --links).

How the conflicts with master were resolved

The branch was 6 local commits behind ~61 master commits. I squashed it to one commit and rebased that, so each conflict was resolved once instead of once per commit.

Test changes from the merge:

  • polish P7 (Progress report: one nav group (drop the stage chips), duplicate id=stamp, stale header wording, page names #479) reads the section links outside the tab bar and also checks the tab list.
  • P6c compares the set of cards rather than their order, because P10 pins the new order.
  • The branch's P7, P8 and P9 are renumbered to P8, P9 and P10 (they collided with master's P7 name and work directory).
  • The accordion count now strips the padding from wc -l. This check failed on macOS on master too, 52/53.
  • test-progress-harness-verify.sh N5 reads each phase badge by phase id instead of page order.

Tests (macOS; the master column is a clean origin/master worktree)

Test This branch master
test-progress-report-polish.sh PASS=85 FAIL=0 PASS=52 FAIL=1 (wc -l padding)
test-file-bugs.sh 110 pass, 0 fail 99 pass, 0 fail
test-progress-report.sh PASS=104 FAIL=0 104 pass
test-progress-report-pages.sh 54 pass, 0 fail 54 pass
test-progress-report-field-fixes.sh PASS=105 FAIL=0 PASS=105 FAIL=0
test-progress-harness-verify.sh PASS=30 FAIL=0 rc 0
test-progress-report-gitignore.sh PASS=15 FAIL=0 PASS=15 FAIL=0
test-build-plan-json.sh PASS=70 FAIL=0 rc 0
test-build-plan-status-args.sh 6 passed, 0 failed 6 passed, 0 failed
test-surface-column.sh 13 ok, 0 FAIL 13 ok, 0 FAIL
test-windows-msys-paths.sh pass: 9, fail: 0 pass: 9, fail: 0

I also rendered the pages in headless Chrome to look at them: the tab bar, Build focus/folds, and the Notes tab with bugs. #build-detail and #bugs links switched to the right tab.

Known gap: a phase made only of HARNESS sign-off rows (no build rows) never counts as "completed", so it shows among the unfinished phases.

🤖 Generated with Claude Code

… tab focus

The report stacked four reports on one long page. It is now tabs in the
sticky bar: Overview (current stage, project KPIs with Changes waiting,
stage rail), Build, Changes (new: the PROJECT.md Change log as a backlog,
with status counts and the plan rows that name each CR), Performance
(session totals, time, context, tokens, sub-agents), Pages (the project's
HTML pages) and "Notes, tips and bugs". Without JavaScript every section
shows on one page, as before. The chosen tab survives the 30 s reload, a
link into a hidden tab switches to it, and Show all puts everything back
on one page for searching and printing.

Bugs: "Encountered bugs or limitations" in the Notes tab, from
docs/bugs.jsonl. An open bug gets buttons that copy its file-bugs.sh
command (one per repo); the person runs it, which redacts, searches for
duplicates, asks y/N and files with gh. Nothing is posted from the page.
file-bugs --to files the same finding to the other repo too; the row keeps
its target and the second URL goes under also.<repo>. Without gh or a
GitHub login --file exits 0, posts nothing and names the way out.

Build tab: the phase being built (open) and the three unfinished phases
with the most recent built rows as cards; other unfinished and completed
phases fold into two groups. A link to a phase opens its group.

Rebased onto master (squashed from six local commits). Merged with
master's newer report:
- top bar (#479): master's section links (Stages, Build, Pages) stay as
  the bar without JavaScript; the tab bar replaces them once the script
  runs. No stage chips; the current stage stays in the header.
- one plan view (#474) and module sign-offs (#526): the phase cards keep
  phase_bar, sign-off lines and --phase-detail rows inside the focus/fold
  layout; the plan tables stay master's open section.
- master's phase accordion (one phase open at a time) is kept next to the
  tab switch and the open-every-enclosing-details link handling.
- unique ids and data-stamp lines (#479) kept, fold groups get ids so a
  reload keeps them open.
- Project pages (#472) is its own tab.

Tests: polish P7 (#479) reads the section links outside the tab bar and
checks the tab list; P6c compares the set of cards (P10 pins the order);
the branch's tests are renumbered P8-P10; the accordion count strips
wc -l padding (failed on macOS on master too); harness-verify N5 reads
each badge by phase id.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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