Here are the updates to Reciprocal Reviews. Have a defect to report or improvement to suggest? For where the project is headed rather than what just changed, follow our newsletter.

🔗︎ October 6, 2026 📅

Added

  • Whoever can approve bids on a submission now sees each assigned reviewer's verified email under their name, so they can invite them in the venue's own reviewing system. Authors and other reviewers don't see it.
  • Wherever someone can assign reviewers, a reminder now says that assigning in Reciprocal Reviews is only for compensation and that they also need to assign the person in the venue's reviewing system, with a short note under each Assign button saying the same. Admins can add that system's address in venue settings, and the reminder then links to it.

🔗︎ October 6, 2026 📅

Fixed

  • Associate Editors, and anyone else who can approve or decline bids on a submission, can now check or uncheck "Open for bidding." Before, only the submission's editor could.

🔗︎ October 5, 2026 📅

Added

  • Editors can uncheck "Open for bidding" on a submission that's still under review, for example when every seat has a reviewer but some haven't registered yet. Bidders who haven't bid on it then no longer see it, and the weekly bidding digest leaves it out.

Changed

  • A new bid is now emailed only to whoever approves that role on the submission, such as its associate editor. If no one is seated in that role yet, no one is emailed; before, the bid went to the submission's editor, or failing that the venue's admins.

Fixed

  • Submissions that are done no longer offer bid buttons.

🔗︎ October 4, 2026 📅

Added

  • Editors can decline a bid, and must say why. The explanation is emailed to the bidder with the editor's name and shown beside their bid; leaving a bid unanswered is still fine. #195
  • Bulk imports keep the names of people who haven't joined yet, as unmatched assignments. Once someone joins and accepts the role, whoever approves those assignments can match them all at once from a new Unmatched assignments page.
  • Reviewers can request compensation for a submission nobody assigned them to, such as an imported one whose editor hasn't joined. The request waits for an editor or admin to approve and pay it, or to decline it with a reason.
  • Each venue's page now says who to ask about it, listing its admins with their email addresses, and a new help article explains who to contact for what.

Changed

  • Replying to an email about a venue now reaches that venue's admins instead of the Reciprocal Reviews stewards, and the email names the venue. The contact page and every email now say that the stewards help only with the platform itself, and that bugs and feature requests go to GitHub.

Fixed

  • Reviewers can no longer approve their own bids or mark their own assignments complete. Only someone who approves the role can.
  • In open-review venues, authors now see only who is assigned to their submission, not who bid on it.
  • Compensation requests now reach everyone who can approve them, including the associate editor seated on the submission, and a manuscript ID no longer matches a submission at another venue.
  • Several notifications at once now stack as one block, without the page showing through between them.

🔗︎ October 4, 2026 📅

Changed

  • Updated internal tooling. SvelteKit and its Vercel adapter moved up a major release, the Vercel CLI to 62, and Vite, Vitest, the Supabase CLI, and the Node type definitions a patch or minor release; TypeScript stays on 6, because Svelte's type checker does not yet run on 7.

🔗︎ October 1, 2026 📅

Changed

  • The status box on your profile now says what it's for: any detail about your availability to review, with expertise described per venue in your volunteering roles. #189

Fixed

  • A new bid is now emailed only to the people who can approve it. That is whoever holds the approving role on that submission, or its editor if no one does, or the venue's admins if it has no editor; before, every bid mailed every admin and every volunteer in the venue's top role.
  • Email buttons now work when you're signed out. They ask you to sign in and then take you where they pointed, as does every "Log in" link in the app; before, an invitation's "Accept or decline" landed on a profile with nothing to click, and a submission link said the submission didn't exist. #191
  • Asking to verify a contact email now shows one message, not two. The notice that the link is on its way is where you resend it and see when you can. #188

🔗︎ September 27, 2026 📅

Added

  • Volunteers now get a Monday email listing the submissions open for bidding in their roles. Up to seven per venue, ranked by how many people each is missing and then by how well it matches the expertise they gave, and only when the list has changed; turn it off under Notifications on your profile.

Changed

  • Every email's call to action is now a button. Emails you can turn off also end with a link to your notification settings.

Fixed

  • Thank-you notes and declined proposals are now emailed with wording only Reciprocal Reviews writes. Their emails used to be composed in the browser and accepted as sent, so an author could have mailed a venue's editors any subject, text and links under the platform's name.

🔗︎ September 20, 2026 📅

Added

  • A venue can now go by a short name. The bar at the top of every page inside it shows that name in place of a title that would not fit — "ToK" rather than "Transactions on Knowledge" — and a venue's admins set it in settings #176.

Changed

  • Updated internal tooling. Svelte, Prettier, Vitest, the Vercel CLI, and the Node type definitions all moved up a patch or minor release; TypeScript stays on 6, because Svelte's type checker does not yet run on 7.
  • Every page inside a venue now carries one bar of common links instead of a title band of its own. Its submissions, volunteers, transactions, settings and website are one click from anywhere in the venue, where some of them used to be two or three #176.
  • The site header is now a single row that never wraps. The logo stands in for the old "Home" link, and only the links that genuinely do not fit collapse behind a menu, at whatever width that turns out to be — the fixed bands took nearly half a phone's screen inside a venue and now take about an eighth #176.
  • The beta notice now sits at the bottom of the screen and can be dismissed for good. It stays dismissed on later visits, and nothing on the page is ever hidden behind it #176.
  • A venue's title and website are now edited in its settings, alongside its new short name and web address, rather than in the header of the venue's own page #176.

Fixed

  • An editor no longer sees every submission their venue has received as a task. A submission now appears on their list only when it is waiting on them — nobody is reviewing it yet, or every reviewer is settled and it can be marked done. A venue seats its editor on every submission it receives, so the whole catalogue used to sit in one person's list as reviews they owed.
  • Work you have requested compensation for now leaves your task list. It is waiting on whoever approves it, and shows up on their list instead.
  • A task now says which role it is. Every row read "Review", whatever the venue called the role or whether it involved reviewing at all; each now carries the venue's own name for it.
  • The examples shown in empty fields no longer assume who you are or where you publish. A contact address suggested you@university.edu, and the venue settings fields suggested two real journals; they now show a neutral address and an invented venue #180.
  • The email announcing a bulk import no longer tells you that you are the venue's only editor. It said that to everyone it seated, whatever role the file named them in, and it counted seats rather than papers — so one submission that seated you twice was announced as two #181.
  • The bar at the top of every page inside a venue now reads as one centred row. The venue's name hung a few pixels below the links beside it, every word in the row sat above the middle of the band, and a long name made the whole bar taller on a phone.

🔗︎ September 13, 2026 📅

Added

  • Your profile now has 22 notification settings rather than one. Grouped by tokens, reviewing, venues you help run, and proposals and thanks, with the noisier ones off until you ask for them.
  • RR now emails you when things happen that you would otherwise have to go looking for. Tokens arriving, a submission of yours finishing review, a role, venue administration, or minting authority granted or taken away, a bid or a conflict on a paper you edit, and an invitation you sent being answered.
  • A venue's editors can now ask a role's volunteers to bid, in their own words. The form sits on any biddable role's card, says how many people will receive the message before it goes, and sets replies to come back to whoever sent it.
  • A role can now choose who its volunteers are listed to: everyone, only people who have completed work at the venue, or only the people who staff the role. Every role starts at everyone, as before, and the number of volunteers stays public whichever you pick — as do invite-only roles and the venue's editor role, which are listed either way.
  • Scholar profiles now show a slice of their ORCID record: current affiliation, keywords, recent publications, and education. Editors picking reviewers no longer have to open orcid.org to find out who someone is.
  • The volunteers roster and the assignment table now carry that context too. Each half of an expertise cell is marked by whose claim it is — the Reciprocal Reviews logo on what a volunteer told your venue, the ORCID iD mark on what their public record says — and ORCID keywords export as their own CSV column.
  • Stewards can populate ORCID profiles from the About page. It works through the oldest records a batch at a time and says how many it took, so you can press it again until none are left.
  • The About page now shows how the ORCID mirror is doing — how many profiles have been read, how many never have, and how many are failing — and says so when ORCID has been limiting how fast we may read.

