Link HO nostro dashboard in nav, footer, and home quick paths.
Some checks failed
Deploy Explorer Live / deploy (push) Failing after 25s
Validate Explorer / frontend (push) Failing after 31s
Validate Explorer / smoke-e2e (push) Has been skipped

Surfaces /ho-liquidity from the Operations dropdown, site footer, and institutional quick paths; use formatTimestamp on the HO liquidity page for consistent audit timestamps.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
defiQUG
2026-06-26 01:59:10 -07:00
parent e0194621a1
commit 890ebe3727
4 changed files with 9 additions and 2 deletions

View File

@@ -498,6 +498,7 @@ export default function Navbar() {
pathname.startsWith('/bridge') ||
pathname.startsWith('/routes') ||
pathname.startsWith('/liquidity') ||
pathname.startsWith('/ho-liquidity') ||
pathname.startsWith('/operations') ||
pathname.startsWith('/system') ||
pathname.startsWith('/operator') ||
@@ -605,6 +606,7 @@ export default function Navbar() {
const operationsItems: MenuItem[] = useMemo(
() => [
{ href: '/operations', label: 'Operations hub', description: 'Open the consolidated operator surface for live support workflows.' },
{ href: '/ho-liquidity', label: 'HO nostro & reserve', description: 'Fineract GL 13010 nostro cash, HO reserve coverage, and PMM cash liquidity.' },
{ href: '/bridge', label: 'Bridge', description: 'Inspect relay lanes, queue posture, and bridge trace tooling.' },
{ href: '/routes', label: 'Routes', description: 'Review live route coverage, same-chain lanes, and bridge paths.' },
{ href: '/liquidity', label: 'Liquidity', description: 'Check planner-backed route access and live liquidity posture.' },

View File

@@ -6,6 +6,7 @@ import {
formatHoReserveCoverageLabel,
formatSupplyNostroMatchLabel,
} from '@/utils/tokenMarket'
import { formatTimestamp } from '@/utils/format'
import OperationsPageShell from './OperationsPageShell'
export type HoLiquiditySnapshot = {
@@ -73,7 +74,7 @@ export default function HoLiquidityPage({ snapshot, loadError }: HoLiquidityPage
{snapshot ? (
<div className="space-y-6">
<div className="flex flex-wrap items-center gap-3 text-sm text-gray-500 dark:text-gray-400">
<span>Fineract audit {new Date(snapshot.generatedAt).toLocaleString()}</span>
<span>Fineract audit {formatTimestamp(snapshot.generatedAt)}</span>
<EntityBadge
label={snapshot.fineractConfigured ? 'Fineract configured' : 'Fineract pending'}
tone={snapshot.fineractConfigured ? 'success' : 'warning'}
@@ -150,7 +151,7 @@ export default function HoLiquidityPage({ snapshot, loadError }: HoLiquidityPage
<h3 className="text-sm font-semibold text-gray-900 dark:text-white">Triple-state reconcile</h3>
<p className="mt-2 text-sm text-gray-600 dark:text-gray-300">
{snapshot.tripleState.aligned ? 'Aligned' : `${snapshot.tripleState.breaksCount ?? 0} break(s)`}
{snapshot.tripleState.generatedAt ? ` · ${new Date(snapshot.tripleState.generatedAt).toLocaleString()}` : ''}
{snapshot.tripleState.generatedAt ? ` · ${formatTimestamp(snapshot.tripleState.generatedAt)}` : ''}
</p>
</section>
) : null}

View File

@@ -1061,6 +1061,9 @@ export default function Home({
<Link href="/liquidity" className="rounded-lg border border-gray-200 px-3 py-1.5 text-primary-600 hover:border-primary-300 dark:border-gray-800">
Liquidity
</Link>
<Link href="/ho-liquidity" className="rounded-lg border border-gray-200 px-3 py-1.5 text-primary-600 hover:border-primary-300 dark:border-gray-800">
HO nostro
</Link>
<Link href="/token-aggregation/api/v1/report/official-protocols" className="rounded-lg border border-gray-200 px-3 py-1.5 text-primary-600 hover:border-primary-300 dark:border-gray-800">
Public APIs
</Link>

View File

@@ -39,6 +39,7 @@ export const footerNavGroups: FooterNavGroup[] = [
title: 'Operations',
links: [
{ href: '/operations', label: 'Operations hub' },
{ href: '/ho-liquidity', label: 'HO nostro & reserve' },
{ href: '/bridge', label: 'Bridge' },
{ href: '/routes', label: 'Routes' },
{ href: '/liquidity', label: 'Liquidity' },