fix: browser 202/sweep via App proxy; paper product site - #6
Open
AlonsoAlviraa wants to merge 17 commits into
Open
fix: browser 202/sweep via App proxy; paper product site#6AlonsoAlviraa wants to merge 17 commits into
AlonsoAlviraa wants to merge 17 commits into
Conversation
Dense industrial console treatment for the judge surface: emerald phosphor theme, stagger-in fixtures/KPIs, decision pulse, hash reveal, and busy scan-lines. API contracts, ingest handlers, and Stage One strings are unchanged. Co-authored-by: AlonsoAlviraa <AlonsoAlviraa@users.noreply.github.com>
Port the generated console IA onto the live judge page: sticky TopNav, hero grid/scanline, ControlBar, 2-col FixtureGrid + IngestPanel / aside. Existing ingest handlers and API contracts are unchanged; mock hook not copied. Co-authored-by: AlonsoAlviraa <AlonsoAlviraa@users.noreply.github.com>
Drop the dark C2 HUD. Landing, /fleet, and shell now share a warm paper canvas, ink type, hairline cards, and a single calm green accent. Judge ingest APIs are unchanged. Co-authored-by: AlonsoAlviraa <AlonsoAlviraa@users.noreply.github.com>
KPI cubic count-up, settle rings, fixture stagger, 202 scan bar, hash type-on with caret, and solid emerald Dispatch hover. Live ingest only; useFleetConsole was not copied. Co-authored-by: AlonsoAlviraa <AlonsoAlviraa@users.noreply.github.com>
Solid ink Dispatch, quiet tenant/role/identity chips, Stripe dropzone, and run-id table rows. No C2 chrome or Stitch mock copy. Judge ingest unchanged. Co-authored-by: AlonsoAlviraa <AlonsoAlviraa@users.noreply.github.com>
Product canvas, result cards, and a visible tighten-only pipeline. Identity moved to the footer. Motion is 180ms fade only. Judge ingest APIs unchanged. Co-authored-by: AlonsoAlviraa <AlonsoAlviraa@users.noreply.github.com>
Stop Chrome/OS force-dark from inverting ink-on-paper. Always show the ingest → consult (tighten-only) → hash stepper on /fleet. Browser calls /api/v1 via Next rewrite to localhost:8000 so CORS does not eat ingest. Co-authored-by: AlonsoAlviraa <AlonsoAlviraa@users.noreply.github.com>
Lightweight messages dict and nav toggle. Judge English banner, identity chips, and SIGNED/ESCALATED/BLOCKED tokens stay visible on /fleet. Co-authored-by: AlonsoAlviraa <AlonsoAlviraa@users.noreply.github.com>
History rows dropped hash during i18n wiring; restore it so npm run build passes. Co-authored-by: AlonsoAlviraa <AlonsoAlviraa@users.noreply.github.com>
Fail-closed aeat_remitting:false on /health and compliance. Chip and landing copy never claim a live Hacienda session. No prod flag flip, no cert paths, no SOAP from the frontend. Co-authored-by: AlonsoAlviraa <AlonsoAlviraa@users.noreply.github.com>
Fleet ingest never calls send_invoice_to_aeat. Copy no longer implies remittance would start if certs existed. Co-authored-by: AlonsoAlviraa <AlonsoAlviraa@users.noreply.github.com>
FIFO worker thread exited after the first empty queue and never restarted. UI poll stopped at 15s with no error, so QUEUED rows stayed on settling. Worker now waits on a condition; /fleet polls GET /runs/{id} until COMPLETED or shows an honest stuck-queue error.
Co-authored-by: AlonsoAlviraa <AlonsoAlviraa@users.noreply.github.com>
Pin the Next proxy to 127.0.0.1 (not localhost/::1), forward query and org headers, and pass wait in JSON+params so a rewrite cannot drop wait=false. Sweep follows the Background 202 toggle (inline when off). GET /runs/{id} drains a QUEUED row so a dual uvicorn FIFO cannot leave the UI settling. Restart the single uvicorn process for the Python side to load.
Co-authored-by: AlonsoAlviraa <AlonsoAlviraa@users.noreply.github.com>
Honest operator guide for AEAT certs (env vars only, no key upload), Stripe-like security and pricing on the paper canvas, with ES|EN copy and a collapsed More menu at phone width. Co-authored-by: AlonsoAlviraa <AlonsoAlviraa@users.noreply.github.com>
Rewrite / as a product homepage with honest proof cards, a Built with Gemini · Google ADK · VeriFactu strip, and extract below the fold. Nav is Product / Pricing / Security / Tutorial / Console. Pricing FAQ and a short security manifesto stay contest-honest — no fake Hacienda, customers, or logos. Co-authored-by: AlonsoAlviraa <AlonsoAlviraa@users.noreply.github.com>
Landing sells and shows GET /api/v1/fleet/registry specialists, then CTA to /fleet. Fixtures carry Extract/Armor/Memory/Sign job labels. Stage One checklist is complete and honest (aeat_remitting false). Title/og keep the English judge line. python -m verifleet ingest uses the same run_fleet path and prints decision + short hash only. No Cloud Run URL invented; demo slot is empty until a real video exists. Co-authored-by: AlonsoAlviraa <AlonsoAlviraa@users.noreply.github.com>
next.config array rewrites ran before the dynamic [...path] route, so :3000 never forwarded wait/X-Tenant-Id the way curl to :8000 does. Remove that rewrite. GET /runs list now drains QUEUED rows. Axios keeps wait=false. Honest 45s error stays if a run is still queued. Co-authored-by: AlonsoAlviraa <AlonsoAlviraa@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This pass is the P0 browser path for Background 202 / sweep, plus a tighter marketing landing. Paper + ES/EN. No Cloud Run URL. No YouTube. No gate flips. No PEM paste.
P0 —
:3000/fleetvs curl:8000Cause:
next.configarray rewrites run before dynamic App routes./api/v1/:path*was rewritten straight to uvicorn and never hitapp/api/v1/[...path]/route.ts. That rewrite can drop?wait=andX-Tenant-Id. Curl to:8000settled in ~1s; the browser stayed QUEUED and sweep with 202 off added no rows.Fix:
/api/v1rewrite. The App route is the only browser proxy (pins127.0.0.1:8000, forwards query + org headers + body).GET /api/v1/fleet/runs(list) now drains QUEUED rows — same as GET-by-id — so the UI poll settles even if by-id 404s.wait=false(never omits it) and does not clobberX-Tenant-Id.error.queueStuckstays if a run is still QUEUED.You must restart both processes after pull: recycle uvicorn (one process,
127.0.0.1:8000) andnpm run devso Next drops the old rewrite.Also this pass
GET /api/v1/fleet/registry; CTA to/fleet.aeat_remitting false, never green).python -m verifleet ingestunchanged.Verification
npm run buildsucceeded (Next 16.1.1). Route table includesƒ /api/v1/[...path].python3 -m pytest tests/test_verifleet_cli.py tests/test_fleet_adk.py -q— 42 passed (includestest_list_runs_drains_queued_row).