MitmonLabs-Frontend

Release plan and current gates

This is a NOT DEPLOYABLE local review candidate, not a deployment or an A459-certified release. Mitch’s production-only decision overrides the previous demo and remaining-board plans. No runtime data mode exists. Process/Jobs/Shadow/Account/Case studies boards remain paused.

Required FS1 A459 isolated build (M-02)

The normal development install physically contains @mitmon/contracts/src/internal.ts and internal schema files. A browser output scan cannot establish that the build never read them. The accepted FS1 A459 pipeline must construct the isolated public-only input closure and run its accepted hardening/canary checks before a release is accepted.

FS1’s documentation/reference handoff is now received: controller 0d4daf596bba0cfa0041f84f7f41a62cd4cf1546 runs on M6 and its private controller code must stay there. Its current target/public-version CLI does not support mac or 0.1.4. The actual Mac-target definition/command, FS1-named metadata-only shared-package rebind and trusted configuration/CSP compatibility are PENDING-UPSTREAM. See Mac mapping preparation. No ordinary Vite output audit substitutes for the actual isolated Mac receipt.

Inputs to the eventual accepted runner:

Required receipt: accepted pipeline revision/digests, public input inventory, physical exclusion/isolation evidence and expected canary failures, clean release build, emitted file hashes and output scan. FS1 supplies and executes the actual supported Mac-target entrypoint on M6; attach its exact receipt and preserve the original acceptedfalse failures. No invented command or A459 attestation is provided.

Build configuration seams

Release builds fail without VITE_API_ORIGIN, or when it is HTTP, loopback, contains credentials/path/query/fragment, or a CSP wildcard/separator. The runtime has no localhost release default. Development still uses the authorized local M6 forward when no origin is explicitly configured; worker tests intercept its HTTP in test files only.

VITE_CLERK_PUBLISHABLE_KEY is an explicit build input. Local review builds may fall back to the existing development key file under the previous M-06 ruling; its value is never logged or committed. The CSP’s exact Clerk frontend origin is derived and validated from that key. A future Production key is a clean seam, not a claim that Production Clerk has been selected or verified. VITE_GEOCODER=photon remains explicitly opt-in; VITE_BASE_PATH is available for hosting layout. Hosting, public API URL, browser CORS origin and Production Clerk are owner decisions still pending.

For local review verification only, this round used:

VITE_API_ORIGIN=https://api.review.invalid npm run build
npm run audit:artifact
npm run test:release

api.review.invalid is the explicitly supplied non-routable review placeholder, not a selected API host. Its review/audit interpretation is NOT DEPLOYABLE. This build is not A459-certified and must not be deployed. The ordinary build/output audit remains useful independent verification while the accepted pipeline is obtained.

CSP response header and host integration

The build removes the development CSP meta tag and emits dist/security-headers.json. The artifact contains the exact Content-Security-Policy response-header value, including frame-ancestors 'none'. It contains no publishable key. The local Vite preview reads and validates that manifest and applies the header to actual responses; native Chromium tests cover header delivery, inline/eval rejection and blocked same-origin embedding.

The deployment host must apply the manifest’s headers dictionary as HTTP response headers on every document response, including SPA fallback and error responses. Merely serving the JSON file does not apply a policy. For a server such as Nginx, the operator will generate a configuration directive from the exact manifest value:

add_header Content-Security-Policy "<exact manifest header value>" always;

Verify the chosen host’s actual responses after deployment, including SPA/deep-link/error routes, and repeat the native frame/inline/eval checks. frame-ancestors requires response-header delivery and is ignored in a meta policy, as specified by W3C CSP. No hosting platform is selected in this round.

Script policy stays strict: no unsafe-eval, no inline scripts, no wildcard Protect hosts and no Cloudflare host. A468’s observed cdn.protect.clerk.com script allowance remains. Claude A635 authorizes its exact loader script host and five separate probe connect origins (default HTTPS, 992, 2082, 8443, 18443) in both dev and release. Policy hashes/origins and native enforcement evidence are recorded; the fresh-profile sign-out/sign-in stability cycle remains pending the coordinated live window. Inline styles remain the recorded Clerk/Vuetify exception, still requiring FS1 trusted-gate resolution. Development websocket permissions are absent from the release header and output.

Output audit and remaining acceptance

The release graph hook rejects test fixtures, gallery/preview/demo modules, dev CSP/live collectors and private contract module entries. It emits aggregate counts only, without source filesystem paths. The static audit validates the exact header manifest, configured origin, strict output-file inventory, expected public key without reporting it, no other keys/JWT/PEM/private markers, no localhost API/HMR default, and no runtime fixture/badge/test markers. These checks complement A459; they do not prove its physical isolation.

Remaining release gates:

  1. PENDING-UPSTREAM: FS1’s accepted isolated A459 execution and receipt.
  2. PENDING-UPSTREAM: reviewed FS3 correction; the 100 m east georeferencing regression is currently an expected failure, not accepted proof.
  3. Final real-model proof after M6 publishes authorized coverage; the mocked overlay and published-point tests are not served-model acceptance.
  4. Complete A468 fresh sign-in/sign-out/switch/authenticated map/3D evidence; the first window remains partial and its ports were returned.
  5. Owner-selected hosting/API/CORS/Production Clerk settings and actual deployed response-header verification, at the later deployment phase.

Latest live-profile ruling and packet order

The RELEASE configuration remains unchanged: explicit HTTPS non-loopback origin, CSP response header and no localhost. No DEV profile can be accepted as release output. The public M6 API URL is a later deployment decision; placeholder release builds remain NOT DEPLOYABLE, and existing output audits retain their limited review-build scope.

Live-window authentication, Gate C and real-data 3D use DEV only, with VITE_API_ORIGIN=http://localhost:8787 through the approved SSH forward and dev CSP limited to that exact API origin. Evidence is labelled dev profile via SSH forward, not release proof. See LIVE_CSP_RUN.md. This explicit ruling replaces the earlier production-mode live-window prerequisite without weakening release validation.

Worker 8 owns the live window. This worker stays idle and does not touch 5173/8787. When the orchestrator sends its SHAs/results and the post-Gate-C bundle task, integrate them with the UI fix and prepare the one superseding packet. A459 and FS3 remain PENDING-UPSTREAM in REVIEW_REQUEST; do not wait for their delivery or fabricate certification. The ec67369 packet stays preliminary.