Merged
Conversation
## 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** `VerifyPageLazy` and a new `VerifyPopover` component that mirrors existing popover behavior:
* portal mounting
* backdrop handling
* **Esc** close
* focus management
* `useBodyScrollLock`
* Introduced `verifyOpen` state with `openVerify` / `closeVerify` handlers and rendered:
* `<VerifyPopover open={verifyOpen} onClose={closeVerify}> … </VerifyPopover>`
inside `AppChrome` to host the Verify modal.
* Added an **Attestation tile button** to the Atrium nav that opens the popover, styled via `.nav-item--button` to preserve the tile look while using a semantic button.
* Kept styling consistent by reusing `explorer-pop` panel classes with additional `verify-pop` modifiers 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.css` to 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%` and `height: 100%`, adjusted `max-height` to use `--kai-vh` for stable viewport sizing, and removed rounded `border-radius` so the modal becomes **edge-to-edge**.
* Adjusted backdrop alignment (`align-items` / `justify-content`) to stretch, cleared padding, and lowered `.kai-voh-body` `min-height` to `0` so 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 `readLedgerBalance` and `DebitLoose` type to extract `originalAmount` and compute `remaining` from embedded debits in the verifier payload.
* Reworked valuation logic to compute:
* `displayPhi` / `displayUsd` as `ledgerBalance.remaining` when present
* otherwise fall back to `liveValuePhi`
* Updated `LiveValuePill` to accept `label` and `ariaLabel` so 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.
|
@kojibai is attempting to deploy a commit to the realbrianklockgmailcom's projects Team on Vercel. A member of the Team first needs to authorize it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release Notes — 38.2.0
Attestation — Full-screen Verify portal (no route change)
Motivation
Description
Added a lazy-loaded
VerifyPageLazyand a newVerifyPopovercomponent that mirrors existing popover behavior:useBodyScrollLockIntroduced
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 4173and confirmed the app launched and served successfully.Ran a Playwright script that navigated to
/, clicked Attestation: Verify ΦKey, and captured:artifacts/attestation-modal.pngsuccessfully.KaiVoh — Edge-to-edge full-viewport modal
Motivation
Description
Updated
src/components/KaiVoh/styles/KaiVohModal.cssto make the modal backdrop and container occupy the full viewport: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
Description
Added a small ledger parser
readLedgerBalanceandDebitLoosetype to extractoriginalAmountand computeremainingfrom embedded debits in the verifier payload.Reworked valuation logic to compute:
displayPhi/displayUsdasledgerBalance.remainingwhen presentliveValuePhiUpdated
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)
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.