Commit graph

29 commits

Author SHA1 Message Date
Synq Imaging
d24f1437c2 [autosave] milestone/2.1-stream-ui @ 2026-05-08T11:09:10-07:00
4 files, 4 new

?? scripts/__pycache__/
?? scripts/synqcore_mcp_server.py
?? scripts/synqcore_terminal.py
?? synqterm
2026-05-08 11:09:10 -07:00
Synq Imaging
77a5153cb9 [autosave] milestone/2.1-stream-ui @ 2026-05-08T10:53:10-07:00
1 files, 1 new

?? mcp_venv/
2026-05-08 10:53:11 -07:00
Synq Imaging
81e9381957 [autosave] milestone/2.1-stream-ui @ 2026-05-08T09:39:04-07:00
1 files, +7/-1 lines, 0
0 new

 M scripts/synq-auto-backup.sh
2026-05-08 09:39:04 -07:00
Synq Imaging
6680f9f3b6 [autosave] milestone/2.1-stream-ui @ 2026-05-08T09:38:03-07:00
1 files, +10/-0 lines, 0
0 new

 M scripts/synq-auto-backup.sh
2026-05-08 09:38:03 -07:00
Synq Imaging
6cff935fc2 [autosave] milestone/2.1-stream-ui @ 2026-05-08T09:34:07-07:00
1 files, +1/-0 lines, 0
0 new

 M README.md
2026-05-08 09:34:07 -07:00
Synq Imaging
2a47fa6b0a [autosave] milestone/2.1-stream-ui @ 2026-05-08T09:32:35-07:00
1 files, +21/-7 lines, 0
0 new

 M scripts/synq-auto-backup.sh
2026-05-08 09:32:35 -07:00
Synq Imaging
a9c7030552 [autosave] milestone/2.1-stream-ui @ 2026-05-08T09:31:36-07:00
2 files changed, +34/-908 lines

M	Cargo.lock
M	Cargo.toml
2026-05-08 09:31:36 -07:00
Synq Imaging
92e00d4dc0 auto-backup: synq-core-runtime @ 20260507-192850 2026-05-07 19:28:50 -07:00
cavalier8030
6842565e16 fix(workspace): clean stale artifacts, fix tests, symlink synq-desktop
- Remove stale uppercase UI/Stream directory (AI session artifact)
- Remove .kimi/ AI agent config from repo and gitignore it
- Create synq-desktop -> ui/stream symlink for canonical desktop path
- Fix CloudSanitizer::contains_phi() to not block on 'ssn' string
  (SSN numbers are redacted by regex; blocking caused test failure)
- Update integration test: registry now has 5 agents (added odoo-agent)
- Stage existing scripts/odoo_mock_bridge.py JSON-RPC additions
- All workspace tests pass, cargo build --release verified
2026-05-07 18:42:46 -07:00
cavalier8030
deb2480655 fix(stream): launch scripts, Odoo mock bridge, and Vite base path for production builds
- Add launch scripts for synq-core runtime and synq-stream desktop app
- Create Odoo mock bridge server for local development
- Fix Vite base path to relative (./) for Tauri embedded assets
- Add desktop launcher shortcuts
- Configure env for available Ollama models and mock Odoo bridge
2026-05-07 13:42:32 -07:00
cavalier8030
dd06064995 Merge remote-tracking branch 'mobile/main' into milestone/2.1-stream-ui 2026-05-06 18:12:57 -07:00
cavalier8030
3f95f239be feat(mobile): Synq Mobile v0.1 scaffold — multi-profile Tauri app with Kids PIN setup
- Full Tauri v2 mobile scaffold (Rust backend + React frontend + Android)
- Multi-profile architecture: Business / Personal / Family / Kids
- Per-profile encrypted SQLite isolation via rusqlite
- Kids profile: persistent PIN storage (SHA-256 + salt), setup flow, PIN lock
- Desktop dev mode working (GTK/WebKit) on ARM64 Linux
- Android APK build working (arm64, 17MB unsigned)
- Phase 2 stubs: Jitsi SDK, cpal/hound audio, Beam voice commands
- QEMU x86_64 emulation for Google Android SDK tools on ARM64 host
- Workspace integration with synq-protocol, synq-security, synq-core
2026-05-06 18:12:13 -07:00
Zahra
cda04ad3b7 Initial commit 2026-05-07 01:10:03 +00:00
cavalier8030
45518b4bb4 fix(ui): finance Odoo integration + dashboard drag/resize widgets
Finance:
- Query last 90 days instead of current month only for broader data capture
- Add fallback fields: payment_method_id, payment_type, communication
- Add clear Live Odoo / Demo Data / Error indicator badges
- Add refresh button and explicit demo-data toggle
- Show error banner when Odoo connection fails
- Unified rendering: same layout for Odoo and demo data, empty state when no data
- Remove confusing conditional layout switching between Odoo vs mock

