refactor: tech debt reduction - extract hooks, deduplicate helpers, update deps, add CI

- Extract useCustomStepFlow hook from TreeNavigationPage (1040 → 759 lines)
- Create core/filters.py with shared tree/step visibility filters
- Create services/export_service.py from session export logic
- Add GitHub Actions CI/CD pipeline (pytest + lint + build)
- Add GIN index migration for full-text search on trees
- Update FastAPI 0.128.5, Pydantic 2.12.5, SQLAlchemy 2.0.46, +5 more
- Fix regex → pattern deprecation in Query() params

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
chihlasm
2026-02-08 08:14:22 -05:00
parent f4eb3fe186
commit b97596d286
12 changed files with 786 additions and 557 deletions

View File

@@ -147,6 +147,13 @@ When adding new frontend pages or components, use "ResolutionFlow" for any user-
- **Global Thin Scrollbar Styling:**
- 6px thin scrollbars site-wide (Firefox `scrollbar-width: thin` + WebKit pseudo-elements)
- Theme-aware colors using CSS variables (`--border`, `--muted-foreground`)
- **Admin Panel (Feb 2026):**
- Full admin panel at `/admin/*` with 8 pages (dashboard, users, invite codes, audit logs, plan limits, feature flags, settings, categories)
- Super admin access: requires `is_super_admin=true` on User model
- Admin API endpoints: `/api/v1/admin/*` (all require `require_admin` dependency)
- Utility script: `backend/make_superadmin_simple.py list|<email>` - promote users to super admin
- ActionMenu component: uses React Portal to avoid overflow clipping in tables
- **API Path Gotcha:** Frontend `apiClient` baseURL is `http://localhost:8000/api/v1` — all API calls should use relative paths WITHOUT `/api/v1/` prefix (e.g., `/admin/users` not `/api/v1/admin/users`)
### What's In Progress