fix(web): #262 site fixes — tables, nav, responsive/button consistency, About sync, GitHub login (#217)#264
Merged
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes the front-end / content items from #262 (and fixes #217). Scoped, web-only — the
pages.ymlworkflow regeneratesdocs/fromweb/on merge, so onlyweb/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
js/markdown.js(real<table>,:--:alignment viaalign=, inline markdown in cells). Unit-tested 7/7.app.js setupTabshad nohashchangelistener, so#inProgress/#papersanchors (and the brand link) never switched tabs. Added the listener (unknown/empty hash → no-op).startLogin()bounced throughgithub.com/logout?return_to=<authorize>; GitHub's/logoutwon't honorreturn_toto 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 explicitsignOut().Responsive + UI consistency
.tabs-rowgets 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)..btn/.btn.primary/.btn.ghost+ a shared.modal .actionsrow; removed the bespoke.ad-*classes and inline button styles indialog.js; added sharedmin-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).#modal-reviewhad no trigger; added a unified "Add review" button in the artifact dialog that seedsreview-project-idand opens it (submission still needs login login with github is broken #217).About page sync (was out of date)
data/projects.json: "points threshold" / "Human reviews count double") with the spec-015 unanimous-panel / 3-round-cap convergence wording; deleted the dead#llmxive-thresholdsaside + its orphan CSS.Verification
node --checkclean on all touched JS;data/projects.jsonvalid JSON; markdown table preprocessor unit-tested 7/7.Still needs a human / follow-up
/token/revokebeing live).🤖 Generated with Claude Code