13 KiB
Phase 9 — Default-live Form A simplification
Recorded: 2026-10-30 UTC. This is an owner-authorized architectural revision, not a site-cutover or deployment authorization.
Baseline and authority
Started on faithful-astro-migration at pushed checkpoint
55adb797051473c3067a0d454515153237e9b8d6
(fix(forms): close completed drawers and restore portal styling). The tracked
working tree and index were clean. This work is a new descendant checkpoint;
the pushed commit is not amended, rebased or reset.
The owner explicitly authorizes working Form A on publicly reachable
https://aia.web3app.dev/, with owner-controlled test notifications and cleanup.
No extra hostname, environment-role, password or approval gate is introduced.
Earlier isolated-test/seven-route production-gate reports retain their original
results and now link to this superseding decision.
Implementation
PUBLIC_AIA_FORMS_MODEsupportslive,off,mock. Absent, empty or whitespace-only mode defaults to live. Invalid explicit values, includingisolated-test, stop configuration with instructions to remove the obsolete value or choose a supported mode.- Removed the five former form approval/environment variables from active code,
.env.exampleand current operating instructions. No replacement gate exists. - One typed registry fixes 16 route/locale/context triples. The ID and origin
remain
262946078314059andhttps://form.jotform.com. No visitor input, arbitrary origin, service preselection or extra query parameter is accepted. - Indexing is independent: both publication modes contain the same ten immediate frames and six deferred drawer URLs. Publication metadata and content are unchanged.
- Native inactive/mock surfaces remain separate from the real iframe adapter.
/referralsand future Form C cannot activate through live mode. - Live drawers retain four-second OR 50%-scroll opening, first-trigger wins, global 30-day dismissal/success suppression, manual CTA override, deferred iframe loading, native dialog focus/Escape/backdrop handling and reduced motion. Off mode stops automatic inactive drawers; CTA navigation remains usable.
- Verified completion handling is unchanged: exact origin, actual activated/open iframe window, correct form ID/action, idempotence, localized acknowledgment, full five-second interval, slide-out and focus restoration. A later manual reopening after completion gets a fresh iframe. No load/click is success.
- Shared iframe heights, sandbox, no-referrer, fixed URLs, 15-second conditional hosted fallback and localized noscript fallback remain unchanged.
- Employee portal no longer reads the retired form environment variable. It still requires its own explicit approval, a valid private ciphertext input and explicit non-indexing preview setting. Normal builds contain no private payload. Decryption, sanitized rendering, styles, SOPS and private resources are unchanged.
Approved placements
| Route | Locale | Context | Loading |
|---|---|---|---|
/contact |
en | contact | immediate |
/es/contact |
es | contact | immediate |
/lp/aba-therapy |
en | landing | immediate |
/lp/aba-insurance |
en | landing | immediate |
/lp/aba-ahcccs |
en | landing | immediate |
/lp/aba-private-pay |
en | landing | immediate |
/lp/early-intervention |
en | landing | immediate |
/client-consultation |
en | consultation | immediate |
/es/client-consultation |
es | consultation | immediate |
/schedule-consultation |
en | consultation | immediate |
/aba-therapy |
en | consultation | deferred drawer |
/autism-evaluations |
en | consultation | deferred drawer |
/learner-social-club |
en | consultation | deferred drawer |
/es/aba-therapy |
es | consultation | deferred drawer |
/es/autism-evaluations |
es | consultation | deferred drawer |
/es/learner-social-club |
es | consultation | deferred drawer |
Each URL is https://form.jotform.com/262946078314059?formContext=CONTEXT&language=LOCALE
with the exact fixed values above. The six deferred frames do not have src
until the drawer opens. Academy copy remains typed but has no published placement.
Validation
- Astro check: 151 files, zero errors, warnings or hints. Each real build also executes Astro check through the existing npm script.
- Complete sequential test run: 206 passed, 0 failed/skipped, including Markdown, publication, SEO, Library, routes, campaign, preview, Form A, counter/form isolation, artifact integrity and service/portal tests.
- Initial consolidated run: 205/206. A campaign section-count assertion needed to exclude the nested shared iframe section while preserving the original seven page sections. Corrected the selector; focused rerun and full rerun pass.
- Library/SEO off-mode presentation fixtures now explicitly select
off, preserving their existing localization assertions. Publication fixtures deliberately test the empty/default-live mode in both publication configurations. - Links: 0 broken internal links. Images: 0 missing mapped images. Blog: 0 failures.
- Invalid
PUBLIC_AIA_FORMS_MODE=isolated-testbuild: rejected with actionable guidance, as expected. Default build restored afterward. - Ordinary
npm run dev: eight representative contact, landing, consultation and EN/ES service routes returned default-live markup using loopback HTTP only. The npm launcher detached its managed server; the initial process-group cleanup returned ESRCH, so the identified task-owned server was stopped directly. - Markdown local links/fences, checklist column/ID consistency and
git diff --checkpass. Historical evidence is retained; no current-source reconciliation claim is made from an older fingerprint, and no historical JSON was regenerated.
| Built artifact | HTML routes | Sitemap URLs | Hreflang links | Immediate/deferred Form A | Result |
|---|---|---|---|---|---|
| Normal staging, default live | 128 | 0 | 0 | 10 / 6 | Pass |
| Indexing enabled, default live | 127 | 109 | 180 | 10 / 6 | Pass |
| Staging, explicit off | 128 | 0 | 0 | 0 / 0 | Pass |
| Staging, explicit mock | 128 | 0 | 0 | 0 / 0 | Pass |
Staging remains noindex,nofollow; /lp review index appears only there.
Indexing preserves author/campaign exclusions and translation architecture.
Artifact unit fixtures additionally test off/mock against both publication modes,
reject unknown destinations and premature drawer sources, and reject private
portal payloads/resources, extra form IDs, API origins and tracking signals.
No normal artifact contains active native lead-form actions or portal ciphertext.
Guarded Chromium 149.0.7827.55 evidence (temporary, not committed screenshots):
| Harness / artifact | Checks | Attempted Jotform GETs, intercepted locally | Evidence directory |
|---|---|---|---|
| Service/portal, default live | 47 | 37 | /tmp/aia-service-portal-eOmGmZ |
| Contact/landing, default live | 35 | 38 | /tmp/aia-form-a-iframe-5439e1 |
| Consultation, default live | 45 | 40 | /tmp/aia-form-a-consultation-ZzxRRB |
| Service/portal, off | 18 | 0 | /tmp/aia-service-portal-IkEh6j |
| Contact/landing, off | 28 | 0 | /tmp/aia-form-a-iframe-z838nC |
| Service/portal, mock | 18 | 0 | /tmp/aia-service-portal-KxmUhB |
| Contact/landing, mock | 28 | 0 | /tmp/aia-form-a-iframe-cetW0I |
Live coverage includes 320/390/768/1440px, all 16 placements, exact URLs, localized titles, delayed/late-load fallback, no-JavaScript, keyboard/dialog behavior, trigger/suppression lifecycle, five-second verified-message handling, duplicate/wrong messages, fresh-frame reopening and both encrypted synthetic portal views. Off/mock drawer checks cover all six routes at 390/1440px; off CTAs navigate and do not auto-open, mock retains its synthetic drawer behavior.
The all-route guarded pass separately opened 128/128 staging routes with no
failures or JavaScript exceptions. It recorded 10 approved Form A GET attempts,
all blocked before transmission, and four blocked existing non-form resources.
Evidence: /tmp/aia-phase10-browser-zjwRCA. These counts overlap the focused
checks and are not additional unique routes. Every external request was blocked
or fulfilled locally; zero real Jotform submissions, production API requests,
analytics or advertising requests were sent. Existing map/resource attempts are
recorded separately from approved Form A attempts. Real provider behavior,
Firefox and human screen-reader acceptance were not reproduced.
Operator workflow
From www/, with no Form A environment overrides:
npm run dev
# Or build and inspect local static output:
npm run build
node tools/phase10-artifact-verify.mjs --mode=staging --forms=live
npm run preview -- --host 127.0.0.1
Both ordinary commands enable Form A. No deployment was performed. Remove stale
isolated-test values from local .env files if the actionable error appears.
Remove unused former approval/environment variables; they are not recognized gates.
# Indexing changes publication only:
PUBLIC_ALLOW_INDEXING=true npm run build
node tools/phase10-artifact-verify.mjs --mode=indexing --forms=live
# Explicit form rollback/offline artifact:
PUBLIC_AIA_FORMS_MODE=off npm run build
node tools/phase10-artifact-verify.mjs --mode=staging --forms=off
# Synthetic local fixtures:
PUBLIC_AIA_FORMS_MODE=mock npm run dev
# Restore ordinary staging output:
npm run build
For service acceptance, use a fresh browser profile or remove only the
aia:service-inquiry:auto-suppressed-until test preference. On EN/ES service pages,
verify four-second/half-scroll opening; after dismissal, automatic opening stays
suppressed while the existing CTA reopens manually. With JavaScript disabled or
forms off, the CTA remains a consultation-page link. Do not clear unrelated storage.
Remaining owner acceptance and boundaries
Owner-controlled real submissions must verify the provider's actual completion message and thank-you behavior. Automated fixtures validate the parent code, not Jotform delivery. The Spanish seven-option consultation dropdown remains a Builder translation/Update Options diagnostic; Astro supplies only fixed context and language and cannot modify the cross-origin options. No Jotform settings changed.
Final fluent-language, screen-reader, all-route responsive/keyboard, runtime telemetry/privacy, HTTPS-host and notification-recipient operational acceptance remain distinct from this owner-authorized default-live architecture. Historical owner-reported direct and sampled embedded functional acceptance is preserved. Form C creation/integration, counter activation, analytics and advertising remain separate work. Site cutover, private portal serving and infrastructure activation are not authorized.
No submissions, account mutations, API calls, deployment, push or infrastructure
changes occurred. The accepted Jotform CSS backup is unchanged. Protected merge-plan.md,
reconciliation archives and private portal collection were not read or changed.
Final artifact integrity
Normal default-live staging restored: 410 files, aggregate SHA-256
cd042f9f6c27574e458223a73625f28e56b4bb964f7faf4cdb53a40acb19a4db. This hashes only generated public output; it is not a production-release approval.
Exact checkpoint path inventory
All paths below belong to this focused revision. Source changes remove form gates and decouple portal input; no content or accepted Jotform CSS was edited. The only new file is this report.
www/.env.examplewww/README.mdwww/integrations/employee-portal/README.mdwww/integrations/jotform/README.mdwww/reports/SESSION_HANDOFF.mdwww/reports/phase-10-technical-readiness-package-2026-10-22.mdwww/reports/phase-9-contabo-deployment-readiness-2026-10-21.mdwww/reports/phase-9-drawer-portal-corrections-2026-10-30.mdwww/reports/phase-9-form-a-consultation-isolated-test-2026-10-29.mdwww/reports/phase-9-form-a-default-live-2026-10-30.mdwww/reports/phase-9-jotform-implementation-plan-2026-10-18.mdwww/reports/phase-9-jotform-integration-contract-2026-10-18.mdwww/reports/phase-9-jotform-verification-checklist-2026-10-18.csvwww/reports/phase-9-service-portal-consolidated-2026-10-30.mdwww/reports/phase-9-two-form-integration-specification-2026-10-28.mdwww/src/components/ContactForm.astrowww/src/components/FormAPreview.astrowww/src/components/FormShell.astrowww/src/components/JotformIframe.astrowww/src/components/ServiceInquiryDrawer.astrowww/src/components/campaign/ConsultationForm.astrowww/src/components/campaign/EarlyInterventionPage.astrowww/src/components/pages/ContactPage.astrowww/src/components/pages/EmployeePortal.astrowww/src/scripts/service-inquiry.tswww/src/utils/form-integration.tswww/src/utils/portal-input.mjswww/tools/campaign.test.mjswww/tools/jotform-consultation-browser.mjswww/tools/jotform-form-a-browser.mjswww/tools/jotform-form-a-real-iframe-sizing.mjswww/tools/jotform-form-a.test.mjswww/tools/library.test.mjswww/tools/phase10-artifact-verify.mjswww/tools/phase10-artifact.test.mjswww/tools/phase10-browser-regression.mjswww/tools/phase9-nonproduction.test.mjswww/tools/publication.test.mjswww/tools/seo.test.mjswww/tools/service-portal-browser.mjswww/tools/service-portal.test.mjs