Skip to content

Quick wins: expansion arrows, multi-use invites, 404 page - #366

Merged
cebarks merged 3 commits into
mainfrom
quick-wins
Jul 30, 2026
Merged

Quick wins: expansion arrows, multi-use invites, 404 page#366
cebarks merged 3 commits into
mainfrom
quick-wins

Conversation

@cebarks

@cebarks cebarks commented Jul 30, 2026

Copy link
Copy Markdown
Owner

Summary

  • Mod request expansion arrow: CSS chevron indicator on expandable request rows so users know they can click to expand
  • Multi-use invite codes: Invite codes can now be configured as single-use (default), N-uses (5/10/25), or unlimited. Adds max_uses/use_count columns with backward-compatible migration. UI shows uses dropdown on create form and X/Y counter in the table
  • Styled 404 page: Unrecognized /quma/* routes now render the existing styled error template instead of falling through to the SPT proxy (non-/quma paths still proxy to SPT correctly)
  • Migration 019 registration: Fixes 019_queue_unique_constraints.sql which was present on disk but missing from the migrations array

Test plan

  • All 1732 tests pass (cargo test)
  • Clippy clean (cargo clippy -- -D warnings)
  • Verify invite create form shows "Uses" dropdown in browser
  • Create unlimited invite, use it twice, confirm it stays available
  • Create single-use invite, use it, confirm it shows as used
  • Visit /quma/nonexistent and confirm styled 404 page
  • Visit /launcher/ping and confirm SPT proxy still works
  • Verify expansion arrow appears on mod request rows

Implemented with the help of Claude Code

cebarks and others added 3 commits July 29, 2026 02:03
The expandable request rows had no visual indicator they could be clicked.
Add a CSS chevron (▸) that rotates when expanded.
Single-use invites were the only option. Server hosts often want a
shareable link that multiple players can use. Add max_uses column
(NULL = unlimited, integer = cap) and use_count tracking. Existing
codes default to single-use for backward compat.

Also registers migration 019 (queue unique constraints) which was
present on disk but missing from the migrations array.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Unrecognized paths under /quma/ fell through to the SPT proxy,
returning confusing proxy errors. Add a default_service on the
/quma scope that renders the existing styled error template.
Non-/quma paths still proxy to SPT as expected.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@cebarks
cebarks merged commit 63f5db2 into main Jul 30, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant