Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
0e2d5be
42.7.1
kojibai Jan 31, 2026
6af2e07
Improve exhale note QR sizing
kojibai Jan 31, 2026
f646dba
Adjust exhale note QR position
kojibai Jan 31, 2026
3800598
Merge pull request #339 from kojibai/codex/fix-qr-code-functionality-…
kojibai Jan 31, 2026
be58c26
v42.7.2
kojibai Jan 31, 2026
7d79c8e
v42.7.3
kojibai Jan 31, 2026
55eef56
Add exhale note preview to verify page
kojibai Jan 31, 2026
0a72840
Refine verify note preview layout
kojibai Jan 31, 2026
0090702
Make verify note trigger a compact button
kojibai Jan 31, 2026
d0821db
Adjust verify note layout and dialog
kojibai Jan 31, 2026
2308ce7
v42.7.4
kojibai Jan 31, 2026
6a2108d
Merge pull request #341 from kojibai/codex/fix-note-button-functional…
kojibai Jan 31, 2026
ee78ff6
Merge pull request #340 from kojibai/codex/add-exhale-note-feature-to…
kojibai Jan 31, 2026
d5644bc
Fix verify note dialog visibility on mobile
kojibai Jan 31, 2026
2c5d5a3
Merge pull request #342 from kojibai/codex/fix-exhale-note-popover-on…
kojibai Jan 31, 2026
f3e75bc
Revert "Fix verify page exhale-note dialog visibility on mobile"
kojibai Jan 31, 2026
3ccfa12
Merge pull request #343 from kojibai/revert-342-codex/fix-exhale-note…
kojibai Jan 31, 2026
01738df
v42.7.5
kojibai Jan 31, 2026
fadc371
v42.7.6
kojibai Jan 31, 2026
8b109e2
Replace proof panel icons with custom SVGs
kojibai Jan 31, 2026
75ca40b
Refine proof panel SVG icons
kojibai Jan 31, 2026
a5b1282
Update proof icons to OMG WOW
kojibai Jan 31, 2026
aa29651
Apply neon gradients to proof icons
kojibai Jan 31, 2026
7117cc7
Add custom note download icon
kojibai Jan 31, 2026
db52b26
Make note download icon more obvious
kojibai Jan 31, 2026
2b96eed
v42.7.7
kojibai Jan 31, 2026
2798e8e
Merge pull request #345 from kojibai/codex/replace-emojis-with-custom…
kojibai Jan 31, 2026
e4dff3b
v42.7.8
kojibai Jan 31, 2026
0556b66
Deduct exhale ledger amounts from available phi
kojibai Jan 31, 2026
101b4d4
v42.7.9
kojibai Jan 31, 2026
72474cd
Count pending send reservations with branch spend
kojibai Jan 31, 2026
bf58915
Merge pull request #347 from kojibai/codex/count-pending-send-reserva…
kojibai Jan 31, 2026
9ae3967
Consolidate verify inhale control
kojibai Jan 31, 2026
6d9f297
Refine inhale sigil UX
kojibai Jan 31, 2026
db6ecd0
Adjust inhale key pill
kojibai Jan 31, 2026
a332198
Tighten key pill spacing
kojibai Jan 31, 2026
7a0f216
v42.8.0
kojibai Jan 31, 2026
bd55cbc
Merge pull request #348 from kojibai/codex/consolidate-inhale-buttons…
kojibai Jan 31, 2026
ea6c8b8
Merge pull request #346 from kojibai/codex/update-sigil-glyph-balance…
kojibai Jan 31, 2026
f61bff4
v42.8.1
kojibai Jan 31, 2026
fdf07dc
v42.8.2
kojibai Jan 31, 2026
b33426b
Adjust verify PNG status labels and styling
kojibai Jan 31, 2026
6ec22f7
Refine verify status pill sizing
kojibai Jan 31, 2026
d05c283
Merge pull request #349 from kojibai/codex/fix-sigil-seal-label-on-up…
kojibai Jan 31, 2026
95a0258
v42.8.3
kojibai Jan 31, 2026
dde5627
Update verify page microcopy and KPI helper
kojibai Jan 31, 2026
5bc1aa9
Store and display note claim metadata
kojibai Jan 31, 2026
af1d575
Use rotation-seal claim pulses in verify UI
kojibai Jan 31, 2026
994cb6f
Update verify claim pulse and seal status
kojibai Jan 31, 2026
d841ac9
Merge pull request #351 from kojibai/codex/update-verify-page-for-cla…
kojibai Jan 31, 2026
ea5894e
Merge pull request #350 from kojibai/codex/apply-micro-ux-upgrades-to…
kojibai Jan 31, 2026
f6e8f79
v42.8.4
kojibai Jan 31, 2026
3a2b8ad
v42.8.5
kojibai Jan 31, 2026
27af707
Persist claimed pulse from note receipts
kojibai Jan 31, 2026
4b9cc77
Merge pull request #352 from kojibai/codex/store-claimed-pulse-in-glo…
kojibai Jan 31, 2026
7000326
Persist note claim pulse in registry payload
kojibai Jan 31, 2026
880e611
Merge pull request #353 from kojibai/codex/ensure-claimed-pulse-persi…
kojibai Jan 31, 2026
85ff481
v42.8.6
kojibai Jan 31, 2026
089a896
Merge branch 'main' of https://github.com/kojibai/PHI_NETWORK
kojibai Jan 31, 2026
560e742
v42.8.7
kojibai Jan 31, 2026
2efed9d
v42.8.8
kojibai Jan 31, 2026
68ee38d
patch for initial exhale note regression
kojibai Jan 31, 2026
0cb59c2
Fix note claim status on verify page exhale
kojibai Jan 31, 2026
d64e916
Merge pull request #356 from kojibai/codex/fix-exhale-note-status-in-…
kojibai Jan 31, 2026
92117b6
Merge pull request #357 from kojibai/Fix-new-exhale-note-failure
kojibai Jan 31, 2026
7e2f0a5
v42.8.9
kojibai Jan 31, 2026
6717593
v42.9.0
kojibai Feb 1, 2026
6e2b90c
v42.9.1
kojibai Feb 1, 2026
4b7eb58
v42.9.2
kojibai Feb 1, 2026
27f1783
Prevent re-downloading claimed exhale notes on mobile
kojibai Feb 1, 2026
0fa6d23
Avoid claiming rotated fresh exhale notes
kojibai Feb 1, 2026
70dc224
Merge pull request #362 from kojibai/codex/fix-mobile-exhale-note-cla…
kojibai Feb 1, 2026
ef27bb8
v42.9.3
kojibai Feb 1, 2026
c93c73d
Update note claim state on download
kojibai Feb 1, 2026
caa8931
Allow note download while claiming
kojibai Feb 1, 2026
996f0c9
Allow note download after immediate claim
kojibai Feb 1, 2026
d7be58c
Trigger note download on pointer events
kojibai Feb 1, 2026
f9ed2c0
Merge pull request #364 from kojibai/codex/update-verifypage-to-handl…
kojibai Feb 1, 2026
eba2def
Fix note download claim timing
kojibai Feb 1, 2026
8701c4c
Merge pull request #365 from kojibai/codex/fix-download-button-unmoun…
kojibai Feb 1, 2026
fd04bc0
v42.9.4
kojibai Feb 1, 2026
234246e
Fix mobile note claim update before download
kojibai Feb 1, 2026
f661d5f
Merge pull request #366 from kojibai/codex/investigate-mobile-claimed…
kojibai Feb 1, 2026
b062e6c
v42.9.5
kojibai Feb 1, 2026
15ca1c2
Revert "Confirm note claim before downloading note PNG (mobile fix)"
kojibai Feb 1, 2026
364e126
Merge pull request #367 from kojibai/revert-366-codex/investigate-mob…
kojibai Feb 1, 2026
4162dff
Fix note claim confirmation for downloaded PNGs
kojibai Feb 1, 2026
75ce8c4
Confirm parent note when downloading fresh PNG
kojibai Feb 1, 2026
9659ede
Merge pull request #373 from kojibai/codex/fix-regression-in-verifypa…
kojibai Feb 1, 2026
aace219
v42.9.6
kojibai Feb 1, 2026
564dc30
v42.9.7
kojibai Feb 1, 2026
b67893e
v42.9.8
kojibai Feb 1, 2026
6d4f7c4
v42.9.9
kojibai Feb 1, 2026
9bfebf7
v42.9.11
kojibai Feb 1, 2026
5fbea0e
v42.9.12
kojibai Feb 1, 2026
4d9fb7d
v42.9.13
kojibai Feb 1, 2026
6b7d684
v42.9.14
kojibai Feb 1, 2026
972b4f7
Fix PWA note claim propagation
kojibai Feb 1, 2026
2a59a8d
Probe inhale online status in PWA
kojibai Feb 1, 2026
3acbc9a
Merge pull request #384 from kojibai/codex/fix-global-claim-propagati…
kojibai Feb 1, 2026
ea277b5
v43.0.0
kojibai Feb 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion public/sw.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