Changed

  • Reminders can now be turned off, and show up in your data download. They previously bypassed the mail record entirely, so they could not be silenced and did not appear in it.
  • Checkboxes now say one thing. Their labels used to rewrite themselves when you checked them. Now each one names the setting it turns on and holds still.
  • The venue proposal form's payment checkbox now matches venue settings. It reads Token-based venue and starts checked, where before it read payment-free and started unchecked, pointing the same setting opposite ways in the two places.
  • A bulk import row that is already in the venue now names and links the manuscript it matched. The notice said only that something here had that ID, which left an ID two different papers share looking exactly like a queue re-exported with last month's rows still in it.
  • Confirmations for an action that emails many people are now one message rather than one each. Asking three hundred volunteers to bid would have filled the page with three hundred separate confirmations, each needing its own dismissal; now one names somebody and counts the rest.
  • Reciprocal Reviews can now read ORCID with an API token where one is configured, raising how much it may read each day. Without one it reads exactly as before.
  • Assigning someone now shows you who you just named, before you commit. The field took an email or ORCID iD silently and only reported a bad one after you pressed the button.
  • Updated internal tooling for stability.

Fixed

  • Approving a transaction, sharing a thank-you note, and declining a venue proposal now write to the people affected. Each of those had a counterpart that did — declining a transaction, declining a note, approving a proposal — so the quiet half of each pair had gone unnoticed.
  • Changing your contact email now tells the address it replaced, which otherwise just went quiet.
  • Being assigned to a submission now emails you whichever way it happened. Assignment through the multi-assign flow and the submission page's assignee control sent nothing, while approving an assignment always had.
  • A submission is no longer visible to everyone who holds a role approving work on it. Holding a venue's associate editor role showed you any submission that had a reviewer on it — and those reviewers' names, even at a venue that anonymizes assignments — whether or not the paper was yours to handle. Approving now means approving _that_ submission: its assignees, its editor, the approvers seated on it, and the venue's admins.
  • Approving, unassigning, and seating people on a submission now requires handling that submission. Anyone holding a role that approves another role could act on any paper at the venue, though the buttons for it were never shown to them.
  • The "submissions visible to you" count now matches the list it links to. It counted submissions the list then hid — ones you had declared a conflict on, and done ones past the venue's visibility window.
  • Approving or declining a transaction now settles the row it was decided on. The new status and the decline reason appear without a reload and the Approve and Decline buttons leave with the decision; before, the row went on showing the transaction as proposed, with both buttons still sitting there to press again.
  • A confirmation no longer commits twice. Both the confirm and its cancel are now inactive while the action is in flight, so the least reversible actions in the platform — approving a transaction, deleting a role — happen exactly once per confirmation.
  • A confirmation's warning is no longer cut off. A long one now wraps instead of running past the edge of the page, which had been hiding the end of the sentence saying what cannot be undone.
  • An email that replies to a person no longer offers Reply All when it copies nobody. The footer promised a group that did not exist on any message with a single recipient.
  • Confirmations no longer appear in the colour used for failures. Every success banner shared a rule with the beta notice and arrived in the same plum as an error, so a completed action and a refused one looked alike.
  • A failed compensation request no longer reports success and clears the form. It announced the request as sent whatever happened and emptied all three fields with it, so a mistyped manuscript ID had to be retyped from scratch; a successful one also said so twice, once generically and once naming who was emailed.
  • The compensation request form is now translatable. Its two field labels and its confirmation were written in English inside the page, so they were the one part of a venue that could never be shown in another language.
  • A scholar whose ORCID record lists the same thing twice can use their profile page again. An identifier or paper entered twice left the whole page drawn but dead — every button on it, including Accept on a role invitation, depressed and did nothing — and anything a record holds twice is now shown once.
  • A page that fails to load now says so. It previously stayed on screen looking complete while none of its buttons worked.
  • Buttons on a freshly opened page now work as soon as it appears, instead of a few seconds later. The page looked ready while it silently re-read everything the server had already loaded, so a click in that window — such as accepting a role invitation — did nothing; while the last of that is loading, the cursor now says wait.

🔗︎ September 5, 2026 📅

Added

  • The submission importer now reads exports from any reviewing system. Upload a CSV with whatever column names it arrived with and match them to fields on screen, rather than renaming columns by hand first.
  • A bulk import can now name each submission's editors. Your file's editor columns are matched to the venue's roles, so an export naming an editor in chief and a handling editor separately seats both. A name matching nobody leaves that submission unseated rather than stopping the import; one matching several people waits for you to choose.
  • The file's own submission-type names are matched too, each listed with how many rows carry it, so the type an import gives its submissions is chosen rather than silently defaulted.
  • Invite people to a role from the venue page, not only from the roles step of venue settings. The form sits on the role's own card in both places.
  • The invite field now finds people by name, and several at once. Type or paste any mix of email addresses, ORCID iDs, and names, separated by commas; everyone each entry matches is offered below the field, and clicking one moves them to the list to be invited and clears the entry that found them. Nothing goes out until you press Invite, and only the people on that list are sent to. Someone who already has a record for the role isn't offered, and an entry matching nobody is named without holding up the rest — previously one mistyped address refused the whole batch.
  • A venue's volunteers can now be narrowed by expertise. The keywords volunteers have listed appear above the list, most claimed first with a count each, and picking several shows everyone who claims any of them.
  • Each role now says how many volunteers it is showing, in parentheses after its name, so a filtered list reports its own size.
  • A pending email verification now stays on your profile until you finish it, naming the address waiting, when its link stops working, and a Send it again button. The expired-link page offers the same button, so a lapsed link no longer sends you back to retype an address you already typed #164.
  • You're now told when a verification email never went out, rather than being left waiting on a message that was never sent #164.

Changed

  • Verification links now last 24 hours instead of 15 minutes. The old window was measured from the moment we sent, so slow mail delivery could use most of it up before the message arrived #164.

Fixed

  • A line break inside a title or status column no longer breaks an import. Every row after it shifted into the wrong columns, which made a file exported straight from a reviewing platform unusable.
  • Reading a CSV now says what it read and scrolls to it. Nothing acknowledged the file at all, and the rows appeared below the fold behind a control that had gone back to reading "no file chosen".
  • A CSV can now actually be pasted. The paste box was a single-line field, so a multi-line CSV collapsed onto one line and arrived as a header with no rows.
  • The submissions list no longer says imported submissions were paid for. Nothing was ever charged for them, and the tokens meant to fund their reviewing are still an unapproved mint, so they now read free. The same wrong badge appeared on every submission at a payment-free venue, which no longer shows a payment column at all.
  • An imported submission's expertise can now be edited by its editor. Imported submissions have no authors and only an author could edit it, so the field reviewers read when deciding what to bid on could be filled in by nobody.
  • Inviting someone to a role no longer reports it twice. "Invitations sent!" appeared alongside "… was emailed …" for each person; the second says the same thing and names who was told, so the generic one now only appears when nobody could be emailed.
  • Typing a complete email address into a scholar field no longer reports "No matches." The address was searched for as though it were a name, so a person the field could resolve perfectly well was announced as unfindable.
  • A submission nobody has said what expertise it needs now says so. The column was simply blank, which read as a page that had failed to load rather than a question the submission had left unanswered.
  • A withheld author list now carries a lock instead of an anonymous "•••", which the same list also used for "couldn't load" and "sign in to see". The submission page marks a withheld author the same way.
  • The manuscript ID is now withheld from a scholar who is only bidding. It is the key the paper is filed under in the venue's own reviewing system, so it led back to the author list the venue was hiding — including by typing a guess into the search box and watching whether the row survived. Editors and role approvers still see it; it is how they find a submission in the system it came from.
  • Venue settings no longer promises bidders a "yes/no" bid when no preference levels are defined. They get a single Bid button, with Unbid to take it back, which is what the copy now says.
  • The anonymity and assignment guidance now names the setup steps it points at rather than numbering them. Two of the three numbers were wrong, and the preference-levels step's number changes depending on whether any role takes bids.
  • Volunteers are now listed in an order. Within each role, those still volunteering come first, then everyone alphabetically by family name; previously the rows arrived in whatever order the database returned them.
  • The volunteers table no longer scrolls its last column off screen. A volunteer who wrote their expertise as one long phrase set an unbreakable minimum width for the whole table, pushing Papers cap out of view on an ordinary laptop.
  • A volunteer's expertise keywords no longer begin with a stray space, and the heading above each role now spans the whole table rather than three of its four columns.
  • Export to CSV now sits below the volunteers list rather than above it.
  • The importer now catches a duplicate manuscript ID at a venue of any size. It only ever compared against the first thousand submissions a venue had, so at a larger venue a manuscript already on the platform imported again unnoticed until the database refused the whole batch.
  • A refused import now says a manuscript ID is already in the venue, and that nothing was imported, rather than only "Unable to import submissions".
  • The import form is now emptied once its submissions are created. It kept the batch it had just sent on screen, and then marked every row a duplicate of the submission it had itself just made. Submitting twice while the first import is still going is also refused now.
  • An import no longer refuses a whole file because some of its manuscripts are already in the venue. Those rows are marked and skipped, everything else imports, and the proposed mint is sized to only what was written.
  • Erasing an account now removes its verification emails too. An address you had typed but never confirmed, and the link sent to it, were both left behind in the mail log #27.

🔗︎ August 31, 2026 📅

Fixed

  • Pages now load faster, the home page most of all. Arriving at the home page while already signed in briefly shows Log in in the header before your profile and token balance appear.

🔗︎ August 30, 2026 📅

Fixed

  • A venue's ledger now accounts for the tokens its welcome grants create. When a newcomer's welcome grant was larger than the venue's reserve, the platform minted the difference and passed it straight on without recording where it came from, so the venue's transaction history quietly stopped adding up to its balance. Minting is now recorded as its own entry crediting the reserve, and the venues already affected have had the missing entries added.

🔗︎ August 28, 2026 📅

Added

  • Volunteering now reaches somebody. When a scholar volunteers for one of a venue's open roles, everyone in the venue's top role is emailed on one shared thread, with Reply going to the new volunteer so answering it is the welcome. Previously nothing happened at all: the venue found out when someone opened its volunteers list, and the newcomer heard nothing back.
  • A setting for notices you'd rather not get. A scholar's profile now lists the emails that are courtesies rather than consequences, each with a switch. Anything consequential — a charge awaiting approval, a declined transaction, an assignment — is always sent.
  • Scholar profiles now show the scholar's ORCID iD, linked to their ORCID record, so a visitor can confirm who they're looking at and follow through to the publications and affiliations Reciprocal Reviews doesn't reproduce itself.
  • A new submission now reaches an editor. A venue with one editor has them assigned on arrival; a venue with several tells all of them a submission is waiting, and the ones nobody is editing are flagged on the submissions list with a filter, a one-click claim button, and a reminder that chases them. Previously nothing was assigned and nobody was told, so a submission could sit unnoticed indefinitely.
  • Venues now have a readable web address. A venue picks one during setup — reciprocal.reviews/venue/acm-chi — and every link to it, in the app and in email, uses that instead of a 36-character identifier. Changing an address releases the old one immediately, so links that used it stop working, and the button says so before you commit.

Changed

  • A venue can now be approved before its community has found a minter: approval takes whichever listed editors and minters already have accounts, and if no proposed minter has one, the approving steward holds the currency until the venue names someone. Previously a single unrecognized email address meant the venue couldn't be created at all.
  • A venue's admin can now also mint its currency, and a venue whose admin does says so on its page to every visitor who is neither, inviting them to take the minting role over. Forbidding the arrangement blocked venues from going live, asked more of a small community than it could staff, and treated the people running a venue as suspects; approving a payment into a venue you run is still refused, since that moves tokens somebody else already holds.
  • The venue proposal form now says which listed email addresses don't yet belong to a Reciprocal Reviews account, and a steward sees the same before approving. Neither blocks anything: listed editors are emailed an invitation when the proposal is filed, and are added to the venue when they sign up.
  • The button for deleting a proposal now says Delete instead of showing only an ✖, and Approve carries a matching checkmark.
  • Token balances are now private. A scholar sees their own; a venue's editors and its currency's minters see the balances of scholars reviewing there, so paid work can go to whoever is most undercompensated; nobody else — including a submission's authors and the reviewers bidding alongside you — sees them at all. Previously any signed-in scholar could read who held how much of what, across every venue on the platform. #109
  • The new submission form now says which co-authors cannot cover their share of the charge, rather than how many tokens short they are.