Dashboard Widgets:
- Replace CSS grid with react-grid-layout Responsive grid
- All static widgets and channel widgets are now draggable and resizable
- Layouts persist to localStorage (synq_dashboard_layouts)
- Default layouts auto-generated for new/missing widgets
- Drag handle on widget headers, resize handles on corners
- Keep greeting/system health/quick actions as fixed top section

Build: tsc + vite build pass clean
2026-05-05 20:52:19 -07:00
cavalier8030
bd42add952 ui(stream): overnight fix bundle — resizable sidebar, Odoo finance, widget interactivity
Phase 1: Layout Refactor
- Convert sidebar from position:fixed overlay to true flexbox row layout
- Add draggable 3px resize handle with min/max bounds (180–400px)
- Persist sidebar width to localStorage (synq_sidebar_width)
- Add icon-only collapse mode (72px) via double-click on drag handle
- Update TopBar, ChannelLayout to use CSS var --sidebar-width
- Deprecate useSidebarOffset hook (returns 0 for backward compat)

Phase 2: Odoo Finance Integration
- Add fetchFinanceOverview, fetchFinancePayments, fetchFinanceInvoices,
  fetchFinanceRefunds to services/odoo/fetchers.ts
- Wire FinancePage to load real account.move, account.payment data
- Keep mock data as graceful fallback when Odoo returns empty
- Add loading spinner and CSV export for payment lists

Phase 3: Beam Avatar & Branding
- Verify beam-avatar.svg, beam-avatar.jpg assets in public/

Phase 4: Page-Specific Fixes
- PatientsPage: auto-load first page on mount (no search required)
- SchedulePage: filter appointments by selected date
- SettingsPage: remove duplicate theme toggle (already in Sidebar/TopBar)
- ChannelLayout: remove erroneous left padding in flexbox layout

Phase 5: Dashboard Widget Interactivity
- Track static widget visibility in localStorage (synq_dashboard_static)
- Add hover-to-reveal X button on all static dashboard cards
- Widget picker supports both static widgets and channel widgets
- Channel widgets retain collapse/remove via WidgetCard

