gigafibre-fsm/docs/HANDOFF.md
louispaulb 41d9b5f316 feat: flow editor, Gemini QR scanner with offline queue, dispatch planning v2
Major additions accumulated over 9 days — single commit per request.

Flow editor (new):
- Generic visual editor for step trees, usable by project wizard + agent flows
- PROJECT_KINDS / AGENT_KINDS catalogs decouple UI from domain
- Drag-and-drop reorder via vuedraggable with scope isolation per peer group
- Chain-aware depends_on rewrite on reorder (sequential only — DAGs preserved)
- Variable picker with per-applies_to catalog (Customer / Quotation /
  Service Contract / Issue / Subscription), insert + copy-clipboard modes
- trigger_condition helper with domain-specific JSONLogic examples
- Global FlowEditorDialog mounted once in MainLayout, Odoo inline pattern
- Server: targo-hub flow-runtime.js, flow-api.js, flow-templates.js
- ERPNext: Flow Template/Run doctypes, scheduler, 5 seeded system templates
- depends_on chips resolve to step labels instead of opaque "s4" ids

QR/OCR scanner (field app):
- Camera capture → Gemini Vision via targo-hub with 8s timeout
- IndexedDB offline queue retries photos when signal returns
- Watcher merges late-arriving scan results into the live UI

Dispatch:
- Planning mode (draft → publish) with offer pool for unassigned jobs
- Shared presets, recurrence selector, suggested-slots dialog
- PublishScheduleModal, unassign confirmation

Ops app:
- ClientDetailPage composables extraction (useClientData, useDeviceStatus,
  useWifiDiagnostic, useModemDiagnostic)
- Project wizard: shared detail sections, wizard catalog/publish composables
- Address pricing composable + pricing-mock data
- Settings redesign hosting flow templates

Targo-hub:
- Contract acceptance (JWT residential + DocuSeal commercial tracks)
- Referral system
- Modem-bridge diagnostic normalizer
- Device extractors consolidated

Migration scripts:
- Invoice/quote print format setup, Jinja rendering
- Additional import + fix scripts (reversals, dates, customers, payments)

Docs:
- Consolidated: old scattered MDs → HANDOFF, ARCHITECTURE, DATA_AND_FLOWS,
  FLOW_EDITOR_ARCHITECTURE, BILLING_AND_PAYMENTS, CPE_MANAGEMENT,
  APP_DESIGN_GUIDELINES
- Archived legacy wizard PHP for reference
- STATUS snapshots for 2026-04-18/19

Cleanup:
- Removed ~40 generated PDFs/HTMLs (invoice_preview*, rendered_jinja*)
- .gitignore now covers invoice preview output + nested .DS_Store

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-22 10:44:17 -04:00

96 lines
4.8 KiB
Markdown

