Changelog

What's new, fixed, and improved in RallyPoint.

v2026.08.14

August 14, 2026

Bug Fixes

  • cf5e7df mobile polish — room emphasis, marketing carousel thumbnails
  • 399803e cart quantity edits render without a reload; trashcan per standard
  • ce7cd36 draft conventions expose no attendee surfaces
  • 2e36028 phone add-to-cart bar no longer hidden under the bottom tabs

v2026.08.13

August 13, 2026

Features

  • 916d313 split badge payment state from physical status (finding #23)
  • 5928ecb per-convention web app manifest and app icon — install the con

v2026.08.11

August 11, 2026

Bug Fixes

  • 7576e93 api vitest loads its own .env — bare pnpm test ran 39 of 433 silently

Features

  • 38edbc5 snapshot hold prices and audit checkout transactions

v2026.08.10.2

August 10, 2026

Features

  • 8a83508 staff-added notification email for existing accounts

v2026.08.10

August 10, 2026

Features

  • bb0e0ae kiosk operator pins — mandatory personal pins, widened rosters, desk ux
  • 061c908 transactional email rail — invite sends via Postmark (ADR 0016)

Bug Fixes

  • 7eac8ab seed heals robot clerkIds across instance splits; signup spec marked slow
  • d8a53e9 e2e webservers get dedicated dev:e2e scripts with pinned ports
  • 886931b alerts mark-read wedge — confirm before flipping, merge without stomping
  • 8d46de5 scope event tag ids to their convention (security #15, final piece)

v2026.08.08.2

August 8, 2026

Features

  • d60dd3b marketing pass — the site tells the whole story, honestly
  • e8561bf sponsorship and booth fees are ledger rows — the last money hole

v2026.08.08

August 7, 2026

Bug Fixes

  • f14e7df e2e hardening and export filename fixes surfaced by the release gate

Features

  • 256e1d5 ledger CSV export — the report as columns, not prose
  • a0bce4b badge grant admin tool, and an Attendee Tools page to hold it
  • 5eedddc volunteer badge grants, and bundled merch flows through every grant path
  • aa185d4 badge_grants — the first-class grant record with value snapshots
  • b99f69f grants are line items in the ledger, beside what was sold
  • b338b7b convention financials — the audit report over the cart ledger
  • f653a0d event tags — organizer-defined, descriptive only

v2026.08.07

August 7, 2026

Bug Fixes

  • 22180e7 the apex is a first-party origin (production 401 regression)

v2026.08.06

August 6, 2026

Bug Fixes

  • 092dc37 invites expire after 30 days (security #33)
  • 13e3ff7 close the error-envelope and OpenAPI drift (security review, drift)
  • ccb4c1e cap the two lists that had no ceiling at all (security #31)
  • 4277c2c owesCents reports this badge, not the whole order (security #22)
  • 0b2731c the Clerk webhook no longer rebinds an identity on email match (security #28)
  • 695e8ca uploads authorization, extension handling, and first tests (security #29)
  • a33d341 assert first-party authorized parties, and stop inviting integrator tokens (security #27)
  • 0ff6279 unique-violation at confirm is a 409, not a 500 (security #38)
  • d46e964 resolveUser ignores soft-deleted accounts (security #37)
  • c74cdeb make the public convention shape an explicit projection (security #9)
  • 4d17561 stop kiosk search doubling as a roster export (security #7)
  • 1d45af5 area-lock the merch fulfillment roster (security #12)
  • b3a7343 lock the sponsor level before accepting (security #14)
  • c71f249 real forbidden code, invites gate, owner guard (security #39, #36, #34)
  • 405b647 assert the Clerk authorized-party claim (security #27)
  • 33d7e72 compare-and-set on merch swap and claim (security #13)
  • 240e7b9 escape LIKE metacharacters in /users/search (security #5)
  • 2e5112d validate body foreign keys against the convention (security #4, #15)
  • fa0bb16 cap badge startNumber below the int4 ceiling (security #18)
  • 79aa091 wrap the timespans batch in a transaction (security #8)
  • 9a7ec75 scheme-validate URL fields and theme colors (security #2, #16, #17, #30)
  • 7702c0f bound cart hold lifetime and re-gate confirm (security #1, #15, #20)

Features

  • f478430 shared TypeBox primitives for bounded request schemas

v2026.08.05

August 5, 2026

Features

  • a287ecf attendee-visible signup access — wave calendar, per-badge verdicts, annotated picker
  • 4c5b021 rework sales and signup gating — the armed date is the policy, rules are dated modifiers
  • ca899c6 event signup rules — staged access windows, caps, and a dry-run preview
  • 99e345f badge batch drops — per-type sale windows + the split generator

Bug Fixes

  • a3f3e34 signup-rules polish round — one cap per kind, aligned tables, full drop calendar
  • 17b3ee8 codex review round — permission drift, CAS desk transitions, public schema, contract truth

v2026.08.01

August 1, 2026

Features

  • abe84d0 merch audit log — every purchase-lifecycle verb on the record
  • 65789d8 cart coherence — shared timer, merch unit editing, kind chips, clear-all
  • bfb372f kiosk surfaces — /kiosk desk PWA page and Kiosk Setup registry
  • 02eb11d kiosk substrate — device registry, pairing, device-token auth, desk routes
  • bbd65c3 pre-attach permission grants to staff invites

Bug Fixes

  • 656b61d attendee merch polish — bundle visibility at sale, Ordered status, copy and alignment
  • f8d4057 merch cart lines say items, not seats
  • 4c1d439 merch adds append per-badge quantities instead of replacing the hold
  • 43d5960 kiosk activity entries — reuse checked_out, show operator and device

v2026.07.31.1

July 31, 2026

Bug Fixes

  • 65b6ba2 invite page resolves the signed-in-but-unprovisioned session race

v2026.07.31

July 31, 2026

Features

  • 9e58663 bake GotS brand assets into the demo seed
  • 3edb94a merch v1 — products, variants, badge-bound sales, bundles, fulfillment

v2026.07.28

July 28, 2026

Features

  • 4956a76 image pipeline — client downscale, banner focal point, rich-text images
  • c509b02 sales arming — datetime triggers with an armed guardrail

v2026.07.27

July 27, 2026

Features

  • 3bf7366 render the deeper-page banner clean with a breadcrumb bar beneath
  • ea74ae7 demo con world seed + weekly reset cron

Bug Fixes

  • 80bac5e creation flow saves State/Province to region, not country

v2026.07.24

July 24, 2026

Bug Fixes

  • fad1808 structural catalog reads open to any organizer grant
  • 2d6cb64 outcome-only confirm dialog; reseed owns the staff roster
  • 01edd17 passthrough feedback — confirm dialog, blank-dialog bug, pulse spread

Features

  • 7ecbcee social icons on public convention pages
  • f3a4b14 scoped sidebar + overview filtering (permissions slice 3)
  • b62a204 area-grant management + scoped staff access (permissions slice 2)
  • a4f387a per-area permission grants — enforcement layer (slice 1)
  • c80d7e1 rebuild organizer dashboard as owner overview

v2026.07.23.1

July 23, 2026

Features

  • 2cb22c9 event share links for non-public events

v2026.07.23

July 23, 2026

Bug Fixes

  • 524f65f locate the avatar menu trigger by aria-label, not display name
  • 9c5606e serialize Unit Tests before E2E to close a shared-DB race

Features

  • 40ca5e5 personal event queue for attendee notifications (ADR 0014)

v2026.07.22

July 22, 2026

Features

  • 4e38644 exhibitor info page, splitting the pitch from the exhibitor roster
  • e3da269 sponsorship info page, splitting the pitch from the sponsor roster
  • e99f37e sponsor level caps, plus a shared custom-fields-editor bug
  • 86d9937 badge-type transferability flag, plus a routing bug sweep

Bug Fixes

  • b05a6cf schedule unschedule, decision panel, and submit-event link (Marshall bug batch)

v2026.07.21

July 21, 2026

Bug Fixes

  • 602044f label the Attendees page's two <select> elements to fix a CI regression
  • ea9a5da new-account signup hand-off — /welcome absorbs the post-signup session race
  • 58b7fdd convention-staff removal no longer strips the true organizer's Everything grant

Features

  • 31a4dcd invite system — staff invites and badge-claim invites

v2026.07.20

July 20, 2026

Features

  • 20a9e11 everything permission — delegable staff access on top of the roster
  • 68da66d convention staff roster with masked-email search-and-pick

v2026.07.18

July 18, 2026

Bug Fixes

  • ac3d4a3 failed loads fail loud instead of rendering convincing emptiness

Features

  • d93c102 volunteer workload warning counts a rolling 24-hour window
  • cd7de2f subdomain guardrails — slug validation, reservations, draft lock

v2026.07.17

July 17, 2026

Features

  • a12efd6 show time v1 mode + attendee nav restructure (ST-1)
  • 946a380 organizer nav shell — collapsible sidebar on every management page

Bug Fixes

  • 8d3d815 enforce event-type max capacity on every event write path

v2026.07.16

July 16, 2026

Features

  • bb12e0c neutral room vocabulary, real error pages, morning-review records
  • 158da43 event signups + generalized cart — seats, waitlist, ledger, My Events

v2026.07.14.1

July 14, 2026

Features

  • 03dde74 event submissions — single-table proposals with an explicit event state machine

v2026.07.14

July 14, 2026

Features

  • 9bd1f45 exhibitor QA round — one-space booths, hall-creating CSV import, batch-save editor
  • dd3825e add exhibitor profiles, public showcase, nav, and seeds
  • 25bc5d3 add exhibitor review, decisions, extras editing, booth assignment, grants
  • 56de518 add exhibitor application track (public form, submissions, config panel)
  • 8a64324 booth inventory, extras catalog, and CSV import for exhibitors
  • 77288ed room/space purpose system with event-type limiters
  • 813a518 exhibitor + room-purpose schema and types
  • 170a5c4 show badge number ranges as a column on the badge types list
  • ee1edbf designated-pages registry with protection and prefilled deep links
  • 521069a sponsors — applications, levels, review, badge grants, and the public page

Bug Fixes

  • 793c560 events list updates in place when an event is deleted

v2026.07.11.1

July 11, 2026

Features

  • 1110ede confirm event deletion inline before it fires

Bug Fixes

  • dced0ab return OAuth sign-ins to the page that asked for authentication
  • ef8d373 point the API docs token link at the current environment's app URL

v2026.07.11

July 11, 2026

Features

  • 5135df2 add /token page for grabbing an API bearer token
  • 635542c rebrand the API reference with Scalar at /docs
  • 0ebdc7a lock crewed shifts against schedule changes while volunteers are assigned

Bug Fixes

  • dc31f17 drain in-flight requests on deploy and bound the database pool

v2026.07.10

July 10, 2026

Features

  • 590130b volunteer management — applications, review, shifts, and CSV import
  • 85bfc15 shared timespan-bound date range picker

Bug Fixes

  • f228e8a show the last day on timespans for spans crossing midnight

v2026.07.08.3

July 8, 2026

Features

  • f3dd90b mask legal names on the attendee roster

v2026.07.08.2

July 8, 2026

Bug Fixes

  • bec49a8 hide the check-in button on cancelled badges

v2026.07.08.1

July 8, 2026

Features

  • 4ef90f1 badge roster, check-in, and badge numbering

v2026.07.08

July 7, 2026

Features

  • 9f1f036 user identity setup and badge registration with cart

v2026.07.06.1

July 6, 2026

Features

  • fede688 convention pages with revision history and public info menu

v2026.07.06

July 6, 2026

Features

  • e06f30b convention configuration page for status and public switches
  • 141d2b3 convention status drives the public site

v2026.07.05.1

July 5, 2026

Features

  • df813df derived-surface containment for marquee strip and rail

Bug Fixes

  • 26acb64 keep sanitize-html external in the api esbuild bundle

v2026.07.05

July 5, 2026

Features

  • b592deb convention setup checklist, live homepage preview, dashboard polish
  • 3acd397 public attendee schedule with filtered table view
  • 53f5eb0 dedicated home page settings + marquee right-rail consolidation
  • 065142f marquee homepage layout with toggle-driven lifecycle
  • 1ea6370 details page coverage for homepage fields + full timezone picker
  • a873f2f convention homepage foundation — schema fields, rich description, drop custom CSS

v2026.07.04

July 4, 2026

Features

  • d24acbd room filter on the schedule grid
  • b22af29 15-minute precision in the timespan editor

Bug Fixes

  • 7b19426 support timespans crossing multiple midnights in the builder

v2026.07.03

July 3, 2026

Bug Fixes

  • 2a70bf7 watch workspace package sources in API dev server

Features

  • e56aabf public site polish and GCS upload wiring for deployed environments

v2026.07.02.1

July 2, 2026

Bug Fixes

  • d30a9a5 restore floated transitive deps from playwright bump
  • 2c0cb93 apply principle of least information to user emails; alphabetize event hosts
  • 6917609 redirect www.rallypoint.events to apex via marketing Worker

Features

  • 75acb77 roll paged envelope, sorting, and pagination out to all list endpoints
  • 4d8b4ee list toolkit with paged envelope, piloted on GET /events

v2026.07.02

July 2, 2026

Bug Fixes

  • c3718d0 log verifyToken error and secret key prefix for staging 401 diagnosis
  • d737e6e marketing staging at stagingrally.events root to mirror production topology
  • e9dc30a move marketing staging to preview.stagingrally.events
  • 42a8a38 externalize @google-cloud/storage from esbuild bundle
  • 4ac9dac install wrangler via pnpm workspace to avoid npm workspace: conflict
  • e5c6fb8 use wrangler-action and pass PUBLIC_APP_URL at marketing build time

Features

  • 3e9c9c4 switch staging Clerk instance to production; drop satellite mode
  • 446bc2c migrate web and marketing apps from Cloudflare Pages to Workers
  • 90ad74b gate Clerk satellite config behind PUBLIC_CLERK_SATELLITE env var

v2026.06.30

June 30, 2026

Features

  • 5d604f7 public convention site with subdomain routing
  • cc0a50f add GCS image upload for convention theme (header + logo)

v2026.06.28

June 28, 2026

Features

  • f417dc4 add schedule grid with collision detection

v2026.06.25

June 25, 2026

Bug Fixes

  • 81e2061 update smoke test selectors for revised dashboard layout

Features

  • bb3a0aa event hosts, ConventionDateTimePicker, and event edit revamp

v2026.06.24

June 24, 2026

Bug Fixes

  • 00becb1 collapse migrations 0008-0011 into single clean migration
  • 4451930 always use dev:ci for API in Playwright config
  • 0258c5f use watchless API dev command in CI
  • 189c590 gracefully handle API unreachable on home page
  • 6a5983b remove unused PUBLIC_APP_URL import from marketing Header
  • 5c4edfe use dynamic public env for PUBLIC_API_URL in marketing footer
  • a08572c use named imports from \$env/static/public in web Footer
  • d742e12 merge theme patch into existing displayConfig and invalidate layout cache on save
  • dc6f31a use data.apiUrl instead of import.meta.env for client-side API calls
  • 92b0cba resolve convention list serialization failure
  • 4d70591 accept format:date for convention startDate/endDate in request schemas
  • ee1b6db skip badge-type integration tests when DATABASE_URL is not set
  • 6df3713 pass vitest when no test files found, disable turbo telemetry
  • e04968f run svelte-kit sync before tsc in builder typecheck
  • 65b08b6 drop standalone typecheck from packages/ui
  • fa48344 require Node 22 for pnpm 11 compatibility
  • 97d01cf resolve pnpm version conflict and opt into Node 24 actions
  • 3e52bfc Change footer layout from column to row flex direction
  • 874c75b Add w-full to footer grid for proper container alignment
  • 6ab4bc2 Use flexible grid columns to prevent layout overflow
  • e66d6ff Correct carousel rotation direction for card positions
  • 261aa97 Wrap footer content in proper container styling
  • 70999d2 Align all page sections to consistent 1200px grid
  • df810e8 Adjust carousel card heights and prevent text overflow
  • 2ee4c66 Remove right padding from carousel section to prevent cutoff
  • 84a181d Wrap carousel grid in flex container to prevent layout breaking
  • 470f644 Refactor carousel to CSS grid layout without overlapping
  • 0ee7820 Remove duplicate closing brace in page template
  • 25c2dd4 Apply text color to schedule description paragraphs
  • b7d091f Wrap carousel card blocks in each loops for reactivity
  • 152a775 Resolve carousel, image, and styling issues in components
  • 13cac39 Resolve TypeScript and Vite build errors in dev server
  • dceb951 Add ./lib to Vite server fs.allow configuration

Features

  • f981d32 replace convention days with timespans model and timespan builder UI
  • 5b3c2f3 event types, events scaffolding, and days timespan prototype
  • 6308bb3 changelog page with auto-generation from conventional commits
  • 1655c4f rooms and spaces management with hierarchical venue model
  • d081dba convention days management with generate prompt and batch save
  • 5f7338d convention details page with venue type and URL fields
  • 1edb6c0 stand up API with seeded database in CI for E2E tests
  • 443fd97 smoke test suite with Clerk auth and critical path tagging
  • 50dc27f responsive design for marketing site
  • 06b8b34 add My Conventions link to user dropdown on both apps
  • 957fcc6 conditional satellite mode for Clerk cross-domain auth
  • fd83366 configure Clerk satellite domain handshake
  • ce5ebda user dropdown menu and API docs link in both app headers
  • 19adc7e env indicator, auth-aware header, and API docs link
  • 723d566 migrate convention dates to date type; expose timezone field
  • 641539e dev toast for API error bodies in local development
  • 9e8fe48 badge type management — API, UI, types, tests
  • d9b7614 restore convention hub, theme editor, and routing
  • 0d041c1 convention theme editor, routing refactor, and url architecture
  • 11013fd add GET/PATCH/DELETE convention routes, theme field, and openapi auth docs
  • c524ce4 add typebox schemas, openapi docs, and api.rallypoint.events routing
  • 3bba7f1 add sign-up route and wire create-convention end-to-end (#23)
  • 4901cdb add sign-up route and wire create-convention end-to-end
  • 7ffa8d7 update ci workflows to deploy to staging and prod (#20)
  • 5b2b613 persist conventions — API auth middleware, POST/GET routes, wired frontend
  • e9dba65 web app UI — header/footer, create-convention wizard, auth fixes (#17)
  • cea9bf2 clerk webhook integration and Cloud Run deployment (#16)
  • e22af06 gate web app, add welcome home, and marketing placeholder pages (#15)
  • 4bb0b9e core schema design, migration, and test seed data (#14)
  • 5261a6a env, deployment, and Clerk auth wiring (#12)
  • f47c7db add Playwright e2e test for conventions page
  • 53cff20 scaffold apps/marketing SvelteKit marketing site
  • b33e0db scaffold apps/web SvelteKit attendee app
  • e50481f scaffold apps/api with Fastify, OpenAPI, and Drizzle wiring
  • 5855fff scaffold packages/domain with convention business rules
  • 1f23cc9 scaffold packages/types with API contract types
  • 4d592c8 Set up visual editing mode with Builder.io integration