docs(plans): session handoff + audit + Faza H runbook
End of 2026-05-19 cutover-debug session. Saves the full state + 2 outstanding bugs + Faza G/H plan into docs/plans/ so the next session can resume without re-investigating. - prompt-handoff-2026-05-19.md: short prompt for the next session to amend + resume. - audit-2026-05-19.md: auditor-agent output (~30 findings). - 004-faza-h-runbook.md: pg_dump + REVOKE + DROP runbook with prereqs (eterra.live shares DB, unidentified writer, CfExtract schema drift). Memory entries also written: - feedback/authentik-token-endpoint-shared - project/architools-cutover-state-2026-05-19 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
# Handoff prompt — ArchiTools cutover, resume after 2026-05-19 session
|
||||
|
||||
## Where we left off
|
||||
|
||||
Faze A→F of plan 003 (`docs/plans/003-architools-cutover-execution-2026-05-17.md`) are committed and deployed. Pilot user `m.tarau@beletage.ro` is on the V2 / api.gis.ac path. Two outstanding bugs and the Faza G/H work remain. Full state in memory `[[architools-cutover-state-2026-05-19]]`. The Authentik token-endpoint root-cause is in memory `[[authentik-token-endpoint-shared]]`.
|
||||
|
||||
## Suggested prompt for the next session
|
||||
|
||||
```
|
||||
Sesiune nouă în ~/Code/ArchiTools după un session lung pe 2026-05-19. Continuăm
|
||||
cutover-ul ArchiTools → api.gis.ac (Plan 003).
|
||||
|
||||
Citește în ordine de prioritate:
|
||||
1. docs/plans/prompt-handoff-2026-05-19.md (acest fișier)
|
||||
2. ~/.claude/projects/-home-orchestrator-Code-ArchiTools/memory/MEMORY.md
|
||||
3. docs/plans/audit-2026-05-19.md (audit complet după Faze A-E)
|
||||
4. docs/plans/004-faza-h-runbook.md (Faza H runbook — NU executa, doar înțelege)
|
||||
5. docs/plans/003-architools-cutover-execution-2026-05-17.md (planul original)
|
||||
|
||||
Confirmă că înțelegi state-ul curent + cele 2 bug-uri outstanding, apoi cere-mi
|
||||
direcție. NU re-rula Faze A-F — sunt deployate. Pilot user m.tarau e activ pe V2.
|
||||
|
||||
Bug-uri prioritare de fixat:
|
||||
- B1: /geoportal V2 panel nu randează enrichment-ul din DB după click parcelă.
|
||||
Datele EXISTĂ în gis_core.GisFeature.enrichment (verificat: parcela
|
||||
f9bf2ca4-d35c-4636-bd82-9caf09454166, 10 chei). api.gis.ac /parcela
|
||||
întoarce datele cu scope=full. Dar panel-ul arată "Apasă „Citește din
|
||||
ANCPI" pentru a încărca". Caut bug pe client între setDetail(data) și
|
||||
enrichmentEntries render. Începe cu logs `[gis-parcela]` (deja există)
|
||||
+ DevTools Network response shape.
|
||||
- B2: "Comandă CF" în V2 panel deschide /parcel-sync?tab=epay&cad=… dar
|
||||
pagina destinație nu citește query params. Sau wire-up parametrii în
|
||||
parcel-sync page, sau schimbă strategia de deep-link.
|
||||
|
||||
Apoi: Faza G (24h grace + monitor), Faza H prereqs (eterra.live cutover,
|
||||
identify writer la GisFeature, schema drift CfExtract).
|
||||
```
|
||||
|
||||
Adaugă tu la prompt orice ai vrea schimbat sau extins.
|
||||
|
||||
## Quick facts cheatsheet for the new session
|
||||
|
||||
- **Live commit**: check `/api/version` for `commitShort` — should be `162c8ed` or later
|
||||
- **Pilot user**: `m.tarau@beletage.ro` (in Infisical `/architools` `GIS_AC_PILOT_USERS`)
|
||||
- **Flag global**: `USE_GIS_AC=0` (only pilot list active)
|
||||
- **Authentik token endpoint**: `https://auth.beletage.ro/application/o/token/` (shared, NOT per-provider)
|
||||
- **ePay pool**: 2 accounts on `gis_meta.eterra_accounts`, 500/h quota each — needs manual reset when exhausted: `UPDATE gis_meta.eterra_accounts SET usage_current_hour = 0 WHERE status = 'active';`
|
||||
- **Trigram index on `gis_core."GisFeature"."cadastralRef"`**: `gisfeature_cadref_trgm_idx` exists (built 2026-05-18, search latency 30s → 150ms)
|
||||
- **Connection limit** on gis-api Prisma: 10 (after the trigram-index fix, lower causes pool timeouts)
|
||||
- **Pilot decision on CF**: Marius wants per-user ePay session + credit visibility — V2 panel deep-links to legacy `/parcel-sync` instead of using `/api/cf/*`
|
||||
|
||||
## Files modified this session (for context only — DO NOT redo)
|
||||
|
||||
```
|
||||
src/core/auth/auth-options.ts — refresh flow + cooldown + token endpoint fix
|
||||
src/core/feature-flags/use-gis-ac.ts — flag helper
|
||||
src/core/version/version-watcher.tsx — toast component
|
||||
src/lib/gis-api-client.ts — thin client lib
|
||||
src/app/api/version/route.ts — version endpoint
|
||||
src/app/api/gis/{search,parcela/[id],parcel/tech}/route.ts — V2 proxy routes
|
||||
src/app/api/cf/{order,orders,[id],[id]/pdf,catalog}/route.ts — Faza F routes (currently unused by V2 panel)
|
||||
src/modules/geoportal/components/geoportal-module.tsx — branch on session.useGisAc
|
||||
src/modules/geoportal/v2/* — V2 components
|
||||
src/modules/parcel-sync/components/cf-api-base.ts — UI helper
|
||||
src/modules/parcel-sync/components/epay-{tab,order-button}.tsx — flag-branched
|
||||
src/middleware.ts — /api/version exclusion
|
||||
Dockerfile, docker-compose.yml, docker-entrypoint.sh — Infisical runtime + GIT_COMMIT/BUILD_TIME
|
||||
```
|
||||
|
||||
## How to verify the next session is healthy
|
||||
|
||||
```bash
|
||||
curl -s https://tools.beletage.ro/api/version | jq .
|
||||
# expect commitShort = latest pushed commit
|
||||
```
|
||||
|
||||
```bash
|
||||
ssh satra "docker logs architools --tail 10 2>&1"
|
||||
# expect: [infisical] fetched 39+ secrets, Next.js Ready in <500ms
|
||||
```
|
||||
|
||||
```bash
|
||||
# Pool state
|
||||
ssh shop "docker exec postgres-gis psql -U gis_superuser -d gis -c \"SELECT username, usage_current_hour, quota_per_hour FROM gis_meta.eterra_accounts WHERE status='active';\""
|
||||
```
|
||||
Reference in New Issue
Block a user