diff --git a/CLAUDE.md b/CLAUDE.md index 4508a871..d19f2bfa 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -267,6 +267,8 @@ navigate(`/trees/${newTree.id}/edit`) **21. Test fixtures in `conftest.py`:** Available fixtures are `client` (async HTTP client), `test_db` (async session), `test_user` (registers user, returns email/password/user_data), `auth_headers` (Bearer token dict), `test_tree` (creates a tree), `test_admin` (super_admin user), `admin_auth_headers` (admin Bearer token). There is NO `async_client` or `engineer_token` fixture. +**22. Worktree venv path:** Git worktrees (`.worktrees/*/`) do NOT have their own Python venv. Use the main repo's venv: `backend/venv/bin/python -m pytest ...` from the worktree directory. + **23. Action nodes navigate via `next_node_id`, not `children`:** `TreeNavigationPage.tsx` handles action nodes by following `next_node_id` only — the `children` array on action nodes is ignored at runtime. Action nodes without `next_node_id` render no "Continue" button (dead end). Any AI generation or manual tree editing must set `next_node_id` on action nodes. **24. Anthropic model IDs require full dated version string:** `claude-haiku-4-5` is invalid; must be `claude-haiku-4-5-20251001`. See `backend/app/core/config.py` → `AI_MODEL`. @@ -348,6 +350,7 @@ navigate(`/trees/${newTree.id}/edit`) - PR environments auto-created (need manual domain generation in Railway dashboard) - PR envs need `VITE_API_URL` set with `https://` prefix on frontend service - `ALLOW_RAILWAY_ORIGINS=true` enables CORS for `*.up.railway.app` +- Shared Variables (project-level in Railway dashboard) auto-propagate to all environments including PR envs — use for secrets like `ANTHROPIC_API_KEY` - Super admin utility: `backend/make_superadmin_simple.py list|` ---