Repository navigation
v0.9.8
Added
-
ArtistPickerandTagPicker(#375): shared chip pickers in the UI kit, built on a genericChipPicker, which usesdownshiftfor keyboard handling and ARIA and renders only the kit's ownfield/chip/list/rowhooks.- Suggestions arrive after a 250 ms pause, from two characters.
- The artist picker holds
{ id, name }pairs and marks a removed artist. - The tag picker suggests from
GET /tagsand accepts free text as typed; the api stores the canonical form. - No page adopts them yet; #370 is the first consumer.
-
Contribution notification filters (#370, stellar-api#263): a member names the new contributions they want to hear about.
- Filters page at
/notification-filters: create, edit and delete filters within the rank's allowance. Artists and tags use the new pickers; deleting a filter asks first, because its matches go with it. - Matches page at
/notification-filters/hits, plus one view per filter. Opening a match marks it read; loading the page marks nothing. Catch up and clear read act on the view in front of you. - Unread matches join the notification corner's count.
- The header's Filters link shows only when the session's
notificationFilterLimitis not0. - Rank editor: a Notification Filters limit, a number plus an "Unlimited" checkbox, since
nullmeans unlimited and0means none.
- Filters page at
-
Profile percentile tiles show the value behind each rank (#165, stellar-api#280/#722/#723).
- Each tile's meta line reads
#5 of 25 · 1.21 GB: bytes for contributed, consumed and bounty spent, counts for the rest. It is visible text, not a hover tooltip. - New Bounty Spent and Artists Added tiles, and an Overall tile last. Overall is a weighted score scaled by ratio, not a percentile, so it shows a bare number.
- A tile the member has hidden is left out, and so is Overall unless contributed, consumed and ratio are all visible to you.
- The panel is its own component,
PercentileRankings.
- Each tile's meta line reads
-
Artist credits can be edited on the release page (#388, stellar-api#721). An Artists panel replaces the single-artist one.
- Every credit is listed under its role heading, in role order.
- Add is open to anyone who can see the release: pick an artist, choose a role (Guest by default), and Add. If there's no match, the typed name becomes "New: …", and the artist is created only when Add is clicked, so a typo never becomes a catalogue entry.
- Edit reveals a role dropdown and a × on each credit you may manage: every credit for a moderator, otherwise only the credits you added. The last credit can't be removed.
ArtistPickergains an opt-inallowCreate; the notification filters are unchanged.
-
Freepass and Neutralpass badges (#181, stellar-api#728). A ratio-exempt file carries a badge wherever files are listed: the release page's edition rows (and a collage entry's), the community release list, and My Contributions.
- Freepass (success) and Neutralpass (info) are
Badgechips, and each one's tooltip says what it means for your ratio. An ordinary file shows nothing. - A value the build does not recognise shows nothing, rather than breaking the row.
- The community release list reads its rows from the contract, where it used to hand-type them.
Badgetakes an optionaltitle.
- Freepass (success) and Neutralpass (info) are
-
Staff set Freepass and Neutralpass on the release page (#392, stellar-api#728). With
contributions_manage(whichadminimplies), each edition row has a None / Freepass / Neutralpass select.- A change applies at once, with no confirmation: it is reversible, applies only to later downloads, and is audited.
- The select is disabled while saving. On failure it shows the api's message and returns to the saved value.
- Release page only. Setting a whole release or many releases at once is stellar-api#731.
-
The e2e suite runs in CI (#396). A new
e2eworkflow runs the Playwright suite against the published stellar-api image on a fresh Postgres, afterPOST /installand the api's e2e seed.- It runs against
:latest(apimain) on a push tomain, nightly, and on a PR labellede2e. It only reports there; it gates nothing. - A release tag runs it against the matching api version, and
publishwaits for it to pass. - A failed run uploads the Playwright report and traces, and the run summary names the api image digest.
- Specs fixed for a fresh database: the release tests each open the release themselves instead of sharing a URL; P-07a now adds a format through the release page's [Add format]; P-07b fails rather than skips without a contribution; P-09 follows the invite page's current order.
- P-08b's axe scan is held by a ratchet until #395: only the two known rules, and no more than 16 nodes.
- It runs against
Changed
- Re-vendored the api contract: the session's rank carries
notificationFilterLimit, a filter carries itsartistsby name (stellar-api#715), andPOST /communities/{id}/membersanswers204(stellar-api#711). - Re-vendored the api contract for stellar-api#719:
warnedclears once a warning expires (shape unchanged), the session carrieswarnedUntil, and an invite-tree node carriesdonorRank. - Re-vendored the api contract for stellar-api#721/#722/#723: percentile blocks can be
nulland gainbountySpent,rawis always present,stats.bufferneeds both sides visible,artistsAddedcounts credits attached, and releases carrycreditswith the new credit routes and history actions. - Re-vendored the api contract from stellar-api 0.9.8:
ReleaseHistoryEntry.actiongainsratio_exempt_changed(stellar-api#732). The release page lists it by its summary, with no diff or revert, like the credit actions.
Fixed
- A member's theme no longer outlives their session (#379). Logging out removes the theme and its stored href, so the public pages render the default. A pre-applied theme that fails to load, such as a registry sheet answering 401 after the session lapsed, removes itself. Previously a member logging back in could see the default theme until they refreshed, because the stale link was adopted with an unchanged href, which never refetches.
- Checkboxes and radios show whether they are ticked (#368).
@tailwindcss/formsdrew them itself, and thefieldRole's background erased that drawing, so a ticked box looked unticked on every surface. Every checkbox and radio is now the browser's own control, tinted by the theme accent (accent-color: var(--st-accent)), with the shared themed focus outline. Classes that only styled the plugin's box are gone. Recorded as an amendment to ADR-0006. - Going to or from the home page no longer flashes the default theme (#161). Home had a layout instance of its own, so every crossing between it and another private page remounted the layout. Since #379 a remount removes the theme link and re-creates it, so a couple of frames painted in the default theme on every home crossing, Top 10 included when reached from home.
/and every private path now share one route element, so the member's layout is one instance for the whole session. A visitor at/still gets the public landing; one anywhere else is still sent to/login. - Donor and warning signs follow a member wherever they are named as an author (#103, stellar-api#719), not only on their profile.
- Where: forum post headers, comments, PM senders and participants, the inbox From column, and the staff inbox (requester, assignee, senders, and the queue's requester). They stay off the topic list and "last edited by" lines, where a name is metadata rather than authorship.
- The donor sign is the member's tier, its badge in its colour, named in the tooltip. It reads
donorRankalone, so an expired grant shows nothing even whileisDonorlags behind it. The profile header and invite tree use the tier too, in place of a plain ♥. - The warning sign links to the rules. On your own name its tooltip says when your warning ends, or that it has no end; nobody else's expiry is shown or sent.