# Gigafibre FSM — Handoff Index
> **Purpose:** one-page map of every doc in this repo. Pick the path for your role, read in order, stop when you have enough.
**Last refreshed:** 2026-04-18
---
## Start here (everyone)
| # | Doc | Why |
|---|---|---|
| 1 | [STATUS_2026-04-18.md](STATUS_2026-04-18.md) | 10-minute snapshot: where the system stands today, what just shipped, what's next |
| 2 | [ARCHITECTURE.md](ARCHITECTURE.md) | Service map: ERPNext, Ops PWA, targo-hub, DocuSeal, Authentik, Traefik |
| 3 | [ROADMAP.md](ROADMAP.md) | Phases 1 → 5 with completion status |
If you only have 15 minutes, read those three.
---
## By role
### New engineer joining the project
1. [STATUS_2026-04-18.md](STATUS_2026-04-18.md) — orientation
2. [ARCHITECTURE.md](ARCHITECTURE.md) — services and how they talk
3. [DATA_AND_FLOWS.md](DATA_AND_FLOWS.md) — ERPNext doctypes + wizard flows
4. [APP_DESIGN_GUIDELINES.md](APP_DESIGN_GUIDELINES.md) — UI conventions (light mode default, dispatch dark mode exception)
5. Clone the repo, read `README.md`, then the `apps/ops` and `services/targo-hub` READMEs
### Stakeholder / non-technical reader
1. [STATUS_2026-04-18.md](STATUS_2026-04-18.md) — TL;DR + "Where we are" table
2. [Gigafibre-FSM-Features.pptx](Gigafibre-FSM-Features.pptx) — feature deck
3. [Gigafibre-Billing-Handoff.pptx](Gigafibre-Billing-Handoff.pptx) — billing migration deck
4. [ROADMAP.md](ROADMAP.md) — what's done vs. queued
### Accountant / billing ops
1. [BILLING_AND_PAYMENTS.md](BILLING_AND_PAYMENTS.md) — full billing architecture, Stripe flow, subscription logic
2. [STATUS_2026-04-18.md](STATUS_2026-04-18.md) §"ERPNext customizations" — custom fields on Item / Quotation Item / Sales Invoice Item
3. [Gigafibre-Billing-Handoff.pptx](Gigafibre-Billing-Handoff.pptx) — visual walkthrough
### Dispatcher / field ops lead
1. [STATUS_2026-04-18.md](STATUS_2026-04-18.md) §"Features inventory" — Ops, Dispatch, Field
2. [DATA_AND_FLOWS.md](DATA_AND_FLOWS.md) — Issue → Job → Technician flow
3. [CPE_MANAGEMENT.md](CPE_MANAGEMENT.md) — CPE lifecycle, GenieACS, modem-bridge
### Infrastructure / DevOps
1. [ARCHITECTURE.md](ARCHITECTURE.md) — network + container map
2. [STATUS_2026-04-18.md](STATUS_2026-04-18.md) §"Integrations" — external services and credentials location
3. [CPE_MANAGEMENT.md](CPE_MANAGEMENT.md) — GenieACS + OLT + SNMP
---
## Document catalog
| Doc | What it covers | When to read |
|---|---|---|
| [STATUS_2026-04-18.md](STATUS_2026-04-18.md) | Full state snapshot, features, integrations, known issues, gotchas | **Always first** |
| [ARCHITECTURE.md](ARCHITECTURE.md) | Services, containers, networks, routes | Onboarding or infra changes |
| [ROADMAP.md](ROADMAP.md) | Phase plan with checkboxes | Planning or standups |
| [DATA_AND_FLOWS.md](DATA_AND_FLOWS.md) | Data model and user/workflow flows | Building features that touch ERPNext |
| [BILLING_AND_PAYMENTS.md](BILLING_AND_PAYMENTS.md) | Subscription lifecycle, invoice generation, Stripe, payment reconciliation | Billing work |
| [CPE_MANAGEMENT.md](CPE_MANAGEMENT.md) | CPE database, GenieACS, provisioning, diagnostics | CPE or network work |
| [APP_DESIGN_GUIDELINES.md](APP_DESIGN_GUIDELINES.md) | UI tokens, theming, component conventions | Frontend work |
| [Gigafibre-FSM-Features.pptx](Gigafibre-FSM-Features.pptx) | Feature deck for demo / training | Sharing with non-engineers |
| [Gigafibre-Billing-Handoff.pptx](Gigafibre-Billing-Handoff.pptx) | Billing deck for finance handoff | Sharing with finance team |
| [archive/](archive/) | Deprecated docs kept for reference | Historical questions only |
---
## Conventions used across these docs
- **Status emoji:** ✅ shipped · 🚧 in progress · 🆕 just shipped this cycle · ⏸ paused · 🗃 legacy/read-only
- **Brand:** "Gigafibre" = consumer-facing brand, "TARGO" = parent company (both appear; not a rename)
- **Environments:** production-only at erp.gigafibre.ca. Legacy DB on 10.100.80.100 is read-only.
- **Dates:** always ISO (YYYY-MM-DD). "Current" means 2026-04-18 unless noted.
---
## Where things live outside this repo
- **Memory notes:** `~/.claude/projects/-Users-louispaul-Documents-testap/memory/` — context for Claude across sessions
- **Production server:** `ssh root@96.125.196.67` (ssh-agent + `~/.ssh/proxmox_vm`)
- **ERPNext containers:** `frappe_docker-backend-1`, `frappe_docker-db-1` (PostgreSQL)
- **targo-hub:** `/opt/targo-hub/` on prod (volume-mounted `lib/`)
- **DocuSeal:** `/opt/docuseal/` on prod
---
## Next doc-writing priorities
- [ ] `PROVISIONING.md` — ONT/OLT/GenieACS workflow when onboarding a new subscriber
- [ ] `DEPLOY.md` — step-by-step deploy for each app (currently scattered across feedback memory)
- [ ] `INCIDENTS.md` — post-mortem log format + template
Add new docs to the catalog table above when you create them.