Pulls the public docs forward to match the current state of the repo. No behavior changes — every edit is informational. - CURRENT-STATE.md: bump date to 2026-05-07; add entries for PR #159 (Diátaxis User Guides), #160 (sidebar IA + account redesign), #161 (self-serve Phase 1 backend), #162 (Phase 2 frontend cutover), #163 (seed users email-verified), #164 (open: taxonomy + INTERNAL_TESTER_EMAILS allowlist). Refresh "What's In Progress" and "What's Next" to reflect Phase O cutover as the active work. - 03-DEVELOPMENT-ROADMAP.md: add a "Status as of 2026-05-07" preamble at the top so the months-stale historical content underneath is clearly framed as historical record. Replace stale "In Progress" rows (PR #114, ConnectWise Advanced) with current ones (#164 cutover, external Director-of-Onboarding validation calls). Add Phase O cutover checklist as the new near-term priority section. Mark search-and-recall complete (shipped via Voyage AI embeddings). - README.md: replace `docker start patherly_postgres` (legacy container name) with `docker compose -f docker-compose.dev.yml up -d`. Repath project tree from `patherly/` to `resolutionflow/` and add `.ai/` + `scripts/` directories. Replace `UI-DESIGN-SYSTEM.md` (superseded) with `DESIGN-SYSTEM.md` in the documentation table; add `AGENTS.md`, `PROJECT_CONTEXT.md`, `PRODUCT.md`. - DECISIONS.md: append entries for the two architectural decisions made today — plan taxonomy reconciliation (rename team→enterprise, add starter) and the INTERNAL_TESTER_EMAILS allowlist for self-serve soft cutover. - .env.example: add INTERNAL_TESTER_EMAILS line (user edit, paired with the backend allowlist that landed in the prior commit). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
174 lines
6.5 KiB
Markdown
174 lines
6.5 KiB
Markdown
# ResolutionFlow
|
|
|
|
> Stop writing ticket notes. Start generating them.
|
|
|
|
**ResolutionFlow** is an AI-powered troubleshooting platform for MSP professionals. Engineers follow guided flows while an AI copilot assists — and documentation writes itself as a byproduct of the work.
|
|
|
|
**Production:** [resolutionflow.com](https://resolutionflow.com)
|
|
|
|
---
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Prerequisites: Docker, Python 3.12, Node.js 20+
|
|
|
|
# Start PostgreSQL (and the rest of the dev stack)
|
|
docker compose -f docker-compose.dev.yml up -d
|
|
|
|
# Backend
|
|
cd backend
|
|
source venv/bin/activate
|
|
pip install -r requirements.txt
|
|
alembic upgrade head
|
|
uvicorn app.main:app --reload
|
|
|
|
# Frontend (separate terminal)
|
|
cd frontend
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
- Frontend: http://localhost:5173
|
|
- Backend API: http://localhost:8000
|
|
- API Docs: http://localhost:8000/api/docs
|
|
|
|
See [DEV-ENV.md](DEV-ENV.md) for full environment setup (devserver, Docker, CORS).
|
|
|
|
---
|
|
|
|
## Features
|
|
|
|
### FlowPilot AI Copilot
|
|
|
|
Like having a senior engineer on every call. FlowPilot guides troubleshooting decisions, suggests next steps with context-aware intelligence, and automatically captures documentation as a byproduct of the session.
|
|
|
|
- Confidence-tiered model routing (fast responses for simple steps, deeper reasoning for complex decisions)
|
|
- AI-generated ticket summaries and session documentation
|
|
- Standalone assistant chat with RAG for open-ended troubleshooting
|
|
- Knowledge Flywheel: AI analyzes completed sessions and proposes new flows automatically
|
|
|
|
### Guided Flows
|
|
|
|
- **Troubleshooting Flows** — Decision trees with branching paths for diagnosing issues
|
|
- **Procedural Flows (Projects)** — Step-by-step checklists for onboarding, migrations, deployments
|
|
- **Maintenance Flows** — Scheduled recurring tasks with batch execution across multiple targets
|
|
- Visual Flow Editor with drag-and-drop canvas, undo/redo, markdown support
|
|
- AI Flow Builder — describe what you need, get a complete flow generated
|
|
|
|
### Auto-Documentation
|
|
|
|
Every session generates timestamped, detailed notes formatted for your PSA. Engineers never write another ticket note.
|
|
|
|
- Export to Markdown, plain text, or HTML
|
|
- Sensitive data redaction
|
|
- One-click push to ConnectWise PSA tickets
|
|
|
|
### ConnectWise PSA Integration
|
|
|
|
- Post session documentation directly to ConnectWise tickets as internal notes
|
|
- Pull ticket details and client context into FlowPilot sessions
|
|
- Member mapping between ResolutionFlow and ConnectWise users
|
|
- Credentials encrypted at rest (Fernet), stored per-team
|
|
|
|
### Team & Knowledge Management
|
|
|
|
- Role-based access (super_admin, team_admin, engineer, viewer)
|
|
- Shared flow library with categories, tags, folders, full-text search
|
|
- Step Library — reusable troubleshooting steps with ratings and reviews
|
|
- Session sharing via link (authenticated and public views)
|
|
- Escalation workflow with AI-enhanced briefing packages
|
|
- Flow proposals from AI analysis (review queue for team leads)
|
|
|
|
---
|
|
|
|
## Tech Stack
|
|
|
|
| Layer | Technology |
|
|
|-------|------------|
|
|
| Frontend | React 19, TypeScript, Vite, Tailwind CSS v4 |
|
|
| State | Zustand (immer + zundo for undo/redo) |
|
|
| Routing | React Router v7 |
|
|
| Canvas | @xyflow/react (React Flow) + dagre |
|
|
| Backend | Python FastAPI, async SQLAlchemy 2.0 + asyncpg |
|
|
| Database | PostgreSQL 16 |
|
|
| Migrations | Alembic (75+ migrations) |
|
|
| Auth | JWT (python-jose) + bcrypt, refresh token rotation |
|
|
| AI | Anthropic Claude API (tiered model routing) |
|
|
| Embeddings | Voyage AI (semantic search) |
|
|
| Scheduling | APScheduler 3.x (async) |
|
|
| Analytics | PostHog |
|
|
| Hosting | Railway (auto-deploy on push to main) |
|
|
|
|
---
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
resolutionflow/
|
|
├── backend/
|
|
│ ├── app/
|
|
│ │ ├── main.py # FastAPI entry point
|
|
│ │ ├── api/endpoints/ # Route handlers (50+ endpoints)
|
|
│ │ ├── core/ # Config, database, permissions, security
|
|
│ │ ├── models/ # SQLAlchemy models
|
|
│ │ ├── schemas/ # Pydantic schemas
|
|
│ │ └── services/psa/ # PSA provider abstraction layer
|
|
│ ├── alembic/ # Database migrations
|
|
│ ├── scripts/ # Seed + sync scripts (incl. sync_stripe_plan_ids.py)
|
|
│ └── tests/ # Integration tests (100+)
|
|
├── frontend/
|
|
│ ├── src/
|
|
│ │ ├── components/ # UI components by domain
|
|
│ │ ├── pages/ # Page components
|
|
│ │ ├── store/ # Zustand stores
|
|
│ │ └── types/ # TypeScript interfaces
|
|
├── .ai/ # Dual-agent handoff system (PROJECT_CONTEXT, HANDOFF, etc.)
|
|
├── docs/ # Design docs, plans, ConnectWise reference
|
|
├── brand-assets/ # SVGs, brand guide
|
|
├── CLAUDE.md # AI assistant project context (Claude Code)
|
|
├── AGENTS.md # AI assistant project context (Codex; shared protocol with CLAUDE.md)
|
|
├── CURRENT-STATE.md # Detailed feature status
|
|
├── DESIGN-SYSTEM.md # Visual + interaction design system
|
|
├── PRODUCT.md # Design intent and brand personality
|
|
└── CHANGELOG.md # Release history
|
|
```
|
|
|
|
> The on-disk repo path is `resolutionflow/`. `patherly` is the legacy internal name — still appears in some Railway service names and the prod DB name. Treat as an alias, not canonical.
|
|
|
|
---
|
|
|
|
## Running Tests
|
|
|
|
```bash
|
|
# Backend integration tests
|
|
cd backend
|
|
pytest --override-ini="addopts="
|
|
|
|
# Frontend build (stricter than tsc --noEmit)
|
|
cd frontend
|
|
npm run build
|
|
```
|
|
|
|
---
|
|
|
|
## Documentation
|
|
|
|
| Document | Purpose |
|
|
|----------|---------|
|
|
| [CLAUDE.md](CLAUDE.md) | Project context for Claude Code |
|
|
| [AGENTS.md](AGENTS.md) | Project context for Codex (shared protocol with CLAUDE.md) |
|
|
| [.ai/PROJECT_CONTEXT.md](.ai/PROJECT_CONTEXT.md) | Stable architectural truth |
|
|
| [CURRENT-STATE.md](CURRENT-STATE.md) | Detailed feature status |
|
|
| [03-DEVELOPMENT-ROADMAP.md](03-DEVELOPMENT-ROADMAP.md) | Development roadmap |
|
|
| [DESIGN-SYSTEM.md](DESIGN-SYSTEM.md) | Visual + interaction design system (charcoal palette + electric blue accent) |
|
|
| [PRODUCT.md](PRODUCT.md) | Design intent, users, brand personality |
|
|
| [DEV-ENV.md](DEV-ENV.md) | Development environment setup |
|
|
| [CHANGELOG.md](CHANGELOG.md) | Release history |
|
|
|
|
---
|
|
|
|
## License
|
|
|
|
Proprietary. All rights reserved.
|