Some checks are pending
build-gate / build (push) Waiting to run
Driver 2026-09-21: 'a folder called deployment which will store the capacitor
folder, wordpress folder and tauri folder', and 'a folder called documentation
to store the contributing folder so docs are in one place'.
docs/ + contributing/ + CONTRIBUTING.md -> documentation/ (three doc homes into
one). capacitor/ + wordpress/ + src-tauri/ -> deployment/.
The public/ -> dist/ rename the Driver asked about is NOT here: after seeing the
measured blast radius (855 tracked files, 54 source refs, and public/ is the
served web-root four consumers point at) the Driver withdrew it - 'keep the
public folder the same'.
Path references were rewritten mechanically (258 across 87 files), but three
classes needed hand fixes because a prefix regex cannot see them:
- join(ROOT,'docs',...) in 10 internal scripts - a quoted SEGMENT, not a prefix
- tauri frontendDist '../public' -> '../../public', since src-tauri is now one
level deeper; check:tauri caught this exactly as the card predicted
- the WordPress contract test's dirname(__DIR__,2) -> 3, same reason
Also reverted one over-reach: the rewrite renamed a FINDING-CATEGORY label
'docs' in public-hygiene-check.mjs, which is a rule name in its own header, not
a path.
Verified: full build ALL GUARDS PASS, SRI consistent; check:tauri, check:mobile
(cap sync + webDir OK), check:wp-embed, quoted-scripts, capability-citations,
capability-exemplars, library-index, public-hygiene, parse and drop all pass.
39 lines
2.9 KiB
JSON
39 lines
2.9 KiB
JSON
{
|
|
"appId": "life.doxa.maps",
|
|
"appName": "Doxa Maps",
|
|
"//webDir": [
|
|
"webDir = ./public \u2014 THE CDN WEB-ROOT. It is a POINTER, NOT A COPY.",
|
|
"public/ is the single SERVED SURFACE, so the bundler IS the CDN: it serves its own bundles AND",
|
|
"non-bundle assets (brand/logos, vendored libs, fonts) that belong to no single bundle.",
|
|
" public/doxa-maps/<bundle>/ built bundles (vite outDir app/ + copied here by the build config's paths)",
|
|
" public/assets/brand/ logos and brand imagery",
|
|
" public/assets/vendor/ self-hosted libs (e.g. mapbox-gl) \u2014 no CDN, per the no-CDN rule",
|
|
" public/assets/fonts/ Bebas Neue / Poppins (both SIL OFL, so self-hostable)",
|
|
"ONE build, THREE consumers, all reading THIS root:",
|
|
" 1. Railway / CDN \u2014 serve public/ statically; partner sites embed from stable URLs",
|
|
" 2. Capacitor \u2014 this webDir; `cap sync` copies public/ into deployment/capacitor/android/app/src/main/assets/public/",
|
|
" 3. local staging \u2014 `bun run serve` (public/ on :4173)",
|
|
"NOTE the drop-portability gate still governs what goes INSIDE a bundle: bundle-internal refs must stay",
|
|
"RELATIVE. public/ is the HOST root, which is a different layer \u2014 putting shared assets here does not",
|
|
"make a bundle root-relative, so the gate stays green.",
|
|
"\u26a0\ufe0f SOFT FAILURE: a wrong webDir yields an EMPTY assets/public and a BLANK WHITE SCREEN at launch, not an",
|
|
"error. After every sync, verify deployment/capacitor/android/app/src/main/assets/public/index.html exists (`bun run cap:verify`)."
|
|
],
|
|
"webDir": "public",
|
|
"server": {
|
|
"//": [
|
|
"Capacitor defaults are deliberately kept: iosScheme 'capacitor', androidScheme 'https', hostname",
|
|
"'localhost'. Do NOT set a custom scheme \u2014 Capacitor docs warn that as of WebView 117 custom schemes",
|
|
"cannot change the URL path and can break routing. Do NOT set server.url either; that is documented as",
|
|
"live-reload/dev only, not production.",
|
|
"CONSEQUENCE FOR US: the app origin is https://localhost, so the doxa.life token endpoint (tokenUrl) must",
|
|
"send CORS headers permitting that origin. This is the single most likely runtime surprise, and the fix is",
|
|
"a response header on doxa.life \u2014 not a change here."
|
|
],
|
|
"androidScheme": "https"
|
|
},
|
|
"android": {
|
|
"//": "Native project lives in ./capacitor/android and is COMMITTED \u2014 `cap add` scaffolds it ONCE, then it is hand-edited source (manifest, icons, versionCode). It sits under deployment/capacitor/ rather than app/ because app/ is the BUNDLE OUTPUT tree: this repo emits several kinds of product, and Capacitor is one facet of them, not the whole. Only app/src/main/assets/public/ is generated and gitignored. An iOS project would join it at deployment/capacitor/ios (ios.path), scaffolded on a Mac.",
|
|
"path": "deployment/capacitor/android"
|
|
}
|
|
}
|