da33c62d62
feat: protect frontend routes with ProtectedRoute and AdminRoute
...
- Wrap /runs/new and /genlockes/new with ProtectedRoute (requires login)
- Create AdminRoute component that checks isAdmin, redirects non-admins
with a toast notification
- Wrap all /admin/* routes with AdminRoute
- Deep-linking preserved: unauthenticated users redirect to login, then
back to the original protected route after auth
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-21 11:19:30 +01:00
bbc6f2c3f4
feat: expose admin status to frontend via user API
...
Add is_admin field to UserResponse schema and update AuthContext to
fetch user profile after login, storing and exposing isAdmin boolean.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-21 11:19:10 +01:00
2e66186fac
feat: add require_admin dependency and protect admin endpoints
...
Add require_admin FastAPI dependency that checks is_admin column on users
table. Apply it to all admin-facing write endpoints (games, pokemon,
evolutions, bosses, routes CRUD). Run-scoped endpoints remain protected
by require_auth only since they manage user's own data.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-21 11:14:55 +01:00
1042fff2b8
feat: add is_admin column to users table
...
Add `is_admin` boolean column (default false) via Alembic migration
for role-based access control.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-21 11:10:29 +01:00
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
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
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
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
2364922b58
beans update
2026-03-20 21:59:43 +01:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
dde20c932b
Update Brock and Misty boss sprites
...
CI / backend-tests (push) Successful in 26s
CI / frontend-tests (push) Successful in 27s
CI / e2e-tests (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-21 17:37:29 +01:00
efa0b5f855
Add --prune flag to seed command to remove stale data
...
Without --prune, seeds continue to only upsert (add/update).
With --prune, routes, encounters, and bosses not present in the
seed JSON files are deleted from the database.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-21 17:33:54 +01:00