Changelog
Changelog
Release records for the LocusVia platform. Each entry states its own status — staging evidence, release records, and pending acceptance — without claiming anything the source record does not.
2026-08-08
Blog Launch
PUBLISHED ON STAGING — CONTENT AND INFRASTRUCTURE CHANGE
- Launched /blog with a markdown-single-source pipeline: posts live in docs/blog/*.md and render through /blog/<slug> routes.
- Published two posts: the enterprise deep-linking platform architecture view and the Firebase Dynamic Links replacement path.
- Added sitemap.xml and robots.txt, and linked the blog from the marketing navigation and llms.txt.
- Marketing claims gate now scans blog posts: every numeric claim must cite a public proof URL (scripts/marketing-claims-registry.json).
2026-07-28
RWG UAT Release Record
HTTP-READY ON STAGING — SIGNED-APP, PHYSICAL-DEVICE, AND RWG-OWNER ACCEPTANCE PENDING
- Released configuration for tenant rwg / env rwg-uat / domain rwg-uat with an immutable release receipt (release 43e04a6e, status live) and manifest digest.
- iOS publishes app ID 9W4L5453R9.com.rwgenting.graviton; Android publishes package com.rwgenting.graviton with its SHA-256 fingerprint.
- Both platforms publish the narrow path set /home, /rewards, /booking, /ewallet, /ewallet/topup, /trips, /test/welcome, /offers/*.
- All released links and platform targets use an explicit web fallback to https://uat-web-commerce.rwgenting.com/; platform store bindings remain null.
- Public verification: AASA and Asset Links return 200 with the exact identities, desktop /home 302s to the web fallback, Android /ewallet/topup and iOS /offers/123 serve app-open pages, unknown paths return 404.
- A real desktop browser rendered the Resorts World Genting site via /home. Installed-app behavior and named owner sign-off remain separate exit evidence.
2026-07-28
Fallback Routing Contract Update
DOCUMENTATION UPDATE — NO STAGING OR PRODUCTION DEPLOYMENT CLAIMED
- Documents the fallback-routing contract: each Link has one fallback destination mode — web or store.
- Store URLs resolve from tenant- and environment-scoped Domain + App Platform bindings, not arbitrary per-Link strings.
- Versioned Fallback Policies can match platform, source, country, SDK App ID, App Platform ID, or a named query parameter, with exact equals / not_equals comparisons.
- Open-redirect protection: client-controlled redirect/url parameters are rejected as destinations, and regex or arbitrary JSON expressions are not supported.
- Publishes the release acceptance list for the contract, including fail-closed store bindings and no-store-for-web mode.
2026-07-10
v0.1.0-rc3 Staging Evidence
RC3 WORKER DEPLOYED TO STAGING AND PRODUCTION — PRODUCT LAUNCH NO-GO
- Staging migration 0008 applied with pre-migration export captured; no pending staging migrations after deploy.
- Staging checks passed: AASA and Asset Links serve the configured platform identities, mobile /welcome shows an interstitial with no automatic custom-scheme click, and the store fallback timer resets on a manual app-open attempt.
- Production Worker deployed from the v0.1.0-rc3 tag with release checks and a production-bindings dry-run passing beforehand.
- Immediate post-deploy smoke passed: root, AASA, and Asset Links return 200, unique unknown slugs return 404, unauthenticated admin analytics returns 401.
- Product launch remains blocked: real app store identities, authenticated admin/SDK fixtures, signed-device proof, and permanent monitoring with alerts were all absent at release time.
2026-07-08
v0.1.0-rc1 Release Evidence
RELEASE CANDIDATE TAGGED — NO PRODUCTION DEPLOY RUN
- v0.1.0-rc1 tagged at commit 62e3923 with release checks passing on main.
- Production dry-run passed against production bindings (locusvia-db, ASSOCIATIONS, Analytics Engine, Durable Objects EventStream and SdkAbuseLimiter).
- Production build upload sized at 1747.09 KiB (368.58 KiB gzip).
- No production migration or production deploy was run as part of the RC1 tagging and evidence work.
For how the platform is built, see system documentation. For live reliability, see status.