20 lines
1.6 KiB
Markdown
20 lines
1.6 KiB
Markdown
# AGENT NOTES
|
|
|
|
- SvelteKit app under `src/`; tools require BeatLeader auth and rank gating.
|
|
- Shared logic lives in `src/lib/utils/plebsaber-utils.ts` (requirements, playlist helpers, etc.).
|
|
- Tool routes (`/tools/*`) use a layout that fetches the BeatLeader profile once (`+layout.server.ts`).
|
|
- UI components for gating (e.g., `HasToolAccess.svelte`) handle supporter/top-3k restrictions.
|
|
- BeatLeader session info exposed via `/api/beatleader/me`; navbar warns if outside allowed rank.
|
|
- OAuth callback stores identity in a long-lived session (`plebsaber_session` via `.data/plebsaber_sessions.json`).
|
|
- Tools expect BeatLeader supporter or global rank better than pleb's current rank; navbar dropdown warns when outside that threshold.
|
|
- Global navigation lives in `src/lib/components/NavBar.svelte`; it houses the BeatLeader login dropdown with profile, testing (dev) and logout actions.
|
|
- Core BeatLeader tool pages reuse shared components such as `PlayerCompareForm.svelte`, `MapCard.svelte`, `PlayerCard.svelte`, and `SongPlayer.svelte` for consistent UI/UX.
|
|
- `/player-info` route consumes `/api/beatleader/me` to display and log raw BeatLeader session data for debugging.
|
|
- `/tools/stats` (admin-only, BL id `76561199407393962`) lists every stored BeatLeader session with full player profiles, skill triangles, and last-seen timestamps; navigation link only appears for that account.
|
|
- `/tools/compare-histories` compares two players' play histories and displays their profiles with skill triangles when comparing.
|
|
|
|
## Shell command guidance
|
|
|
|
- Dont' use `cd`, prefer `pwd`
|
|
- Dont' use `rg`, prefer `grep -r`
|