Fixed

  • Erasing an account now removes the address from mail about other people. Erasure only looked at who a message was addressed to or sent by, so an erased scholar's address could survive as a copied recipient or reply address on a notice about someone else. Your data download likewise now includes mail you were copied on.
  • A volunteer record can no longer be deleted or moved to another venue. Both were ways to be welcomed by the same venue twice, since the one-time welcome grant is decided by whether you have volunteered there before. Nothing in Reciprocal Reviews offered either action, but the database allowed them to anyone calling the API directly.
  • Joining a second venue now grants that venue's welcome tokens. A venue's welcome amount is its own standing policy, in its own currency, but the grant was only ever made on the very first role a scholar took anywhere on the platform — so anyone who had already volunteered somewhere received nothing everywhere they went afterward, with nothing on screen to say a welcome had been skipped. Each venue now welcomes a newcomer once, on their first role there.
  • Proposing a venue now reliably takes you to the new proposal. The proposal was being created, but the page could silently fail to move you to it and leave the Propose button stuck, with nothing on screen or in the console to say why — a refresh was the only way out.
  • An email address listed twice on a proposal is now recorded once, so someone named twice is no longer emailed the same invitation twice.
  • Every role a venue created was silently a top-priority role. The top role's holders act as the venue's editors — able to approve any assignment, edit a submission's author list, and mark it done — and new roles landed there by default, handing out that authority until an admin used the reorder arrows. New roles are now added at the bottom, venues with tied roles have been renumbered, and the note explaining the top role no longer appears on several roles at once.
  • Saving an editable field no longer flashes the old value: the field shows what you typed the moment you save, the button shows that a save is in flight, and it reopens with your text intact if the save fails. Previously it reverted while the save was in progress and switched back a second later, which on a slow connection read as the edit having been lost.
  • Validation warnings no longer linger on a field that has been cleared. Fields now stay quiet until you type in them and go quiet again when something clears them — previously a field that emptied after you submitted kept the "must not be empty" warning it earned while you were filling it in.
  • Closed a hole that let anyone mint or move tokens without signing in. Several database routines that rely on their callers to have already checked permissions were reachable directly through the public API, so a venue's reserve could be emptied and new tokens created from nothing.
  • A venue's transactions page no longer shows a loading error when the venue's reserve is empty.
  • An account whose profile was never created now repairs itself. Signing in for the first time could leave you with an account but no profile, which every page read as not being signed in at all — your own profile reported that it couldn't load, and nothing you could do fixed it — so the missing profile is now created on your next visit.
  • A link to a scholar who doesn't exist now says so. A mistyped or outdated profile address previously reported that the profile couldn't be loaded, which was indistinguishable from the site being broken.
  • An editor can now add a submission on behalf of scholars. Filling the new submission form in with someone else's ORCID used to replace the whole submit path with "Only authors of a submission can create a submission," so the only way to record someone else's paper was to list yourself as one of its authors; an editor now starts with an empty author row instead of their own name (#153).

🔗︎ August 28, 2026 📅

Added

  • Reciprocal Reviews is in public beta. Every part of the platform is now reachable: you can browse venues, sign in, propose a journal or conference, volunteer to review, and manage a venue. Until now production redirected everything except the landing, about, and updates pages back to the home page.
  • Reciprocal Reviews has a logo — two arrows chasing each other around a circle — and a brand page listing the mark, the colors, and the typefaces, with the files available to download. It's linked from the footer.
  • Link previews now show a proper card with the logo and tagline when a Reciprocal Reviews page is shared, and the browser tab shows the logo rather than a generic icon. Search engines get a robots.txt and a sitemap that lists the public pages, the help articles, and every active venue.
  • Reciprocal Reviews now has a help section and a contact page, both linked from the footer. Help answers the questions we're asked most often; contact names the stewards who read your message and gives you one address that reaches all of them.
  • Editors can now assign one scholar across several submissions from the submissions list — pick the role and person once, then assign per submission — instead of opening each submission in turn.
  • Reciprocal Reviews now follows up on work that stalls: co-authors are emailed when a submission charge awaits their payment, approvers are reminded when a reviewer has requested compensation, and editors are reminded when a submission has all its reviewing paid and is ready to be marked done. Each follows the venue's existing reminder frequency, and pending compensation now also appears in your task list.
  • Your token balance now appears in the header while you're signed in, counting up or down when it changes, so earning or spending tokens is visible where it happens rather than only on your profile.
  • You can now find a co-author by name on the new submission form, instead of needing their ORCID to hand. The top three matches appear beside the field; picking one fills in their ORCID.
  • Stewards can now appoint and remove other stewards from the About page, where the steward list already lived; previously stewardship could only be granted by editing the database directly. A steward can't remove themselves — stepping down is something another steward does for you — and the last steward can't be removed at all.

Changed

  • The landing page leads with "Make peer review count." in the flow of the page rather than pinned to the header, and shows what a submission cost looks like — a token chip right in the sentence — instead of only describing one. The newsletter is now linked from the volunteer community note.
  • Updated internal tooling for stability.
  • You can now reply to any email Reciprocal Reviews sends you and reach a person. Replies previously went to an unmonitored address and were lost.
  • Notifications to the stewards, such as new venue proposals and alerts about the platform's own health, now arrive in a shared inbox they can work through together. They previously went out as separate copies to each steward, with no way to see whether anyone had picked a request up.
  • The new submission form now lists you as the first author, so it's clear you're included and where to set your own payment.
  • Email links now lead back to the site that sent them, so test and staging deployments no longer send people to the live site.
  • The volunteer confirmation now says how many welcome tokens you actually received, and says nothing about tokens when none were granted. It previously promised tokens "once the minter approves them", which stopped being true when welcome tokens started arriving immediately; accepting a role invitation now confirms as well.
  • Welcome tokens now arrive the moment you volunteer, instead of waiting for a currency minter to approve them — the wait previously fell on newcomers volunteering in order to afford their own submission.
  • Reviewer bids and candidate assignees are now listed with the lowest token balance first, surfacing the scholars most in need of paid reviewing work.
  • Approving a transaction now asks for confirmation, since it moves tokens permanently and cannot be undone. Removing a minter, a compensation rate, a preference level, or an assignment now confirm too, and the warnings for deleting a role or submission type now say what else will be deleted.
  • Paying for a submission now explains that every author listed must have a Reciprocal Reviews account, and links to volunteering when an author is short of tokens.
  • Finding a scholar by name now works everywhere you name one, not just on the new submission form: adding a venue admin, adding a currency minter, and inviting someone to a role all offer matches as you type, instead of requiring an exact ORCID iD or email address.

Fixed

  • Text that a venue or a proposal supplies — a venue description, a proposal title — can no longer inject markup into the page it appears on. Values substituted into a sentence are now escaped by default, and only markup the platform generated itself is exempt.
  • Token amounts no longer break across lines between the number and the word "tokens". A chip like ★ 10 tokens now stays whole wherever it appears, including in transaction tables and on scholar pages.
  • The alert that warns stewards the token ledger may be corrupt is now always delivered. It previously went only to stewards who had verified a contact email address, so the warning that something had gone seriously wrong could reach nobody at all.
  • Only a listed author, or an admin of the venue, can create a submission. Any signed-in scholar could previously create one at any venue and leave payment demands against people who had never heard of it.
  • Gifting tokens to a venue now requires the same acknowledgement as gifting to a scholar; that confirmation was skipped for venues.
  • Venues, currencies, and submissions can no longer be deleted through the API. Nothing in the app offered this, but the permission existed — and deleting a venue would have taken its roles, volunteers, assignments, and compensation rates with it.
  • Emails telling you a transaction was declined now carry a working link. The link was arriving mangled and unclickable.
  • Listing the same author twice on a submission is now flagged on that author's own row, rather than only in a message at the bottom of the form. Two spellings of the same ORCID that differ only in capitalization are also caught, as the database always did.
  • The About page now says so when there are no stewards, instead of showing an empty space between "Current stewards are:" and the invitation to become one. The message when the list fails to load is now marked as an error.
  • Erasing an account now also removes any stewardship it held. An erased steward previously stayed on the public steward list as "anonymous" and kept the permissions that go with it.
  • Scholar name searches now return the same people in the same order each time, and the steward list is ordered by name too. Results were previously in whatever order the database happened to return, which shifted whenever anyone's profile was edited — so searching the same name twice could offer different scholars.
  • Each name-search result now identifies the scholar to screen readers. Every match previously announced the same generic label, making a column of them impossible to tell apart.
  • Adding a venue admin now reports validation problems in the page's language, rather than in hardcoded English.

🔗︎ August 16, 2026 📅

Changed

  • Updated internal tooling for stability.
  • Submission charges are now checked by the database as well as the form: the amounts must add up to the submission type's cost, and the same author can't be listed twice. Previously these rules held only for people submitting through the form.

Fixed

  • Bulk CSV imports now warn when a row's columns don't line up with the header. An unquoted comma in a title used to shift every column and silently drop the last field, so an import could land with the wrong manuscript IDs and still look successful.
  • The balance check when paying for a submission now counts only the venue's own currency. It previously counted tokens from every venue, so the check could pass and the payment then be refused.
  • Reviewer bids now sort predictably in venues that haven't set up preference levels; their order was previously arbitrary.
  • The submissions list now breaks ties correctly when several submissions share a date.
  • Exporting volunteers as CSV no longer truncates the file at the first #, so an expertise like "C#" no longer cuts the download short.
  • Number, web address, and email fields now reject malformed input instead of accepting text that merely contains a number or a link. A venue's welcome amount could previously be set to a value that failed to save.
  • Links in emails that end a sentence no longer include the trailing punctuation in the link, and escaped text no longer reappears as markup in the plain-text version.

🔗︎ August 8, 2026 📅

Added

  • Scholars can now download everything Reciprocal Reviews holds about them, and erase their account. Erasing permanently removes your name, email address, and ORCID iD; your reviewing and payment records remain without your name attached, because they are part of other scholars' histories too, and the tokens you earned stay valid currency for the venues that issued them. #13

Changed

  • Updated internal tooling for stability.

Fixed

  • Token ownership can now only change through a recorded transaction. Previously a scholar could transfer their own tokens directly with no record of the transfer, or relabel a token into a currency no one had granted them.
  • Transactions are now permanent for everyone: they can no longer be deleted by currency minters, and a transaction's identity and timestamp are set by the platform rather than by whoever proposed it.
  • If the platform ever suffers a serious failure, it can now recover to within about an hour of it rather than losing up to a day of work.
  • The internal record of who changed what is now genuinely permanent: the audit tables could previously be modified by the platform's own service credentials, and can no longer be. Automated checks now verify that the platform's description of its own database matches the real thing, so a stale description can't quietly mislead a recovery.

🔗︎ July 19, 2026 📅

Added

  • ORCID authentication as the sole means of login (#19, #27).

Changed

  • Updated internal tooling for stability.

🔗︎ June 28, 2026 📅

Added

  • Authors can now send a short note of thanks to the reviewers of a completed submission; by default an editor reviews the note before it's shared, and reviewers stay anonymous to the author. #22

Changed

  • Gave all platform emails a consistent branded look — both sign-in/authentication emails and notification emails — and routed authentication email through the same provider #56.
  • Improved onboarding guidance #65.
  • Updated internal tooling for stability.

🔗︎ June 14, 2026 📅

Changed

  • Updated internal tooling for stability.
  • Made the pay prompt on the venue page much more prominent, since it is the central functionality of the platform.
  • Clarified on venue proposal that editors will be emailed #138.
  • Extracted all Supabase reads from page load functions to CRUD interface for better encapsulation #137.

🔗︎ June 7, 2026 📅

Added

  • Beta mode #135.
  • Payment-free mode, to support volunteer tracking value proposition #123.
  • Migrated non-atomic CRUD operations to RPCs for data integrity guarantees #136.

Changed

  • Updated internal tooling for stability.
  • Reduced end-to-end test and deploy time to ~5 minutes, while also increasing reliability.
  • Added end-to-end tests for scholar profile updates and gifting #116.

🔗︎ May 31, 2026 📅

Added

  • Submissions can now be explicitly linked to a prior submission to represent revise-and-resubmit chains: authors pick one of their earlier submissions to the same venue from a dropdown, which fills and locks the external manuscript ID field and auto-selects the matching revision submission type. The free-text ID stays available for predecessors that aren't on the platform, and bulk imports best-effort resolve their external previousid to an on-platform link. #124

Changed

  • Submission cost is now set per submission type instead of venue-wide, since each type is a different amount of work; admins edit each type's cost in the submission types table on the venue dashboard, and the venue-wide setting is gone. Because a resubmission is its own revision type, it simply carries its own cost. #124
  • Tightened access control across the database: a submission's assigned reviewers are now visible only to the assignee, the role's approver chain, and venue admins — plus the submission's authors when a venue runs open (non-anonymous) review — and a declared conflict always hides that submission's assignments. Currency minters can now only mint tokens, not move existing ones (reserve payouts are made by editors), and token balances, compensation amounts, and bid-preference levels are no longer visible to signed-out visitors.
  • Added a full-coverage test suite of all table's RLS rules #79.
  • Updated internal tooling for stability.

Fixed

  • Completed submissions and recorded transactions are now genuinely immutable: a submission's status/completed_at and a transaction's identity fields can no longer be edited directly through the API (a previous column-permission lock was silently ineffective). #79

🔗︎ May 24, 2026 📅

Added

  • Invited scholars can now accept or decline an invitation directly from the role card or their task list, with both actions requiring a confirm. Pending invitations also surface in the scholar's task list and the relevant role card auto-expands on the venue page. #128
  • The submissions filter on a venue's submissions page now matches author and assigned reviewer names in addition to title and external ID, respecting reviewer- and author-anonymity flags. The list also shows authors in a new column (where visible to the viewer) and highlights cells whose content matches the filter. #125
  • The proposer of a transaction is now emailed when a minter or editor declines it, with the decliner's name (and contact link), the reason, and a link back to follow up. The transactions page also shows the decliner and reason inline on declined rows, and the original purpose is preserved alongside the new audit columns. #114
  • The submission detail page now shows each candidate scholar's active assignment count against their stated paper-count cap in a new "Assignments / Limit" column (with cross-venue load shown as a secondary indicator), and approving an assignment that would push the scholar over their cap now requires a second click to confirm. #126
  • Venue editors can now copy ready-to-paste email-template snippets for author submission payment, assignment acknowledgement, and compensation requests from the venue's settings page, with the manuscript-ID variable rendered in the syntax of the chosen reviewing platform (HotCRP, EasyChair, ScholarOne, Editorial Manager, OJS, OpenReview, PCS, or plain text). The deep-link URLs in those snippets pre-fill the manuscript ID on the destination page so recipients land in the right form, ready to submit. #113

Changed

  • Renamed the "Cancel" action on proposed transactions to Decline throughout the UI (button labels, status badge, error messages), to better match its meaning as an active, accountable decision. #114
  • Reworked the venue settings page as a numbered setup workflow: a "Decide policies" primer at the top lists the community decisions to make first, then each section is a numbered step, with Activate always last. Sections renumber automatically when one is hidden (Bid preference levels disappears if no role allows bidding), and per-role cards start collapsed so the page stays scannable.
  • Updated internal tooling for stability.

Fixed

  • Fixed an issue where scholars who accepted an invitation to a role kept their volunteer status as "invited" instead of advancing to "accepted," so editors filtering for confirmed volunteers wouldn't see them. #127

🔗︎ May 17, 2026 📅

Added

  • A submission can now be marked done, finalizing review and compensating its editor(s) in one action.
  • Submissions list now shows a per-submission Progress column (in review / done). Done submissions sort to the bottom of the list regardless of other sort order, and are hidden from the list after a venue-configurable window.
  • New venue setting: how long do fininshed submissions remain visible? They remain accessible by direct link.
  • Made subheaders linkable.
  • Wrote and wired up terms of service and privacy. Thanks to Andrew Petersen for the writing and research! #13
  • Added customizable reminder frequency for minting and transaction reminders.
  • Added preference levels to bidding #122.
  • Added paper count limits to assignments #129.

Changed

  • Improved form design.
  • Updated RLS policies and front end to prevent "self-dealing": scholars who enrich themselves with tokens, without oversight.
  • Updated internal tooling for stability.

🔗︎ May 10, 2026 📅

Added

  • End-to-end tests for venue administration #121, currency minting and transaction approval #120, role configuration and volunteering #118, submission and assignments #119, and venue proposal #117.

Changed

  • Volunteers in an approving role can now approve and compensate other volunteers' work directly. Rather than an Associate Editor marking a review approved and then a minter approving the resulting transaction, the Associate Editor approves the transfer from the venue themselves — a transaction is still generated for transparency and auditing.
  • Updated DESIGN.md to be alignment with the current design and technical debt. Also updated CLAUDE.md to maintain DEISGN.md and ARCHITECTURE.md in response to changes in implementation.
  • Updated ARCHITECTURE.md to be a more complete onboarding document for new contributors.
  • Gated Vercel deployments behind verifications and Supabase migrations in GitHub Actions workflows for dev and prod.
  • Cached Supabase Docker for Playwright speed in CI.
  • Updated internal tooling for stability.
  • Only generate updates in CI.

Fixed

  • Locale validation now works instead of silently failing.
  • Request compensation emails now go to the correct recipients.

🔗︎ May 3, 2026 📅

Added

  • Added ability for admins to bulk import submissions without payment, to support pre-launch configuration #97.
  • Added feedback when emails are sent, so scholars know the effect of their actions.
  • Added creation date to submissions table and made it sortable.

Changed

  • Updated internal tooling for stability.
  • We encourage and account for non-paying authors to be listed #98.
  • Expanded submission visibility in RLS rule to role approvers.
  • Improved rendering of emojis in scholar links.
  • Improved layout of the reviewer table on the submissions page.
  • Improved volunteer status labeling in submission page.

Fixed

  • Don't show bid buttons if a scholar already has the role #99.
  • Hardened SubmissionLink to missing submissions to avoid page crashes.
  • Consistent visibility of bids on submissions list and submission page.
  • Improved logic for "bidding closed" note on submissions page.
  • Bid counts now exclude approved bids.

🔗︎ April 26, 2026 📅

Added

  • End-to-end test for new multi-author submissions.
  • End-to-end test for volunteering for a reviewing role.
  • Included unapproved transactions in scholar task list.

Changed

  • Updated visual design of dashboard to improve navigation and accessibility #84.
  • Removed edge functions from Playwright tests for speed and less flakiness, as we do not have end-to-end tests for that functionality.
  • Added caching to Playwright tests for speed.
  • Added a minimal CLAUDE.md to specifiy architecture and stack for Claude Code use.
  • Approve new submission transaction for submitting author immediately.
  • Added another author with tokens in the seed.sql file for testing.

Fixed

  • Fixed text below volunteer header #90.
  • Fixed re-ordering of roles in venue settings #91.
  • Fixed error in inactive venue localization string rendering #92.
  • Corrected spacing below inactive feedback, before page content.
  • Fixed issue where transaction approval always mint tokens, instead of only doing so for venue sources.
  • Fixed bug preventing author submitting on behalf of co-authors.
  • Reset check balances button when payments change on new submission form.

🔗︎ April 19, 2026 📅

Added

  • The new submission page now looks up scholars by ORCID ID, to help authors verify they have the right ORCID.

Changed

  • Updated internal tooling for stability.
  • Removed some unused locale strings.
  • Improved the visual design of all components for consistency and usability.
  • Fully localized the new submission page.
  • Lowercased English labels for consistency.
  • Fixed invalid HTML caused by markdown wrapped in paragraphs.
  • Moved the header and details into the nav bar, to persist while scrolling.
  • Redirect to a submission's page after creating a submission.

Fixed

  • Prevented non-authors from attempting to create a submission.
  • Fixed submission type on the submission page.
  • Submit forms on enter.

🔗︎ April 5, 2026 📅

Added

  • Added gentle reminders to new volunteers to update their name and status.

Changed

  • Updated internal tooling for stability.
  • Updated SvelteKit auth approach with Supabase to avoid session security vulnerabilities #71.
  • Removed redundant breadcrumbs to venues and home page.
  • Improved styling of feedback.
  • Improved font sizes.
  • Organized locale files for future translation.
  • Made volunteers visible without login.
  • Improved visibility and explanation of role volunteering.

Fixed

  • Fixed a problem where new volunteer tokens were not minting or transferring correctly to the volunteer.

🔗︎ March 29, 2026 📅

Changed

  • Updated internal tooling for stability.
  • Localized card toggle, tokens component, all paragraph text, and other lingering fallback and default text. Localization should be complete.

🔗︎ March 22, 2026 📅

Changed

  • Updated internal tooling for stability.
  • Localized all buttons, text fields, notes, cards, sliders, drop downs, tables, and page headers.

🔗︎ March 15, 2026 📅

Added

  • Implemented localization support and extracted many strings to a default English locale().

Changed

  • Updated internal tooling for stability and speed.
  • Improved page header styling and spacing.
  • Merged breadcrumbs in page header.
  • Improved setup instructions.
  • Allow some sliders to not fire immediately, especially if they hit the database.

🔗︎ March 8, 2026 📅

Added

  • Added an updates page to mirror changelog content #81.
  • We now record transactions when tokens are minted on a currency, for transparency.
  • Added basic coverage of end-to-end tests for all routes and authentication states #49.

Fixed

  • Corrected permissions on several table security settings.

🔗︎ March 1, 2026 📅

Added

  • Added pagination to transaction pages for scalability #72.
  • Added emoji icons to page headers for consistency and distinguishability.
  • Styled debits in transaction for visibility.
  • More tests of the authenticated scholar profile.

Changed

  • More consistent rendering and phrasing of transactions.
  • Better page and header padding.
  • Improved header styles.
  • Fixed venue link.
  • Updated minor versions of Svelte and Supabase.

Fixed

  • Corrected volunteer count on venue page.

🔗︎ February 22, 2026 📅

Added

  • Added a submission type and compensation rate by submission type to allow for compensation rates to vary.

Changed

  • Updated prod landing page to add a bit more info about the platform.
  • Updated minor versions of @supabase/supbase-js, @sveltjs/kit, prettier-plugin-svelte, supabase, svelte, svelte-check.

🔗︎ February 15, 2026 📅

Added

  • Added tests for /currency/[id], /curency/[id]/transactions, /scholar/[id]/transactions pages.

Changed

  • Updated minor versions of @sveltejs/kit, svelte, svelte-check, and supabase.
  • Updated seed to have more tokens for testing.
  • Improved display of scholar tokens.
  • Improved layout of footer.

Fixed

  • Fixed page margins.

🔗︎ February 8, 2026 📅

Added

  • Added a sticky footer for less frequently used site-wide information and links.
  • Make staging and deployment runs dependent on test workflows.
  • Added tests for /, /about, /scholar/[id] pages, as well as some utility functions for logging in and out of seeded scholars.

Changed

  • Updated minor versions of @playright/test, @sveltejs/kit, supabase, svelte, @supabase/supabase-js

🔗︎ February 1, 2026 📅

Added

  • Differentiated between venue admins and editor role, to ensure confidentiality, manage conflicts, and enable compensation #73.
  • Made volunteering public on a scholar's profile page #76.
  • Realtime updates on all schoar, currency, venue, submission, and proposals pages #26.

Changed

  • Updated minor versions of supabase/supabase-js, @playright/test, @sveltejs/adapter-vercel, @svelte/kit, prettier, supabase, svelte, svelte-check, and vitest.

Fixed

  • Support creating a new currency in a venue proposal #74.
  • Improved layout of volunteers table #77.
  • Editable text no longer grows the page unbounded #75.
  • Fixed submissions update RLS role to allow editors to edit.
  • Better spacing in page metadata.
  • Improved spacing of editable text in flex layouts.

🔗︎ January 25, 2026 📅

Added

  • Fixed #54, adding anonymity and conflicts support to venues and roles, to implement double anonymous, single anonymous, and open reviewing.
  • Added venue active/inactive switch, to allow for venues to be created without being availabe for use yet.
  • Created editor-guarded settings page to organize venue settings and declutter landing page.

Fixed

  • Eliminated redundant error Notes, merging them with Feedback.
  • Narrowed a few RLS policies to prevent unauthenticated inserts and updates.
  • Fixed logic of assignment approval on submissions page.

🔗︎ January 18, 2026 📅

Added

  • Fixed #69, properly filtering submissions based on role bidding status, assignment status, and total desired assignments.
  • Improved saved feedback.

Changed

  • Updated minor versions of svelte, @sveltejs/kit, prettier, supabase, vitest.

Fixed

  • Clarified meaning of invite and bid.

🔗︎ January 11, 2026 📅

Added

  • Fixed #33: Added volunteer export feature.

Changed

  • Updated minor versions of @sveltejs, supabase, @supabase/superbase-js, vite, vitest and related dependencies.

🔗︎ December 14, 2025 📅

Added

  • Added approved, incomplete submission assignments to task list.
  • Added pending assignment approval task to scholar task list.

Changed

  • Updated minor versions of @supabase/supabase-js, supabase, @sveltejs/kit, svelte, vite.

Fixed

  • Fixed submission assignment visibility.
  • Fixed assignment insertion permissions.
  • Improved usability of scholar charge interface on submission page.

🔗︎ December 7, 2025 📅

Added

  • Added volunteer note to landing page.
  • Added a theory of change to the about page.
  • Fixed #68: Request compensation for role.

Changed

  • Updated minor versions of @playwright/test, @supabase/ssr, @supabase/supabase-js, @sveltejs/adapter-vercel, @sveltejs/kit, prettier, supabase, svelte, vite, vitest.

Fixed

  • Resolved Svelte stale reference warnings.
  • Improved collapsed state of venue editor view.

🔗︎ November 28, 2025 📅

Fixed

  • Improved and simplified landing page explanation.
  • Flipped proposed and active venues on venues page.

🔗︎ November 23, 2025 📅

Added

  • Fixed #53: Migrated to declarative schemas for clarity.

Changed

  • Updated minor versions of Supabase, supabase-js, Svelte, SvelteKit, svelte-check, vitest.

Fixed

  • Linked error message prompts to log in.
  • Expand editing roles by default to make volunteering more obvious.
  • Less intense token color.

🔗︎ November 3, 2025 📅

Added

  • Fixed #58: Send reminders to editors and scholars to approve proposed transactions.
  • Fixed #50: Warning on changing roles with volunteers.

Changed

  • Updated minor versions of Supabase, Svelte, vite, vitest.

Fixed

  • Fixed #43: Better feedback about unapproved transactions; better link to transactions.
  • Improved visual design of forms and text fields.

🔗︎ November 2, 2025 📅

Changed

  • Updated minor dependencies: Supabase, Svelte, SvelteKit, vitest.

Fixed

  • Fixed #63, granting welcome tokens on volunteer assignment or invite accept.
  • Improved names of venue proposal functions.
  • Fixed #30, preventing editors from being minters of a venue's currency.
  • Fixed #66, permit gifting venue.
  • Made currency visible to venue viewers.

🔗︎ October 26, 2025 📅

Added

  • Better tip styling.
  • Consistent currency link styling.
  • Better external link styling.
  • Show minting roles in profile.
  • Added task list to scholar page to show pending invitations and transactions.

Changed

  • Sync SvelteKit types before building in Playwright GitHub Action.
  • Slim Playwright browsers tested.
  • Updated minor dependencies: supabase, @supabase/supabase-js, @sveltejs/kit, svelte, vite
  • Upgraded to vite 4

Fixed

  • Fixed inline padding of lists.
  • Improved save feedback visual design.

🔗︎ October 19, 2025 📅

Changed

  • Updated Vercel adapter to 7.0.
  • Updated minor dependencies: Playwright, Supabase, SvelteKit, Svelte, Typescirpt, vite

🔗︎ September 21, 2025 📅

Added

  • All manual addition and removal of assignments to submission.
  • Fixed #61, compensating roles for completed assignment. Added manual button and CRUD for other contexts.

Changed

  • Updated minor versions of Svelte, SvelteKit, vite.

🔗︎ September 14, 2025 📅

Changed

  • Updated minor versions of Supabase, Svelte, SvelteKit, Vite.

Fixed

  • Distinguished visual design of feedback component from tags.

🔗︎ September 7, 2025 📅

Changed

  • Updated minor versions of Svelte, Supabase.

Fixed

  • Refined visual design based on new dashboard/header/card motif.

🔗︎ September 1, 2025 📅

Added

  • Added a dashboard for high value information on each page, where relevant.
  • Started a minor visual motif redesign using a dashboard-metaphor on each page.

Changed

  • Updated minor versions of Supabase, Svelte, Vite.

Fixed

  • Improved editable text ruler sizing.

🔗︎ August 23, 2025 📅

Added

  • Fixed #29, adding volunteer filter.
  • Fixed #32, supporting ORCID for role invites.

Changed

  • Updated minor versions of Playwright, Supabase, SvelteKit, vite.

Fixed

  • Wrap token formatted text.
  • Improved formatting of inline feedback.
  • Improved layout of login form.
  • Centered save feedback in header.
  • Clarified description of minter role.
  • Max width on drop downs.
  • Properly style error messages.
  • Fixed #52, minting welcome tokens before granting them.
  • Fixed font on non-emoji icons in cards.
  • Fixed #21, passing session to auth state to prevent page flickering.
  • Fixed #23, showing editor roles correctly in profile page.
  • Restructured list of volunteer roles.

🔗︎ August 16, 2025 📅

Added

  • Permit zero submission cost and submissions (also to ease testing of submission creation).
  • Fixed #45: Sorting and filtering submissions.
  • Fixed #28: Moved invitations to scholar page.
  • Send email notification to scholars when invited to a role.

Changed

  • Updated minor versions of Svelte, vite, Supabase.

Fixed

  • Improved wrapping of editable text widget.
  • Fixed post-submission behavior, collapsing and resetting form.
  • Improved padding of cards.
  • Better spacing on h1 headers in page.
  • Improved venue landing page layout.
  • Handle no submissions visible on venue landing page.

🔗︎ August 10, 2025 📅

Added

  • #31: Dynamic steward list.

Changed

  • Updated minor versions of Playwright, Supabase, Svelte, SvelteKit, Typescript, vite.

Fixed

  • More consistent formatting of currency links.

🔗︎ July 27, 2025 📅

Changed

  • Updated minor versions of Playwright, Supabase, Svelte, SvelteKit, eslint.
  • Updated to vite 7.

🔗︎ June 22, 2025 📅

Changed

  • Updated Playwright, Svelte, SvelteKit, Supabase, eslint.

Fixed

  • Type error in error handling.
  • Fixed #44: Reminding scholars of stale status.

🔗︎ June 8, 2025 📅

Added

  • Fixed #38, notify stewards of new venue proposal.
  • Fixed #36, notify scholars of when they are added or removed to a submission.
  • Fixed #39, notify editors of a new venue proposal.

Changed

  • Updated Supabase, Svelte, SvelteKit, eslint, vitest.

Fixed

  • Typo in editor compensation.
  • Resolved all search_path security warnings.
  • More efficent calls to auth.uid() in RLS policies.
  • Narrow RLS permissions on submissions delete to authenticated scholars.
  • Corrected table for email RLS policy.

🔗︎ May 25, 2025 📅

Added

  • Fixed #37, notifying editors and proposers of approved venue.

Changed

  • Updated Supabase, sveltKit, Svelte, Vitest.
  • Filtered Chrome log in local development.

🔗︎ May 18, 2025 📅

Added

  • Emails table with trigger that calls Resend edge function to send email.

Changed

  • Updated Svelte, SvelteKit, Eslint, Prettier, Supabase, Vite, Vitest.

🔗︎ April 20, 2025 📅

Added

  • Created a Supabase Edge Function and client-side API for sending an email via Resend.

Changed

  • Updated Playwright, Svelte, SveltKit, Vite, eslint.

🔗︎ April 13, 2025 📅

Added

  • Added bidding scholar balance to submission bidding table.
  • Fixed #51 sticky header.
  • Saving feedback in sticky header.

Changed

  • Updated Svelte, SvelteKit, Supabase, Supabase SSR, and other minor versions.

🔗︎ March 23, 2025 📅

Changed

  • Updated minor versions of Playwright, Supabase SSR, Svelte, SvelteKit, Eslint, Vitest.

Fixed

  • Better link to issues page.
  • Supress false positive warning.
  • Mirrored front and back end submissions visibility.
  • Improved layout of submissions table.
  • Deactivate button while completing it's action.
  • Fixed ordering of roles.
  • Keep transactions confidential on submissions page.
  • Handle undefined on new role.
  • Improved visual design of assignments for submission.
  • Verified read and write permissions on submission page.

🔗︎ March 9, 2025 📅

Added

  • Added approve field to role, defining what other roles can approve bids for assignments to the role.
  • Feedback on empty volunteer list.
  • Better feedback on role invite success.
  • List the number of volunteers in a role on the venue page.

Changed

  • Updated minor versions of Supabase, SvelteKit, Svelte, Vite.
  • Ensure SvelteKit is synced upon build, to clearing warning in Vercel builds.

Fixed

  • Improved error handling on role invite form.
  • Fixed emoji rendering on Safari.
  • Made role invitations more visible.
  • Better layout of commitments.
  • Improved status tip.
  • Improved invitation feedback.

🔗︎ March 9, 2025 📅

Added

  • Show expertise in list of bids on paper.
  • Sortable venue roles, to determine presentation order.
  • Fixed #24, redesigning venue page to integrate roles.
  • Split volunteers page by role, in role order.
  • Improved volunteers breadcrumbs.
  • Fixed #40, adding editor compensation amount to venue table.

Changed

  • Updated minor versions of Playright, Svelte, SvelteKit, Vite, Vitest.

Fixed

  • Distinguished between a assignment bid and an approved assignment, to remember buds if someone is unassigned.
  • Improved design of feedback in flex layouts.
  • Align table header cells to bottom.
  • Full width tables.
  • Improved layout and bidding options in submission row.
  • Show label on editable text when not editing.
  • Make volunteers visible to non-authenticated scholars.

🔗︎ March 2, 2025 📅

Changed

  • Updated minor versions of Supabase, Svelte, Typescript, Vite.

Fixed

  • Account for empty previous id in submission.
  • A bit of assignment and volunteering restructuring to better support requirements.

🔗︎ February 23, 2025 📅

Added

  • Show transactions pending on submissions page.
  • Show transactions status on submission page.
  • Added a toggleable submission status to each submission, to mark when it is no longer in review.
  • Show submissions on scholar page.
  • Transaction approval by giver or minter.
  • Transaction cancelation by giver, editor, or minter.

Changed

  • Updated minor versions of Svelte, Vite, Vitest.

Fixed

  • Use Noto Emoji instead of system default to guarantee monochrome, consistent emojis.
  • Improved tip visual design.
  • Fixed checkbox label alignment.
  • Generate proposed transactions for submission.
  • Account for currency in gifting and transfers.

🔗︎ February 18, 2025 📅

Added

  • More consistent, precise, and type-safe error handling.
  • Added transaction IDs to submission to keep track of charges.

Changed

  • Updated all minor versions of Supabase, Svelte, SvelteKit.

Fixed

  • Fixed scholar transactions breadcrumb link.
  • Collapse new submission form after submitting.

🔗︎ February 9, 2025 📅

Added

  • Added basic bidding interface.

Changed

  • Updated all minor versions of vite, Typescript, Svelte, Supabase.

🔗︎ February 2, 2025 📅

Added

  • Edit submission title.
  • Edit titles in place.
  • Added link to previous manuscript submission.

Changed

  • Updated minor versions of all dependencies.

Fixed

  • Resolved several defects with the new submission form.

🔗︎ January 19, 2025 📅

Added

  • Implemented manual submission creation form.
  • Styled submission list.
  • Added breadcrumbs on all pages to streamline navigation.
  • Defined a page to display a submission to authors or editors.

Changed

  • Updated all minor versions of vite, Typescript, Svelte, Supabase.

🔗︎ January 12, 2025 📅

Added

  • Initial progress on submissions schema.

Changed

  • Updated all minor versions of vite, Typescript, Svelte, Supabase.

🔗︎ December 29, 2024 📅

Added

  • Improved styling of expandable cards.

Changed

  • Updated all minor versions of dependencies, including Svelte, SvelteKit, and Vite.

🔗︎ December 8, 2024 📅

Added

  • When scholars volunteer for a venue for the first time, create a proposed transaction request for minter to approve, and allow minters to approve it, generating tokens and transferring them to the scholar.

Fixed

  • Redesigned cards to be collapsible, to simplify initial view, make data salient, and convey purpose.

🔗︎ December 1, 2024 📅

Added

  • Allow scholars to gift tokens.
  • Added pattern for explicit success feedback.

Changed

  • Updated all minor releases of dependencies.
  • Updated to vite 6.

Fixed

  • Fixed RLS policy for volunteer insertion.

🔗︎ November 17, 2024 📅

Added

  • Added number of tokens minted for a currency to the currency page.
  • Show number of tokens possed by a venue.
  • Show scholar's token count.
  • Show scholar's transactions.
  • Show venue's transactions.
  • Show currency's transactions.
  • Added approval status to transactions and updated security rules accordingly.
  • Minters mint tokens.
  • Venues can gift tokens to scholars.

Changed

  • Updated Svelte and Supabase point releases.

🔗︎ November 10, 2024 📅

Added

  • Defined tokens and transactions table and draft security rules.
  • List venues using a currency.
  • List minters on a currency.
  • Add and remove minters from currency.

Changed

  • Renamed SourceLink to VenueLink for consistency.
  • Upgraded Svelte, SvelteKit, Supabase dependencies.

🔗︎ November 3, 2024 📅

Added

  • Added ability to volunteer for a role and set expertise.
  • Added ability to stop volunteering for a role.
  • Added ability to invite scholars to roles and for scholars to accept and decline roles.
  • Added list of volunteer roles to profile.
  • Added list of venue volunteers.

Changed

  • Upgraded Svelte, eslint, and dependencies.

Fixed

  • Fixed venues link on home page.

🔗︎ October 20, 2024 📅

Added

  • Venue page: currency link, welcome amount, bidding toggle, role creation, editing, and deletion.

Changed

  • Upgraded to Svelte 5.0.

Fixed

  • A few typography improvements.
  • Deactivated hover feedback on inactive buttons.
  • Fixed rendering for missing name in venue proposal.

🔗︎ October 13, 2024 📅

Added

  • Subtitles for pages, with more consistent display.
  • Edit and delete support for a venue proposal.
  • Stewards can edit, delete, and approve a venue proposal.
  • List active venues.
  • Display venue title, description, and link.
  • Edit venue editors, title, and URL.

Fixed

  • Corrected automatic height on text areas.

🔗︎ October 6, 2024 📅

Added

  • Currency name and description display and editing.
  • Show proposed venues on the venues page.
  • Render proposed venue content.
  • Allow additional support to a proposal.

🔗︎ September 28, 2024 📅

Added

  • Visual design polish on components.
  • Added accessible notifications section.
  • Create currencies and exchanges.
  • Create currency route.

Changed

  • Updated Svelte and Supabase minor versions.
  • Updated GitHub checkout action dependencies.

🔗︎ September 1, 2024 📅

Changed

  • Updated Svelte and Supabase minor revisions.

🔗︎ August 25, 2024 📅

Added

  • Supabase scripts for documentation.
  • Basic email one-time password authenatication.

Changed

  • Updated Svelte and Supabase minor revisions
  • Migrated auth state to Svelte state class.

🔗︎ August 4, 2024 📅

Added

  • Created CHANGELOG.
  • Custom favicon.
  • Set up GitHub actions for unit and integration tests.
  • Configured Supabase, including continuous integration on dev and main branches to reciprocal-staging and reciprocal-production, respectively.
  • Added basic OTP authentication for dev purposes.
  • typescript, vite, vitest, svelte, prettier, playwright