1
0
This repository has been archived on 2026-03-24. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Timmy-time-dashboard/src/dashboard/templates/base.html

316 lines
14 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html lang="en" data-bs-theme="dark">
<head>
<meta charset="UTF-8" />
fix: comprehensive iPhone UI overhaul — glassmorphism, responsive layouts, theme unification - base.html: add missing {% block extra_styles %}, mobile hamburger menu with slide-out nav, interactive-widget viewport meta, -webkit-text-size-adjust - style.css: define 15+ missing CSS variables (--bg-secondary, --text-muted, --accent, --success, --danger, etc.), add missing utility classes (.grid, .stat, .agent-card, .agent-avatar, .form-group), glassmorphism card effects, iPhone breakpoints (768px, 390px), 44pt min touch targets, smooth animations - mobile.html: rewrite with proper theme variables, glass cards, touch-friendly quick actions grid, chat with proper message bubbles - swarm_live.html: replace undefined CSS vars, use mc-panel theme cards - marketplace.html: responsive agent cards that stack on iPhone, themed pricing - voice_button.html & voice_enhanced.html: proper theme integration, touch-sized buttons, themed result containers - create_task.html: mobile-friendly forms with 16px font (prevents iOS zoom) - tools.html & creative.html: themed headers, responsive column stacking - spark.html: replace all hardcoded blue (#00d4ff) colors with theme purple/orange - briefing.html: replace hardcoded bootstrap colors with theme variables Fixes: header nav overflow on iPhone (7 links in single row), missing extra_styles block silently dropping child template styles, undefined CSS variables breaking mobile/swarm/marketplace/voice pages, sub-44pt touch targets, missing -webkit-text-size-adjust, inconsistent color themes. 97 UI tests pass (91 UI-specific + 6 creative route). https://claude.ai/code/session_01JiyhGyee2zoMN4p8xWYqEe
2026-02-24 22:25:04 +00:00
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover, interactive-widget=resizes-content" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="theme-color" content="#080412" />
<title>{% block title %}Mission Control{% endblock %}</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous" />
<link rel="icon" href="/static/favicon.svg" type="image/svg+xml" />
<link rel="stylesheet" href="/static/style.css?v=5" />
<link rel="stylesheet" href="/static/css/mission-control.css?v=1" />
fix: comprehensive iPhone UI overhaul — glassmorphism, responsive layouts, theme unification - base.html: add missing {% block extra_styles %}, mobile hamburger menu with slide-out nav, interactive-widget viewport meta, -webkit-text-size-adjust - style.css: define 15+ missing CSS variables (--bg-secondary, --text-muted, --accent, --success, --danger, etc.), add missing utility classes (.grid, .stat, .agent-card, .agent-avatar, .form-group), glassmorphism card effects, iPhone breakpoints (768px, 390px), 44pt min touch targets, smooth animations - mobile.html: rewrite with proper theme variables, glass cards, touch-friendly quick actions grid, chat with proper message bubbles - swarm_live.html: replace undefined CSS vars, use mc-panel theme cards - marketplace.html: responsive agent cards that stack on iPhone, themed pricing - voice_button.html & voice_enhanced.html: proper theme integration, touch-sized buttons, themed result containers - create_task.html: mobile-friendly forms with 16px font (prevents iOS zoom) - tools.html & creative.html: themed headers, responsive column stacking - spark.html: replace all hardcoded blue (#00d4ff) colors with theme purple/orange - briefing.html: replace hardcoded bootstrap colors with theme variables Fixes: header nav overflow on iPhone (7 links in single row), missing extra_styles block silently dropping child template styles, undefined CSS variables breaking mobile/swarm/marketplace/voice pages, sub-44pt touch targets, missing -webkit-text-size-adjust, inconsistent color themes. 97 UI tests pass (91 UI-specific + 6 creative route). https://claude.ai/code/session_01JiyhGyee2zoMN4p8xWYqEe
2026-02-24 22:25:04 +00:00
{% block extra_styles %}{% endblock %}
<script src="https://cdn.jsdelivr.net/npm/htmx.org@2.0.3/dist/htmx.min.js" crossorigin="anonymous"></script>
Clean up generated files and fix 6 dashboard bugs (#142) * chore: gitignore local/generated files and remove from tracking Remove user-specific files (MEMORY.md, user_profile.md, prompts.py) from source control. Add patterns for credentials, backups, and generated content to .gitignore. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: resolve 6 dashboard bugs — chat, /bugs, /swarm/events, WebSocket, marketplace, sidebar 1. Chat non-functional: CSRF middleware silently blocked HTMX POSTs. Added CSRF token transmission via hx-headers in base.html. 2. /bugs → 500: Route missing template vars (total, stats, filter_status). 3. /swarm/events → 500: Called .event_type.value on a plain str (SparkEvent.event_type is str, not enum). Also fixed timestamp and source field mismatches in the template. 4. WebSocket reconnect loop: No WS endpoint existed at /swarm/live, only an HTTP GET. Added @router.websocket("/live") using ws_manager. 5. Marketplace "Agent not found": Nav links /marketplace/ui matched the /{agent_id} catch-all. Added explicit /marketplace/ui route with enriched template context. 6. Agents sidebar "LOADING...": /swarm/agents/sidebar endpoint was missing. Added route returning the existing sidebar partial. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: restore src/timmy/prompts.py to source control prompts.py is imported by timmy.agent and is production code, not a user-local file. Re-add to tracking and remove from .gitignore. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Trip T <trip@local> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 21:26:41 -05:00
<script>
document.addEventListener('DOMContentLoaded', function() {
var match = document.cookie.match(/csrf_token=([^;]+)/);
if (match) {
document.body.setAttribute('hx-headers', JSON.stringify({"X-CSRF-Token": match[1]}));
}
});
</script>
<script defer src="https://cdn.jsdelivr.net/npm/marked@15.0.7/marked.min.js"></script>
<script defer src="https://cdn.jsdelivr.net/npm/dompurify@3.2.4/dist/purify.min.js"></script>
</head>
<body>
<header class="mc-header">
<div class="mc-header-left">
<a href="/" class="mc-title">MISSION CONTROL</a>
<span class="mc-subtitle">MISSION CONTROL</span>
<span class="mc-conn-status" id="conn-status">
<span class="mc-conn-dot red" id="conn-dot"></span>
<span id="conn-label">OFFLINE</span>
</span>
</div>
fix: comprehensive iPhone UI overhaul — glassmorphism, responsive layouts, theme unification - base.html: add missing {% block extra_styles %}, mobile hamburger menu with slide-out nav, interactive-widget viewport meta, -webkit-text-size-adjust - style.css: define 15+ missing CSS variables (--bg-secondary, --text-muted, --accent, --success, --danger, etc.), add missing utility classes (.grid, .stat, .agent-card, .agent-avatar, .form-group), glassmorphism card effects, iPhone breakpoints (768px, 390px), 44pt min touch targets, smooth animations - mobile.html: rewrite with proper theme variables, glass cards, touch-friendly quick actions grid, chat with proper message bubbles - swarm_live.html: replace undefined CSS vars, use mc-panel theme cards - marketplace.html: responsive agent cards that stack on iPhone, themed pricing - voice_button.html & voice_enhanced.html: proper theme integration, touch-sized buttons, themed result containers - create_task.html: mobile-friendly forms with 16px font (prevents iOS zoom) - tools.html & creative.html: themed headers, responsive column stacking - spark.html: replace all hardcoded blue (#00d4ff) colors with theme purple/orange - briefing.html: replace hardcoded bootstrap colors with theme variables Fixes: header nav overflow on iPhone (7 links in single row), missing extra_styles block silently dropping child template styles, undefined CSS variables breaking mobile/swarm/marketplace/voice pages, sub-44pt touch targets, missing -webkit-text-size-adjust, inconsistent color themes. 97 UI tests pass (91 UI-specific + 6 creative route). https://claude.ai/code/session_01JiyhGyee2zoMN4p8xWYqEe
2026-02-24 22:25:04 +00:00
<!-- Desktop nav -->
<div class="mc-header-right mc-desktop-nav">
<a href="/calm" class="mc-test-link">CALM</a>
<a href="/tasks" class="mc-test-link">TASKS</a>
feat(briefing): morning briefing + approval queue Implements the Morning Briefing and Approval Queue feature — the first step from tool to companion. Timmy now shows up before the owner asks. New modules ----------- • src/timmy/approvals.py — ApprovalItem dataclass, GOLDEN_TIMMY governance constant, full SQLite CRUD (create / list / approve / reject / expire). Items auto-expire after 7 days if not actioned. • src/timmy/briefing.py — BriefingEngine that queries swarm activity and chat history, calls Timmy's Agno agent for a prose summary, and caches the result in SQLite (~/.timmy/briefings.db). get_or_generate() skips regeneration if a fresh briefing (< 30 min) already exists. New routes (src/dashboard/routes/briefing.py) ---------------------------------------------- GET /briefing — full briefing page GET /briefing/approvals — HTMX partial: pending approval cards POST /briefing/approvals/{id}/approve — approve via HTMX (no page reload) POST /briefing/approvals/{id}/reject — reject via HTMX (no page reload) New templates ------------- • briefing.html — clean, mobile-first prose layout (max 680px) • partials/approval_cards.html — list of approval cards • partials/approval_card_single.html — single approval card with Approve/Reject HTMX buttons App wiring (src/dashboard/app.py) ---------------------------------- • Added asynccontextmanager lifespan with _briefing_scheduler background task. Generates a briefing at startup and every 6 hours; skips if fresh. Push notification hook (src/notifications/push.py) --------------------------------------------------- • notify_briefing_ready(briefing) — logs + triggers local notifier. Placeholder for APNs/Pushover wiring later. Navigation ---------- • Added BRIEFING link to the header nav in base.html. Tests ----- • tests/test_approvals.py — 17 tests: GOLDEN_TIMMY, CRUD, expiry, ordering • tests/test_briefing.py — 22 tests: dataclass, freshness, cache round-trip, generate/get_or_generate, push notification hook 354 tests, 354 passing. https://claude.ai/code/session_01D7p5w91KX3grBeioGiiGy8
2026-02-22 14:04:20 +00:00
<a href="/briefing" class="mc-test-link">BRIEFING</a>
<a href="/thinking" class="mc-test-link mc-link-thinking">THINKING</a>
<a href="/swarm/mission-control" class="mc-test-link">MISSION CTRL</a>
<a href="/swarm/live" class="mc-test-link">SWARM</a>
<a href="/bugs" class="mc-test-link mc-link-bugs">BUGS</a>
<div class="mc-nav-dropdown">
<button class="mc-test-link mc-dropdown-toggle" aria-expanded="false">MORE &#x25BE;</button>
<div class="mc-dropdown-menu">
<a href="/spark/ui" class="mc-test-link">SPARK</a>
<a href="/marketplace/ui" class="mc-test-link">MARKET</a>
<a href="/tools" class="mc-test-link">TOOLS</a>
<a href="/swarm/events" class="mc-test-link">EVENTS</a>
<a href="/lightning/ledger" class="mc-test-link">LEDGER</a>
<a href="/memory" class="mc-test-link">MEMORY</a>
<a href="/router/status" class="mc-test-link">ROUTER</a>
<a href="/grok/status" class="mc-test-link mc-link-grok">GROK</a>
<a href="/self-modify/queue" class="mc-test-link">UPGRADES</a>
<a href="/self-coding" class="mc-test-link">SELF-CODING</a>
<a href="/hands" class="mc-test-link">HANDS</a>
<a href="/work-orders/queue" class="mc-test-link">WORK ORDERS</a>
<a href="/creative/ui" class="mc-test-link">CREATIVE</a>
<a href="/voice/button" class="mc-test-link">VOICE</a>
<a href="/mobile" class="mc-test-link" title="Mobile-optimized view">MOBILE</a>
<a href="/mobile/local" class="mc-test-link" title="Local AI on iPhone">LOCAL AI</a>
</div>
</div>
<div class="mc-nav-dropdown" id="notif-dropdown">
<button id="enable-notifications" class="mc-test-link mc-dropdown-toggle" style="background:none;cursor:pointer;position:relative;" title="Notifications" aria-expanded="false">&#x1F514;<span id="notif-badge" class="notif-badge" style="display:none;"></span></button>
<div class="mc-dropdown-menu" style="right:0;left:auto;min-width:280px;max-height:350px;overflow-y:auto;">
<div id="notif-list" style="padding:6px;">
<div style="color:var(--text-dim);font-size:0.8rem;text-align:center;padding:12px;">Loading...</div>
</div>
</div>
</div>
<span class="mc-time" id="clock"></span>
</div>
fix: comprehensive iPhone UI overhaul — glassmorphism, responsive layouts, theme unification - base.html: add missing {% block extra_styles %}, mobile hamburger menu with slide-out nav, interactive-widget viewport meta, -webkit-text-size-adjust - style.css: define 15+ missing CSS variables (--bg-secondary, --text-muted, --accent, --success, --danger, etc.), add missing utility classes (.grid, .stat, .agent-card, .agent-avatar, .form-group), glassmorphism card effects, iPhone breakpoints (768px, 390px), 44pt min touch targets, smooth animations - mobile.html: rewrite with proper theme variables, glass cards, touch-friendly quick actions grid, chat with proper message bubbles - swarm_live.html: replace undefined CSS vars, use mc-panel theme cards - marketplace.html: responsive agent cards that stack on iPhone, themed pricing - voice_button.html & voice_enhanced.html: proper theme integration, touch-sized buttons, themed result containers - create_task.html: mobile-friendly forms with 16px font (prevents iOS zoom) - tools.html & creative.html: themed headers, responsive column stacking - spark.html: replace all hardcoded blue (#00d4ff) colors with theme purple/orange - briefing.html: replace hardcoded bootstrap colors with theme variables Fixes: header nav overflow on iPhone (7 links in single row), missing extra_styles block silently dropping child template styles, undefined CSS variables breaking mobile/swarm/marketplace/voice pages, sub-44pt touch targets, missing -webkit-text-size-adjust, inconsistent color themes. 97 UI tests pass (91 UI-specific + 6 creative route). https://claude.ai/code/session_01JiyhGyee2zoMN4p8xWYqEe
2026-02-24 22:25:04 +00:00
<!-- Mobile hamburger -->
<button class="mc-hamburger" id="hamburger-btn" aria-label="Menu">
<span></span><span></span><span></span>
</button>
</header>
fix: comprehensive iPhone UI overhaul — glassmorphism, responsive layouts, theme unification - base.html: add missing {% block extra_styles %}, mobile hamburger menu with slide-out nav, interactive-widget viewport meta, -webkit-text-size-adjust - style.css: define 15+ missing CSS variables (--bg-secondary, --text-muted, --accent, --success, --danger, etc.), add missing utility classes (.grid, .stat, .agent-card, .agent-avatar, .form-group), glassmorphism card effects, iPhone breakpoints (768px, 390px), 44pt min touch targets, smooth animations - mobile.html: rewrite with proper theme variables, glass cards, touch-friendly quick actions grid, chat with proper message bubbles - swarm_live.html: replace undefined CSS vars, use mc-panel theme cards - marketplace.html: responsive agent cards that stack on iPhone, themed pricing - voice_button.html & voice_enhanced.html: proper theme integration, touch-sized buttons, themed result containers - create_task.html: mobile-friendly forms with 16px font (prevents iOS zoom) - tools.html & creative.html: themed headers, responsive column stacking - spark.html: replace all hardcoded blue (#00d4ff) colors with theme purple/orange - briefing.html: replace hardcoded bootstrap colors with theme variables Fixes: header nav overflow on iPhone (7 links in single row), missing extra_styles block silently dropping child template styles, undefined CSS variables breaking mobile/swarm/marketplace/voice pages, sub-44pt touch targets, missing -webkit-text-size-adjust, inconsistent color themes. 97 UI tests pass (91 UI-specific + 6 creative route). https://claude.ai/code/session_01JiyhGyee2zoMN4p8xWYqEe
2026-02-24 22:25:04 +00:00
<!-- Mobile slide-out menu -->
<div class="mc-mobile-overlay" id="mobile-overlay"></div>
<nav class="mc-mobile-menu" id="mobile-menu">
<div class="mc-mobile-menu-header">
<span class="mc-mobile-menu-title">NAVIGATE</span>
<span class="mc-time" id="clock-mobile"></span>
</div>
<a href="/" class="mc-mobile-link">HOME</a>
<div class="mc-mobile-section-label">CORE</div>
<a href="/calm" class="mc-mobile-link">CALM</a>
<a href="/tasks" class="mc-mobile-link">TASKS</a>
fix: comprehensive iPhone UI overhaul — glassmorphism, responsive layouts, theme unification - base.html: add missing {% block extra_styles %}, mobile hamburger menu with slide-out nav, interactive-widget viewport meta, -webkit-text-size-adjust - style.css: define 15+ missing CSS variables (--bg-secondary, --text-muted, --accent, --success, --danger, etc.), add missing utility classes (.grid, .stat, .agent-card, .agent-avatar, .form-group), glassmorphism card effects, iPhone breakpoints (768px, 390px), 44pt min touch targets, smooth animations - mobile.html: rewrite with proper theme variables, glass cards, touch-friendly quick actions grid, chat with proper message bubbles - swarm_live.html: replace undefined CSS vars, use mc-panel theme cards - marketplace.html: responsive agent cards that stack on iPhone, themed pricing - voice_button.html & voice_enhanced.html: proper theme integration, touch-sized buttons, themed result containers - create_task.html: mobile-friendly forms with 16px font (prevents iOS zoom) - tools.html & creative.html: themed headers, responsive column stacking - spark.html: replace all hardcoded blue (#00d4ff) colors with theme purple/orange - briefing.html: replace hardcoded bootstrap colors with theme variables Fixes: header nav overflow on iPhone (7 links in single row), missing extra_styles block silently dropping child template styles, undefined CSS variables breaking mobile/swarm/marketplace/voice pages, sub-44pt touch targets, missing -webkit-text-size-adjust, inconsistent color themes. 97 UI tests pass (91 UI-specific + 6 creative route). https://claude.ai/code/session_01JiyhGyee2zoMN4p8xWYqEe
2026-02-24 22:25:04 +00:00
<a href="/briefing" class="mc-mobile-link">BRIEFING</a>
<a href="/thinking" class="mc-mobile-link">THINKING</a>
<a href="/swarm/mission-control" class="mc-mobile-link">MISSION CONTROL</a>
fix: comprehensive iPhone UI overhaul — glassmorphism, responsive layouts, theme unification - base.html: add missing {% block extra_styles %}, mobile hamburger menu with slide-out nav, interactive-widget viewport meta, -webkit-text-size-adjust - style.css: define 15+ missing CSS variables (--bg-secondary, --text-muted, --accent, --success, --danger, etc.), add missing utility classes (.grid, .stat, .agent-card, .agent-avatar, .form-group), glassmorphism card effects, iPhone breakpoints (768px, 390px), 44pt min touch targets, smooth animations - mobile.html: rewrite with proper theme variables, glass cards, touch-friendly quick actions grid, chat with proper message bubbles - swarm_live.html: replace undefined CSS vars, use mc-panel theme cards - marketplace.html: responsive agent cards that stack on iPhone, themed pricing - voice_button.html & voice_enhanced.html: proper theme integration, touch-sized buttons, themed result containers - create_task.html: mobile-friendly forms with 16px font (prevents iOS zoom) - tools.html & creative.html: themed headers, responsive column stacking - spark.html: replace all hardcoded blue (#00d4ff) colors with theme purple/orange - briefing.html: replace hardcoded bootstrap colors with theme variables Fixes: header nav overflow on iPhone (7 links in single row), missing extra_styles block silently dropping child template styles, undefined CSS variables breaking mobile/swarm/marketplace/voice pages, sub-44pt touch targets, missing -webkit-text-size-adjust, inconsistent color themes. 97 UI tests pass (91 UI-specific + 6 creative route). https://claude.ai/code/session_01JiyhGyee2zoMN4p8xWYqEe
2026-02-24 22:25:04 +00:00
<a href="/swarm/live" class="mc-mobile-link">SWARM</a>
<a href="/bugs" class="mc-mobile-link">BUGS</a>
<div class="mc-mobile-section-label">INTELLIGENCE</div>
fix: comprehensive iPhone UI overhaul — glassmorphism, responsive layouts, theme unification - base.html: add missing {% block extra_styles %}, mobile hamburger menu with slide-out nav, interactive-widget viewport meta, -webkit-text-size-adjust - style.css: define 15+ missing CSS variables (--bg-secondary, --text-muted, --accent, --success, --danger, etc.), add missing utility classes (.grid, .stat, .agent-card, .agent-avatar, .form-group), glassmorphism card effects, iPhone breakpoints (768px, 390px), 44pt min touch targets, smooth animations - mobile.html: rewrite with proper theme variables, glass cards, touch-friendly quick actions grid, chat with proper message bubbles - swarm_live.html: replace undefined CSS vars, use mc-panel theme cards - marketplace.html: responsive agent cards that stack on iPhone, themed pricing - voice_button.html & voice_enhanced.html: proper theme integration, touch-sized buttons, themed result containers - create_task.html: mobile-friendly forms with 16px font (prevents iOS zoom) - tools.html & creative.html: themed headers, responsive column stacking - spark.html: replace all hardcoded blue (#00d4ff) colors with theme purple/orange - briefing.html: replace hardcoded bootstrap colors with theme variables Fixes: header nav overflow on iPhone (7 links in single row), missing extra_styles block silently dropping child template styles, undefined CSS variables breaking mobile/swarm/marketplace/voice pages, sub-44pt touch targets, missing -webkit-text-size-adjust, inconsistent color themes. 97 UI tests pass (91 UI-specific + 6 creative route). https://claude.ai/code/session_01JiyhGyee2zoMN4p8xWYqEe
2026-02-24 22:25:04 +00:00
<a href="/spark/ui" class="mc-mobile-link">SPARK</a>
<a href="/memory" class="mc-mobile-link">MEMORY</a>
fix: comprehensive iPhone UI overhaul — glassmorphism, responsive layouts, theme unification - base.html: add missing {% block extra_styles %}, mobile hamburger menu with slide-out nav, interactive-widget viewport meta, -webkit-text-size-adjust - style.css: define 15+ missing CSS variables (--bg-secondary, --text-muted, --accent, --success, --danger, etc.), add missing utility classes (.grid, .stat, .agent-card, .agent-avatar, .form-group), glassmorphism card effects, iPhone breakpoints (768px, 390px), 44pt min touch targets, smooth animations - mobile.html: rewrite with proper theme variables, glass cards, touch-friendly quick actions grid, chat with proper message bubbles - swarm_live.html: replace undefined CSS vars, use mc-panel theme cards - marketplace.html: responsive agent cards that stack on iPhone, themed pricing - voice_button.html & voice_enhanced.html: proper theme integration, touch-sized buttons, themed result containers - create_task.html: mobile-friendly forms with 16px font (prevents iOS zoom) - tools.html & creative.html: themed headers, responsive column stacking - spark.html: replace all hardcoded blue (#00d4ff) colors with theme purple/orange - briefing.html: replace hardcoded bootstrap colors with theme variables Fixes: header nav overflow on iPhone (7 links in single row), missing extra_styles block silently dropping child template styles, undefined CSS variables breaking mobile/swarm/marketplace/voice pages, sub-44pt touch targets, missing -webkit-text-size-adjust, inconsistent color themes. 97 UI tests pass (91 UI-specific + 6 creative route). https://claude.ai/code/session_01JiyhGyee2zoMN4p8xWYqEe
2026-02-24 22:25:04 +00:00
<a href="/marketplace/ui" class="mc-mobile-link">MARKET</a>
<div class="mc-mobile-section-label">AGENTS</div>
<a href="/hands" class="mc-mobile-link">HANDS</a>
<a href="/work-orders/queue" class="mc-mobile-link">WORK ORDERS</a>
<a href="/self-modify/queue" class="mc-mobile-link">UPGRADES</a>
<a href="/self-coding" class="mc-mobile-link">SELF-CODING</a>
<div class="mc-mobile-section-label">SYSTEM</div>
fix: comprehensive iPhone UI overhaul — glassmorphism, responsive layouts, theme unification - base.html: add missing {% block extra_styles %}, mobile hamburger menu with slide-out nav, interactive-widget viewport meta, -webkit-text-size-adjust - style.css: define 15+ missing CSS variables (--bg-secondary, --text-muted, --accent, --success, --danger, etc.), add missing utility classes (.grid, .stat, .agent-card, .agent-avatar, .form-group), glassmorphism card effects, iPhone breakpoints (768px, 390px), 44pt min touch targets, smooth animations - mobile.html: rewrite with proper theme variables, glass cards, touch-friendly quick actions grid, chat with proper message bubbles - swarm_live.html: replace undefined CSS vars, use mc-panel theme cards - marketplace.html: responsive agent cards that stack on iPhone, themed pricing - voice_button.html & voice_enhanced.html: proper theme integration, touch-sized buttons, themed result containers - create_task.html: mobile-friendly forms with 16px font (prevents iOS zoom) - tools.html & creative.html: themed headers, responsive column stacking - spark.html: replace all hardcoded blue (#00d4ff) colors with theme purple/orange - briefing.html: replace hardcoded bootstrap colors with theme variables Fixes: header nav overflow on iPhone (7 links in single row), missing extra_styles block silently dropping child template styles, undefined CSS variables breaking mobile/swarm/marketplace/voice pages, sub-44pt touch targets, missing -webkit-text-size-adjust, inconsistent color themes. 97 UI tests pass (91 UI-specific + 6 creative route). https://claude.ai/code/session_01JiyhGyee2zoMN4p8xWYqEe
2026-02-24 22:25:04 +00:00
<a href="/tools" class="mc-mobile-link">TOOLS</a>
feat: complete Event Log, Ledger, Memory, Cascade Router, Upgrade Queue, Activity Feed This commit implements six major features: 1. Event Log System (src/swarm/event_log.py) - SQLite-based audit trail for all swarm events - Task lifecycle tracking (created, assigned, completed, failed) - Agent lifecycle tracking (joined, left, status changes) - Integrated with coordinator for automatic logging - Dashboard page at /swarm/events 2. Lightning Ledger (src/lightning/ledger.py) - Transaction tracking for Lightning Network payments - Balance calculations (incoming, outgoing, net, available) - Integrated with payment_handler for automatic logging - Dashboard page at /lightning/ledger 3. Semantic Memory / Vector Store (src/memory/vector_store.py) - Embedding-based similarity search for Echo agent - Fallback to keyword matching if sentence-transformers unavailable - Personal facts storage and retrieval - Dashboard page at /memory 4. Cascade Router Integration (src/timmy/cascade_adapter.py) - Automatic LLM failover between providers (Ollama → AirLLM → API) - Circuit breaker pattern for failing providers - Metrics tracking per provider (latency, error rates) - Dashboard status page at /router/status 5. Self-Upgrade Approval Queue (src/upgrades/) - State machine for self-modifications: proposed → approved/rejected → applied/failed - Human approval required before applying changes - Git integration for branch management - Dashboard queue at /self-modify/queue 6. Real-Time Activity Feed (src/events/broadcaster.py) - WebSocket-based live activity streaming - Bridges event_log to dashboard clients - Activity panel on /swarm/live Tests: - 101 unit tests passing - 4 new E2E test files for Selenium testing - Run with: SELENIUM_UI=1 pytest tests/functional/ -v --headed Documentation: - 6 ADRs (017-022) documenting architecture decisions - Implementation summary in docs/IMPLEMENTATION_SUMMARY.md - Architecture diagram in docs/architecture-v2.md
2026-02-26 08:01:01 -05:00
<a href="/swarm/events" class="mc-mobile-link">EVENTS</a>
<a href="/router/status" class="mc-mobile-link">ROUTER</a>
<a href="/grok/status" class="mc-mobile-link">GROK</a>
<div class="mc-mobile-section-label">COMMERCE</div>
<a href="/lightning/ledger" class="mc-mobile-link">LEDGER</a>
fix: comprehensive iPhone UI overhaul — glassmorphism, responsive layouts, theme unification - base.html: add missing {% block extra_styles %}, mobile hamburger menu with slide-out nav, interactive-widget viewport meta, -webkit-text-size-adjust - style.css: define 15+ missing CSS variables (--bg-secondary, --text-muted, --accent, --success, --danger, etc.), add missing utility classes (.grid, .stat, .agent-card, .agent-avatar, .form-group), glassmorphism card effects, iPhone breakpoints (768px, 390px), 44pt min touch targets, smooth animations - mobile.html: rewrite with proper theme variables, glass cards, touch-friendly quick actions grid, chat with proper message bubbles - swarm_live.html: replace undefined CSS vars, use mc-panel theme cards - marketplace.html: responsive agent cards that stack on iPhone, themed pricing - voice_button.html & voice_enhanced.html: proper theme integration, touch-sized buttons, themed result containers - create_task.html: mobile-friendly forms with 16px font (prevents iOS zoom) - tools.html & creative.html: themed headers, responsive column stacking - spark.html: replace all hardcoded blue (#00d4ff) colors with theme purple/orange - briefing.html: replace hardcoded bootstrap colors with theme variables Fixes: header nav overflow on iPhone (7 links in single row), missing extra_styles block silently dropping child template styles, undefined CSS variables breaking mobile/swarm/marketplace/voice pages, sub-44pt touch targets, missing -webkit-text-size-adjust, inconsistent color themes. 97 UI tests pass (91 UI-specific + 6 creative route). https://claude.ai/code/session_01JiyhGyee2zoMN4p8xWYqEe
2026-02-24 22:25:04 +00:00
<a href="/creative/ui" class="mc-mobile-link">CREATIVE</a>
<a href="/voice/button" class="mc-mobile-link">VOICE</a>
<a href="/mobile" class="mc-mobile-link">MOBILE</a>
<a href="/mobile/local" class="mc-mobile-link">LOCAL AI</a>
fix: comprehensive iPhone UI overhaul — glassmorphism, responsive layouts, theme unification - base.html: add missing {% block extra_styles %}, mobile hamburger menu with slide-out nav, interactive-widget viewport meta, -webkit-text-size-adjust - style.css: define 15+ missing CSS variables (--bg-secondary, --text-muted, --accent, --success, --danger, etc.), add missing utility classes (.grid, .stat, .agent-card, .agent-avatar, .form-group), glassmorphism card effects, iPhone breakpoints (768px, 390px), 44pt min touch targets, smooth animations - mobile.html: rewrite with proper theme variables, glass cards, touch-friendly quick actions grid, chat with proper message bubbles - swarm_live.html: replace undefined CSS vars, use mc-panel theme cards - marketplace.html: responsive agent cards that stack on iPhone, themed pricing - voice_button.html & voice_enhanced.html: proper theme integration, touch-sized buttons, themed result containers - create_task.html: mobile-friendly forms with 16px font (prevents iOS zoom) - tools.html & creative.html: themed headers, responsive column stacking - spark.html: replace all hardcoded blue (#00d4ff) colors with theme purple/orange - briefing.html: replace hardcoded bootstrap colors with theme variables Fixes: header nav overflow on iPhone (7 links in single row), missing extra_styles block silently dropping child template styles, undefined CSS variables breaking mobile/swarm/marketplace/voice pages, sub-44pt touch targets, missing -webkit-text-size-adjust, inconsistent color themes. 97 UI tests pass (91 UI-specific + 6 creative route). https://claude.ai/code/session_01JiyhGyee2zoMN4p8xWYqEe
2026-02-24 22:25:04 +00:00
<div class="mc-mobile-menu-footer">
<button id="enable-notifications-mobile" class="mc-mobile-link" style="background:none;border:none;cursor:pointer;width:100%;text-align:left;font:inherit;color:inherit;padding:inherit;">&#x1F514; NOTIFICATIONS</button>
</div>
</nav>
<!-- Toast container -->
<div class="mc-toast-container" id="toast-container"></div>
<main class="mc-main">
{% block content %}{% endblock %}
</main>
<script>
fix: comprehensive iPhone UI overhaul — glassmorphism, responsive layouts, theme unification - base.html: add missing {% block extra_styles %}, mobile hamburger menu with slide-out nav, interactive-widget viewport meta, -webkit-text-size-adjust - style.css: define 15+ missing CSS variables (--bg-secondary, --text-muted, --accent, --success, --danger, etc.), add missing utility classes (.grid, .stat, .agent-card, .agent-avatar, .form-group), glassmorphism card effects, iPhone breakpoints (768px, 390px), 44pt min touch targets, smooth animations - mobile.html: rewrite with proper theme variables, glass cards, touch-friendly quick actions grid, chat with proper message bubbles - swarm_live.html: replace undefined CSS vars, use mc-panel theme cards - marketplace.html: responsive agent cards that stack on iPhone, themed pricing - voice_button.html & voice_enhanced.html: proper theme integration, touch-sized buttons, themed result containers - create_task.html: mobile-friendly forms with 16px font (prevents iOS zoom) - tools.html & creative.html: themed headers, responsive column stacking - spark.html: replace all hardcoded blue (#00d4ff) colors with theme purple/orange - briefing.html: replace hardcoded bootstrap colors with theme variables Fixes: header nav overflow on iPhone (7 links in single row), missing extra_styles block silently dropping child template styles, undefined CSS variables breaking mobile/swarm/marketplace/voice pages, sub-44pt touch targets, missing -webkit-text-size-adjust, inconsistent color themes. 97 UI tests pass (91 UI-specific + 6 creative route). https://claude.ai/code/session_01JiyhGyee2zoMN4p8xWYqEe
2026-02-24 22:25:04 +00:00
// Clock
function updateClock() {
fix: comprehensive iPhone UI overhaul — glassmorphism, responsive layouts, theme unification - base.html: add missing {% block extra_styles %}, mobile hamburger menu with slide-out nav, interactive-widget viewport meta, -webkit-text-size-adjust - style.css: define 15+ missing CSS variables (--bg-secondary, --text-muted, --accent, --success, --danger, etc.), add missing utility classes (.grid, .stat, .agent-card, .agent-avatar, .form-group), glassmorphism card effects, iPhone breakpoints (768px, 390px), 44pt min touch targets, smooth animations - mobile.html: rewrite with proper theme variables, glass cards, touch-friendly quick actions grid, chat with proper message bubbles - swarm_live.html: replace undefined CSS vars, use mc-panel theme cards - marketplace.html: responsive agent cards that stack on iPhone, themed pricing - voice_button.html & voice_enhanced.html: proper theme integration, touch-sized buttons, themed result containers - create_task.html: mobile-friendly forms with 16px font (prevents iOS zoom) - tools.html & creative.html: themed headers, responsive column stacking - spark.html: replace all hardcoded blue (#00d4ff) colors with theme purple/orange - briefing.html: replace hardcoded bootstrap colors with theme variables Fixes: header nav overflow on iPhone (7 links in single row), missing extra_styles block silently dropping child template styles, undefined CSS variables breaking mobile/swarm/marketplace/voice pages, sub-44pt touch targets, missing -webkit-text-size-adjust, inconsistent color themes. 97 UI tests pass (91 UI-specific + 6 creative route). https://claude.ai/code/session_01JiyhGyee2zoMN4p8xWYqEe
2026-02-24 22:25:04 +00:00
const t = new Date().toLocaleTimeString('en-US', { hour12: false });
const el = document.getElementById('clock');
const el2 = document.getElementById('clock-mobile');
if (el) el.textContent = t;
if (el2) el2.textContent = t;
}
setInterval(updateClock, 1000);
updateClock();
fix: comprehensive iPhone UI overhaul — glassmorphism, responsive layouts, theme unification - base.html: add missing {% block extra_styles %}, mobile hamburger menu with slide-out nav, interactive-widget viewport meta, -webkit-text-size-adjust - style.css: define 15+ missing CSS variables (--bg-secondary, --text-muted, --accent, --success, --danger, etc.), add missing utility classes (.grid, .stat, .agent-card, .agent-avatar, .form-group), glassmorphism card effects, iPhone breakpoints (768px, 390px), 44pt min touch targets, smooth animations - mobile.html: rewrite with proper theme variables, glass cards, touch-friendly quick actions grid, chat with proper message bubbles - swarm_live.html: replace undefined CSS vars, use mc-panel theme cards - marketplace.html: responsive agent cards that stack on iPhone, themed pricing - voice_button.html & voice_enhanced.html: proper theme integration, touch-sized buttons, themed result containers - create_task.html: mobile-friendly forms with 16px font (prevents iOS zoom) - tools.html & creative.html: themed headers, responsive column stacking - spark.html: replace all hardcoded blue (#00d4ff) colors with theme purple/orange - briefing.html: replace hardcoded bootstrap colors with theme variables Fixes: header nav overflow on iPhone (7 links in single row), missing extra_styles block silently dropping child template styles, undefined CSS variables breaking mobile/swarm/marketplace/voice pages, sub-44pt touch targets, missing -webkit-text-size-adjust, inconsistent color themes. 97 UI tests pass (91 UI-specific + 6 creative route). https://claude.ai/code/session_01JiyhGyee2zoMN4p8xWYqEe
2026-02-24 22:25:04 +00:00
// Mobile menu
const hamburger = document.getElementById('hamburger-btn');
const overlay = document.getElementById('mobile-overlay');
const menu = document.getElementById('mobile-menu');
function toggleMenu() {
const open = menu.classList.toggle('open');
overlay.classList.toggle('open', open);
hamburger.classList.toggle('open', open);
document.body.style.overflow = open ? 'hidden' : '';
}
hamburger.addEventListener('click', toggleMenu);
overlay.addEventListener('click', toggleMenu);
// Highlight current page in mobile menu
document.querySelectorAll('.mc-mobile-link').forEach(function(a) {
if (a.getAttribute('href') === window.location.pathname) {
a.classList.add('active');
}
});
// Desktop dropdown toggles (More menu + Notification bell)
document.querySelectorAll('.mc-dropdown-toggle').forEach(function(toggle) {
toggle.addEventListener('click', function(e) {
e.stopPropagation();
var dd = this.closest('.mc-nav-dropdown');
// Close other dropdowns first
document.querySelectorAll('.mc-nav-dropdown.open').forEach(function(other) {
if (other !== dd) {
other.classList.remove('open');
var btn = other.querySelector('.mc-dropdown-toggle');
if (btn) btn.setAttribute('aria-expanded', 'false');
}
});
var isOpen = dd.classList.toggle('open');
this.setAttribute('aria-expanded', isOpen);
// Load notifications when opening the bell
if (isOpen && dd.id === 'notif-dropdown') { loadNotifications(); }
});
});
document.addEventListener('click', function() {
document.querySelectorAll('.mc-nav-dropdown.open').forEach(function(dd) {
dd.classList.remove('open');
var btn = dd.querySelector('.mc-dropdown-toggle');
if (btn) btn.setAttribute('aria-expanded', 'false');
});
});
// Notification loader
function loadNotifications() {
fetch('/api/notifications')
.then(function(r) { return r.json(); })
.then(function(data) {
var list = document.getElementById('notif-list');
if (!data.length) {
list.innerHTML = '<div style="color:var(--text-dim);font-size:0.8rem;text-align:center;padding:12px;">No recent notifications</div>';
return;
}
list.innerHTML = data.map(function(n) {
return '<div style="padding:6px 8px;border-bottom:1px solid var(--border);font-size:0.8rem;">'
+ '<div style="color:var(--text-bright);">' + (n.title || n.event_type || 'Event') + '</div>'
+ '<div style="color:var(--text-dim);font-size:0.7rem;">' + (n.timestamp || '') + '</div>'
+ '</div>';
}).join('');
var badge = document.getElementById('notif-badge');
if (badge) { badge.style.display = 'none'; }
})
.catch(function() {});
}
</script>
<!-- Toast + connection status system -->
<script>
// ── Toast notifications ──
window.McToast = {
show: function(message, level) {
level = level || 'info';
var container = document.getElementById('toast-container');
if (!container) return;
var toast = document.createElement('div');
toast.className = 'mc-toast ' + level;
toast.textContent = message;
container.appendChild(toast);
requestAnimationFrame(function() {
toast.classList.add('show');
});
setTimeout(function() {
toast.classList.remove('show');
setTimeout(function() { toast.remove(); }, 300);
}, 4000);
}
};
// ── Global connection status ──
(function() {
var dot = document.getElementById('conn-dot');
var label = document.getElementById('conn-label');
var wsConnected = false;
var ollamaOk = null; // null = unknown, true/false
function updateIndicator() {
if (!dot || !label) return;
if (!wsConnected) {
dot.className = 'mc-conn-dot red';
label.textContent = 'OFFLINE';
} else if (ollamaOk === false) {
dot.className = 'mc-conn-dot amber';
label.textContent = 'NO LLM';
} else {
dot.className = 'mc-conn-dot green';
label.textContent = 'LIVE';
}
}
function checkOllama() {
fetch('/health')
.then(function(r) { return r.json(); })
.then(function(data) {
var prev = ollamaOk;
ollamaOk = data.services && data.services.ollama === 'up';
updateIndicator();
if (prev === false && ollamaOk) {
McToast.show('Ollama reconnected', 'info');
} else if (prev === true && !ollamaOk) {
McToast.show('Ollama unreachable', 'warn');
}
})
.catch(function() {
ollamaOk = false;
updateIndicator();
});
}
var protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:';
var reconnectDelay = 1000;
function connectStatusWs() {
var ws;
try {
ws = new WebSocket(protocol + '//' + window.location.host + '/swarm/live');
} catch(e) { return; }
ws.onopen = function() {
wsConnected = true;
reconnectDelay = 1000;
updateIndicator();
checkOllama();
};
ws.onclose = function() {
if (wsConnected) {
McToast.show('WebSocket disconnected', 'error');
}
wsConnected = false;
updateIndicator();
setTimeout(connectStatusWs, reconnectDelay);
reconnectDelay = Math.min(reconnectDelay * 2, 30000);
};
ws.onerror = function() {};
}
connectStatusWs();
// Poll Ollama health every 30s
setInterval(checkOllama, 30000);
})();
</script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
<script src="/static/notifications.js"></script>
</body>
</html>