fix(ai): correct stale role-hierarchy and file-listing claims
All checks were successful
Mirror to GitHub / mirror (push) Successful in 3s
All checks were successful
Mirror to GitHub / mirror (push) Successful in 3s
Codex review of the dual-agent handoff migration flagged factual errors carried over verbatim from the pre-migration CLAUDE.md. All claims verified against the live code before correction. PROJECT_CONTEXT.md — SaaS shape: - Role hierarchy was `super_admin > team_admin > engineer > viewer`, but `backend/app/core/permissions.py:4` and `frontend/src/hooks/usePermissions.ts:4` both define it as `super_admin > owner > engineer > viewer`. The `team_admin` concept exists separately as an orthogonal team-scoped gate (`require_team_admin`, `is_team_admin=True` + valid `team_id`), not a level in the primary hierarchy. - Dep list was missing `require_account_owner` and `require_team_admin`, both present in `backend/app/api/deps.py`. PROJECT_CONTEXT.md — directory tree: - `api/endpoints/` comment listed 11 routers; `api/router.py` actually registers 50+. Replaced with a summary that points at `router.py` as the source of truth instead of trying to maintain a freezing list. - `services/psa/` comment omitted `exceptions.py` and `ticket_context.py`, both present in the directory. CURRENT_TASK.md + TODO.md: - Replaced `<!-- EXAMPLE -->` placeholders with clearer empty-state sentinels so a resume agent sees "no real task yet" at a glance rather than placeholder acceptance criteria that look unresolved. SESSION_LOG.md updated with a follow-up bullet documenting this pass. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -14,7 +14,7 @@ Canonical product name is **ResolutionFlow**. `patherly` is the legacy internal
|
||||
|
||||
## SaaS shape
|
||||
|
||||
Multi-tenant by account. Roles: `super_admin` > `team_admin` > `engineer` > `viewer`. Team admin = `role='engineer'` + `is_team_admin=True` + valid `team_id`. Never `role=='admin'` — use `is_super_admin`. Backend deps in `app/api/deps.py`: `get_current_active_user`, `require_engineer_or_admin`, `require_admin`. Frontend: `usePermissions()` hook. Central logic in `backend/app/core/permissions.py` + `frontend/src/hooks/usePermissions.ts`.
|
||||
Multi-tenant by account. Primary role hierarchy: `super_admin` > `owner` > `engineer` > `viewer` — driven by `is_super_admin` + `account_role`. Never `role=='admin'` — use `is_super_admin`. Separate team-scoped admin gate exists orthogonally to the role hierarchy: `is_team_admin=True` + valid `team_id`, enforced by `require_team_admin`. Backend deps in `app/api/deps.py`: `get_current_active_user`, `require_engineer_or_admin`, `require_admin`, `require_account_owner`, `require_team_admin`. Frontend: `usePermissions()` hook. Central logic in `backend/app/core/permissions.py` + `frontend/src/hooks/usePermissions.ts`.
|
||||
|
||||
---
|
||||
|
||||
@@ -39,13 +39,13 @@ resolutionflow/
|
||||
├── backend/
|
||||
│ ├── app/
|
||||
│ │ ├── main.py # FastAPI entry
|
||||
│ │ ├── api/endpoints/ # auth, trees, sessions, admin, steps, survey, copilot, assistant_chat, integrations, flow_proposals, flowpilot_analytics
|
||||
│ │ ├── api/endpoints/ # 50+ routers registered in api/router.py — auth/admin, trees/sessions, AI/chat, scripts, integrations, uploads, accounts, FlowPilot, etc.
|
||||
│ │ ├── api/deps.py # auth deps (incl. require_team_admin)
|
||||
│ │ ├── api/router.py # registration
|
||||
│ │ ├── core/ # config, database, permissions, security, audit, rate_limit
|
||||
│ │ ├── models/ # SQLAlchemy (incl. FlowProposal)
|
||||
│ │ ├── schemas/ # Pydantic
|
||||
│ │ ├── services/psa/ # PSA provider pattern (base, connectwise/, autotask/, halopsa/, cache, encryption, registry, types)
|
||||
│ │ ├── services/psa/ # PSA provider pattern (base, connectwise/, autotask/, halopsa/, cache, encryption, exceptions, registry, ticket_context, types)
|
||||
│ │ ├── services/knowledge_flywheel.py + _scheduler.py
|
||||
│ │ └── services/knowledge_gap_service.py
|
||||
│ ├── alembic/versions/ # 001-070 sequential, then hex hash
|
||||
|
||||
Reference in New Issue
Block a user