Syncing Main to Staging#139
Conversation
Previously App_Issues SELECT was gated to the submitter (or admins), which meant contributors couldn't see or discuss each other's submissions. Replace the per-user and admin-only SELECT policies on App_Issues with a single contributor-or-admin policy, and broaden the App_Issue_Comments SELECT/INSERT policies the same way so any member of the contributor pool can read and post on any issue. Author/admin UPDATE and DELETE policies are unchanged. https://claude.ai/code/session_01Hj4AaNtsPQEnY7aap1DSDE
With the new RLS policy, every contributor sees the full pool of contributions, so the per-user framing in the portal copy was wrong. Rename the list header to "All contributions" unconditionally, soften the loading/empty/error strings to talk about contributions instead of "your submissions," update the welcome lede to mention the team's contributions, and update the tour step body to point at the renamed section. https://claude.ai/code/session_01Hj4AaNtsPQEnY7aap1DSDE
Internal wiring follow-up to the copy rename: data-tour attribute is now "contributions-list" and the tour step id is "contributions" to match the shared "All contributions" view. https://claude.ai/code/session_01Hj4AaNtsPQEnY7aap1DSDE
…visibility-PmP1Y Open contributor portal to all contributors
Pages currently pop in resource-by-resource: Windhover text paints in a
fallback font, the Outfit font swaps in, then the logo loads and shifts
the layout. Adds a full-viewport loader that holds the page until fonts
and window.load are ready (1s minimum, 5s hard cap), then rolls up.
Loader:
- New loader.css / loader.js, opted in via <div id="page-loader">
- Parchment radial gradient + inline SVG noise for paper grain
- Ink-tinted falcon logo, per-page title, indeterminate shimmer bar
- Waits on Promise.all(window.load, document.fonts.ready)
- prefers-reduced-motion: fade instead of roll-up, skip min-delay
- <noscript> fallback to hide the loader if JS is off
- Inline critical CSS + <link> preloads so overlay paints on first byte
Root-cause fixes so the reveal lands on a stable page:
- Preload Windhover_BLK.png and Outfit-ExtraBold.ttf on every page
- Preconnect to fonts.googleapis.com / fonts.gstatic.com
- Outfit font-display: swap -> block (paired with preload so the block
period resolves behind the loader; no FOUT on hero title)
- .hero-logo gets aspect-ratio + explicit width/height attrs to
reserve layout space
…elay
The loader now has two states:
1. Loading — shimmer bar + "Loading" sub, aria-busy=true.
2. Ready — shimmer bar fades out, an Enter button fades in and is
autofocused; overlay also becomes a secondary click target.
User dismisses by clicking Enter, pressing Enter/Space, or clicking
anywhere on the overlay. Clicks on the overlay during the Loading state
are ignored so users can't accidentally reveal a half-loaded page.
Also:
- Dropped the 1s minimum visible time — the user controls dismiss now.
- Kept the 5s hard cap so a stalled resource can't trap the Loading
state forever (overlay advances to Ready; user still clicks Enter).
- Bar and button share a CSS Grid cell, so the swap doesn't shift
layout.
- role=progressbar is removed once we enter Ready (no longer accurate).
…yout-shift-JQWDf Add parchment-styled page loader with two-state lifecycle
Deploying profile-site with
|
| Latest commit: |
cfa463a
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://d7655ee8.profile-site-bgf.pages.dev |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cfa463ab08
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| create policy "Contributors can insert comments" on public."App_Issue_Comments" | ||
| for insert with check ( |
There was a problem hiding this comment.
Expose contributor identities for newly open comments
Opening comment insertion to every contributor here means non-admin users will now frequently see comments authored by other contributors, but the UI still falls back to "Windhover team" when author_display_name is missing (timeline-scratch/src/components/GettingStarted/CommentThread.jsx, label logic), and current users-table policy only exposes admin profiles (supabase/migrations/20260422010000_read_admin_display_names.sql). As a result, peer comments are mislabeled as official team replies, which is misleading in normal contributor-to-contributor discussion; this migration should be paired with a contributor-safe name-read policy (or a neutral fallback label).
Useful? React with 👍 / 👎.
No description provided.