Skip to content

fix(web): #262 site fixes — tables, nav, responsive/button consistency, About sync, GitHub login (#217)#264

Merged
jeremymanning merged 6 commits into
mainfrom
fix/site-issue-262
Jun 3, 2026
Merged

fix(web): #262 site fixes — tables, nav, responsive/button consistency, About sync, GitHub login (#217)#264
jeremymanning merged 6 commits into
mainfrom
fix/site-issue-262

Conversation

@jeremymanning

@jeremymanning jeremymanning commented Jun 3, 2026

Copy link
Copy Markdown
Member

Closes the front-end / content items from #262 (and fixes #217). Scoped, web-only — the pages.yml workflow regenerates docs/ from web/ on merge, so only web/ is touched. All fixes built + verified by isolated sub-agents; the UI changes were screenshot-verified with Playwright at mobile/tablet/desktop.

Fixes

Bugs / behavior

  • Markdown tables in modals — snarkdown has no table grammar, so GFM pipe-tables rendered as literal text. Added a pipe-table preprocessor in js/markdown.js (real <table>, :--: alignment via align=, inline markdown in cells). Unit-tested 7/7.
  • "How to contribute" / nav buttonsapp.js setupTabs had no hashchange listener, so #inProgress / #papers anchors (and the brand link) never switched tabs. Added the listener (unknown/empty hash → no-op).
  • GitHub login broken (login with github is broken #217)startLogin() bounced through github.com/logout?return_to=<authorize>; GitHub's /logout won't honor return_to to an external OAuth URL, so users landed on a sign-out page. Now navigates straight to the OAuth authorize URL; state/PKCE/scope unchanged; account-switching stays behind the explicit signOut().

Responsive + UI consistency

  • Responsive topbar + tabs — at ≤640px the topbar crammed brand + 3 actions into one 64px no-wrap row; labels wrapped to 2–3 lines each so every button was a different height and the row misaligned (and overflowed below ~375px). Now the row wraps (brand row + actions row), buttons are equal-height single-line, nothing overflows at 360px; .tabs-row gets a scroll-fade affordance. Also fixed a horizontal-overflow bug in the sort/search bar at ≤640px. Desktop ≥1024px unchanged (pixel-diff 0.16%, confined to the topbar).
  • Button sizing / spacing / text-flow consistency — unified all modal + topbar buttons onto shared .btn/.btn.primary/.btn.ghost + a shared .modal .actions row; removed the bespoke .ad-* classes and inline button styles in dialog.js; added shared min-height + white-space:nowrap + centered text so same-role buttons are identical and don't reflow/resize with label length (the cause of the topbar misalignment).
  • Review modal reachable (stuff to work on while idle #262 / Phenomenological AI: First-Person Experience Modeling in Language Models #5)#modal-review had no trigger; added a unified "Add review" button in the artifact dialog that seeds review-project-id and opens it (submission still needs login login with github is broken #217).

About page sync (was out of date)

  • Replaced the removed point-system copy in the two review-step modals (data/projects.json: "points threshold" / "Human reviews count double") with the spec-015 unanimous-panel / 3-round-cap convergence wording; deleted the dead #llmxive-thresholds aside + its orphan CSS.
  • Added a "Claim verification" block (the 016→019 trustworthiness stack); replaced the unsupported "registry of 28 specialist agents" with accurate category language (actual registry: 55 named agents = 34 worker + 21 review lenses, plus a personality agent rotating 15 personas).

Verification

  • node --check clean on all touched JS; data/projects.json valid JSON; markdown table preprocessor unit-tested 7/7.
  • UI changes Playwright-verified at 390 / 768 / 1280: mobile topbar wraps with equal-height aligned buttons, modal buttons unified/equal-height with no reflow, review modal opens, desktop unchanged. (Screenshots captured locally.)

Still needs a human / follow-up

🤖 Generated with Claude Code

jeremymanning and others added 6 commits June 2, 2026 21:23
FIX A: snarkdown has no table grammar, so GFM pipe tables passed through
as literal text and the CSS <table> rules never applied. Add a pipe-table
preprocessor to renderMarkdown (runs before snarkdown/_splitBlocks) that
emits real <table>/<thead>/<tbody> HTML, honors :--: alignment via the
align= attribute (the sanitizer strips style=), and renders inline
markdown inside cells. Table tags already survive the sanitizer.

FIX B: setupTabs only activated a tab on load; there was no hashchange
listener, so the brand <a href="#papers"> and the About page's
#inProgress buttons ("Browse projects" / "Find something to review")
just rewrote the hash. Add a hashchange handler that routes any hash
naming a real tab through activate() and scrolls it into view; unknown/
empty hashes (e.g. #how-to-contribute) are a no-op.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
(cherry picked from commit d3d5c3f10f53b9c8e905066ce67d342b07154894)
The About page modals and the dead #llmxive-thresholds aside still
described the legacy point-based review system removed by spec 015.

- research-review modal: 8-reviewer identify→revise→re-review
  convergence loop, unanimous acceptance within a 3-round cap,
  adaptive kickback; human/personality reviews advisory via
  stage-aware triage (not a gate).
- paper-review modal: 12-reviewer convergence loop, unanimous
  acceptance within a 3-round cap, kickback carries full provenance.
- Removed the dead #llmxive-thresholds aside (legacy accept-point
  thresholds + 0.5 LLM / 1.0 human review-point weights). Confirmed
  no JS consumer (no app.js/data.js/dialog.js reference; only the
  aside markup itself referenced the id/data-threshold attrs).

Applied identically to both web/ and docs/ (byte-identical mirror)
so the live GitHub Pages site updates.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
(cherry picked from commit d24f39727aa45df726192b59a5bc5c6272074842)
startLogin() routed users through https://github.com/logout?return_to=
<authorize_url> (an FR-011 account-switch convenience). GitHub's /logout
renders a sign-out confirmation page and does not reliably honor return_to
to a cross-site OAuth-authorize URL, so users landed on a sign-out page and
never reached the consent screen — the exact symptom in #217.

Navigate straight to _authorizeUrl() instead. State/PKCE generation,
redirect_uri, scope (public_repo), sessionStorage of the state, and
handleCallback are unchanged. Account-switching remains available only via
the explicit signOut() action, which revokes the grant through the worker
/revoke route.

Applied byte-identically to web/js/auth.js and docs/js/auth.js so the live
GitHub Pages site updates.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
(cherry picked from commit 7bd335e75bdec47e6487dc64603660aead1b9b93)
)

About page: add a "Claim verification" card summarizing the 016→019
trustworthiness stack (detect/register/block, authoritative-fill from
real sources, per-claim verification modes, semantic substantiation),
placed right after the "Two review gates" block.

Also replace the unverified "registry of 28 specialist agents" claim
with non-brittle category language. The registry actually defines 55
named agents (34 pipeline/worker + 21 review lenses) plus a personality
agent rotating 15 simulated personas — so a single fixed total is both
wrong and fragile.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…modal (#262)

FIX 1 — Responsive topbar + tabs (#262): at <=640px the single 64px
no-wrap topbar row crammed brand + Sign in + Submit a paper + Submit
Idea together, so long labels wrapped to 2-3 lines each (every button a
different height) and overflowed below ~375px. The row now wraps with
height:auto and the actions become equal-height compact buttons that
size to their (non-wrapping) labels and wrap cleanly. Also fixed a
related horizontal-overflow: the sort/search .bar now wraps on phones so
the 220px-min search box no longer pushes the page wider than the
viewport (verified no page overflow at 360px). Added a right-edge scroll
fade to .tabs-row as an off-screen-tabs affordance. Desktop >=1024px is
visually unchanged (pixel-diff confined to the topbar buttons' new
shared height).

FIX 2 — Button consistency (sizing/spacing/text-flow): .btn gains a
shared min-height (36px), white-space:nowrap, justify-content:center and
line-height so same-role buttons are identical and never resize as their
label text changes. Modal action rows share .modal .actions (38px
min-height, consistent gap, baseline-aligned). The artifact dialog's
bespoke .ad-feedback-btn / .ad-close styling is replaced by the shared
.btn / .btn.ghost classes; its feedback action row now uses the shared
.actions row. Verified: head-action and modal buttons are equal-height
and aligned on one baseline at desktop and mobile, with no label-driven
reflow.

FIX 3 — Review modal opener (#262 / #5): #modal-review had no trigger.
Added an 'Add review' button (unified .btn styling) in the artifact
dialog that seeds #review-project-id with the current project and opens
#modal-review via the same mechanism as the other modals (closing the
artifact dialog first to avoid a same-z-index stacking conflict).
Submission still requires GitHub login (#217); this only makes the modal
reachable.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jeremymanning jeremymanning changed the title fix(web): markdown tables, nav buttons, About-page sync, GitHub login (#262, #217) fix(web): #262 site fixes — tables, nav, responsive/button consistency, About sync, GitHub login (#217) Jun 3, 2026
@jeremymanning jeremymanning merged commit 3ae7d8f into main Jun 3, 2026
4 checks passed
@jeremymanning jeremymanning deleted the fix/site-issue-262 branch June 3, 2026 02:52
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.

login with github is broken

1 participant