fix: unblock the bounty sync, plus board, disciplines and docs corrections - #208
Merged
Merged
Conversation
…ties The permissions block listed only contents and pull-requests. That block is a replacement rather than an addition, so issues was set to none and the gh issue list call returned an empty array without erroring. Every run regenerated an empty board, found no diff, and exited green having published nothing, which is why no bounty ever reached the board. Also correct the required-field count in the docs (the form enforces five, not six) and document the green-but-empty failure mode so the next person checks the job's permissions before re-checking their own formatting.
…on mobile BountyTable keyed rows and hover state on the bounty title. Titles are author-supplied and collide, which produced a React duplicate-key error and made hovering one row highlight every row sharing its title. Key on the issue URL instead and track hover by index. DisciplineGrid ran to roughly eight phone screens with no way to navigate it: the category headings live inside the component, so Docusaurus never sees them for the On this page sidebar. Add a jump bar of the nine categories and give each card an id. Also swap the grid track to minmax(min(310px, 100%), 1fr) — the fixed 310px minimum forced a wider column than its container below about a 342px viewport and gave the whole page a sideways scroll.
The notice rendered whenever any demo row existed, so the first real registration did not change it: the map went on telling visitors that all 26 dots were placeholders while one of them was a real contributor. Count the real rows and say how many there are, and drop the claim entirely once the placeholders are gone.
… the payout and discipline claims Previous Bounties and Previous Grants both shipped tables of specific payouts, recipients and completion dates. Neither was a record: both were born fully populated in the initial docs scaffold, the recipient handles appear nowhere in the repo except the cspell dictionary added to make them pass spellcheck, and no bounty has ever reached the board. Replaced with honest empty states that explain what will be listed once there is something to list. What are Bounties claimed every bounty pays in both USDC and ARROW. The form marks both optional and the sync requires only one, so ARROW-only bounties are normal and the page was setting a payment expectation we cannot meet. Its discipline list was also stale, merging Design, Content and Growth into one bullet against the board's nine sections and dropping five disciplines. Video Guide embedded a placeholder YouTube ID that would have served an unrelated video to anyone reaching the page. Embed removed until the real one exists. Deleted the unreferenced duplicate at docs-bounty/previous-bounties.md, which nothing linked to and which kept the invented table reachable by URL. Also replaces every em dash across the section, and switches the bounty table headers from Departure Mono to Neue Haas Grotesk to match the project category tabs. Scoped to .bt-table so other doc tables are untouched.
The notice rendered only while demo rows existed, so removing the placeholder set made it disappear entirely. A near-empty world map with a single dot and no caption reads as broken rather than as new, which is the wrong impression to give at exactly the moment we start asking people to register. Now covers all three states: placeholders only, placeholders alongside real entries, and real entries only. The last of those is where the map is heading and was previously the one with nothing to say.
thomasgarrison
approved these changes
Aug 1, 2026
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.
Why the board has always been empty
sync-bounties.ymldeclaredpermissions: contents: write, pull-requests: write. Apermissions:block is a replacement, not an addition, so every scope left out is set to none — includingissues. Thegh issue listcall inscripts/sync-bounties.mjstherefore returned an empty array without erroring, and the job regenerated an empty board, found no diff, and exited green having published nothing.The evidence is in the last run (30635127205, 31 Jul): it printed zero
::warning::lines. Had it fetched the two labelled issues and failed to parse them, there would be one warning per issue. Silence means it read nothing at all. Running the samegh issue listlocally returns them fine.Adding
issues: readis the whole fix.Also in here
Bounty table row keys. Rows were keyed on
row.title, and hover state tracked by title too. Titles are author-supplied and do collide, which threw a React duplicate-key error and made hovering one row highlight every row sharing its title. Now keyed on the issue URL, hover tracked by index.Disciplines page on mobile. The page runs to roughly eight phone screens across 9 categories and 43 disciplines, and the category headings live inside
DisciplineGridwhere Docusaurus never sees them for the "On this page" sidebar — so there was no way to reach Operations except scrolling past everything. Adds a jump bar and card ids. Also swaps the grid track tominmax(min(310px, 100%), 1fr): the fixed 310px minimum forced a column wider than its container below about a 342px viewport and gave the whole page a sideways scroll.Contributor map notice. It rendered whenever any demo row existed, so the first real registration did not change it — the map went on telling visitors all 26 dots were placeholders while one was a real contributor. Now counts the real rows, and says nothing once the placeholders are gone.
Placeholder award records removed.
Previous BountiesandPrevious Grantsboth shipped tables of specific payouts, recipients and completion dates. Neither was a record: both were born fully populated in the initial docs scaffold, the recipient handles appear nowhere in the repo except the cspell dictionary added to make them pass spellcheck, and no bounty has ever reached the board. Replaced with honest empty states. Also deleteddocs-bounty/previous-bounties.md, an unreferenced duplicate that kept the invented table reachable by URL.Video Guideembedded a placeholder YouTube ID that would have served an unrelated video to anyone who found the page. Embed removed until the real one exists.Docs corrections.
What are Bountiesclaimed every bounty pays in both USDC and ARROW; the form marks both optional and the sync requires only one, so ARROW-only bounties are normal and the page was setting a payment expectation we cannot meet. Its discipline list was also stale, merging Design, Content and Growth into one bullet against the board's nine sections and dropping five disciplines.Creating Bountieshad the required-field count wrong (the form enforces five) and now documents the green-but-empty failure mode above.Bounty table headers move from Departure Mono to Neue Haas Grotesk, to match the project category tabs. Scoped to
.theme-doc-markdown .bt-table thso every other table in the docs is untouched.Verifying the sync fix
This one cannot be proven until it is merged and the workflow is dispatched. After merge: Actions → Sync bounty board data → Run workflow. With at least one
bounty-labelled issue present it should open a PR against this branch's base rather than reporting "No bounty data changes".Note there are currently no
bounty-labelled issues: #201 and #167 were test artifacts and have been unlabelled, so a run today would still correctly produce nothing. File a real bounty first, then dispatch.