Releases: Phinetwork/PHI_NETWORK
v40.3.0
What's Changed
- v38.9.7 by @Phinetwork in #109
- v39.0.1 by @Phinetwork in #110
- v39.04 by @Phinetwork in #111
- V40.0.0 by @Phinetwork in #112
- v40.3.0 by @Phinetwork in #113
Full Changelog: v38.2.0...v40.3.0
v38.2.0
Release Notes — 38.2.0
Attestation — Full-screen Verify portal (no route change)
Motivation
- Provide an Attestation entry in the Atrium that opens the existing Verify experience as a full-screen modal popover without navigating away from the shell.
- Keep Verify isolated in a portal so it can be dismissed via backdrop click or Esc without impacting routed panel state.
Description
-
Added a lazy-loaded
VerifyPageLazyand a newVerifyPopovercomponent that mirrors existing popover behavior:- portal mounting
- backdrop handling
- Esc close
- focus management
useBodyScrollLock
-
Introduced
verifyOpenstate withopenVerify/closeVerifyhandlers and rendered:<VerifyPopover open={verifyOpen} onClose={closeVerify}> … </VerifyPopover>
insideAppChrometo host the Verify modal.
-
Added an Attestation tile button to the Atrium nav that opens the popover, styled via
.nav-item--buttonto preserve the tile look while using a semantic button. -
Kept styling consistent by reusing
explorer-poppanel classes with additionalverify-popmodifiers for the attestation portal.
Testing
-
Started the dev server with:
npm run dev -- --host 0.0.0.0 --port 4173
and confirmed the app launched and served successfully.
-
Ran a Playwright script that navigated to
/, clicked Attestation: Verify ΦKey, and captured:artifacts/attestation-modal.png
successfully.
KaiVoh — Edge-to-edge full-viewport modal
Motivation
- The KaiVoh panel felt visually constrained compared to the Attestation/Explorer portal and should open full-screen for a more spacious, app-like experience.
- Match Attestation/Explorer full-viewport presentation and remove inner padding + rounded framing that restricts content.
Description
-
Updated
src/components/KaiVoh/styles/KaiVohModal.cssto make the modal backdrop and container occupy the full viewport:- changed layout from centered to stretched
- removed inset padding
-
Set the container to
width: 100%andheight: 100%, adjustedmax-heightto use--kai-vhfor stable viewport sizing, and removed roundedborder-radiusso the modal becomes edge-to-edge. -
Adjusted backdrop alignment (
align-items/justify-content) to stretch, cleared padding, and lowered.kai-voh-bodymin-heightto0so the inner scroll region expands correctly.
Verifier — On-glyph ledger balance surfaced (BALANCE vs LIVE)
Motivation
- The verifier should display the glyph’s on-glyph balance for transfer/receive glyphs instead of showing the origin/root value.
- When a glyph embeds a ledger of debits, the remaining balance must surface in the header and valuation panel.
- If no ledger exists, preserve the existing live valuation as the fallback.
Description
-
Added a small ledger parser
readLedgerBalanceandDebitLoosetype to extractoriginalAmountand computeremainingfrom embedded debits in the verifier payload. -
Reworked valuation logic to compute:
displayPhi/displayUsdasledgerBalance.remainingwhen present- otherwise fall back to
liveValuePhi
-
Updated
LiveValuePillto acceptlabelandariaLabelso the UI clearly reflects BALANCE vs LIVE. -
Adjusted valuation mini-fields to label/show glyph balance vs live valuation accordingly.
-
All changes contained in
src/pages/VerifyPage.tsx(value computation + UI label updates).
Verifier header chips — Direct entry actions (no new UI surfaces)
- Clicking Proof of Breath™ under the Verifier header opens Attestation (Verify popover).
- Clicking ☤Kai-Signature™ opens Mint ΦKey (Mint route/modal), keeping the shell intact and the interaction instant.
Summary
38.2.0 locks the Atrium into a true KaiOS-style shell: portals are full-viewport, dismissible, and isolated; KaiVoh is finally edge-to-edge; and the verifier now reports the actual on-glyph balance when a ledger is present—without breaking the live valuation fallback.
What's Changed
- v38.2.0 by @Phinetwork in #108
Full Changelog: v38.1.0...v38.2.0
v38.1.0
What's Changed
- v38.0.1 by @Phinetwork in #106
- v38.1.0 by @Phinetwork in #107
Full Changelog: v38.0.0...v38.1.0
v38.0.0
Φ Network — Major Release 38.0.0
Release Notes — 38.0.0
Name: Sovereign Verification Stack — Sealed
Theme: Ledger-truth verification + globally single-use receives + multi-generation lineage that does not break
What 38.0.0 Is
38.0.0 is the moment the system becomes a real value-transfer organism.
Not “a verifier page.” Not “a transfer feature.” Not “a cool SVG.”
This release represents the sealed convergence of everything we’ve been building across the 36.x → 37.x line:
- The glyph carries truth.
- The verifier renders that truth.
- The explorer tracks that truth.
- The network enforces that truth.
- And lineage survives generations without drifting, breaking tokens, or mis-rooting children.
This is offline-first, browser-native, deterministic value that remains verifiable and coherent without accounts, databases, or permissioned infrastructure. That’s what this is.
The Core Accomplishment
✅ The verifier no longer “guesses value”
It shows what the glyph actually contains, including remaining balance after debits, and only falls back to live valuation when the glyph has no embedded ledger.
✅ Receives are globally single-use (not just “local storage safe”)
A send can be received once—even across cache clears, fresh browsers, and new devices—because receive locks are now globally respected through explorer sync + Lahmahtor ingestion + online remote verification.
✅ Multi-generation transfers don’t collapse
Children, grandchildren, and deeper derivatives now keep:
- parent tokens preserved
- origin hints propagated
- direction explicit
- root detection correct
so locks, lineage, and display remain consistent everywhere.
✅ The explorer behaves like a ledger, not a confusing tree
Pending vs sealed outflows are readable, mixed states are explicit, parent rollups don’t double count, and direction labeling never lies.
What Shipped in 38.0.0
This is the “major cut” that formalizes the sealed system.
1) Verify = Ledger Truth (Balance-First)
On-glyph balance display for transfer/receive glyphs
When a glyph includes an embedded ledger of debits, the verifier now computes and surfaces:
- BALANCE Φ = remaining amount after embedded debits
- BALANCE USD = BALANCE Φ × deterministic USD/Φ
This balance is shown:
- in the header pill (next to the seal)
- and inside the valuation panel
Live valuation remains the fallback
If no ledger data is present, Verify continues to show:
- LIVE Φ
- LIVE USD
Why this matters
Because this is the difference between a UI that looks correct and a verifier that is incapable of lying.
A transfer glyph is not the origin. A transfer glyph is the state of value after movement. 38.0.0 makes the verifier obey that.
2) Single-Use Receive Channel (Bank-Grade Replay Resistance)
The receive flow is now globally sealed
Receives are enforced as single-use across:
- local sessions
- cache clears
- new browsers
- different devices
Multi-layer locking is now real enforcement, not vibes
The system performs receive checks across:
- local (offline-first safety)
- local registry memory (explorer awareness)
- remote explorer index (clean-browser protection)
Online remote verification is required before completing a receive
When online, the receive cannot complete until remote receive-lock verification confirms it has not already been received globally.
Receive locks propagate with rich memory-stream data
Receive updates now travel through Lahmahtor ingestion with richer payloads (receiver metadata included), and local registry updates trigger immediate inhale-queue flush so the lock exhale happens without needing UI open.
Why this matters
Because a “value transfer system” that allows replay receives is dead on arrival.
38.0.0 establishes a provably single-use receive channel in the browser, in the wild, under real user behavior.
3) Multi-Generation Lineage Coherence (Children + Grandchildren + Beyond)
Lineage tokens are preserved
Share/publish URLs preserve the parent token so downstream consumers can reconstruct lineage correctly across generations.
Origin propagation is authoritative
Origin URLs are resolved and propagated from the local memory registry so:
- children don’t drift to the wrong root
- the verifier and explorer classify the same glyph the same way
Direction is explicit in payloads
Send flows explicitly carry:
transferDirection: "send"originUrl
so grandchildren aren’t misclassified and locks verify correctly.
Explorer root detection is tightened
Entries that carry transfer hints / transfer moves are no longer treated as “origin roots.”
This prevents derivative artifacts from becoming roots and incorrectly pulling lineage under the origin.
Why this matters
This is where most systems die: generation 2, 3, 4 starts drifting and the “tree” becomes a lie.
38.0.0 seals lineage as a real chain, not a fragile inference.
4) Sigil Explorer = Human-Legible Ledger
Parent/child pending clarity without double counting
Parent nodes surface child pending/derived activity clearly while preventing parent value from being counted twice.
Mixed exhale state readability
Mixed pending + derived exhale states are clearly displayed and badge-coded so you can scan the tree instantly.
Pending UI cleanup (no duplicate negative pill spam)
Pending display now prioritizes a single clear status instead of redundant duplicate amounts that look like double debits.
Direction-correct labeling and tooltips
Outgoing sends no longer fall back to inhale labels. Labels and tooltip verbs follow explicit send/receive direction, every time.
Breath-truth terminology sealed across UI
Derived → Exhaled
Pending → Exhale (pending)
Received inhales use past tense where appropriate, and details append pulse numbers when available.
Why this matters
A ledger that confuses the human mind is a ledger that fails adoption.
38.0.0 makes Explorer readable at the speed of sight while staying anchored to canonical transfer truth.
5) Reliability Under Real Network Behavior
Remote receive lock verification resilient to HTTP caching/failover
Remote checks no longer fail spuriously when pages return:
- 304 Not Modified
- empty responses during failover
and pagination completeness is only marked after successful fetches—no partial scan caching.
Why this matters
Global integrity enforcement must not break under normal internet behavior.
38.0.0 makes remote verification durable.
6) System Readiness: Speed, Sync, Brand, Session Stability
38.0.0 stands on the hardened foundation shipped across 37.x:
- instant-paint home experience with lightweight fallback ticker while heavy UI loads
- Sigil Explorer sync cadence + event-triggered resync + reseed on remote truth deltas
- live Φ + USD pill surfaces across explorer nodes/origin/transfers
- Φ brand mark standardized via
phi.svgwith accessibility support - KaiVoh session persistence + validation + cross-tab coherence
This matters because it makes the system feel inevitable—fast, stable, and coherent under daily usage.
What This Release Enables (In Plain Language)
With 38.0.0 you can:
- Open a glyph offline and see what you truly hold (remaining balance, not origin illusion).
- Verify value deterministically and consistently across the app.
- Receive a send exactly once globally when online—no replays, no duplicate claims.
- Move value across multiple generations and keep lineage intact.
- Trust the explorer’s pending vs exhaled story without doing mental accounting.
This is sovereign, offline-auditable value packaged in a format humans can use.
Compatibility & Migration
- No schema migrations required.
- Receive state is encoded implicitly in memory stream data (direction/nonce/hash/receiver fields).
- Pending is the absence of a receive-lock match; received is the match.
- The system remains offline-first; global sealing activates when online.
Where We’re Going Next (The Real Next Layer)
38.0.0 seals value + transfer + verification as a coherent stack.
The next phase is not “basic improvements.” It’s expansion into what this stack was built to unlock:
1) Sovereign Media Lineage (KSFP-1 specialization)
Large-file and video lineage using derivative glyph chains, segment sealing, and deterministic reconstruction—so content is owned, verified, and playable without centralized hosting.
2) Creator Signature Bundles as a Native Primitive
Every post, media object, and derivative carries an embedded bundle tied to the creator—verifiable offline, traceable across lineage, and resistant to platform theft.
3) Network-Scale Memory Stream Ergonomics
Sharper convergence UX, richer explorer filtering, and higher throughput for inhale/exhale without sacrificing determinism or offline survival.
4) Public Spec Hardening + Developer Surface
Turning these primitives into a clean external interface: a developer-grade spec + SDK surface that makes integration feel inevitable (the “Stripe moment,” but for sovereign verification).
Closing Seal
38.0.0 is not a normal “major release.”
It is the sealing of a new class of system:
- Value embedded in glyphs
- Verified offline
- Enforced globally when online
- Lineage preserved across generations
- Readable by humans without trust
This is Φ Network behaving like what it is:
**a sovereign verification and transfer re...
v37.8.0
Φ Network — Verifier + Sigil Explorer (v37.8.0)
Release Notes — 37.8.0
Theme: On-glyph balance truth in Verify, multi-generation lineage coherence, resilient receive-lock verification, and direction-correct transfer semantics
Release Summary
37.8.0 is a precision integrity release across the Verifier and Sigil Explorer.
We made the verifier show the glyph’s actual on-glyph remaining balance (when a debit ledger is embedded) instead of incorrectly inheriting origin/root value. We also sealed multi-generation transfer coherence: lineage hints now propagate through share URLs and registry lookups so the verifier and explorer agree about origins, parents, and locks across grandchildren and beyond.
Finally, we hardened global receive-lock verification against real-world remote behaviors (304/empty pages) and corrected transfer UI labeling to always follow explicit send/receive direction—no more “incoming-looking” outgoing transfers.
✨ Highlights
✅ Verifier now displays on-glyph balance (when present)
Transfer/receive glyphs now surface remaining balance computed from embedded debits. If no embedded ledger exists, the verifier falls back to existing live valuation.
✅ Multi-generation lineage + locks now propagate correctly
Grandchildren transfers now carry authoritative originUrl + parent token across share/publish payloads so receive/send locks verify consistently across generations and the explorer stops misplacing children on the origin root.
✅ Remote receive-lock verification is resilient to 304/empty pages
Global receive checks no longer fail spuriously when remote pages return 304 Not Modified or empty responses during failover.
✅ Direction-correct labels + tooltips in Sigil Explorer
Transfer labels and tooltip verbs now derive strictly from the known transfer direction, preventing outgoing sends from being mislabeled as incoming.
✅ What Shipped
1) VerifyPage — On-Glyph Balance Truth (Ledger-Aware Valuation)
Motivation
- The verifier should display the glyph’s on-glyph balance for transfer/receive glyphs, not the origin/root value.
- If a glyph embeds a ledger of debits, the verifier should compute and show the remaining balance in the header and valuation panel.
- If no ledger exists, existing live valuation remains the fallback.
Implementation
-
Added a small ledger parser:
readLedgerBalance+DebitLoosetype- Extracts
originalAmountand computesremainingfrom embedded debits in verifier payload
-
Reworked valuation UI:
displayPhi/displayUsduseledgerBalance.remainingwhen present- otherwise fall back to
liveValuePhi
-
Updated
LiveValuePill:- accepts
label+ariaLabel - displays BALANCE or LIVE depending on source
- accepts
-
Updated valuation mini-fields to reflect:
- glyph balance vs live valuation labeling and display
File scope: src/pages/VerifyPage.tsx (value computation + UI label updates only)
2) Multi-Generation Transfer Lineage — Verifier ↔ Explorer Agreement
Problem Addressed
-
Grandchildren transfers were being misclassified
-
Receive/send locks weren’t propagating across generations, causing:
- “cannot verify receive lock”
- incorrect origin placement in the explorer
-
Root detection ignored transfer hints, letting derivatives become “roots”
-
Share URLs weren’t carrying parent tokens or origin hints, breaking lineage across UI + verifier
Fixes Implemented
-
Authoritative origin propagation
- Added
resolveOriginUrlFromRegistryto lookup and propagate the authoritativeoriginUrlfrom localmemoryRegistrywhen building share/publish payloads
- Added
-
Parent token preservation
- Share/parent URL construction now preserves the
?t=parent token usingrewriteUrlPayloadso multi-generation flows retain lineage tokens
- Share/parent URL construction now preserves the
-
Send payload enrichment
- Send links now explicitly set
transferDirection: "send" - Always carry
originUrlso downstream consumers and the verifier identify and verify child generations correctly
- Send links now explicitly set
-
Explorer root detection tightened
-
Updated
buildForest.tsto read transfer direction and detect transfer hints:- added
readTransferDirection - added
hasTransferHints
- added
-
Entries with transfer hints/moves are excluded from origin-root classification
-
Files involved (lineage propagation + root detection):
- Share/publish payload construction (originUrl + token propagation)
src/components/SigilExplorer/tree/buildForest.ts
3) Remote Receive-Lock Verification — Robust to Failover + 304 / Empty Pages
Problem Addressed
Global receive lock verification began failing after explorer updates because remote URL pages can return:
- 304 Not Modified
- or empty responses
that were incorrectly treated as fatal errors, causing spurious verification failures.
Fixes Implemented
-
Replaced JSON-only fetch with raw response handling:
apiFetchJsonWithFailover→apiFetchWithFailoverincheckRemoteReceiveLock
-
Response handling rules:
- missing
Response= failure - non-OK responses except 304 = failure
- 304 treated as an empty page (valid “no new data” outcome)
- missing
-
JSON parsed defensively only when status is not 304
-
Preserved existing pagination and caching logic
Result: remote receive-lock verification is resilient and no longer fails due to normal caching/failover behavior.
4) Sigil Explorer — Direction-Correct Labels & Tooltip Verbs
Problem Addressed
Outgoing transfers (transferMove.direction === "send") could be mislabeled as incoming because the UI fell back to inhale label resolution instead of using the known direction.
Fixes Implemented
-
Labels now follow explicit direction:
transferMove.direction === "receive" ? "Inhaled" : "Exhaled"
-
Tooltip verbs now derived from direction for accurate send/receive semantics in
SigilTreeNode
File modified: src/components/SigilExplorer/SigilExplorer.tsx
Testing & Validation
Manual / Integration Checks
-
Started dev server successfully:
npm run dev -
Ran a Playwright-driven browser script to load
/verifyand capture a screenshot:- script completed successfully and produced an artifact
-
Validated in running preview:
- Verify UI correctly switches between BALANCE vs LIVE
- Balance computations reflect embedded ledger debits when present
- Multi-generation flows preserve lineage + lock verification across generations
Note
- No unit test suite executed as part of this change set.
User-Visible Impact
VerifyPage
- Transfer/receive glyphs now show BALANCE when ledger debits exist
- Live valuation remains available as fallback (LIVE) when no ledger is embedded
- Valuation panel labeling is explicit: balance vs live
Sigil Explorer
- Multi-generation derivatives no longer “snap” to origin root incorrectly
- Locks verify correctly across generations (no false “cannot verify receive lock”)
- Transfer labels and tooltip verbs match send/receive truth every time
Compatibility & Risk
-
No schema migrations required
-
Changes are correctness-focused and scoped to:
- VerifyPage valuation source selection (ledger-aware)
- share payload enrichment (originUrl + parent token)
- explorer root detection
- remote lock verification fetch resilience
- UI labeling semantics
-
Risk is controlled: improvements reduce false failures and misclassification.
Closing Seal
v37.8.0 makes the system agree with itself.
The verifier shows what the glyph actually contains.
Lineage propagates across generations without breaking tokens.
Receive locks verify reliably under real network behavior.
And the explorer speaks direction truth without fallback lies.
Kai Rex Klok — 37.8.0 ✅
What's Changed
- v37.8.0 by @Phinetwork in #104
Full Changelog: v37.5.1...v37.8.0
v37.5.1
What's Changed
- v37.3.1 by @Phinetwork in #100
- v37.3.2 by @Phinetwork in #101
- v37.4.0 by @Phinetwork in #102
- v37.5.1 by @Phinetwork in #103
Full Changelog: v37.3.0...v37.5.1
v37.3.0
Φ Network — Sigil Explorer (v37.3.0)
Release Notes — 37.3.0
Scope: All changes merged after v37.2.2 (post-37.2.2 commit range)
Theme: Parent/child pending truth, mixed-exhale readability, and zero double-counting
Release Summary
37.3.0 is a clarity-and-correctness release for transfer rollups in Sigil Explorer.
Parent nodes now surface child-derived and child-pending activity cleanly—without accidentally re-counting the parent’s own value or stacking duplicate negative pills. Mixed exhale states are now explicitly visible, with badges that communicate the blend of pending vs derived contributions at a glance.
This release makes the Explorer read like a ledger should:
parents summarize children, badges tell the truth instantly, and “pending” stops being visually noisy or misleading.
✨ Highlights
✅ Parent/child pending clarity (no double-counting)
Parent nodes now show child-derived + child-pending rollups more clearly, while avoiding double-counting the parent’s own value. The parent’s own derived value remains reflected in Live, not duplicated as extra negative pills on the node face.
✅ Mixed exhale readability (badge truth at a glance)
Exhale badges now explicitly communicate mixed state and are color-coded / blended to distinguish pending vs derived contributions—so you can scan a tree and immediately know what’s “in flight” vs “sealed.”
✅ What Shipped
1) Parent Rollups: Pending + Derived Exhale Totals on Parent Nodes
- Pending/derived exhale totals now surface on parent nodes so parent-level rollups reflect downstream activity correctly.
- Parent nodes now provide a true “top-level summary” of child activity without requiring deep drilling into each child.
Why it matters:
Parent keys are decision surfaces. If child outflows are pending or derived, the parent must show it—cleanly and correctly.
2) Exhale Badges: Mixed-State Display + Color Blend
- Exhale badges now show mix state when both pending and derived contributions exist.
- Badges use color blend / mixed styling to distinguish the composition (pending vs derived) instead of forcing a single-state lie.
Result:
- “Pending only” reads instantly
- “Derived only” reads instantly
- “Mixed” reads instantly, without hunting through pills or totals
3) Parent Key Summaries: Pending + Derived Counts
- Parent keys now display pending + derived counts for quick, at-a-glance awareness of child activity.
Result:
You can scan the explorer tree and immediately know:
- how many child transfers are still pending
- how many are already derived/sealed
…without opening panels.
4) Pending UI Cleanup: No Duplicate Negative Pills
This release aggressively removes “visual double-debits” and redundant pill spam:
- Cleanup prevents duplicate negative pills on first-generation pending transfers.
- Pending display now prioritizes a single clear status (“Pending” or “Derived”) instead of redundant duplicate amount pills.
- Parent nodes now show only child pending/derived amounts on the node face, while the parent’s own derived value stays reflected in Live (instead of appearing as an extra negative).
Result:
The node face becomes a truthful summary surface, not a confusing stack of repeated debits.
Behavioral Notes
- Parent faces are now child-activity focused: they show child pending/derived totals rather than re-printing the parent’s own derived state as extra negatives.
- Mixed states are now explicitly represented in badge form (not implied through multiple pills).
- Pending is defined visually as a single status state, not multiple repeated “amount pills.”
Notable Commit Titles Included in This Scope
(As reflected in the post-37.2.2 log)
- Show pending and derived exhale totals on parent nodes
- Color exhale badges by pending vs derived mix
- Show mixed exhale badge on parent nodes
- Show pending totals on node face and avoid duplicate pending pills
- Update parent key to display pending and derived counts
- Fix pending amounts on origin root
QA Checklist (Release Gate)
Parent Node Display
- Parent face shows child pending/derived totals only (no duplicate parent-negative pill)
- Parent “Live” correctly reflects parent’s own derived value without double printing
Pending / Derived Pills
- First-generation pending transfers do not show duplicate negative pills
- Only one clear status is prioritized (“Pending” or “Derived”) without redundant duplicates
Mixed Exhale Badges
- Pending-only badge displays correctly
- Derived-only badge displays correctly
- Mixed badge shows blended/mixed state clearly and consistently
- Badge mix matches underlying pending vs derived contributions
Parent Summary Counts
- Pending + derived counts are accurate for direct children
- Counts update correctly as locks/derivations settle
Origin Root
- Origin root pending amounts are correct and not inflated by duplicate UI logic
Closing Seal
v37.3.0 makes the Explorer tree readable at the speed of sight.
Parents summarize children without double-counting. Mixed states are declared, not implied. Pending becomes a single truth signal, not UI noise.
Kai Rex Klok — 37.3.0 ✅
What's Changed
- v37.3.0 by @Phinetwork in #99
Full Changelog: v37.2.2...v37.3.0
v37.2.2
v37.2.1
v37.2.0
What's Changed
- v37.1.1 by @Phinetwork in #95
- v37.2.0 by @Phinetwork in #96
Full Changelog: v37.1.0...v37.2.0