// Update this version string manually to keep the app + cache versions in sync.
// The value is forwarded to the UI via the service worker "SW_ACTIVATED" message.
const APP_VERSION = "42.7.0"; // update on release
const APP_VERSION = "43.0.0"; // update on release
const VERSION = new URL(self.location.href).searchParams.get("v") || APP_VERSION; // derived from build
const PREFIX = "PHINETWORK";

Expand Down
96 changes: 67 additions & 29 deletions src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1638,36 +1638,74 @@ export function AppChrome(): React.JSX.Element {
<div className="nav-head__title">Atrium</div>
<div className="nav-head__sub">Breath-Sealed Identity · Kairos-ZK Proof</div>
</div>
<div
ref={navListRef}
className="nav-list"
role="list"
aria-label="Atrium navigation tiles"
>
{(() => {
const isMintPhiKey = (item: { to: string; label: string }) =>
item.to === "/mint" ||
(item.label.toLowerCase().includes("mint") &&
item.label.toLowerCase().includes("phi"));

const hasMint = navItems.some(isMintPhiKey);

return (
<>
{navItems.map((item) => (
<React.Fragment key={item.to}>
<NavLink
to={item.to}
end={item.end}
className={({ isActive }) =>
`nav-item ${isActive ? "nav-item--active" : ""}`
}
aria-label={`${item.label}: ${item.desc}`}
onPointerEnter={item.to === "/keystream" ? prefetchSigilExplorer : undefined}
onFocus={item.to === "/keystream" ? prefetchSigilExplorer : undefined}
onTouchStart={item.to === "/keystream" ? prefetchSigilExplorer : undefined}
onPointerDown={item.to === "/keystream" ? prefetchSigilExplorer : undefined}
>
<div className="nav-item__label">{item.label}</div>
<div className="nav-item__desc">{item.desc}</div>
</NavLink>

{/* ✅ Insert Attestation right after Mint PhiKey */}
{hasMint && isMintPhiKey(item) && (
<button
type="button"
className="nav-item nav-item--button"
aria-label="Attestation: Proof Of Breath™"
aria-haspopup="dialog"
onClick={openVerify}
>
<div className="nav-item__label">Attestation</div>
<div className="nav-item__desc">Proof Of Breath™</div>
</button>
)}
</React.Fragment>
))}

{/* Fallback: if we can't find Mint, keep Attestation at end */}
{!hasMint && (
<button
type="button"
className="nav-item nav-item--button"
aria-label="Attestation: Proof Of Breath™"
aria-haspopup="dialog"
onClick={openVerify}
>
<div className="nav-item__label">Attestation</div>
<div className="nav-item__desc">Proof Of Breath™</div>
</button>
)}
</>
);
})()}
</div>

<div ref={navListRef} className="nav-list" role="list" aria-label="Atrium navigation tiles">
{navItems.map((item) => (
<NavLink
key={item.to}
to={item.to}
end={item.end}
className={({ isActive }) => `nav-item ${isActive ? "nav-item--active" : ""}`}
aria-label={`${item.label}: ${item.desc}`}
onPointerEnter={item.to === "/keystream" ? prefetchSigilExplorer : undefined}
onFocus={item.to === "/keystream" ? prefetchSigilExplorer : undefined}
onTouchStart={item.to === "/keystream" ? prefetchSigilExplorer : undefined}
onPointerDown={item.to === "/keystream" ? prefetchSigilExplorer : undefined}
>
<div className="nav-item__label">{item.label}</div>
<div className="nav-item__desc">{item.desc}</div>
</NavLink>
))}

<button
type="button"
className="nav-item nav-item--button"
aria-label="Attestation: Proof Of Breath™"
aria-haspopup="dialog"
onClick={openVerify}
>
<div className="nav-item__label">Attestation</div>
<div className="nav-item__desc">Proof Of Breath™</div>
</button>
</div>

<div className="nav-writ-slot" data-writ-slim="1">
<SovereignDeclarations />
Expand Down
Loading