Files
ArchiTools/docs/plans/prompt-handoff-2026-05-19.md
Claude VM 9847b4a070 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>
2026-05-19 08:31:45 +03:00

4.6 KiB

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

curl -s https://tools.beletage.ro/api/version | jq .
# expect commitShort = latest pushed commit
ssh satra "docker logs architools --tail 10 2>&1"
# expect: [infisical] fetched 39+ secrets, Next.js Ready in <500ms
# 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';\""