Skip to content

fix: final audit of the hub - #48

Merged
AmrMsCLL merged 4 commits into
mainfrom
fix/final-audit
Nov 7, 2026
Merged

AmrMsCLL merged 4 commits into
mainfrom
fix/final-audit

Conversation

@AmrMsCLL

@AmrMsCLL AmrMsCLL commented Nov 7, 2026

Copy link
Copy Markdown
Member

The final audit of the hub against production sha-70048fc, looked at over SSH, through a fresh verified backup imported locally, and in Chromium at 1440 and 390, signed out and as the owner. Notes in .claude/.Plans/as2026-11-07-graphite-hub-final-audit.md.

Realistic

  • /status read "4 of 4 up" beside a console saying "6 of 7 up over the last hour". The hourly summary counted every project with an uptime row, so the retired Message Lab (archived, deploy: none, 30 days of rows kept) and the unlisted Traceboard (its host never answers) stayed in the count. The pinger now checks the listed, live, deployed projects that /status shows as running and the summary counts that fleet only. server/uptime.test.ts covers both.
  • Four client errors sat in the admin errors panel as site errors: a missing upload, a denied dotfile, "[object Object]" for a route error response and a bad request. A thrown 4xx response or an error carrying a 4xx status now answers with that status and is never captured or alerted; a failed response is recorded as HTTP <status>.

Makes sense

  • One plural() behind every count label: no more "1 releases" on a project page.
  • The window bar and share label name an archived or in-progress project's status instead of "source only".
  • The home share card counts root projects like the home counter; /subscribe, /search and /privacy get share cards.
  • The rail no longer says "no deploy recorded yet" for projects that never report one; /subscribe hides zero facts; the empty wall uses the shared empty state.

Fun, custom, cool

  • The orbit motion setting did nothing; the orbit now stands still when it is off.

Quality

  • The palette's search box and the message form's fields have accessible names.
  • ProjectCard, EpicCard, the .film-* rules and the .cover span rules were referenced by nothing and are gone.

Checks

npm run typecheck, npx eslint ., npx prettier --check ., npm run build, npm run size (largest page 147.8 KB of 150), and server/uptime.test.ts, server/errors.test.ts, server/share.test.ts, server/live-audit.test.ts.

For Amr

  • Traceboard is live with deploy: pages at traceboard.project-graphite.com, and the host times out from the VPS. Unlisted, so nothing shows it, but the registry entry or the DNS wants a decision.

The summary counted every project with an uptime row in the last hour, so a retired project kept its 30 days of rows in the count and an unlisted host nobody sees made the console read 6 of 7 up beside a fleet of 4 of 4. The pinger now checks the listed, live, deployed projects that /status shows as running, and the summary counts that fleet only.
…ing them

A thrown 4xx response, a route error response or an error carrying a 4xx status (a denied dotfile, a missing upload, a method the route does not accept) was captured as a site error, alerted the owner and answered 500. They answer with their own status now and are never captured; a failed response is recorded as HTTP <status> rather than [object Object].
… empty facts

One plural() behind every count label, so a page no longer reads 1 releases. The window bar and the share label name an archived or in-progress project's status instead of calling it source only. The home share card counts root projects like the home counter; /subscribe, /search and /privacy get share cards. The rail stops saying no deploy recorded yet for projects that never report one, /subscribe hides zero facts, the empty wall uses the shared empty state, and the palette and message fields have accessible names.
… and styles

The orbit spun from CSS whatever the orbit setting said; it now stands still when the piece is off. ProjectCard, EpicCard, the .film-* rules and the .cover span rules were referenced by nothing.
@github-actions github-actions Bot added the size/l 201-600 changed lines, excluding lockfiles label Nov 7, 2026
@AmrMsCLL
AmrMsCLL merged commit 87fbc25 into main Nov 7, 2026
11 checks passed
@AmrMsCLL
AmrMsCLL deleted the fix/final-audit branch November 7, 2026 01:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/l 201-600 changed lines, excluding lockfiles

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant