AFFAANhandClaude Opus 5 62270b8c30 fix(models): stop "Test Connection" from guessing the newest Gemini model
Found the real cause of the cross-laptop Gemini failure. The backend
fallback fix (876b315) never actually ran for this button: pressing "Test
Connection" with Vertex AI enabled always called testModelConnection with
one specific model_id, never the provider-level test that has the
fallback. That model_id was the currently active model if one was already
chosen — or, on a brand-new setup with nothing chosen yet,
provider.models[0], which is always GEMINI_MODELS[0]: gemini-3.6-flash,
the newest registry entry.

Vertex AI Model Garden availability is rolled out per Google Cloud
project. Two laptops with an identical API key and an identical, valid
Project ID produced opposite results because one had an older model
already saved as active (tested that, worked) and the other had nothing
saved yet (defaulted to the newest model, which this project's Vertex
console had not yet been granted, and failed outright).

Now: a chosen model is still tested exactly as itself — this button's job
is to confirm the model actually in use still works, and silently
swapping it for a different one would hide a real break. With nothing
chosen yet, it calls testProviderConnection instead of guessing, which
tries every known model and succeeds on the first that works.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-03 14:44:13 +05:30
2026-08-01 10:28:39 +05:30
2026-08-01 10:28:39 +05:30
2026-08-01 10:28:39 +05:30
2026-08-01 10:28:39 +05:30
2026-08-01 10:28:39 +05:30
2026-08-01 10:28:39 +05:30
2026-08-01 10:28:39 +05:30
2026-08-01 10:28:39 +05:30
2026-08-01 10:28:39 +05:30

MaskanX Frontend

Independent React, TypeScript, and Vite frontend for MaskanX.

Service Contract

  • Default development URL: http://127.0.0.1:5173
  • Backend API: configured with VITE_MASKANX_API_URL
  • Local proxy target: configured with VITE_MASKANX_PROXY_TARGET
  • Database access: none; this service never receives PostgreSQL credentials

Local Setup

npm install
Copy-Item .env.local.example .env.local
npm run local

Start maskanx-backend on port 8088 before using the full UI.

Campaigns page

The Campaigns page needs VITE_META_AD_ACCOUNT_ID set to the Meta ad account id (act_<digits>) in your .env.* file.

If it is unset the page still loads and lists campaigns, but four things are silently unavailable: the ad-account billing panel, the warning shown when no payment method is attached, ad preview in the wizard, and the account-minimum budget check (the backend cannot look up min_daily_budget without an account, so it skips that validation and logs a warning).

Ad preview also requires META_ADS_ACCESS_TOKEN to be configured on the backend, in Settings > Environments.

Commands

Command Purpose
npm run start Preview the production build on port 5173
npm run build Type-check and build dist/
npm run local Local Vite server using .env.local
npm run dev Development server using .env.development
npm run test Test-mode type-check and production build
npm run lint ESLint checks
npm run prod Production-mode preview

Database migration and seed commands intentionally live in maskanx-backend. A frontend must never own database credentials.

Production

Build the container with the browser-visible backend URL:

docker build `
  --build-arg VITE_MASKANX_API_URL=https://api.example.com `
  -t maskanx-frontend .

The backend must allow the deployed frontend origin through MASKANX_CORS_ORIGINS.

S
Description
No description provided
Readme
585 KiB
Languages
TypeScript 85.5%
Less 12.9%
CSS 1%
JavaScript 0.5%