Skip to content

v29.7.3

Choose a tag to compare

@Phinetwork Phinetwork released this 21 Dec 02:13
· 58 commits to main since this release
f99029e

Release Notes — v29.7.2 (Sovereign Gate / ΦNet PWA + Sigil Explorer Breath-Sync Hardening)

🔥 Highlights

  • Breath-cadenced global sync (LAH-MAH-TOR): SigilExplorer now runs on a true inhale/exhale lifecycle with φ-pulse cadence (~5.236s) and Kai-time deterministic ordering (pulse/beat/step), not Chronos sorting.
  • Sharing + routing made “real-world safe”: Legacy stream routes and short token routes normalize cleanly so links actually survive copy/paste + mobile share surfaces.
  • PWA stability & speed upgrades: Service worker behavior, precache guarantees, and “first paint” performance have been tightened so the app feels instant and stays reliable offline.

✅ What’s New

1) SigilExplorer v3.10.7 — LAH-MAH-TOR Breath Sync (Mobile Scroll Stability Hardening)

  • On OPEN behavior is sealed:

    • Inhale: push everything local → API
    • Exhale: pull anything new ← API
  • Every φ-pulse (~5.236s):

    • inhale (flush) + seal-check + exhale (pull-if-changed)
  • No double adds:

    • URL-level registry is a Map
    • UI dedupes by content identity
  • Remote echo-loop prevention:

    • Remote imports do not re-inhale automatically (prevents feedback loops)
  • Deterministic ordering is Kai-only:

    • Ordered by Kai pulse/beat/stepIndex
    • No Chronos ordering used anywhere in the canonical flow
  • Stream view normalization baked in:

    • Any /stream/p/<token> (or /p~<token>) is displayed/opened as /stream#p=<token>
    • Copy/Open always uses the working normalized format

2) Router normalization — legacy hash → canonical stream open

  • Added/strengthened rewriting so older link forms don’t fragment the UX:

    • #/stream/p/<token>?add=... → canonical #-based open flow
    • Short token route support aligned with your SMS-safe strategy (/p~<token>)
  • Net result: links remain stable across browsers, mobile share sheets, and copy/paste contexts.


3) App shell performance hardening (instant first paint + heavy UI deferred)

From your App.tsx work today:

  • Instant first paint strategy:

    • Heavy modules are code-split
    • Suspense fallback stays null/blank spacer (no “fake loading splash”)
  • Homepage splash killer behavior preserved:

    • Boot overlays don’t block /
  • Warm timer fix:

    • warmTimer not defined → resolved using a ref-based timer
  • SW warming is disciplined:

    • runs idle-only
    • re-warms on focus
    • abort-safe
    • respects Save-Data / 2G style constraints

4) Lazy route prefetching — real UX speed (without jank)

  • Prefetch targets were defined for the routes you’re actually using:

    • SigilFeedPage
    • SigilPage
    • PShort
    • VerifyPage
    • VerifierStamper
  • Result: navigation feels “already loaded” without forcing upfront bundle weight.


5) PWA build pipeline tightening — version + asset correctness

Based on the Vite/plugin work you showed today:

  • Build version stamping uses package version + commit SHA (when present), producing a stable VITE_APP_VERSION style identity for deploys.
  • Static PWA assets explicitly tracked (ex: offline.html, manifest.json, favicon.ico) to avoid “it works on desktop but not on mobile PWA” cache divergence.
  • Overall goal achieved: assets and SW stay in sync across releases, preventing “ghost lag” from stale worker/caches.

🛠 Fixes

  • Service Worker correctness preserved as a hard invariant:

    • /sw.js and (if present) /service-worker.js must return JavaScript (not HTML via SPA fallback).
  • Mobile stability improvements:

    • Reduced-motion compatibility + splash phase logic (show → fade → hidden) avoids iOS reflow/jank patterns.
  • Share-path survivability:

    • The /p~<token> direction aligns with your goal of not breaking in SMS/iMessage contexts and keeps sharing viable even when long payload URLs glitch.

⚡ Performance & UX Impact

  • Perceived speed: faster first meaningful paint + smoother route transitions via prefetch.
  • Deterministic rendering: one canonical view per payload, even if multiple URL variants exist.
  • Offline/PWA snappiness: reduced cache mismatch risk by making build output + worker identity consistent.

🔁 Upgrade / Compatibility Notes

  • Old links are still supported, but canonical output is normalized:

    • Canonical open/display: /stream#p=<token>
    • SMS-safe short form supported: /p~<token>
  • If any external posts still point to /stream/p/<token>, they will still resolve, but UI will “snap” to the canonical format for consistency.


✅ Verification Checklist (v29.7.2)

Run this exactly after deploy:

  1. Service worker endpoints
  • Open: /sw.js
  • Open: /service-worker.js (if you expose it)
    Confirm response is JS, not HTML.
  1. Fresh install
  • Incognito → load app → confirm SW installs + claims clients.
  1. Offline truth
  • Load once → toggle offline → navigate to core routes → confirm cached views load.
  1. Route normalization
  • Test these inputs:

    • /stream/p/<token>
    • /p~<token>
    • #/stream/p/<token>?add=...
  • Confirm they resolve and end up opening as:

    • /stream#p=<token>
  1. Breath cadence behavior
  • Open SigilExplorer and watch:

    • immediate inhale → exhale
    • repeating φ-pulse cycle (~5.236s)
    • no duplication in UI when URL variants exist

What's Changed

New Contributors

Full Changelog: v29.6...v29.7.3