fix(cf): bump modal poll 90→180s + pin CF list to /api/ancpi pre-Faza H

Three independent issues from the live test on 50198:

1. CfOrderModal poll timeout was 90s but ANCPI orders routinely take
   60-180s end-to-end. The 50198 order completed at 129s (logs show
   6 polls before docs matched), but the modal had already errored
   out 39s before that with "Procesarea durează mai mult decât ne-am
   așteptat". Bump to 180s + update the user-facing copy from "60 de
   secunde" to "3 minute" so the expectation matches reality.

2. cfApiBase(useGisAc=true) routed pilot users to /api/cf which proxies
   to gis-api → gis_core."CfExtract", but the ePay queue still writes
   ONLY to architools_postgres."CfExtract". Pilot users were therefore
   blind to their own fresh orders in the listing + catalog checks
   (50198 invisible despite being completed + downloadable). Pin all
   CF API calls to legacy /api/ancpi until Faza H mirrors writes to
   gis-api too; the source of truth then becomes a single table.

3. Manual cleanup of one stuck order in gis_enrichment.CfExtract
   (354686, pending since 2026-05-19) — never advanced past `pending`,
   was showing up as "În coadă" in the Extrase CF tab for ~4 days.
   Set status=cancelled with an explanatory errorMessage.
   (Applied via direct SQL on postgres-gis; no code change for this.)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude VM
2026-05-23 18:15:27 +03:00
parent 5cfa6c8847
commit d70442e26f
2 changed files with 15 additions and 4 deletions
@@ -14,8 +14,15 @@
import type { CfExtractRow } from "@/lib/gis-api-client";
export function cfApiBase(useGisAc: boolean): string {
return useGisAc ? "/api/cf" : "/api/ancpi";
export function cfApiBase(_useGisAc: boolean): string {
// Temporarily pinned to legacy /api/ancpi until Faza H lands.
// Background: pilot users (useGisAc=true) were routed to /api/cf
// which proxies to gis-api → gis_core."CfExtract". But the ePay queue
// still writes only to architools_postgres."CfExtract" (legacy). Pilot
// users were missing their own fresh orders in the listing + catalog
// checks. Until the queue mirrors writes to gis-api, every caller
// uses the legacy endpoint so the read source matches the write source.
return "/api/ancpi";
}
// UI-side row shape (mirrors what epay-tab.tsx already expects).