Files
aia-website/www/reports/phase-9-form-a-default-live-2026-10-30.md

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_MODE supports live, off, mock. Absent, empty or whitespace-only mode defaults to live. Invalid explicit values, including isolated-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.example and current operating instructions. No replacement gate exists.
  • One typed registry fixes 16 route/locale/context triples. The ID and origin remain 262946078314059 and https://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. /referrals and 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-test build: 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 --check pass. 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.example
  • www/README.md
  • www/integrations/employee-portal/README.md
  • www/integrations/jotform/README.md
  • www/reports/SESSION_HANDOFF.md
  • www/reports/phase-10-technical-readiness-package-2026-10-22.md
  • www/reports/phase-9-contabo-deployment-readiness-2026-10-21.md
  • www/reports/phase-9-drawer-portal-corrections-2026-10-30.md
  • www/reports/phase-9-form-a-consultation-isolated-test-2026-10-29.md
  • www/reports/phase-9-form-a-default-live-2026-10-30.md
  • www/reports/phase-9-jotform-implementation-plan-2026-10-18.md
  • www/reports/phase-9-jotform-integration-contract-2026-10-18.md
  • www/reports/phase-9-jotform-verification-checklist-2026-10-18.csv
  • www/reports/phase-9-service-portal-consolidated-2026-10-30.md
  • www/reports/phase-9-two-form-integration-specification-2026-10-28.md
  • www/src/components/ContactForm.astro
  • www/src/components/FormAPreview.astro
  • www/src/components/FormShell.astro
  • www/src/components/JotformIframe.astro
  • www/src/components/ServiceInquiryDrawer.astro
  • www/src/components/campaign/ConsultationForm.astro
  • www/src/components/campaign/EarlyInterventionPage.astro
  • www/src/components/pages/ContactPage.astro
  • www/src/components/pages/EmployeePortal.astro
  • www/src/scripts/service-inquiry.ts
  • www/src/utils/form-integration.ts
  • www/src/utils/portal-input.mjs
  • www/tools/campaign.test.mjs
  • www/tools/jotform-consultation-browser.mjs
  • www/tools/jotform-form-a-browser.mjs
  • www/tools/jotform-form-a-real-iframe-sizing.mjs
  • www/tools/jotform-form-a.test.mjs
  • www/tools/library.test.mjs
  • www/tools/phase10-artifact-verify.mjs
  • www/tools/phase10-artifact.test.mjs
  • www/tools/phase10-browser-regression.mjs
  • www/tools/phase9-nonproduction.test.mjs
  • www/tools/publication.test.mjs
  • www/tools/seo.test.mjs
  • www/tools/service-portal-browser.mjs
  • www/tools/service-portal.test.mjs