Commit Graph

355 Commits

Author SHA1 Message Date
Renovate Bot 90156820c1 chore(deps): update dependency @vitejs/plugin-react to v6
renovate/artifacts Artifact file update failure
CI / backend-tests (pull_request) Successful in 27s
CI / frontend-tests (pull_request) Failing after 13s
2026-03-21 10:48:43 +00:00
TheFurya 993cd25fbb Merge pull request 'chore(deps): update actions/upload-artifact action to v7' (#59) from renovate/actions-upload-artifact-7.x into develop
CI / backend-tests (push) Successful in 30s
CI / frontend-tests (push) Successful in 30s
2026-03-21 11:46:01 +01:00
TheFurya 7265905866 Merge pull request 'chore(deps): update dependency pyjwt to v2.12.1' (#61) from renovate/pyjwt-2.x into develop
CI / frontend-tests (push) Has been cancelled
CI / backend-tests (push) Has been cancelled
2026-03-21 11:45:56 +01:00
TheFurya e8ded9184b feat: auth-aware UI and role-based access control (#67)
CI / backend-tests (push) Successful in 32s
CI / frontend-tests (push) Successful in 29s
## Summary

- Add `is_admin` column to users table with Alembic migration and a `require_admin` FastAPI dependency that protects all admin-facing write endpoints (games, pokemon, evolutions, bosses, routes CRUD)
- Expose admin status to frontend via user API and update AuthContext to fetch/store `isAdmin` after login
- Make navigation menu auth-aware (different links for logged-out, logged-in, and admin users) and protect frontend routes with `ProtectedRoute` and `AdminRoute` components, preserving deep-linking through redirects
- Fix test reliability: `drop_all` before `create_all` to clear stale PostgreSQL enums from interrupted test runs
- Fix test auth: add `admin_client` fixture and use valid UUID for mock user so tests pass with new admin-protected endpoints

## Test plan

- [x] All 252 backend tests pass
- [ ] Verify non-admin users cannot access admin write endpoints (games, pokemon, evolutions, bosses CRUD)
- [ ] Verify admin users can access admin endpoints normally
- [ ] Verify navigation shows correct links for logged-out, logged-in, and admin states
- [ ] Verify `/admin/*` routes redirect non-admin users with a toast
- [ ] Verify `/runs/new` and `/genlockes/new` redirect unauthenticated users to login, then back after auth

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Reviewed-on: #67
Co-authored-by: Julian Tabel <juliantabel.jt@gmail.com>
Co-committed-by: Julian Tabel <juliantabel.jt@gmail.com>
2026-03-21 11:44:05 +01:00
TheFurya f7731b0497 Fix local login flow, add new auth epic
CI / backend-tests (push) Failing after 31s
CI / frontend-tests (push) Successful in 29s
2026-03-21 11:06:53 +01:00
TheFurya 0d6174067e feat: enforce feature branch workflow with PreToolUse hook
Add a guard script that blocks git commit/push on protected branches
(develop, main, master) via a PreToolUse hook. Update CLAUDE.md with
stricter branching rules: one commit per task, immediate commits on
feature branches, no direct commits to protected branches.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:45:58 +01:00
TheFurya 93a90f4ba7 add docker init folder
CI / backend-tests (pull_request) Failing after 1m11s
CI / frontend-tests (pull_request) Successful in 28s
2026-03-20 22:13:01 +01:00
TheFurya 3d362a8314 Last weird branch commit
CI / backend-tests (pull_request) Failing after 1m16s
CI / frontend-tests (pull_request) Successful in 28s
2026-03-20 22:11:39 +01:00
Renovate Bot 5185a251f4 chore(deps): update dependency pyjwt to v2.12.1
CI / backend-tests (pull_request) Failing after 1m10s
CI / frontend-tests (pull_request) Successful in 28s
2026-03-20 21:02:21 +00:00
TheFurya 2364922b58 beans update 2026-03-20 21:59:43 +01:00
TheFurya 3881971214 chore: add .talos/ to .gitignore
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 21:42:52 +01:00
TheFurya 0a519e356e feat: add auth system, boss pokemon details, moves/abilities API, and run ownership
CI / backend-tests (push) Failing after 1m16s
CI / frontend-tests (push) Successful in 57s
Add user authentication with login/signup/protected routes, boss pokemon
detail fields and result team tracking, moves and abilities selector
components and API, run ownership and visibility controls, and various
UI improvements across encounters, run list, and journal pages.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 21:41:38 +01:00
TheFurya a6cb309b8b chore: archive 42 completed/scrapped beans
CI / backend-tests (push) Successful in 28s
CI / frontend-tests (push) Successful in 28s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 21:31:23 +01:00
Renovate Bot 106156b73d chore(deps): update actions/upload-artifact action to v7
CI / backend-tests (pull_request) Successful in 26s
CI / frontend-tests (pull_request) Successful in 4m36s
2026-03-20 20:03:14 +00:00
TheFurya 27c89ccf2b Merge pull request 'chore(deps): update dependency oxlint to v1.56.0' (#51) from renovate/oxlint-1.x into develop
CI / backend-tests (push) Successful in 25s
CI / frontend-tests (push) Successful in 1m21s
Reviewed-on: #51
2026-03-20 20:17:14 +01:00
TheFurya ccabf3bdf3 Merge pull request 'chore(deps): update actions/checkout action to v6' (#57) from renovate/actions-checkout-6.x into develop
CI / frontend-tests (push) Has been cancelled
CI / backend-tests (push) Has been cancelled
Reviewed-on: #57
2026-03-20 20:17:00 +01:00
TheFurya 55484a047d Merge pull request 'chore(deps): update actions/setup-node action to v6' (#58) from renovate/actions-setup-node-6.x into develop
CI / frontend-tests (push) Has been cancelled
CI / backend-tests (push) Has been cancelled
Reviewed-on: #58
2026-03-20 20:16:44 +01:00
Renovate Bot 7c11902613 chore(deps): update actions/setup-node action to v6
CI / backend-tests (pull_request) Successful in 25s
CI / frontend-tests (pull_request) Successful in 58s
2026-03-20 19:03:48 +00:00
Renovate Bot 24646d30c6 chore(deps): update actions/checkout action to v6
CI / backend-tests (pull_request) Successful in 37s
CI / frontend-tests (pull_request) Successful in 29s
2026-03-20 19:03:42 +00:00
Renovate Bot a4f2f52c10 chore(deps): update dependency oxlint to v1.56.0
CI / backend-tests (pull_request) Successful in 26s
CI / frontend-tests (pull_request) Successful in 27s
2026-03-20 19:03:33 +00:00
TheFurya 9327c068a5 Merge pull request 'chore(deps): update dependency node to v24.14.0' (#50) from renovate/node-24.x into develop
CI / backend-tests (push) Successful in 26s
CI / frontend-tests (push) Successful in 1m53s
Reviewed-on: #50
2026-03-20 19:59:26 +01:00
TheFurya 9acde89ceb Merge pull request 'chore(deps): update dependency pydantic-settings to v2.13.1' (#52) from renovate/pydantic-settings-2.x into develop
CI / frontend-tests (push) Has been cancelled
CI / backend-tests (push) Has been cancelled
Reviewed-on: #52
2026-03-20 19:58:53 +01:00
TheFurya b82e55c8de Merge pull request 'chore(deps): update dependency tailwindcss to v4.2.2' (#53) from renovate/tailwindcss-4.x into develop
CI / backend-tests (push) Has been cancelled
CI / frontend-tests (push) Has been cancelled
Reviewed-on: #53
2026-03-20 19:58:34 +01:00
Renovate Bot cac675a5c7 chore(deps): update dependency uvicorn to v0.42.0
CI / backend-tests (pull_request) Successful in 26s
CI / backend-tests (push) Has been cancelled
CI / frontend-tests (push) Has been cancelled
CI / frontend-tests (pull_request) Successful in 46s
2026-03-20 19:57:09 +01:00
Renovate Bot 803f5bb8be chore(deps): update dependency vitest to v4.1.0
CI / backend-tests (pull_request) Successful in 25s
CI / frontend-tests (pull_request) Successful in 27s
CI / backend-tests (push) Successful in 31s
CI / frontend-tests (push) Successful in 28s
2026-03-20 18:02:55 +00:00
Renovate Bot b9d457d3a1 chore(deps): update dependency tailwindcss to v4.2.2
CI / backend-tests (pull_request) Successful in 25s
CI / frontend-tests (pull_request) Successful in 27s
2026-03-20 17:02:26 +00:00
Renovate Bot 60e2413b9f chore(deps): update dependency pydantic-settings to v2.13.1
CI / backend-tests (pull_request) Successful in 26s
CI / frontend-tests (pull_request) Successful in 28s
2026-03-20 17:02:17 +00:00
Renovate Bot 0a803c30d3 chore(deps): update dependency node to v24.14.0
CI / backend-tests (pull_request) Successful in 25s
CI / frontend-tests (pull_request) Successful in 27s
2026-03-20 16:01:49 +00:00
Julian Tabel 2f8b437c8a stopped talos
CI / backend-tests (push) Successful in 26s
CI / frontend-tests (push) Successful in 27s
2026-03-20 16:40:15 +01:00
Julian Tabel 088cd35002 add Ko-fi bean
CI / frontend-tests (push) Has been cancelled
CI / backend-tests (push) Has been cancelled
2026-03-20 16:39:52 +01:00
Julian Tabel 6c36cbfe12 chore(errors): Errors
Container for crash and blocker beans created by Talos.

Bean: nuzlocke-tracker-bw1m
2026-03-20 16:39:28 +01:00
Julian Tabel 5bd4ca7d3e add Ko-fi bean 2026-03-20 16:38:54 +01:00
TheFurya 4132face2a Merge pull request 'Update dependency golang to v1.26.1' (#48) from renovate/golang-1.x into develop
CI / backend-tests (push) Successful in 25s
CI / frontend-tests (push) Successful in 28s
Reviewed-on: #48
2026-03-20 16:35:37 +01:00
TheFurya bdb3f45122 Merge pull request 'Update dependency oxfmt to v0.41.0' (#49) from renovate/oxfmt-0.x into develop
CI / frontend-tests (push) Has been cancelled
CI / backend-tests (push) Has been cancelled
Reviewed-on: #49
2026-03-20 16:35:24 +01:00
Julian Tabel c9d42b091f Daedalus and Talos integration test
CI / backend-tests (push) Successful in 26s
CI / frontend-tests (push) Successful in 29s
2026-03-20 16:31:19 +01:00
Renovate Bot 634e957bb8 Update dependency oxfmt to v0.41.0
CI / backend-tests (pull_request) Successful in 24s
CI / frontend-tests (pull_request) Successful in 28s
2026-03-20 15:02:02 +00:00
Renovate Bot ed75fdd1b0 Update dependency golang to v1.26.1
CI / backend-tests (pull_request) Successful in 25s
CI / frontend-tests (pull_request) Successful in 28s
2026-03-20 15:01:53 +00:00
Julian Tabel 5106e57685 Enable lockFileMaintenance in Renovate config
CI / backend-tests (push) Successful in 26s
CI / frontend-tests (push) Successful in 28s
Adds weekly transitive dependency refresh for both npm and uv lockfiles.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 15:53:19 +01:00
Renovate Bot b413f5e4e4 Update dependency node to v24.14.0
CI / backend-tests (pull_request) Successful in 24s
CI / backend-tests (push) Has been cancelled
CI / frontend-tests (push) Has been cancelled
CI / frontend-tests (pull_request) Successful in 30s
2026-03-20 15:52:17 +01:00
Renovate Bot 5905142981 Update dependency fastapi to v0.135.1
CI / backend-tests (pull_request) Successful in 24s
CI / frontend-tests (pull_request) Successful in 27s
CI / backend-tests (push) Successful in 26s
CI / frontend-tests (push) Has been cancelled
2026-03-20 14:49:42 +00:00
Julian Tabel 24c60e2e28 Add backend tool-versions and update bean status
CI / backend-tests (push) Successful in 25s
CI / frontend-tests (push) Successful in 28s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 15:29:22 +01:00
Julian Tabel 77900ba045 Update dependencies from Renovate PRs
CI / backend-tests (push) Successful in 28s
CI / frontend-tests (push) Successful in 29s
Backend: python-dotenv 1.2.1→1.2.2, sqlalchemy 2.0.46→2.0.48, ty 0.0.17→0.0.24
Frontend: react-router-dom 7.13.0→7.13.1, @tanstack/react-query 5.90.20→5.91.3, @vitejs/plugin-react 5.1.3→5.2.0

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 15:26:08 +01:00
Julian Tabel 869d28ab84 remove playstyle section from test
CI / backend-tests (push) Successful in 28s
CI / frontend-tests (push) Successful in 27s
2026-03-20 15:13:25 +01:00
Julian Tabel 1cd1389408 Replace playstyle rules with free-text custom rules markdown field
CI / backend-tests (push) Successful in 28s
CI / frontend-tests (push) Failing after 28s
Remove hardcoreMode, setModeOnly, and bossTeamMatch toggles which had
no mechanical impact on the tracker. Replace them with a customRules
markdown field so users can document their own rules (especially useful
for genlockes). Add react-markdown + remark-gfm for rendering and
@tailwindcss/typography for prose styling. The custom rules display is
collapsible and hidden by default.

Also simplifies the BossDefeatModal by removing the Lost result and
attempts counter, and always shows boss team size in the level cap bar.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 15:09:02 +01:00
Julian Tabel 535154a056 Allow multiple games per region in Custom genlocke
CI / backend-tests (push) Successful in 25s
CI / frontend-tests (push) Successful in 27s
In custom mode, the region picker no longer filters out already-used
regions, letting users add multiple legs from the same region (e.g.
Black + Black 2 in Unova). Preset modes keep the one-per-region
behavior. Already-used regions show a subtle dot indicator.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 13:32:42 +01:00
TheFurya 7d1c091432 Merge pull request 'Configure Renovate' (#33) from renovate/configure into develop
CI / backend-tests (push) Successful in 26s
CI / frontend-tests (push) Successful in 29s
Reviewed-on: #33
2026-03-17 13:29:24 +01:00
Renovate Bot 70aa1156f5 Add renovate.json
CI / backend-tests (pull_request) Successful in 27s
CI / frontend-tests (pull_request) Successful in 28s
2026-02-22 11:00:54 +00:00
TheFurya 1513bb3658 Split e2e tests into manual workflow_dispatch workflow
CI / frontend-tests (push) Successful in 27s
CI / backend-tests (push) Successful in 26s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:54:25 +01:00
TheFurya 3b63285bd1 Fix FK violations when pruning stale routes
CI / backend-tests (push) Successful in 26s
CI / frontend-tests (push) Successful in 27s
CI / e2e-tests (push) Has been cancelled
Bulk delete bypasses ORM-level cascades, so manually delete
route_encounters, nullify boss_battle.after_route_id, and skip
routes referenced by user encounters before deleting stale routes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:50:54 +01:00
TheFurya 4f0f881736 Update remaining FireRed boss sprites
CI / backend-tests (push) Successful in 25s
CI / frontend-tests (push) Successful in 27s
CI / e2e-tests (push) Successful in 5m29s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:39:14 +01:00