Build: tsc --noEmit passes clean
2026-05-05 20:27:40 -07:00
cavalier8030
2ad8040a09 assets: add Beam character from Synq Desktop 2026-05-03 00:21:23 -07:00
cavalier8030
c0f87a43b1 feat: wire Stream UI to Rust backend agents
- Expose agent client fields (emr, finance, messaging, news)
- Add Tauri commands: get_channels, get_channel_cards, get_channel_spotlight, send_beam_query
- Channel data fetchers query real agents (NocoBase, Plaid, Alpaca, Beam, Scrapling)
- Update frontend API layer with new commands
- Update useChannels hook to fetch real channel summaries
- Update useBeam hook to route through send_beam_query
- Add useChannelCards hook for per-channel card fetching
- Update ChannelSection with skeleton loading states
- Update SpotlightCard to support real metric data
- Update ChannelCard with avatarText/avatarGradient support
- Update CardCarousel to use CardItem type
- Frontend + Rust both compile successfully
2026-05-02 20:23:50 -07:00
cavalier8030
f42cad608c fix(rust): add serde camelCase rename to IPC structs
Rust structs use snake_case by default, but TypeScript expects camelCase.
Without rename_all, profile.dashboardConfig was undefined because the JSON
field was dashboard_config. This caused 'undefined is not an object' when
accessing profile.dashboardConfig.widgets.
2026-05-02 20:06:39 -07:00
cavalier8030
807c12e820 fix(ui): remove backdrop-filter to fix WebKitGTK blank screen
WebKitGTK on some GPU/driver configs fails to composite windows that use
backdrop-filter blur, causing the entire window to render blank. Replace all
glassmorphism surfaces with solid dark backgrounds (#0a0a0f / #12121a).
2026-05-02 19:57:36 -07:00
cavalier8030
2d3eccf366 fix(ui): replace inset-0 with explicit positioning for WebKitGTK compat
WebKitGTK versions older than 2.34 may not support the CSS inset shorthand.
Replace all inset-0 utility classes with explicit top/left/right/bottom
to ensure fullscreen overlays and fixed containers render correctly.

Also restore full App.tsx with all components after testing fixes.
2026-05-02 19:51:57 -07:00
cavalier8030
f77ad86851 fix(ui): resolve blank screen issues
- Add html/body/#root height/width rules to index.css (matching classic UI)
- Replace framer-motion AnimatePresence with plain conditional render
- Add ErrorBoundary to catch and display runtime errors
- Add generateUUID fallback for crypto.randomUUID compatibility
- Remove debug console.log statements
2026-05-02 19:47:29 -07:00
cavalier8030
d6e379fbde fix(tauri): add beforeDevCommand and beforeBuildCommand to tauri.conf.json 2026-05-02 19:36:15 -07:00
cavalier8030
28252ec6d0 feat: rebuild Stream UI as vertical Steam-style interface
- Add LoadingScreen with AI service warmup sequence
- Add BeamAvatar with animated states (idle/listening/thinking/speaking/loading)
- Add per-user dashboard with role-based widget defaults
- Add vertical channel container with scroll snap
- Add horizontal card carousels within channels
- Add collapsible/expandable channel sections
- Add drag-reorder expanded sidebar menu
- Add Beam AI input bar with message overlay
- Add window mode toggle (kiosk/bigpicture/windowed)
- Add admin PIN exit dialog
- Integrate Tauri v2 commands for profile, dashboard, AI warmup
2026-05-02 18:26:16 -07:00
cavalier8030
2022668d1a archive: save classic fullscreen Stream UI before Steam-style rebuild 2026-05-01 18:12:18 -07:00
cavalier8030
9fd06ac999 feat: milestone 2.0 full agents + rhythm intelligence
Agent Architecture:
- CapabilityAgent async trait with AgentContext, AgentResponse
- AgentRegistry with dynamic loading and capability-based routing

Real Agents (all implement CapabilityAgent):
- EMR: NocoBase client, patient search, appointments, meds, vitals
- Finance: Plaid/Alpaca/Dwolla clients, revenue, portfolio, transfers
- Messaging: Beam AI client, inbox, send, draft, summarize
- News: Scrapling client, search, headlines, article summaries

Rhythm Model:
- TemporalPattern with hour_of_day[24] and day_of_week[7]
- InteractionRecord with agent_id, embedding, response_time
- predict_active_agents: top-3 predictions based on temporal patterns
- predict_intent: greeting suggestions based on predicted agents
- compute_attention_budget: adaptive budget by data class + agent load
- Co-activation matrix with 5-min window Hebbian updates

Manifold Enhancements:
- update_hebbian_with_decay: strengthen co-activated, decay episodic
- cluster_memories: DBSCAN on embedding cosine distance

Scheduler Integration:
- execute_with_rhythm: pre-warm predicted agents, record interactions
- get_greeting: rhythm-based morning/afternoon suggestions

CLI Extensions:
- agent-list, agent-test, emr, finance, message, news
- rhythm-stats, rhythm-predict, greeting

Database:
- migration 002: interaction_log, temporal_patterns, agent_registry

Tests: 47 tests pass, clippy clean, frontend builds
2026-05-01 14:35:45 -07:00
cavalier8030
79b15081cc chore: add weekend build monitor config
- .kimi/claw.yaml: automated validation, test, build checks
- Schedule: every 2h + git push triggers on milestone/2.0-full-agents-rhythm
- Generates markdown reports and pushes to report branches
- Added reports/ to .gitignore
2026-05-01 11:42:51 -07:00
cavalier8030
8b4ca57dcf feat: milestone 1.5 shell guard
Add synq-guard kiosk lockdown crate:
- Argon2 PIN hashing with /etc/synq/admin_pin_hash
- systemd ctrl-alt-del masking, sysctl hardening
- evdev input grab stubs
- KioskGuard::lock_input, unlock_with_pin, setup_watchdog, init_pin

Add synq-shell maintenance TUI:
- crossterm-based fullscreen rolling menu
- Spring physics (stiffness 12, damping 0.88)
- Touch swipe, mouse wheel, arrow keys
- Infinite wrap, distance decay scale/opacity/blur
- 6 menu items: Restart, Updates, Logs, Network, Power Off, Back

Extend synq-cli:
- guard-init-pin, guard-lock, guard-unlock, shell, watchdog-setup

Integrate Tauri Stream UI exit flow:
- request_exit command with PIN verification
- ExitDialog component for PIN entry
- RollingMenu React component with full Figma spec

Add systemd hardening configs:
- config/systemd/synq-core.service
- config/systemd/synq-watchdog.service
- config/systemd/display-manager.service.d/synq.conf

Tests: all 28 tests pass, clippy clean, frontend builds
2026-05-01 10:02:30 -07:00
cavalier8030
106971f3fe feat(milestone-1): complete Synq Core Runtime kernel
- Intent encoder with PHI classifier (<10ms deterministic)
- Hybrid backend router (Kimi Cloud ↔ Local Ollama)
- Persistent Manifold (pgvector + Hebbian learning)
- Shadow Log (ed25519-signed, hash-chained)
- VectorBus agent communication
- EMR agent skeleton
- synq-cli for testing and debugging
- Tauri v2 Stream UI (React, TypeScript, Vite, Tailwind, fullscreen kiosk)
- Docker Compose + GitLab CI
- All tests pass, clippy clean, fmt clean
- 47/47 validation checks pass
2026-04-30 19:14:28 -07:00
cavalier8030
3f6b8897fd feat(milestone-1): complete Synq Core Runtime kernel 2026-04-30 18:29:20 -07:00