Skip to content

Massive update #18

Open
aievolutionpl wants to merge 34 commits into
ethanplusai:mainfrom
aievolutionpl:main
Open

Massive update #18
aievolutionpl wants to merge 34 commits into
ethanplusai:mainfrom
aievolutionpl:main

Conversation

@aievolutionpl

Copy link
Copy Markdown

No description provided.

aievolutionpl and others added 30 commits June 7, 2026 23:17
Refine the JARVIS cockpit with new ways to interact and clearer feedback,
all built on existing backend APIs (no server changes):

- Text command bar: type requests instead of speaking; reuses the existing
  transcript WebSocket path with a new "text" source.
- Keyboard shortcuts (/ focus, M mute, Esc stop, L clear log, , settings,
  ? help) with an on-screen shortcuts overlay.
- Toast notification system replacing the single fading error line; surfaces
  errors, file-intake success, clipboard, and mute state.
- Live state pill showing idle/listening/thinking/speaking/muted.
- Activity-log Copy/Clear controls and two new HUD metrics (session tokens
  and today's cost) sourced from the existing /api/usage endpoint.
- README updated with the new interactions and a shortcuts table.
Vertical slice across JARVIS:

- skills.py: installable catalog of 100 small-business skills across 15
  categories (sales, marketing, finance, HR, support, ops, etc.). Hybrid
  model — prompt-based by default, with executable handlers for invoice,
  SOP, and agenda generation that save real artifacts. Enable/disable,
  search, and goal-based recommendation, persisted in SQLite. Active skills
  are injected into the system prompt.

- onboarding.py: first-run discovery flow with a persistent user profile.
  While active, the system prompt steers JARVIS to learn who the user is
  and what they want, then recommend/enable relevant skills via new
  [ACTION:PROFILE], [ACTION:RECOMMEND_SKILLS], and [ACTION:ONBOARD_DONE].

- mcp_registry.py: catalog of connectable external tool servers (Gmail,
  Notion, Slack, GitHub, Supabase, Stripe, etc.) over MCP, with connect/
  disconnect state and connected-tool awareness in the prompt.

- memory.py: recall now combines FTS rank with importance, recency, and
  usage; remember() de-duplicates near-identical facts; added importance
  decay for stale memories.

- server.py: new [ACTION:RUN_SKILL] plus skills/onboarding/MCP context
  injection, and REST endpoints for skills, MCP, and onboarding.

- Frontend: searchable skills browser with category chips and toggles, an
  MCP connect/disconnect panel, a 5-step onboarding wizard, and responsive
  styling for narrow screens.

- Tests for the new modules (17), all green alongside the existing suite.
Build a runtime provider router so JARVIS can switch its conversational
brain and voice without a restart, closing the "provider execution router"
and "ElevenLabs runtime TTS" roadmap items.

Providers (new providers/ package, side-effect-free, httpx-based):
- LLM router: Anthropic (default), OpenAI, Ollama (local), Google Gemini,
  DeepSeek, Groq. OpenAI-compatible + Gemini request shapes; identical
  plain-string return contract so the [ACTION:X] pipeline is untouched.
- TTS router: Fish Audio (default) + ElevenLabs (voice only).
- Claude stays the orchestrator for actions/intent/summaries; only the
  conversational brain is swappable. A summarize() helper falls back to the
  active provider when no Anthropic key is set.

Server:
- Route generate_response and synthesize_speech through the routers (live
  env reads -> saved keys/selection take effect without restart).
- New endpoints: POST /api/settings/active, /api/settings/test-provider,
  GET /api/settings/ollama-models. Extend status with llm/tts metadata.
- Allowlist the new selector env keys; rebuild Anthropic client on key save.

Frontend:
- New Settings -> Engine section: pick active brain + model (Ollama models
  fetched live), Ollama base URL, active voice + ElevenLabs voice id, with
  per-provider Test buttons. Persists via /api/settings/active.

Bug fixes:
- fix_self sent raw bytes as audio instead of base64 (would crash send).
- extract_action dropped any spoken text placed after an [ACTION:X] tag.
- Stale-reply discard after barge-in via request-id echo (reqId).
- Audio player no longer wedges the orb when the last buffer fails to decode.
- 300ms mic-resume debounce after speaking to avoid self-hearing.
- Status endpoint uses is_configured() instead of duplicated placeholder check.

Tests: providers adapter request shapes, config readers, and extract_action
regression (15 tests, no API keys required).
Embed hero SVG in README and refresh roadmap status
…ckend REST APIs, configure frontend on port 5180
…s-polish

JARVIS 2.0 — Add Memory, Workflow tabs, REST APIs & port updates
…er-for-user-customization

Rebuild JARVIS Control Center widgets
…-documentation

Refine connectors, LLM routing, memory/skills prompts, shortcuts, and docs
…completion

- Respect the user's JARVIS_LLM_MODEL_ANTHROPIC override in the voice loop;
  Haiku remains the low-latency default only when no override is set
- Update token pricing to Claude Haiku 4.5 rates
- Require the completion marker for dispatched tasks, with an mtime-based
  stall fallback instead of completing on any 100+ char partial output
- Standardize the documented frontend port on 5180 (matches vite.config.ts)
- Harden start.sh/start.ps1: python/npm detection, auto-open the HUD
- Remove dead frontend/src/orb.backup.ts

https://claude.ai/code/session_01VdYVFs5Pn1qYVXE6tXcjE2
- New system_control.py: pure per-platform command builders (mac/windows/linux)
  plus async executors that never raise — open URL/app/path, set volume,
  media control, lock screen, clipboard, screenshots, terminal launch
- actions.py now routes non-macOS hosts through system_control instead of
  crashing on a missing osascript; mac-only features report gracefully
- New action tags wired through the voice loop: OPEN_APP, OPEN_PATH,
  SET_VOLUME, MEDIA, LOCK_SCREEN, CLIPBOARD, SCREENSHOT — documented in the
  system prompt and recorded in the action log
- tests/test_system_control.py: 17 desktop-free unit tests

https://claude.ai/code/session_01VdYVFs5Pn1qYVXE6tXcjE2
- Real hosted endpoints for GitHub, Stripe, and HubSpot MCP servers
- Six new connectors: Linear, Sentry, Asana, Atlassian, Zapier, Canva
- Google Workspace servers (Gmail/Drive/Calendar) now flagged needs_config
  with a hint instead of fake placeholder URLs; a per-connection URL or
  stdio command saved in Settings overrides the catalog launch
- Settings API whitelist now covers MCP auth tokens and weather keys, so
  connector credentials can finally be saved from the UI
- Brave Search key exposed in the integrations catalog; .env.example lists
  all MCP token placeholders

https://claude.ai/code/session_01VdYVFs5Pn1qYVXE6tXcjE2
- 11 new prompt skills: daily-brief, weekly-review, focus-sprint,
  habit-coach, reading-list, meal-planner, workout-plan, travel-packing,
  learning-plan, gift-ideas, decision-helper
- 3 new utility skills: password-generator, unit-converter, markdown-to-html
- 5 new executable handlers producing real artifacts: daily brief pulls
  open tasks from memory; reading list persists across runs; markdown→HTML
  emits a previewable dark-theme page; passwords use secrets and are never
  written to disk; unit converter covers length/mass/temperature/data
- daily-brief enabled by default on fresh installs
- tests/test_skills_handlers.py: 11 tests with artifacts redirected to tmp

https://claude.ai/code/session_01VdYVFs5Pn1qYVXE6tXcjE2
- Generate jarvis.png/jarvis.ico locally (scripts/generate_icon.py, Pillow)
  and wire the icon into the Windows/Linux desktop shortcut installers
- Add favicon.svg, web manifest, and theme-color for browser/PWA identity
- Let users paste MCP connector tokens and custom server URLs directly on
  each connector card in Settings (saved via the whitelisted keys API)
- Accessibility: aria-labels on icon-only controls, live-region state pill,
  visible focus rings
- README: desktop control support matrix, MCP connector overview, REST and
  WebSocket API reference, troubleshooting, port 5180 consistency (EN + PL)
- CLAUDE.md: architecture map and handoff checks cover system_control,
  mcp_registry, and the new test suites

https://claude.ai/code/session_01VdYVFs5Pn1qYVXE6tXcjE2
…le utilities

New executable handlers with tests: writing analyzer (text-stats), JSON
formatter, CSV-to-Markdown table, DST-aware timezone converter with spoken
city aliases, date calculator (between/add, weekday counts), and checklist
builder. New prompt skills: fact-check, product comparison, news digest,
deep-dive research, email reply, difficult conversation prep, negotiation
prep, elevator pitch, regex builder, git helper, wellness break, and sleep
wind-down.

https://claude.ai/code/session_01VdYVFs5Pn1qYVXE6tXcjE2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants