Skip to content

Releases: chanjdaniel/Conventioner

Release list

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 04:11

1.0.0 (2026-10-18)

⚠ BREAKING CHANGES

  • discordGuildId and discordWebhookUrl are no longer part of the market contract, and POST /markets/{id}/discord/notify-assignment no longer exists. Stored documents keep the keys harmlessly; nothing reads them.

Features

  • a deployment says whether it can serve a request (07ea9a3)
  • a seat's hint sits in its top right corner (aad143a)
  • a table-share request finds its partner (E27) (f365a32)
  • among equals, a vendor who will take fewer tiers is placed first (9f9e91f)
  • an answer naming several addresses pairs with the first applicant (dc4cd43)
  • applicant: the form asks dates and tiers as one grid (f09734c)
  • application: a vendor has a name (e9603a8)
  • assignment: assign runs in the assignment phase and nowhere else (211e58d)
  • assignment: pair vendors who ask to share a table (5853353)
  • assignment: say why a vendor has no table (dce7342)
  • assignment: the solver places around pinned vendors (052bd67)
  • check-in: make the check-in page work on a phone (2923d27)
  • checkin: the page names the market and says which day (f1464d2)
  • contract: tier preference is answered per date (a750bf1)
  • csv-proposal: hosted TypeSafe settles what the rules cannot (2ce5c3f)
  • csv-proposal: the file proposes the plan (79c8a89)
  • csv-proposal: the rules propose what each CSV column is (6db0726)
  • dialog: a dialog is a form, and the create-market dialog proves it (4893657)
  • dialog: every dialog is the same thing, and Enter means one thing (664d715)
  • dialog: manage organization stays open (84b216d)
  • E17-E20 - the workspace follows the phase, the real form, and one dialog (d7df80a)
  • E21 - the market frame, one market from the server, and named writes (5735e17)
  • E22 the assignment tab, E23 the plan uses its space (0f3d7ee)
  • E28 The details line up (81c20fb)
  • each market date is its own row, flowing in columns beside the calendar (64979ae)
  • essential: a vendor's preferred name (5660117)
  • find a market on the Markets page (E25) (314e7a7)
  • fixtures: anonymise a form export by who shares each value (68516a6)
  • forms: let a market declare a preference ordering unasked (5ecf9f8)
  • import: the form is fixed without leaving the import (720ca33)
  • import: the importer says what a single column cannot tell it (ddf5c1d)
  • lifecycle: the phase rail (66eadb0)
  • market-setup: start from a draft's Google Form responses (5eb6f94)
  • market: market dates are chosen on a calendar (966a29e)
  • markets: a market belongs to one organization, for good (018a58f)
  • markets: a run records what it was made from (25e6bc2)
  • markets: intake mode is an organizer choice (7dc6935)
  • markets: leaving draft is finalizing, and it is recorded (2c188b5)
  • markets: Market Setup is addressed by id and reads the one store (ba22588)
  • markets: nothing about a market is stored in the browser (689cb48)
  • markets: one store holds the open market, as the server has it (8eb6265)
  • markets: renaming is its own write, and only while a draft (b35de1d)
  • markets: search, sort and filter the Markets page (3325cf1)
  • markets: the application chip (46258cb)
  • markets: the assignment rules close with the assignment (131ebe8)
  • markets: the form lock is on the market, and nothing borrows it (2bbd082)
  • markets: the plan saves only the plan (f70b755)
  • markets: the whole-market PUT is gone (c00bbc8)
  • markets: Vendors, Import and the floorplan editor are addressed by id (2bcde91)
  • market: the applications surface says which phase it is in (bd6fd35)
  • market: the assignment surface (557b50a)
  • market: the plan is one ordered page (db59513)
  • market: the workspace opens the surface the phase is worked on (0ced4d1)
  • new-market: I already have a Google Form (a5e478a)
  • organizations: deleting an organization is safe (c4d9ad7)
  • phases: let a market return to draft before anyone has applied (74ce274)
  • phases: publishing lands in market_days, archived means finished (adfae56)
  • placements: a pin that cannot be honoured (84055d6)
  • placements: a placement has one writer (fd0062c)
  • placements: a trail for placements ([cb3271c](https://github.com/chanjdaniel/Conven...
Read more

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 13 Sep 12:18

0.1.0 (2026-09-13)

Features

  • add dashboard route and update login redirects (b8a6e88)
  • add DashboardView component with navigation buttons (01e7762)
  • add Docker infrastructure for containerized development (0d1b56a)
  • api: resolve org member emails and add userRole to org response (87a0e7d)
  • applicant-auth: implement applicant email-code login backend (#35) (4425006)
  • applications: allow importing only while a market takes applications (#61) (914fb64)
  • applications: ask table choice and an optional table-share partner (#50) (6d7c0c2)
  • applications: ask tier preference separately from availability (#49) (656f580)
  • applications: enforce applicant identity uniqueness with atomic upsert and migration (#29) (aee4efb)
  • applications: essential form fields with plan-derived offering and freeze-on-first-answer (#45) (af3bde4)
  • applications: import vendors from a Google Forms CSV (#53) (a6898a2)
  • applications: map a checkbox grid to one question (#54) (9f2d1e7)
  • applications: organizer monitoring view and results-publication gate (#39) (9164815)
  • applications: preview which rows will be skipped before importing (#57) (e5b394c)
  • applications: remember the import mapping and restore it next time (#58) (75b22a1)
  • applications: require applicant email before showing application form (#40) (6464f52)
  • applications: resolve cell values that do not match the market (#56) (0f77e13)
  • applications: return an approval to review when its answers change (#60) (9367c26)
  • applications: separate new, updated and absent on re-import (#59) (a31484e)
  • applications: stub table type to a single type (#51) (61a8bf0)
  • assignment: add column index mapping and market draft flag (28bb554)
  • assignment: derive assignment stats and table rows on demand (11b187d)
  • assignment: enrich unassigned table metadata and share market schema contract (17157d7)
  • assignment: rename route to assignment-results and refresh results UI (ba5c70b)
  • assignment: the solver reads Applications (E02) (#64) (6182685)
  • back-end: fail closed on unconfigured production security defenses (#27) (ce34f08)
  • backend deployment setup (c9a46c1)
  • dashboard: add last market card and implement sign out (ec0fb47)
  • e2e: fail CI on flaky tests and surface retry-rescued passes (#33) (20db23c)
  • frontend: add applicant-facing login, application page, and dashboard views (#37) (79f70f7)
  • market_documents: store market slug with indexed lookup, replacing O(n) scan (#28) (24d0df3)
  • markets: add application form builder with draft-phase lock (#23) (3cbebdb)
  • markets: add Conventioner phase and application data model (#21) (cb75151)
  • markets: add phase-transition endpoint with centralized guard registry (#24) (a4ef3cc)
  • markets: complete market phase state machine with guards, offer sweep, and phase control UI (#46) (3307caf)
  • markets: MVP market lifecycle - guard correction and intake mode (E03) (#65) (c32ee06)
  • markets: require an organization at market creation (#22) (c994d49)
  • orgs: add manage organization overlay (718d8c9)
  • release: prove the MVP journey end to end and fix what it found (E04) (#66) (d4a116f)
  • sprint-2: CSV export, Discord webhook, vendor attendance form (5cadf90)
  • sprint-3: VendorsView, TablesView, clickable stat cards (a1ff3c9)
  • ui: market home route, slug routing, and assignment column mapping (992f62b)

Bug Fixes

Read more