- .page-controls visibility: changed from (wrong) to
- Graph node callback: use HTMLElement.click() instead of
dispatch_event(MouseEvent), which wasn't working (untrusted event)
- Moved the minimize/close buttons from dynamic JS creation to
static HTML in index.html (always present, hidden by default)
- sync_page_controls() now just toggles opacity/pointer-events
instead of creating DOM elements
- Graph callback now creates a web_sys::MouseEvent('click') and
dispatches it on the corresponding .tip element.
- The existing install_tip_clicks listener captures it and calls
open_or_switch with proper coordinates.
- Graph: nodes are draggable via pointer events. Snap back with
spring transition on release (cubic-bezier 0.34,1.56,0.64,1)
- Removed hover bounce animation (was distracting)
- Page controls (minimize/close): now fixed position in viewport
(top-right, z-index 100), not inside the deck-page scroll area.
Created once in sync_page_controls() on show/hide deck.
Controls detect active page when data-minimize/close-page is empty.
- Hash routing → history.pushState: URLs are /estudio/aire etc.
popstate listener handles back/forward. Initial path read on boot.
- Added PointerEvent feature to gioser-graph-web Cargo.toml
- Added History feature to gioser-web Cargo.toml
- Edges and nodes now in separate SVG <g> groups (edges first = behind)
- Stroke width: 0.6 + w*4.0 instead of normalized range (more visible variation)
- Brightness: uses raw weight directly, not normalized against max
- Edges group has no breathing animation (only nodes breathe)
- Each edge color is a 50/50 blend of its two nodes' camino colors
- Extra brightness proportional to weight (higher weight = closer to white)
- Edge opacity/width also varies by weight
- Edges drawn before nodes in SVG (already behind them)
- Fix: map positions by node.id (UUID) not doc_id — edges now draw
- Index the 4 docs/ files into Qdrant (15 fragments via index-gioser-docs.py)
- Page background: single smooth radial-gradient per element (no color
divisions), animated 'page-breathe' — opacity pulses 0.35↔0.80
- Graph CSS: 'graph-breathe' 5s opacity animation (feels alive)
- cytoscape-graph.js now uses MutationObserver, not DOMContentLoaded
(the <gioser-graph> element is created dynamically by WASM)
- Remove unused dispatchEvent from lib.rs
- Rebuild WASM
- Switch from circles to horizontal rounded rectangles with text inside
- Text size 12px body + 8px sublabel (camino), no overlaps
- Edge stroke-width proportional to semantic weight
- Fix 'Layout was forced' warning
- Reduce CSS page-ambience animations: only opacity (no transform)
to fix 'breathing background' visual glitch
- Layout: more separation (k*1.6), 80 iterations