gigafibre-fsm/docs/HANDOFF.md
louispaulb e50ea88c08 feat: unify vision on Gemini + port field tech scan/device into /j
- Invoice OCR migrated from Ollama (GPU-bound, local) to Gemini 2.5
  Flash via new targo-hub /vision/invoice endpoint with responseSchema
  enforcement. Ops VM no longer needs a GPU.
- Ops /j/* now has full camera scanner (TechScanPage) ported from
  apps/field with 8s timeout + offline queue + auto-link to Dispatch
  Job context on serial/barcode/MAC 3-tier lookup.
- New TechDevicePage reached via /j/device/:serial showing every
  ERPNext entity related to a scanned device: Service Equipment,
  Customer, Service Location, active Subscription, open Issues,
  upcoming Dispatch Jobs, OLT info.
- New docs/VISION_AND_OCR.md (full pipeline + §10 relationship graph
  + §8.1 secrets/rotation policy). Cross-linked from ARCHITECTURE,
  ROADMAP, HANDOFF, README.
- Nginx /ollama/ proxy blocks removed from both ops + field.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-22 11:26:01 -04:00

99 lines
5.2 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
4. [VISION_AND_OCR.md](VISION_AND_OCR.md) — camera scanning workflow (barcodes, equipment labels, invoices) and offline queue
### 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
4. [VISION_AND_OCR.md](VISION_AND_OCR.md) — Gemini pipeline, AI_API_KEY config, hub `/vision/*` endpoints
---
## 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 |
| [VISION_AND_OCR.md](VISION_AND_OCR.md) | Gemini-via-hub pipeline: barcode/equipment/invoice endpoints, scanner composable, offline retry queue | Camera/scan/OCR work, onboarding anyone who'll touch `/vision/*` |
| [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.