Drop the 'reporting API' link from the repo header meta line #527

Closed
opened 2026-09-14 18:02:25 +00:00 by crueber · 3 comments
Owner

What's requested

Remove the "reporting API" link from the repo header meta line (web/src/pages/Repo.jsx), restoring the meta line to branches · tags only. Reporting-API discoverability for check-less repos is already served by Settings → CI tokens, per the #505/#504 intent — the header link is redundant surface.

Evidence

  • web/src/pages/Repo.jsx repo-meta div: a <Show when={!showChecksTab(s())}> block renders · <A href="/api#checks-ci">reporting API</A> in the meta line whenever the Checks tab is hidden. This was added as the #505 mitigation ("meta line keeps the pointer while the tab is hidden").
  • #505 hid the Checks tab on check-less repos; #504 established that checks is a live, fully-wired subsystem whose statuses arrive only from external CI via wct_ tokens.
  • The CI-token path is already discoverable in-repo without the header link: web/src/pages/Settings.jsx tab 5 "CI tokens" (admin-only) explains the wct_ flow, and web/src/pages/Apidocs.jsx carries the full "Checks — reporting from external CI" section at /api#checks-ci.

Architecture notes

  • The link's stated purpose in the #505 comment was discoverability "exactly where CI hasn't been wired yet" — but the actor who must wire CI is the repo admin, whose path is Settings → CI tokens (mint token → the page itself documents the report call). The header meta line is the wrong surface: it is repo-wide chrome, renders for every visitor including non-admins who cannot mint tokens, and duplicates /api#checks-ci.
  • Removal is a pure client change: delete the <Show> block and its #505 comment in Repo.jsx. No wire change, no cache concern (meta line renders from the already-ETag'd summary; removing a static conditional link does not touch the payload).
  • The Checks toolbar's own "reporting API" link (web/src/pages/Checks.jsx, shown once the tab exists) stays — it points at the same anchor for CI authors on repos where checks are already reporting.
  • showChecksTab(s()) remains in use for the tab gate; only the meta-line pointer retires.

