The mapping manifest is prepared for FS1 review with target mac and FS5 scope mac_app. It declares no Mac build, receipt or A459 certification. It uses the exact FS1 guide and reference metadata, preserved byte-identically for reproducible local validation. Controller code stays on M6 and is never copied here.
This tracked preparation snapshot pins full application commit 9a3c540c73941a67235b20df5b59623f3b53c02d, the A673/A682 placement checker (Gate C runner removed after M6 acceptance) in Mitch’s persistent-SPA/left-rail/icon/clean-route UI (retaining the FS3 361c681d fix and A635 fallback). Its ignored local input bundle is .external/mac-mapping-prep/mac-input-9a3c540c73941a67235b20df5b59623f3b53c02d.bundle, SHA-256 07eb29cb39515b24000016214de0c5fe24e3b8e03ed4fa326e20e6021a932c0b, 30,569,699 bytes. It is explicitly unreviewed preparation input. No next review packet, publication or handoff-directory output was created.
The mapping generator reads committed Git objects, never modified worktree source. It verifies that the supplied regular-file bundle is self-contained, contains exactly the specified application commit as its sole named head, and passes strict Git object checks in an empty scratch repository. Its SHA binds the actual supplied bytes. Two valid bundles for one commit can differ because Git packing is not a byte-reproducibility guarantee; preserve and hash the actual reviewed file.
A manifest containing its enclosing commit/bundle SHA cannot hash itself. After the orchestrator merges worker 8’s instructed changes and reviews the final commit, create the one final bundle through the agreed packet workflow, then generate its mapping as a sidecar. The tracked snapshot is a reviewable example; regenerate for the actual final bundle/commit, even when its browser files happen to be unchanged. Do not substitute the preparation bundle’s SHA or claim that its commit is the future packet commit.
mac_review_commit='FULL_REVIEWED_COMMIT_SHA'
mac_review_bundle='/absolute/path/to/the/review.bundle'
mac_mapping_sidecar='/absolute/path/to/the/packet/MAC_MAPPING_MANIFEST.json'
node scripts/generate-mac-mapping.mjs \
--commit "$mac_review_commit" --bundle "$mac_review_bundle" \
--output "$mac_mapping_sidecar"
node scripts/generate-mac-mapping.mjs \
--commit "$mac_review_commit" --bundle "$mac_review_bundle" \
--check "$mac_mapping_sidecar"
Those are Mac metadata-preparation commands, not invented M6 Mac-target build commands. The script defaults to Mitch’s supplied release_build guide directory; --guide-dir can name the byte-identical public guide/reference copies. It verifies their fixed checksums before using them. --prepare-input is for an ignored local snapshot and reuses an existing verified file rather than overwriting an immutable bundle.
App root is apps/web; proposed isolated root is /source/app, subject to FS1 approval. Entry mappings are apps/web/index.html → app/index.html and apps/web/src/main.ts → app/src/main.ts. Every allowed source/asset entry has an explicit source/destination path, Git blob, SHA-256, byte count, regular-file mode and role. Existing relative imports are preserved. The IBM Plex license is explicitly mapped from its original source to app/public/licenses/IBM-Plex-OFL.txt alongside the font distribution.
The current manifest enumerates 77 regular files, 269 application import edges and 86 excluded app files. It walks HTML module/assets, Vue script/setup/style/template blocks, TS import/re-export/type/dynamic edges, CSS imports/URLs and public assets. Active imports must resolve to a mapped source or a version-pinned package. Unknown computed imports, CommonJS, private package subpaths, Node builtins, remote/file modules, missing imports, executable SVG references, links and path/destination escapes fail preparation validation.
The SPA clarification moves the primary map into the persistent shell and adds a public map-controller injection interface for lazy route panels. Inspector styling changes layer visibility in place; the route-owned preview is disposed when its panel closes. The mapping includes these exact source bytes and retains one application HTML entry. Local browser checks preserve the same document, shell, canvas and WebGL context across navigation; they do not certify the later hosting or isolated build.
The two dev routes (/placement-check, /a682-receipts) are recorded as production-false imports under import.meta.env.DEV=false; Gate C and placement source trees are physically absent from the mapping. Gallery, previews, tests/fixtures, development CSP/live instrumentation, non-runtime declarations, caches, .env/key files, internal/server/private entries and owner Node/build configs are excluded. Anything outside the explicit mappings is excluded from the isolated source tree.
src/config.ts is a required browser runtime module for public definitions. It is identified separately for FS1 mapping review; it is not the owner’s Node/Vite configuration. The owner’s vite.config.ts, tsconfig, Node config validator, header/CSP helpers, plugins and build scripts never enter or execute in /source. Package manifests, app lock, binding JSON and the A635 policy record are hashed review-only metadata outside /source; FS1 must synthesize the approved build/dependency configuration. The ordinary Mac package scripts and lock are not accepted controller input policies.
Application import syntax is exhaustive for this proposed source inventory, including type and inactive edges. Package imports retain their exact specifier/subpath, locked version and publisher integrity or shared Git authority. The conservative dependency-metadata superset is for approval review; FS1 must resolve approved browser export conditions and independently verify publisher/cache bytes. It is not a claimed transitive emitted-module closure. The trusted receipt must establish actual asset/chunk/module origins and output exclusions.
The snapshot includes the named lazy route table, left Vuetify rail, tooltip icon actions, capture-privacy state and real 404 view. @mdi/js is pinned to 7.4.47 with its publisher integrity in the immutable lock/manifest. FS1 still needs to review that new dependency in the approved browser export closure.
Clean history URLs require the host’s SPA rewrite under the configured base path. The local build emits _redirects and _headers; both / and /mapping/ previews pass reload/deep-link checks without any CSP widening. The owner spa-fallback-plugin.ts remains excluded from isolated source, like the other Node helpers. FS1’s trusted output definitions and the later selected host must reproduce the rewrite and exact response-header behavior described in SPA hosting; local helper execution is not an approved release-controller substitute. UI evidence records 289 unit, 33 smoke, six release and one non-root hosting passes.
361c681def79cbce5549edc32f93f88360365e85, map-scene/scene-reveal/solar/ui 0.1.0. The fixed map-scene source SHA is 3979e47708b0fabd30a76d560db2c45a1ed1823204bc07a8e0e5de2394bca520; other runtime sources remain unchanged. All four package pins and 0.1.4 dependency metadata are validated.b707a0cf2108bc66cd7ee3c41d17bf0fb16b39c2, revision 0.1.4, wire 0.1.1. Public-schema SHA-256 is 2a211e6d84a0f4b91b9cf5c28ca565e53bc2efc7083cb3c8d1548686fb799e85, matching the supplied references and app binding. Models is a pinned public authority, not currently imported by this app.M6’s supplied 361c681d includes contracts/geo 0.1.4 dependency metadata for map-scene/ui, alongside the reviewed horizontal scale correction. The Mac retains one b707a0cf public copy; no shared source/manifest was edited here. The manifest records dependencyMetadataRevision=361c681d and leaves FS1 isolated lock/publisher approval pending. Root overrides are still local configuration, not an isolated-release receipt.
The byte-identical accepted FS1 guide/reference metadata still describe the historical 2dd02d0 control. Those originals remain unchanged. fs1Authority.sourcePinUpdate explicitly records Mitch’s Task 2 / M6-supplied 361c681d update, the fixed source digest, and the pending actual Mac-target receipt. No historical receipt is relabelled as validation of the new renderer. A666 scale proof establishes local numeric/browser checks only.
The manifest names public variables and constraints without any key/token value or key file. Required trusted production definitions disable DEV/live instrumentation and optional Photon, set PROD and define the reviewed base path. There is no runtime fixture switch. The API origin must remain an explicitly supplied exact non-loopback HTTPS origin; no localhost release default is introduced. Public API, hosting and Clerk Production remain later owner decisions.
The source HTML contains the development __MITMON_CSP__ meta placeholder. FS1’s trusted Mac definition must replace/remove it, inject its reviewed policy and emit the exact response-header manifest with frame-ancestors 'none'; owner HTML/Vite transforms cannot execute inside isolation. Serving a JSON header manifest alone does not apply the header to documents.
Current accepted controls inject exactly script-src 'self'; worker-src 'self' blob:; object-src 'none'; base-uri 'self' and intentionally leave public configuration empty. This does not prove Clerk’s external loader/Protect compatibility. The proposed Mac header describes exact derived Clerk/API origins, A468/A635 Protect sources, existing basemap/image hosts, only the documented Protect wildcards, no script unsafe-inline, no unsafe-eval and no dev websocket. The current Mac Clerk/Vuetify style-src unsafe-inline exception is explicitly unapproved by FS1’s gate, whose guide rejects surviving unsafe-inline and wildcard policies. FS1/Claude must resolve these trusted definitions and compatibility; the mapping does not weaken either policy or claim functional auth acceptance.
A635 notes bind the immutable policy record, CSP/helper hashes, Claude ruling SHA 87b1f21c4b14aa990aee8a53bde55205e9fce6c2b0799dad097b5e8c472265e9 and the byte-identical variation receipt. Both JSON inputs are review-only metadata excluded from /source. Three observed IDs changed across sessions; observed ports stayed default HTTPS/992/2082/8443/18443. Per A635’s conditional rule, scripts use https://*.protect.clerk.com (plus the explicit observed CDN), connections use https://*.protect.clerk.com:*. No other wildcard or directive widening is permitted. Native inline/eval and domain/protocol/non-default-script-port negatives still block.
Recorded dev 5180 policy SHA is 3142028c384923ff680bd1be19baa29246eaa98e98a45e0dcbcd33853c9b43e0; review release SHA is 46dacb77668fef02fad87cdb676c3c3629defe3a5ca92327e71f20a9c9bf993f. At 5173 the offline-generated policy is exactly worker 8’s applied live SHA 8dd3c3014f77bbc8206e0a80cd3f811bf478e132002a2f7ef7c1d4dcbb4e4546; the sole worker-dev difference is the websocket port. The generator rejects altered variation evidence, false stability, broadened sources and divergence from that live policy. Full directive/source lists are in the manifest; wildcard expressions are permissions, not observed contacted origins.
The dev local/WS origins are review-only metadata, not proposed release sources. Release retains explicit HTTPS/header delivery and the NOT DEPLOYABLE placeholder. Later configured origins need fresh hashes and review; these notes neither execute/map the owner’s CSP helper nor approve the FS1 trusted policy.
Exact-host stability failed, triggering the documented fallback. Worker 8 reports a successful final same-profile sign-out/back-in cycle and zero post-change application violations, but final contacted-host/port observations remain incomplete. No complete stability claim or new live check is made here. The trusted FS1 guide still rejects wildcards and the style exception, so both require explicit trusted compatibility decisions; A635 application policy approval is not A459 certification.
Controller 0d4daf596bba0cfa0041f84f7f41a62cd4cf1546 currently has no target mac and rejects 0.1.4. The private controller stays on M6. After FS1 reviews the mapping/metadata/configuration, it supplies the supported exact Mac-target command/revision and executes the fresh, offline, scripts-disabled isolated build there. Reference/viewer and external/shared_packages receipts cannot be relabelled as mac_app.
node --test scripts/mac-mapping.test.mjs
node scripts/generate-mac-mapping.mjs \
--commit 9a3c540c73941a67235b20df5b59623f3b53c02d \
--bundle .external/mac-mapping-prep/mac-input-9a3c540c73941a67235b20df5b59623f3b53c02d.bundle \
--check docs/release/MAC_MAPPING_MANIFEST.json
npm run lint
The 15 local tests cover complete imports/assets/license, production guards, excluded Node/config/test/private entries, computed/CommonJS/remote/missing imports, public links/executable SVG, immutable Git bytes despite worktree changes, exact bundle membership/corruption/overwrite refusal, stable source inventory, actual bundle-byte SHA, guide tampering, manifest hash/destination tampering and A635 policy/source hash, variation-evidence, broader-wildcard and false-stability tampering. The tests also assert all four new FS3 pins, fixed map-scene digest, upstream 0.1.4 metadata and retained historical guide pin. Validation receipt is preparation-only.
Remaining M6/FS5 acceptance needs: actual Mac-target outer receipt and SHA, full controller/app/public pins, the isolated lock SHA, all five controller-input hashes, full dist hashes/origins, pass=true with exit 0 and retained failure evidence. Independent BU01, real Mac canvas/auth and Claude release acceptance remain separate. FS3’s eight former expected failures now pass normally, and the A666 checker self-test passes. Real-model footprint adaptation/live placement remain separate gates; no live model test, Gate C action, M6 build or 5173/8787 operation occurred here.