Change Log
You are running Taikai v1.116.1.
Version numbers follow X.Y.Z — X for a major rewrite, Y for a new feature, Z for a fix or minor improvement.
Version 1.116.1
2026-09-20- fix: deploys no longer depend on a webhook GitHub only tries once
Version 1.116.0
2026-09-20- feat: clear password hashes that can no longer sign anyone in
Version 1.115.2
2026-09-20- docs: don't restate who operates AccessNow in the sign-in sections
Version 1.115.1
2026-09-20- docs: legal and help pages still described Taikai handling passwords
Version 1.115.0
2026-09-20- feat: complete elapsed tournaments without running billing
Version 1.114.5
2026-09-20- fix: stop advertising a tournament once its final date has passed
Version 1.114.4
2026-09-16- docs: an admin entry overriding a session's minimum rank is by design
Version 1.114.3
2026-09-16- fix: seeder progress message belongs on STDERR, not stdout
Version 1.114.2
2026-09-16- fix: record declared ranks on admin-added entries, and repair CI
Version 1.114.1
2026-09-16- fix: ask for rank before sessions on the seminar entry form
Version 1.114.0
2026-09-16- feat: search a long dojo list instead of scrolling it
Version 1.113.0
2026-09-16- feat: require a rank to enter an event whose divisions are graded by rank
Version 1.112.0
2026-09-16- feat: record ranks on a tournament without letting them reorder draws
Version 1.111.0
2026-09-16- feat: seminar entrants declare a rank per style, sessions set a minimum
Version 1.110.0
2026-09-12- feat: seminar URLs under /seminar/ and duplicate a session
Version 1.109.0
2026-09-11- feat: default waiver written for training seminars
Version 1.108.0
2026-09-11- feat: link a seminar to the tournament it belongs to
- "Related tournament" picker on the seminar's settings, limited to
- Tournament settings list linked seminars with "Create a seminar for
- Tournament public page lists its published, public seminars with a
- Neither duplicate() nor transfer carries the link
Version 1.107.0
2026-09-11- feat: seminar sessions with times, venues, cut-offs and enrolment limits
- events.session_date/start/end_time, session_venue/address and
- Limits live on the session's single division, so the existing
- A session closes at its own cut-off or the seminar's, whichever is
- Public page, entry form, confirmation email and directory card show
- duplicate() shifts session dates/cut-offs; transfer carries them
Version 1.106.0
2026-09-11- feat: add seminars — registration-only events with their own directory
- tournaments.kind (migration 20260911120000), set at creation via
- Router::guard() prefix guards + Auth::requireCompetition() refuse every
- /seminars directory (PublicController::directory shared with
- Sidebar, settings form, Sessions page, public page, roster and admins
- Playwright fixture seminar + seminars spec; CLAUDE.md and admin help
Version 1.105.1
2026-09-11- fix: style the form fields added with member pricing and the link dialog
Version 1.105.0
2026-09-11- feat: choose whether an editor link opens in a new tab
Version 1.104.1
2026-09-11- fix: correct the Stripe setup instructions on both settings pages
Version 1.104.0
2026-09-10- feat: report who used which member pricing code
- The roster renders rows in TWO places and the badge was only in one, so
- The bare badge reused t('Member'), which already means a dojo member's
Version 1.103.0
2026-09-10- feat: apply member pricing from a shareable link
Version 1.102.0
2026-09-10- feat: show which rate an entry was charged at
Version 1.101.1
2026-09-10- chore: state the standard rate explicitly where a page must never show member prices
Version 1.101.0
2026-09-10- feat: apply a member code after submitting, and note codes on the public page
Version 1.100.0
2026-09-10- feat: apply a member code at registration
Version 1.99.2
2026-09-10- fix: drop the usage cap on member pricing codes, and allow renaming an unused one
- TournamentTransfer and Tournament::duplicate still named max_uses in
- Removing it from the transfer INSERT left 8 columns against 9
Version 1.99.1
2026-09-10- chore: check translation catalogs for duplicate and drifting keys
Version 1.99.0
2026-09-10- feat: issue codes that unlock member pricing
- Scoped per tournament. UNIQUE is (tournament_id, code), not code alone, so
- Redemptions are DERIVED, not counted. SaasCoupon keeps a times_used column
- Validity is judged in the tournament's own timezone, matching
Version 1.98.0
2026-09-10- feat: set member and non-member prices on the entry fees page
Version 1.97.0
2026-09-10- feat: add a member rate class alongside the fee periods
- Tournament::duplicate() never listed entry_fee_early/_late, so duplicating
- TournamentTransfer carried no fee_period_locked, so a --with-competitors
Version 1.96.3
2026-09-10- fix: keep an anonymised tournament export importable
Version 1.96.2
2026-09-09- fix: stop offering pricing periods that have already closed
Version 1.96.1
2026-09-09- fix: never offer a pricing period the tournament cannot charge
Version 1.96.0
2026-09-09- feat: show the entries-close deadline on the fees page, and how to use two prices
Version 1.95.1
2026-09-09- fix: freeze a settled entry at a period that reproduces what it paid
Version 1.95.0
2026-09-09- feat: price the registration form at the live period, and say what holds it
Version 1.94.3
2026-09-09- perf: count and lock settled entries in one query instead of per row
Version 1.94.2
2026-09-09- fix: price newly created registrations at the current fee period
Version 1.94.1
2026-09-09- fix: lock the fee period when a payment settles, at the date the money arrived
Version 1.94.0
2026-09-09- feat: show one pricing period at a time on the public tournament page
Version 1.93.0
2026-09-08- feat: price a payment at the period it is actually being paid in
Version 1.92.1
2026-09-08- fix: price the team-fee audit at each registration's own period
Version 1.92.0
2026-09-08- feat: charge the configured fee period
Version 1.91.0
2026-09-08- feat: configure Early Bird / Regular / Late prices on the entry fees page
Version 1.90.0
2026-09-08- feat: carry fee periods through duplicate, transfer and updateFees
Version 1.89.0
2026-09-08- feat: fee period storage and resolver, dormant until switched on
Version 1.88.7
2026-09-08- refactor: one chokepoint for rebuilding a registration's total_due
Version 1.88.6
2026-09-07- fix: only mention team fees on the public fees card when there are any
Version 1.88.5
2026-09-07- fix: require at least one event on admin direct entry
Version 1.88.4
2026-09-07- chore: add the Karate4Life/Taikai lockup for AccessNow sign-in branding
Version 1.88.3
2026-09-07- fix: tell people how to confirm their address instead of just refusing them
Version 1.88.2
2026-09-06- fix: require an access area when loading a tournament, so a missed gate fails closed
Version 1.88.1
2026-09-06- fix: don't email registration changes to admins without registrations access
Version 1.88.0
2026-09-06- feat: Link Accounts page for entries orphaned from their owner's account
Version 1.87.4
2026-09-06- fix: offer to link an orphaned registration when the account appears later
Version 1.87.3
2026-09-06- fix: keep child graduation working when sign-in moves to AccessNow
Version 1.87.2
2026-09-06- fix: close the last route that could sign someone in without AccessNow
Version 1.87.1
2026-09-06- fix: stop offering local passwords that can no longer sign anyone in
Version 1.87.0
2026-09-04- feat: audit the Taikai to AccessNow account links
Version 1.86.0
2026-09-04- feat: hand registration and password changes to AccessNow under auth_mode accessnow
Version 1.85.1
2026-09-04- docs: runbook for migrating production onto AccessNow
Version 1.85.0
2026-09-04- feat: sign in through AccessNow, behind the auth_mode flag
Version 1.84.0
2026-09-04- feat: link Taikai accounts to their AccessNow identities
Version 1.83.0
2026-09-04- feat: export the Taikai accounts that can move to AccessNow
Version 1.82.0
2026-09-04- feat: add the AccessNow SSO client and the identity link column
Version 1.81.7
2026-09-03- docs: record the production nginx vhost
Version 1.81.6
2026-09-02- fix: serve static files under PHP's built-in server
Version 1.81.5
2026-09-02- fix: retire the stale CSRF exemptions, throttle logins, and stop leaking errors
Version 1.81.4
2026-09-02- fix: validate match winners, guard before writing, and align the PHP and MySQL clocks
Version 1.81.3
2026-09-02- perf: batch the per-division query storms on the draws and results pages
Version 1.81.2
2026-09-02- fix: charge admin-entered competitors, and stop settled captains reverting to pending
Version 1.81.1
2026-09-02- fix: close payment bypass, unscoped webhook and stored XSS paths
Version 1.81.0
2026-08-16- feat: country names in the medal tally open a podium summary
Version 1.80.0
2026-08-16- feat: competitor counts and a by-country medal tally
Version 1.79.2
2026-08-15- fix: podium finish links jumped to the site root instead of the results row
Version 1.79.1
2026-08-15- fix: rename the dojo results panel to "Podium Finishes"
Version 1.79.0
2026-08-15- feat: dojo-filtered results view with pace getters
Version 1.78.0
2026-08-15- feat: correct a team kumite fight order after the tie has started
Version 1.77.0
2026-08-15- feat: repechage report on the results page
Version 1.76.1
2026-08-15- fix: team bout modal named the teams in the opposite order to its columns
Version 1.76.0
2026-08-15- feat: write up and review team tie bouts from the draw
Version 1.75.2
2026-08-15- fix: team kumite bouts won on points were recorded as Kiken
Version 1.75.1
2026-08-15- fix: a corrected division still showed as Complete on the schedule
Version 1.75.0
2026-08-15- feat: correct results in a modal, with the reason and its 3-point award
Version 1.74.1
2026-08-15- fix: bout modal showed Aka and Shiro on the wrong sides, and was too narrow
Version 1.74.0
2026-08-15- feat: correct submitted kata scores, full access only, with audit
Version 1.73.2
2026-08-15- fix: byes made an unstarted division read as In Progress on the results page
Version 1.73.1
2026-08-15- fix: record the cascade in the audit trail, not just the edit
Version 1.73.0
2026-08-15- feat: correct a decided result, and the bouts that followed from it
Version 1.72.4
2026-08-15- fix: display reload-looped after the mat/ring filter was added
Version 1.72.3
2026-08-14- fix: a mat served yesterday's match instead of today's ring
Version 1.72.2
2026-08-14- fix: let a scoreboard link say which day's ring it means
Version 1.72.1
2026-08-14- fix: operator and display showed day 1's ring on day 2
Version 1.72.0
2026-08-14- feat: restrict result and scoreboard-settings edits to full admins, with an audit trail
- correcting the points/winner of a decided match from the draw page
- the kumite operator's Settings (duration, colours, competitor position,
- the kata operator's Settings and referee count, which recompute stored
Version 1.71.1
2026-08-14- fix: the final's card could not be clicked on a bracket with a 3rd-place match
Version 1.71.0
2026-08-14- feat: show team kumite bout results on the draw
Version 1.70.4
2026-08-14- fix: a started division could not be dragged to another ring
Version 1.70.3
2026-08-14- fix: operator sent to the final while repechage bouts were still unfought
Version 1.70.2
2026-08-14- fix: an unfought bronze was shown as TBD and omitted from public results
Version 1.70.1
2026-08-14- fix: scoreboard sides flipped mid-bout when another ring saved settings
Version 1.70.0
2026-08-14- feat: hide a ring, and everything scheduled on it, from public views
Version 1.69.0
2026-08-14- feat: correct a bracket bout's points from the draw page
Version 1.68.0
2026-08-14- feat: scoreboard fullscreen holds, MRE round labels, scratch from standings
- Public displays render inside a fullscreen shell, so the board's own reloads
- The kata display names its round above the performer count ("Round 1 of 2",
- The operator's round standings modal can scratch (DNS) a competitor who
- Repechage bouts are no longer filtered out of the operator's run order, which
Version 1.67.8
2026-08-14- fix: draw links on the public schedule now open in a new tab
Version 1.67.7
2026-08-14- fix: public draw hid competitors who hadn't performed yet mid-round
Version 1.67.6
2026-08-14- fix: division drag-reorder on the draws page never saved
Version 1.67.5
2026-08-14- fix: public display reload-looped at the end of a match, hiding the result
Version 1.67.4
2026-08-14- fix: tie-breaker bout was never announced, and the bout result named the dojo
Version 1.67.3
2026-08-14- fix: the waiting message pushed the scoreboard layout around
Version 1.67.2
2026-08-14- fix: team winner overlay showed the team's row id
Version 1.67.1
2026-08-14- fix: division intro said "First Match" every time it came back up
Version 1.67.0
2026-08-14- feat: operators can see the whole team kumite fight order; walkovers are recorded, not awarded
Version 1.66.0
2026-08-13- feat: announce the final team kumite bout before the match result
Version 1.65.3
2026-08-13- fix: last team kumite bout showed a placeholder with the wrong flags
Version 1.65.2
2026-08-13- fix: operator's Next Bout bar had no flags or bout number
Version 1.65.1
2026-08-13- docs: note what stays on screen for an unfilled team kumite slot
Version 1.65.0
2026-08-13- feat: flags and bout number on the team kumite Next Bout bar
Version 1.64.3
2026-08-13- fix: Next Bout named the fighter's dojo instead of their team
Version 1.64.2
2026-08-13- fix: Next Bout showed TBD for an empty team kumite slot
Version 1.64.1
2026-08-13- fix: show a one-sided team kumite forfeit instead of skipping past it
Version 1.64.0
2026-08-13- feat: hold the bout result on the public display between team kumite bouts
Version 1.63.1
2026-08-13- fix: public display put both flags in the centre when sides are swapped
Version 1.63.0
2026-08-13- feat: a short team can choose which team kumite positions it forfeits
Version 1.62.2
2026-08-13- fix: public display could sit on a stale division, and a tiny operator score
Version 1.62.1
2026-08-13- fix: team events showed "Unassigned" on a competitor's page
Version 1.62.0
2026-08-13- feat: reset a schedule entry and its division back to not started
Version 1.61.0
2026-08-13- feat: unpublish a single draw so it can be edited again
Version 1.60.0
2026-08-13- feat: flag competitors who perform first in more than one kata division
Version 1.59.0
2026-08-11- feat: flag divisions whose draw no longer matches the roster
Version 1.58.0
2026-08-10- feat: drag divisions into order on the draws page
Version 1.57.6
2026-08-10- fix: keep ceremony/break times public when division times are hidden, and day tabs
Version 1.57.5
2026-08-10- fix: brackets split mid-page in the all-draws PDF, and kata page number overlap
Version 1.57.4
2026-08-10- fix: draw sheet PDF layout for brackets larger than 8 competitors
Version 1.57.3
2026-08-09- fix: 500 on team draws and the marshalling index from gapped id arrays
- A team draw whose bracket names the same team in two matches. DrawController
- The marshalling index for any tournament with team events, where
Version 1.57.2
2026-08-09- refactor: move the rebuild-after-delete logic into DrawGenerator
Version 1.57.1
2026-08-09- fix: restore the CSRF fetch override on the draws and schedule pages
Version 1.57.0
2026-08-09- feat: change draw format and rename divisions from the draws page
Version 1.56.2
2026-08-09- fix: rebuild draws after a division save, and show live division names on the schedule
Version 1.56.1
2026-08-09- fix: keep division ids across a save so the schedule stays attached
Version 1.56.0
2026-08-09- feat: rename a division without rebuilding its draws
Version 1.55.2
2026-08-09- fix: stop bracket bouts overlapping when a name or dojo wraps
Version 1.55.1
2026-08-09- fix: keep the clash highlight off public schedule views
Version 1.55.0
2026-08-09- feat: show clashing entries highlighted on the schedule
Version 1.54.2
2026-08-09- fix: never move a ceremony or break when fixing schedule clashes
Version 1.54.1
2026-08-08- fix: offer the team kumite scoreboard when editing a team kumite event
Version 1.54.0
2026-08-08- feat: handle kata no-shows on the operator scoreboard
Version 1.53.0
2026-08-08- feat: marshall team events by team, and flag team DNS the bracket can see
Version 1.52.2
2026-08-08- fix: scope marshalling roster and release DNS sweep to the entry's pool
Version 1.52.1
2026-08-08- fix: read team-event divisions from the team row in the individuals CSV
Version 1.52.0
2026-08-08- feat: choose team / non-competitive columns when exporting individual entries
Version 1.51.1
2026-08-08- fix: record the builder's own edits in the schedule undo history
Version 1.51.0
2026-08-08- feat: multi-step undo history for schedule changes
Version 1.50.0
2026-08-08- feat: undo the last applied schedule suggestion
Version 1.49.0
2026-08-08- feat: suggest and apply schedule changes that clear clashes
- ScheduleClash memoises its competitor lookup. The search calls find() a couple
- find() now buckets entries by date and walks each day in start-time order,
Version 1.48.0
2026-08-08- feat: schedule clash checker — find competitors booked onto two rings at once
- Clashes: two entries on different rings whose times overlap, with the
- Tight turnarounds: no overlap, but less than the changeover allowance
- Not on the schedule: divisions with enough entrants to run, or an existing
Version 1.47.3
2026-08-08- fix: say "5 team matches (15 bouts)" on schedule cards, without nested brackets
Version 1.47.2
2026-08-08- fix: cost a team kumite tie as one bout per lineup position
- Every bout in a tie is budgeted. Under-estimating makes competition day slip;
- The changeover between bouts within a tie is charged at the existing
- The final TIE is finals-rated across all of its bouts, not just one of them.
Version 1.47.1
2026-08-08- fix: stop the e2e fixtures rotting on a long-lived dev database
- refreshFixtureDates() pushes an elapsed fixture back to +90 days on every
- tests/e2e/global-setup.ts runs the seeder and adopts the IDs it prints, so a
- The fixture IDs in tests/e2e/fixtures.ts lose their fallback values. They
Version 1.47.0
2026-08-08- feat: add a view-only Draws grant and name the area Draws & Schedule
Version 1.46.0
2026-08-08- feat: transfer competitor data between instances, not just tournament config
- matches.competitor_*_reg_id and the registration_id on match_scores,
- Self-referential FKs (matches.next_match_id, repechage_match_id,
- team_code, checkin_token, consent token and bundle_uuid are regenerated, never
- password_hash, users.stripe_*, payments.transaction_id and payment_data are
- Created users are always role 'user', never the role they carried, so a
Version 1.45.1
2026-08-08- fix: repair the dead tournament transfer CLI and de-duplicate its engine
- format_version: 2 in the payload; v1 files (no key) still import
- encodePayload()/decodePayload(), gzip sniffed from magic bytes so .json and
- --gzip on the export CLI (435 KB -> 187 KB on the Soke Cup config)
Version 1.45.0
2026-08-07- feat: bin/void-refund.php — undo a refund recorded in error
Version 1.44.1
2026-08-07- fix: net off processed refunds when settling and refunding
Version 1.44.0
2026-08-07- feat: --all corrects the mismatch bucket and refunds cancelled-team fees
Version 1.43.0
2026-08-07- feat: --settle records the restored fee as paid so balances land at $0
Version 1.42.1
2026-08-07- fix: sharpen --log so its findings are actionable
Version 1.42.0
2026-08-07- feat: --log mode — find wiped team fees from the change log instead of prices
Version 1.41.0
2026-08-07- feat: --fix mode and mismatch diagnosis for the team-fee audit
Version 1.40.0
2026-08-07- feat: bin/check-team-fees.php — find captains whose team fee was erased
Version 1.39.0
2026-08-07- feat: bin/transfer-fee.php — move a charge and its payment between registrations
Version 1.38.5
2026-08-07- fix: show children as parent-managed instead of "invited but never signed in"
Version 1.38.4
2026-08-06- fix: apostrophes broke confirm dialogs beyond the manage-team page
Version 1.38.3
2026-08-06- fix: merging duplicates left the survivor in the team EOI pool
Version 1.38.2
2026-08-06- fix: manage-team member list overflowed on narrow screens
Version 1.38.1
2026-08-06- fix: stop recalculations wiping the team entry fee off the captain
Version 1.38.0
2026-08-06- feat: transfer team captaincy, carrying the entry fee and payments with it
Version 1.37.0
2026-08-06- feat: dojo admins can download registration CSVs for their own dojo
Version 1.36.0
2026-08-05- feat: sortable columns on the Teams tab
Version 1.35.0
2026-08-05- feat: add a competitor to the referee list from their registration page
Version 1.34.0
2026-08-05- feat: add a referee from people already in the system
Version 1.33.0
2026-08-05- feat: country code column on the registrations tables
Version 1.32.0
2026-08-05- feat: link unlinked competitors to their entries on the dojo members page
Version 1.31.4
2026-08-05- fix: parent/guardian picker was capped at 25 candidates
Version 1.31.3
2026-08-04- fix: CSRF header sent twice, 403ing every hand-rolled POST
Version 1.31.2
2026-08-04- fix: hide the public Entry Fees card once entries have closed
Version 1.31.1
2026-08-04- fix: refuse to send Soke Cup handover invites from a dev host
Version 1.31.0
2026-08-04- feat: one claim link can hand over several dojos at once
Version 1.30.0
2026-08-04- feat: search, sort and paginate the SaaS admin user list
Version 1.29.0
2026-08-04- feat: change and filter dojo status from the SaaS admin dojo list
Version 1.28.1
2026-08-04- fix: dojo claim link now resumes after sign-up and requires the invited email
Version 1.28.0
2026-08-03- feat: add a read-only registrations access area for tournament admins
Version 1.27.3
2026-08-03- chore: add one-off script to settle all outstanding balances in a tournament
Version 1.27.2
2026-08-03- fix: team events listed every member as unassigned to a division
Version 1.27.1
2026-08-01- fix: admin entry of a minor crashed on duplicate email
Version 1.27.0
2026-07-31- feat: let admins move a team to a different team event
Version 1.26.0
2026-07-31- feat: default team placement to youngest division, Masters if eligible
Version 1.25.0
2026-07-31- feat: add country code column to individual and team CSV exports
Version 1.24.0
2026-07-31- feat: link dojo name on the summary to that dojo's registrations
Version 1.23.0
2026-07-31- feat: count + country columns and sortable headings on the summary
Version 1.22.3
2026-07-31- fix: filtering by a team-event division shows that division's teams
Version 1.22.2
2026-07-31- fix: don't list team-event entries as unassigned competitors
Version 1.22.1
2026-07-31- fix: let team slot fallback ages admit members outside the division band
Version 1.22.0
2026-07-31- feat: flag unassigned teams and show member age/rank on registrations
Version 1.21.1
2026-07-31- fix: reallocate teams to divisions when divisions are re-saved
Version 1.21.0
2026-07-31- feat: add availability and comments to referee CSV export
Version 1.20.1
2026-07-29- fix: use in-cell line breaks for multi-value referee CSV columns
Version 1.20.0
2026-07-29- feat: count column and click-to-sort on the referee list
Version 1.19.0
2026-07-29- feat: export referee registrations list to CSV
Version 1.18.1
2026-07-29- fix: match referee to competitor entries by name + dojo, not just user_id
Version 1.18.0
2026-07-29- feat: admin add/edit/remove referees, and import referee ranks
Version 1.17.0
2026-07-29- feat: search bar instead of a dropdown for the admin team-member picker
Version 1.16.0
2026-07-24- feat: admin team picker lists all division-eligible competitors, not just EOIs
Version 1.15.0
2026-07-24- feat: let admins add a team member by picking from eligible entries
Version 1.14.2
2026-07-24- fix: confirm teams at the minimum roster size, not the full lineup
Version 1.14.1
2026-07-24- fix: reconcile stale team_status so team members stop showing as EOIs
Version 1.14.0
2026-07-24- feat: sortable columns on the admin Dojos table
Version 1.13.0
2026-07-24- feat: stop auto-enrolling SaaS admins in dojos, detect duplicate dojos, filter dojos by country
Version 1.12.0
2026-07-24- feat: link imported competitors to existing accounts or an existing parent
Version 1.11.0
2026-07-24- feat: link imported competitors to accounts from the dojo members page
Version 1.10.1
2026-07-22- fix: make the Soke Cup import incremental instead of duplicating entries
Version 1.10.0
2026-07-21- feat: record an already-made refund against an unrecorded credit
Version 1.9.0
2026-07-21- feat: surface refunds in the nav and flag unrecorded credits
- Adds a Refunds item to the tournament sidebar, gated like the page itself.
- Adds a red count badge = queued refunds PLUS payers holding an unrecorded
- Adds an "Unrecorded credits" table to the Refunds page listing each payer,
Version 1.8.0
2026-07-21- feat: publish final results for knockout divisions, not just round-robin
Version 1.7.3
2026-07-21- fix: re-total family groups when their registrations are replaced or moved
- overwritePriorRegistrations() enforces one entry per person per tournament
- RegistrationGroup::addRegistration() re-totalled only the destination group,
Version 1.7.2
2026-07-21- fix: phantom family balances on the registrations list and Outstanding tile
Version 1.7.1
2026-07-21- fix: registrations list ignored family rate in the paid/total figure
Version 1.7.0
2026-07-20- feat: ICKF Chito-Ryu Team Kumite scoreboard
Version 1.6.3
2026-07-18- refactor: point schedule Public View at canonical public URL
Version 1.6.2
2026-07-18- fix: DOB/eligibility edit failed for competitors in a drawn division
Version 1.6.1
2026-07-17- fix: capitalise Email All Competitors button label
Version 1.6.0
2026-07-17- feat: email all competitors (mailto BCC helper)
Version 1.5.1
2026-07-16- fix: family-group registration showed phantom per-rego balance
Version 1.5.0
2026-07-16- feat: manual waiver resend button on registrations list
Version 1.4.0
2026-07-16- feat: registrations summary matrix (entrants by dojo and event)
Version 1.3.0
2026-07-14- feat: merge duplicate registrations
Version 1.2.2
2026-07-14- fix: team entry rejected valid rosters when division had reserve slots
Version 1.2.1
2026-07-11- fix: team count not shown on events page for team-event divisions
Version 1.2.0
2026-07-11- feat: division competitor roster modal on the events page
- Individual events: lists confirmed + pending registrations (matching the
- Team events: the badge reads "N teams" (non-cancelled) and the modal lists
Version 1.1.2
2026-07-10- style: move version link into footer copyright line, reword as Version X.Y.Z (Change Log)
Version 1.1.1
2026-07-10- Add version numbering and an auto-generated changelog
- Footer link to the changelog on every page, plus a public /changelog page
- Version bumps automatically on every commit, inferred from the commit message