- Add 'Add to Theseus (jenin)' button in admin orders expanded view
- POST /admin/orders/:id/theseus creates a letter in the 'scraps' queue on mail.hackclub.com
- Uses item name as rubber stamps, order shipping address for recipient
- Saves letter ID (ltr!xxx) as tracking number with clickable link to Theseus back office
- Idempotency key prevents duplicate letters
- Add THESEUS_API_KEY to config and .env.example
DM @jenin on Slack for env vars
Same bug as backend — perRollMultiplier (0.05) was applied as a direct
multiplier on base roll cost in the admin shop EV simulation, making
everything appear exploitable (red).
- i18n: widen Translations type to accept any string values
- home: fix async onMount returning cleanup function
- CreateProjectModal: import Project from stores instead of local interface
- user profile: non-null assert githubUrl inside existence check
- Add fetchServerConfig to config.ts (fetches /admin/config endpoint)
- Call fetchServerConfig in +layout.svelte onMount for early client init
- Format long lines in admin dashboard page
- Add displayRollCost to ShopItem interface in stores
- ShopItemModal and shop page prefer server-provided displayRollCost
- Clean up as-any casts in ShopItemModal roll cost computation
- Admin shop: add perRollMultiplier to item type and EV simulation
- Remove unused modalEV derived (dead code, formEV used in template)
- Delete modal requires reason (min 3 chars) before sending DELETE
- Undo toast allows 30-second window to restore deleted order
- Admin user detail page: replace soft-delete + DELETE with single DELETE
call including reason payload
- Add lightweight DOM toast helper for status messages