From ee824cd1c8b77cc5b37da5624344c9a98756c9b8 Mon Sep 17 00:00:00 2001
From: defiQUG
Date: Sun, 12 Jul 2026 19:44:27 -0700
Subject: [PATCH] Add GRU vault controls and OMNL operator links
---
frontend-dapp/src/pages/HubPage.tsx | 45 +++++++++++++++++++
.../reports/audit/omnl-audit.jsonl | 7 +++
2 files changed, 52 insertions(+)
diff --git a/frontend-dapp/src/pages/HubPage.tsx b/frontend-dapp/src/pages/HubPage.tsx
index 2d5f977..7fa9102 100644
--- a/frontend-dapp/src/pages/HubPage.tsx
+++ b/frontend-dapp/src/pages/HubPage.tsx
@@ -1,7 +1,9 @@
import { Link } from 'react-router-dom';
import NasaIcon, { type NasaIconName } from '../components/icons/NasaIcon';
+import EcosystemLinkGrid from '../features/hub/EcosystemLinkGrid';
import { GUOSMM_NOTICES } from '../config/guosmmNotices';
import { Z_ECOSYSTEM_PORTAL_LINKS } from '../config/ecosystemLinks';
+import type { EcosystemLink } from '../config/ecosystemLinks';
const BANKING: { path: string; label: string; icon: NasaIconName }[] = [
{ path: '/central-bank', label: 'Central Bank', icon: 'central-bank' },
@@ -26,6 +28,41 @@ const OMNL_OPS: { path: string; label: string; icon: NasaIconName }[] = [
{ path: '/omnl/terminal', label: 'Settlement terminal', icon: 'rail' },
];
+const FEATURED_OPERATOR_CONSOLES: EcosystemLink[] = [
+ {
+ id: 'gru-controls',
+ label: 'GRU Vault Controls',
+ description: 'Runtime smart-vault policy knobs',
+ icon: 'admin',
+ href: '/omnl/gru-vault-controls',
+ accent: 'gold',
+ },
+ {
+ id: 'compliance',
+ label: 'OMNL Compliance Console',
+ description: 'Posture, pending actions, Safe tx',
+ icon: 'shield',
+ href: '/omnl/compliance',
+ accent: 'purple',
+ },
+ {
+ id: 'omnl-dash',
+ label: 'OMNL API Snapshot',
+ description: 'Registry and Fineract compare JSON',
+ icon: 'chart',
+ href: '/omnl/dashboard',
+ accent: 'blue',
+ },
+ {
+ id: 'settlement-term',
+ label: 'Settlement Terminal',
+ description: 'Operator settlement terminal UI',
+ icon: 'rail',
+ href: '/omnl/terminal',
+ accent: 'teal',
+ },
+];
+
const Z_ECOSYSTEM = Z_ECOSYSTEM_PORTAL_LINKS.map((l) => ({
href: l.href,
label: l.label,
@@ -101,6 +138,14 @@ export default function HubPage() {
Mission control entry — banking portals, settlement surfaces, and Chain 138 tools on this host.
+
diff --git a/services/token-aggregation/reports/audit/omnl-audit.jsonl b/services/token-aggregation/reports/audit/omnl-audit.jsonl
index b8e1491..1d86ba0 100644
--- a/services/token-aggregation/reports/audit/omnl-audit.jsonl
+++ b/services/token-aggregation/reports/audit/omnl-audit.jsonl
@@ -11,3 +11,10 @@
{"id":"0847e9a4-6d0d-44b2-9024-52653806cd02","ts":"2026-07-12T22:29:52.611Z","category":"api","action":"PUT /omnl/gru-vault-controls","sourceSystem":"http","traceId":"399f9edb-15f0-4dad-9b96-faf579336f4e","status":"ok","metadata":{"statusCode":200,"durationMs":3,"query":{}}}
{"id":"fbc5fc45-7ded-4174-b316-49a990b01120","ts":"2026-07-12T22:29:52.624Z","category":"api","action":"reset_gru_vault_controls","actor":"operator","status":"ok","metadata":{"profile":"live"}}
{"id":"420b3ed9-88e6-4748-a9b8-2697589e8c1c","ts":"2026-07-12T22:29:52.626Z","category":"api","action":"POST /omnl/gru-vault-controls/reset","sourceSystem":"http","traceId":"ae0ec963-aca9-461c-833c-b7d2dab1c7db","status":"ok","metadata":{"statusCode":200,"durationMs":4,"query":{}}}
+{"id":"f05dfe1e-46b1-451e-af96-9bf35b0e32c5","ts":"2026-07-13T02:44:19.551Z","category":"api","action":"GET /omnl/gru-vault-controls","sourceSystem":"http","traceId":"57ea31ed-9a77-4b64-9632-65aca80f9790","status":"ok","metadata":{"statusCode":200,"durationMs":1,"query":{}}}
+{"id":"862adb2f-3dad-4c23-bb38-a757e5230c5c","ts":"2026-07-13T02:44:19.564Z","category":"api","action":"update_gru_vault_controls","actor":"operator","status":"ok","metadata":{"profile":"conservative","liIndexComponents":2,"approvedBondComponents":2,"expandedAssetComponents":2,"liXauWithdrawalFraction":0.15,"reserveReferenceMultiplier":1.35,"refreshIntervalSeconds":45}}
+{"id":"d67a4596-d810-49b3-9114-26b1432c05be","ts":"2026-07-13T02:44:19.564Z","category":"api","action":"PUT /omnl/gru-vault-controls","sourceSystem":"http","traceId":"2884e0c9-4bae-427f-a92c-4155b65315aa","status":"ok","metadata":{"statusCode":200,"durationMs":2,"query":{}}}
+{"id":"09b79e2a-57d3-4181-b5fc-80fc192241e6","ts":"2026-07-13T02:44:19.571Z","category":"api","action":"update_gru_vault_controls","actor":"operator","status":"ok","metadata":{"profile":"emergency","liIndexComponents":5,"approvedBondComponents":0,"expandedAssetComponents":4,"liXauWithdrawalFraction":0.3,"reserveReferenceMultiplier":1.2,"refreshIntervalSeconds":30}}
+{"id":"190eb004-8f6c-416f-987b-0cfb8e0ad0aa","ts":"2026-07-13T02:44:19.572Z","category":"api","action":"PUT /omnl/gru-vault-controls","sourceSystem":"http","traceId":"7f4d8191-f591-42f0-8aa5-7697f16fcfc2","status":"ok","metadata":{"statusCode":200,"durationMs":2,"query":{}}}
+{"id":"8e26662c-e63a-40c7-8e5d-304309b580a6","ts":"2026-07-13T02:44:19.575Z","category":"api","action":"reset_gru_vault_controls","actor":"operator","status":"ok","metadata":{"profile":"live"}}
+{"id":"c0a112aa-569c-47e6-a610-87d6372401aa","ts":"2026-07-13T02:44:19.576Z","category":"api","action":"POST /omnl/gru-vault-controls/reset","sourceSystem":"http","traceId":"0e51cf72-c161-4b6c-98a5-f96a5bdafa20","status":"ok","metadata":{"statusCode":200,"durationMs":2,"query":{}}}