Commit Graph

3 Commits

Author SHA1 Message Date
Svrnty
b43e6496f5 fix(plugin): inject sidebar buttons into BOTH .rail (desktop) + .sidebar-nav (mobile)
Some checks failed
plugin-tests / test (push) Failing after 5s
ROOT CAUSE of JP's "buttons not showing" report: hermes-webui has two nav
containers — `<nav class="rail">` (desktop ≥641px, rail-btn 20×20 stroke
1.5) and `.sidebar-nav` (mobile, nav-tab 18×18 stroke 2). My previous
injection only touched .sidebar-nav, so on desktop the buttons literally
didn't exist anywhere visible.

This patch:
- Defines per-container button templates (class list + svg size/stroke)
  matching exactly how upstream renders its native rail-btn vs nav-tab
- Iterates both containers on init + retries
- MutationObserver re-injects into either if something re-renders it
- Tooltip modifier (--bottom) only applied for sidebar-nav (mobile pattern)
- SVG paths centralized so adding new tabs is one entry

Karpathy 4 rules: surfaced root cause via console logs + DOM inspection
instead of guessing, simplest fix (data-driven container list), surgical
(no other behavior changed).
2026-05-24 12:58:06 -04:00
Svrnty
7a5c48c775 debug(plugin): add console logging to svrnty_nav.js to diagnose silent injection failure
Some checks failed
plugin-tests / test (push) Failing after 5s
2026-05-24 12:55:35 -04:00
Svrnty
f8ce6b21f1 feat(umbrella): cortex-os umbrella graph viz panel — Phase 2.E
Some checks failed
plugin-tests / test (push) Failing after 6s
Per sot/03-PROTOCOLS/CORTEX-OS-UMBRELLA-VIZ-PRD.md. Living-graph panel
inside hermes-webui consuming curator-maintained graph/umbrella.json
(UI-stable v1.0 schema emitted by curator-planb sweep.py v0.2).

routes/umbrella.py — 3 endpoints:
  GET /umbrella                  → redirect to static panel HTML
  GET /api/umbrella              → graph/umbrella.json contents
  GET /api/umbrella/doc?path=X   → markdown body for a node's source_path
                                   (path-traversal guarded; 50KB cap)

static/umbrella.{html,css,js} — Cytoscape.js v3.30.2 (CDN) render:
  - 8 node types: doc/profile/skill/mcp_server/sovereign_api/cortex_tool/
    external_dep/credential — each gets distinct color + shape
  - 5 edge types: depends_on/governs/consumes/produces/supersedes
  - filter chips (toggle node type visibility)
  - layout switcher (force/tier/concentric)
  - search (dim non-matching nodes)
  - click node → side panel w/ frontmatter + markdown body + in/out edges
  - edge-list buttons jump between connected nodes

Plan B brand-aligned dark theme; DESIGN.md 8-property subset
(backgroundColor/textColor/typography/rounded/padding/size/height/width).

svrnty_nav.js bundled (sidebar nav integration — non-umbrella scope).

CONNECTION-MAP.md regenerated via scripts/ast-connection-map.py.
plugin.py route-list extended w/ "umbrella" + injects umbrella assets via
the standard static dir registration.

Module import: ✓ (python3 -c "import routes.umbrella" clean).
Graph artifact verified: 81 nodes / 120 edges live in graph/umbrella.json.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 12:43:29 -04:00