Acceptance criteria

  • The repo-meta line on the repo header renders only the ref picker and N branches · M tags — no "reporting API" span, including on check-less repos.
  • The #505 comment block above the removed span is deleted with it (no stale justification comment left in the tree).
  • Checks tab hiding/reappearing behavior (#505) is unchanged.
  • Checks toolbar "reporting API" link (web/src/pages/Checks.jsx) is unchanged.
  • Settings → CI tokens tab continues to document the wct_ report flow (the surviving discoverability path for check-less repos).
## What's requested Remove the "reporting API" link from the repo header meta line (`web/src/pages/Repo.jsx`), restoring the meta line to branches · tags only. Reporting-API discoverability for check-less repos is already served by Settings → CI tokens, per the #505/#504 intent — the header link is redundant surface. ## Evidence - `web/src/pages/Repo.jsx` `repo-meta` div: a `<Show when={!showChecksTab(s())}>` block renders `· <A href="/api#checks-ci">reporting API</A>` in the meta line whenever the Checks tab is hidden. This was added as the #505 mitigation ("meta line keeps the pointer while the tab is hidden"). - #505 hid the Checks tab on check-less repos; #504 established that checks is a live, fully-wired subsystem whose statuses arrive only from external CI via `wct_` tokens. - The CI-token path is already discoverable in-repo without the header link: `web/src/pages/Settings.jsx` tab 5 "CI tokens" (admin-only) explains the `wct_` flow, and `web/src/pages/Apidocs.jsx` carries the full "Checks — reporting from external CI" section at `/api#checks-ci`. ## Architecture notes - The link's stated purpose in the #505 comment was discoverability "exactly where CI hasn't been wired yet" — but the actor who must wire CI is the repo admin, whose path is Settings → CI tokens (mint token → the page itself documents the report call). The header meta line is the wrong surface: it is repo-wide chrome, renders for every visitor including non-admins who cannot mint tokens, and duplicates `/api#checks-ci`. - Removal is a pure client change: delete the `<Show>` block and its #505 comment in `Repo.jsx`. No wire change, no cache concern (meta line renders from the already-ETag'd summary; removing a static conditional link does not touch the payload). - The Checks toolbar's own "reporting API" link (`web/src/pages/Checks.jsx`, shown once the tab exists) stays — it points at the same anchor for CI authors on repos where checks are already reporting. - `showChecksTab(s())` remains in use for the tab gate; only the meta-line pointer retires. ## Acceptance criteria - [ ] The `repo-meta` line on the repo header renders only the ref picker and `N branches · M tags` — no "reporting API" span, including on check-less repos. - [ ] The #505 comment block above the removed span is deleted with it (no stale justification comment left in the tree). - [ ] Checks tab hiding/reappearing behavior (#505) is unchanged. - [ ] Checks toolbar "reporting API" link (`web/src/pages/Checks.jsx`) is unchanged. - [ ] Settings → CI tokens tab continues to document the `wct_` report flow (the surviving discoverability path for check-less repos).
crueber added this to the v1 milestone 2026-09-14 18:02:27 +00:00
crueber added
issues
and removed
bug
labels 2026-09-14 18:02:44 +00:00
Author
Owner

Fix open as PR #538: #538 — drops the meta-line reporting-API Show block (+ #505 comment) from web/src/pages/Repo.jsx; Checks toolbar link and tab behavior unchanged. node --test 1223/1222 green (1 pre-existing live-server smoke fail, verified on pristine main); vite + esbuild green.

Fix open as PR #538: https://git.packden.us/crueber/walhub/pulls/538 — drops the meta-line reporting-API Show block (+ #505 comment) from web/src/pages/Repo.jsx; Checks toolbar link and tab behavior unchanged. node --test 1223/1222 green (1 pre-existing live-server smoke fail, verified on pristine main); vite + esbuild green.
Author
Owner

Review of PR #538 (fix/issue-527), verified in scratch worktree /tmp/pr538 (removed afterward) against rebased commit 4c50fee; node_modules symlinked from main; main worktree untouched and still clean.

Checks against the acceptance criteria (all pass):

  1. Meta-line block deleted incl. the #505 comment — Repo.jsx repo-meta div now renders RefPicker + branches·tags span only (verified: zero case-insensitive 'reporting' matches left in Repo.jsx).
  2. Meta line is branches · tags only, including check-less repos (no conditional remains).
  3. Untouched: Checks toolbar reporting-API link (Checks.jsx:89, :206 still pin /api#checks-ci), Settings tab-5 CI tokens (no diff), #505 tab hide/reappear behavior (tab gate Repo.jsx:885 + hidden-state checksHidden memo Repo.jsx:690 + showChecksTab helper all intact).
  4. Test pins legitimate: checks-tab-505 retires the presence pin into an absence pin (no href/label/conditional in repo-meta; toolbar link still pinned); checks-tab-513 asserts absence in repo-meta + presence in toolbar. No weakened assertions — absence is the specified behavior.
  5. Docs accurate: 07_api.md pointer sentence + 12_web_ui.md Decisions entry both describe the retirement and surviving paths. One fix applied during review: the older #505 Decisions entry in 12_web_ui.md still claimed the meta line 'keeps the same link exactly while the tab is hidden' — annotated as '(until #527 retired it)'.
  6. No backend change (5 files: Repo.jsx, 2 tests, 2 docs); no dep changes (package.json/pnpm/go.mod untouched). Laws: 1 clean (no new deps), 7 N/A (no async/long work), 8 clean (no seam/registry/core-package touch), 12 satisfied (docs updated in same change).

Conflict fix applied and pushed: the branch had forked before main merged #540/#541/#542, so docs/go/12_web_ui.md conflicted (append-append of Decisions entries). Rebases onto current origin/main in the scratch worktree, kept all three entries (#529, #531, #527 order), re-tested, force-pushed to origin/fix/issue-527 (e2369c8 -> 4c50fee).

Test results (rebased commit): full node --test web/test/unit/*.test.js = 1241 total / 1240 pass / 1 fail — the single failure is the pre-existing live-server smoke subtest (smoke.test.js fetches the standing instance at 127.0.0.1:8080, /setup answers 403 there; branch-independent by construction, unrelated to this client-only change). Targeted checks-tab-505 + checks-tab-513: 9/9 pass. vite build green (chunk-size warning only, pre-existing).

No browser drive per task instructions (node tests + reasoning; noted explicitly).

MERGE RECOMMENDATION: ready to merge.

Review of PR #538 (fix/issue-527), verified in scratch worktree /tmp/pr538 (removed afterward) against rebased commit 4c50fee; node_modules symlinked from main; main worktree untouched and still clean. Checks against the acceptance criteria (all pass): 1. Meta-line block deleted incl. the #505 comment — Repo.jsx repo-meta div now renders RefPicker + branches·tags span only (verified: zero case-insensitive 'reporting' matches left in Repo.jsx). 2. Meta line is branches · tags only, including check-less repos (no conditional remains). 3. Untouched: Checks toolbar reporting-API link (Checks.jsx:89, :206 still pin /api#checks-ci), Settings tab-5 CI tokens (no diff), #505 tab hide/reappear behavior (tab gate Repo.jsx:885 + hidden-state checksHidden memo Repo.jsx:690 + showChecksTab helper all intact). 4. Test pins legitimate: checks-tab-505 retires the presence pin into an absence pin (no href/label/conditional in repo-meta; toolbar link still pinned); checks-tab-513 asserts absence in repo-meta + presence in toolbar. No weakened assertions — absence is the specified behavior. 5. Docs accurate: 07_api.md pointer sentence + 12_web_ui.md Decisions entry both describe the retirement and surviving paths. One fix applied during review: the older #505 Decisions entry in 12_web_ui.md still claimed the meta line 'keeps the same link exactly while the tab is hidden' — annotated as '(until #527 retired it)'. 6. No backend change (5 files: Repo.jsx, 2 tests, 2 docs); no dep changes (package.json/pnpm/go.mod untouched). Laws: 1 clean (no new deps), 7 N/A (no async/long work), 8 clean (no seam/registry/core-package touch), 12 satisfied (docs updated in same change). Conflict fix applied and pushed: the branch had forked before main merged #540/#541/#542, so docs/go/12_web_ui.md conflicted (append-append of Decisions entries). Rebases onto current origin/main in the scratch worktree, kept all three entries (#529, #531, #527 order), re-tested, force-pushed to origin/fix/issue-527 (e2369c8 -> 4c50fee). Test results (rebased commit): full node --test web/test/unit/*.test.js = 1241 total / 1240 pass / 1 fail — the single failure is the pre-existing live-server smoke subtest (smoke.test.js fetches the standing instance at 127.0.0.1:8080, /setup answers 403 there; branch-independent by construction, unrelated to this client-only change). Targeted checks-tab-505 + checks-tab-513: 9/9 pass. vite build green (chunk-size warning only, pre-existing). No browser drive per task instructions (node tests + reasoning; noted explicitly). MERGE RECOMMENDATION: ready to merge.
Author
Owner

Fixed by PR #538 (review clean — block deleted, toolbar/CI-tokens intact, pins legitimate; review delayed by interruption, now complete), merged. Closing.

Fixed by PR #538 (review clean — block deleted, toolbar/CI-tokens intact, pins legitimate; review delayed by interruption, now complete), merged. Closing.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
crueber/walhub#527
No description provided.