openvibers/openvibe.actor Commits
The bar: main places with icons and the phone app bar, the rest under More (Search is the magnifier) (#159)
Changes
@@@ -21,11 +21,13 @@ const { html, raw, esc } = require('./html');const NETWORK_URL = 'https://openvibe.network';const SITE_NAME = 'OpenVibe.Actor';const PUBLIC_DIR = path.join(__dirname, '..', '..', 'public');++// The product's own places: the main ones carry an icon (phones get them as the bottom tab bar), the rest fold into++// the navbar's More (Shared 4.22). Search is the navbar's magnifier and What shipped is the footer's.const NAV = [-- { label: 'Console', href: '/console' },-- { label: 'Your tasks', href: '/tasks' },-- { label: 'Agents', href: '/agents' },-- { label: 'API', href: '/docs' },++ { label: 'Console', href: '/console', icon: 'fa-gauge-high' },++ { label: 'Your tasks', href: '/tasks', icon: 'fa-list-check' },++ { label: 'Agents', href: '/agents', icon: 'fa-robot' },++ { label: 'API', href: '/docs', icon: 'fa-code', more: true },];const hashes = new Map();@@@ -56,7 +58,8 @@ function renderPage(o) {const nav = {service: 'actor',apiBase: NETWORK_URL,-- links: NAV.map((l) => ({ label: l.label, href: l.href, active: pathNow === l.href || pathNow.startsWith(`${l.href}/`) })),++ links: NAV.map((l) => ({ label: l.label, href: l.href, ...(l.icon ? { icon: l.icon } : {}), ...(l.more ? { more: true } : {}), active: pathNow === l.href || pathNow.startsWith(`${l.href}/`) })),++ appBar: [{ label: 'Home', href: '/', icon: 'fa-house' }, { label: 'Console', href: '/console', icon: 'fa-gauge-high' }, { label: 'Tasks', href: '/tasks', icon: 'fa-list-check' }, { label: 'Agents', href: '/agents', icon: 'fa-robot' }], // phones: the bottom tab bar (Shared 4.20)history: { type: 'page', title: o.title || SITE_NAME },silentLogin: `${o.config.baseUrl}/auth/login?silent=1&next={url}`,sessionUrl: '/auth/me',@@@ -14,7 +14,7 @@ const { measure, check, format } = require('openvibe-shared/perf-budget');// Budgets are set from the numbers measured on 2026-10-08 (the real ones, fresh database), rounded up with about 10%// headroom; file counts are the measured counts and external files stay at 0.const BUDGETS = {-- htmlRawKB: 64, // 59.2 with the Part of OpenVibe section (Shared 4.13, 2026-10-26); measured 35.8 (the guest task box lists example tasks); 39.6 with the home's "Ask in chat" row (10-15);++ htmlRawKB: 66, // 64.3 with the bar's icons and the phone app bar (2026-10-28); 59.2 with the Part of OpenVibe section (Shared 4.13, 2026-10-26); measured 35.8 (the guest task box lists example tasks); 39.6 with the home's "Ask in chat" row (10-15);// 53.2 with the rich home (10-22): numbers, task templates, the 34 Tools chips, the API samples, the questionshtmlBrotliKB: 15, // 13.7 openvibe-shared 4.15 footer: the compact footer opens into the whole one, and the pulse line; 8.6; 9.6 with "Ask in chat"; 12.1 with the rich homejsFiles: 5, // 5 (theme-loader, web-runtime, navbar, footer, boost: openvibe-shared/shell)
@@ -21,11 +21,13 @@ const { html, raw, esc } = require('./html');
@@ -21,11 +21,13 @@ const { html, raw, esc } = require('./html');
const NETWORK_URL = 'https://openvibe.network';
const NETWORK_URL = 'https://openvibe.network';
const SITE_NAME = 'OpenVibe.Actor';
const SITE_NAME = 'OpenVibe.Actor';
const PUBLIC_DIR = path.join(__dirname, '..', '..', 'public');
const PUBLIC_DIR = path.join(__dirname, '..', '..', 'public');
+// The product's own places: the main ones carry an icon (phones get them as the bottom tab bar), the rest fold into
+// the navbar's More (Shared 4.22). Search is the navbar's magnifier and What shipped is the footer's.
const NAV = [
const NAV = [
- { label: 'Console', href: '/console' },
- { label: 'Your tasks', href: '/tasks' },
- { label: 'Agents', href: '/agents' },
- { label: 'API', href: '/docs' },
+ { label: 'Console', href: '/console', icon: 'fa-gauge-high' },
+ { label: 'Your tasks', href: '/tasks', icon: 'fa-list-check' },
+ { label: 'Agents', href: '/agents', icon: 'fa-robot' },
+ { label: 'API', href: '/docs', icon: 'fa-code', more: true },
];
];
const hashes = new Map();
const hashes = new Map();
@@ -56,7 +58,8 @@ function renderPage(o) {
@@ -56,7 +58,8 @@ function renderPage(o) {
const nav = {
const nav = {
service: 'actor',
service: 'actor',
apiBase: NETWORK_URL,
apiBase: NETWORK_URL,
- links: NAV.map((l) => ({ label: l.label, href: l.href, active: pathNow === l.href || pathNow.startsWith(`${l.href}/`) })),
+ links: NAV.map((l) => ({ label: l.label, href: l.href, ...(l.icon ? { icon: l.icon } : {}), ...(l.more ? { more: true } : {}), active: pathNow === l.href || pathNow.startsWith(`${l.href}/`) })),
+ appBar: [{ label: 'Home', href: '/', icon: 'fa-house' }, { label: 'Console', href: '/console', icon: 'fa-gauge-high' }, { label: 'Tasks', href: '/tasks', icon: 'fa-list-check' }, { label: 'Agents', href: '/agents', icon: 'fa-robot' }], // phones: the bottom tab bar (Shared 4.20)
history: { type: 'page', title: o.title || SITE_NAME },
history: { type: 'page', title: o.title || SITE_NAME },
silentLogin: `${o.config.baseUrl}/auth/login?silent=1&next={url}`,
silentLogin: `${o.config.baseUrl}/auth/login?silent=1&next={url}`,
sessionUrl: '/auth/me',
sessionUrl: '/auth/me',
@@ -14,7 +14,7 @@ const { measure, check, format } = require('openvibe-shared/perf-budget');
@@ -14,7 +14,7 @@ const { measure, check, format } = require('openvibe-shared/perf-budget');
// Budgets are set from the numbers measured on 2026-10-08 (the real ones, fresh database), rounded up with about 10%
// Budgets are set from the numbers measured on 2026-10-08 (the real ones, fresh database), rounded up with about 10%
// headroom; file counts are the measured counts and external files stay at 0.
// headroom; file counts are the measured counts and external files stay at 0.
const BUDGETS = {
const BUDGETS = {
- htmlRawKB: 64, // 59.2 with the Part of OpenVibe section (Shared 4.13, 2026-10-26); measured 35.8 (the guest task box lists example tasks); 39.6 with the home's "Ask in chat" row (10-15);
+ htmlRawKB: 66, // 64.3 with the bar's icons and the phone app bar (2026-10-28); 59.2 with the Part of OpenVibe section (Shared 4.13, 2026-10-26); measured 35.8 (the guest task box lists example tasks); 39.6 with the home's "Ask in chat" row (10-15);
// 53.2 with the rich home (10-22): numbers, task templates, the 34 Tools chips, the API samples, the questions
// 53.2 with the rich home (10-22): numbers, task templates, the 34 Tools chips, the API samples, the questions
htmlBrotliKB: 15, // 13.7 openvibe-shared 4.15 footer: the compact footer opens into the whole one, and the pulse line; 8.6; 9.6 with "Ask in chat"; 12.1 with the rich home
htmlBrotliKB: 15, // 13.7 openvibe-shared 4.15 footer: the compact footer opens into the whole one, and the pulse line; 8.6; 9.6 with "Ask in chat"; 12.1 with the rich home
jsFiles: 5, // 5 (theme-loader, web-runtime, navbar, footer, boost: openvibe-shared/shell)
jsFiles: 5, // 5 (theme-loader, web-runtime, navbar, footer, boost: openvibe-shared/shell)