26 Commits

Author SHA1 Message Date
Aurora
cb054c59d0 fix(workspace): close round-two issue gaps 2026-06-05 16:56:08 -04:00
Eric
e1470084d2 perf: optimize playground engine responsiveness (#372)
Merging the playground performance pass after rebasing it onto current main and re-running a fresh local production build. The branch stays scoped to HermesWorld performance and asset-weight reductions.
2026-05-14 13:38:23 -04:00
Eric
cd6115b2fc fix: consolidate verified workspace issue sweep (#432)
* fix(start): use server-entry wrapper for production

* fix(swarm): reconcile oneshot checkpoints and ignore phantom blockers

* fix(profiles): sync editable descriptions from profile config

* fix: show cron jobs across Hermes profiles

* fix(capabilities): clarify dashboard-backed API detection

* feat: make Conductor use native Swarm fallback

Treat Workspace-native Swarm as the official Conductor fallback when the dashboard mission API is unavailable. Preserve dashboard-first dispatch, native status/cancel handling, provider-neutral setup docs, and regression coverage for gateway capability detection, swarm health, roster/profile handling, and native Conductor responses.

* fix(usage-meter): reposition menu trigger for better alignment

- Adjusted the position of the menu trigger in the usage meter component to enhance layout consistency and user experience.

fix(chat-panel): adjust position of chat panel toggle button

- Updated the positioning of the chat panel toggle button to improve visibility and accessibility by changing its bottom and right offsets.

* fix(stt): wire Groq/OpenAI voice transcription into chat

* Fix Workspace Kanban loopback dashboard link

* fix(update): do not open historical release notes on startup

* fix(chat): clear stale thinking runs reliably

* fix(dashboard): trust sessions endpoint for status

* fix(settings): address review — local default, OAuth lifecycle, validation

* fix(dashboard): always scrape live session token from HTML

* fix(chat): avoid portable history replay on bound sessions

* fix(settings): remove dead smart routing controls

* fix(tasks-api): guard against HTML catch-all in probeBackend

The /api/hermes-tasks route was renamed to /api/claude-tasks in commit
efcb7d14, but the probe logic still listed the old route as a candidate.
When probed, the SPA catch-all returned a 200 HTML response instead of
a 404, so probeBackend() treated it as a valid (empty) backend and then
failed when the actual task fetch threw.

Fixes:
- probeBackend() now checks Content-Type: application/json and returns
  -1 for non-JSON responses, so future route renames degrade gracefully.
- resolveBackend() now only selects hermes if hermesCount > 0, defaulting
  to claude-tasks (the active backend post rename) when hermes is absent.

* fix(terminal): default cwd to ~ and fallback if path missing

PTY helper chdir fails when ~/.hermes is absent (common in Docker).
Default shell cwd to home; server falls back to HOME if cwd does not exist.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(settings): satisfy lint on custom providers UI

* fix(docker): add -m flag to useradd so workspace home dir is created

Without -m, the system account has no /home/workspace directory.
The auth middleware tries to write the session store at
/home/workspace/.hermes/workspace-sessions.json; mkdirSync fails with
EACCES because /home/ is root-owned (755), causing the 'Failed to
persist session store' warning and a 500 on every authenticated route.

Adding -m causes useradd to create and chown /home/workspace correctly
so the session store can be written on first login.

* fix(tasks): preserve real session links and restore task launch flow

* fix(launchd): install macOS plist from server-entry template

* fix(docker): expose dashboard API and persist workspace volumes

* fix(jobs): serialize deliver targets for cron API

* Make Hermes Workspace installable as PWA

* chore(deps): pin direct tanstack versions

* feat: align semantic Hermes swarm agents

Add semantic swarm roster metadata, profile/tool/skill docs, shared semantic worker ID validation, focused roster regression coverage, and one-shot checkpoint capture for dispatch smoke tests.

* fix(conductor): pass through sessionKeyPrefix from portable spawn result

sessionKeyPrefix was hardcoded to null in conductor-spawn.ts, breaking
async session resolution when the dashboard backend returns a prefix.
Now mirrors the sessionKey pattern and passes through the value from
the spawn result.

Co-authored-by: Hermes Agent

* feat(swarm): bridge workspace kanban to native Hermes

* fix(chat): keep portable main pinned without breaking resolved sessions

* Add Windows startup script for Hermes Workspace

Document PowerShell usage for launching and restarting gateway + workspace via WSL tmux.

Co-Authored-By: Oz <oz-agent@warp.dev>

* fix(config): name Hermes Agent in restart notice

* fix(swarm): reconcile aggregate semantic worker exports

---------

Co-authored-by: Aurora release bot <release@outsourc-e.com>
Co-authored-by: motoki takahashi <motokitakahashi@motokinoMac-mini.local>
Co-authored-by: Vicky Wonder <vicky@openclaw.ai>
Co-authored-by: Vitaliy Isikov <visikov+supagoku@gmail.com>
Co-authored-by: Hermes Agent <hermes-agent@local>
Co-authored-by: Nikolay Mohr <nikomohr96@gmail.com>
Co-authored-by: Niko Mohr <niko@friendsfromcollege.de>
Co-authored-by: wtchronos <262830926+wtchronos@users.noreply.github.com>
Co-authored-by: Dak0verflow <dakotaferris@gmail.com>
Co-authored-by: norema <mamadou.marone.19@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: daoyuan <ludaoyuan1989@gmail.com>
Co-authored-by: firemountain <firemountain@gmail.com>
Co-authored-by: RAZSOC Local <razsoc@local>
Co-authored-by: Waylon Kenning <waylonkenning@Waylons-MacBook-Pro.local>
Co-authored-by: Kublai <kublai@kublai.local>
Co-authored-by: justa <justa@local>
Co-authored-by: Oz <oz-agent@warp.dev>
2026-05-13 22:34:42 -04:00
Eric
85e2f72b21 feat: add HermesWorld brand asset pack (#367)
Co-authored-by: Aurora release bot <release@outsourc-e.com>
2026-05-06 20:13:47 -04:00
Aurora release bot
373907a689 feat(playground): final flair pass \u2014 4 new presets + cinematic camera + lore loading screen + ASCII trailer kit
Avatar customizer presets:
- Added Chronos (gray hair, gold eyes, dark cloak), Artemis (silver, forest green, bow), Eros (rose pink, violet eyes, bow). Customizer now has 9 presets total.

Cinematic camera (Tab key):
- Cycles 6 preset angles: Isometric / Behind-back / Front-face / Top-down / Cinematic-low / Wide-establish.
- Toast at top-center shows the preset name briefly so you know what just changed. Perfect for filming b-roll.

Loading screen during world transitions:
- Replaces the simple radial fade with a full Cinzel-serif HermesWorld card showing the destination world name, an animated golden progress bar, and a rotating Hermes lore quote (10 lines, randomly picked per transition).

ASCII trailer kit:
- scripts/ascii-trailer.sh takes a screen recording, samples 1 frame/sec via ffmpeg, converts each to ASCII via Pillow + a 10-char ramp, and bundles into ascii-trailer.md ready to paste into Discord. No chafa dependency.
2026-05-03 23:53:02 -04:00
Aurora release bot
abfe56cc7c feat(playground): WS multiplayer sidecar (scripts/playground-ws.mjs) + dual transport in client hook (BroadcastChannel + WS) 2026-05-03 07:32:15 -04:00
Jinx Agent
0902cff99f fix: load workspace env in stable launcher
(cherry picked from commit 2f1c0346012a134de8db66971582ca2b9c4bc69a)
2026-05-01 11:14:14 -04:00
Aurora release bot
7fe6f4a4bb fix(branding): restore Hermes naming across GitHub surfaces 2026-05-01 10:55:01 -04:00
Aurora release bot
efcb7d144e chore(rename): migrate legacy 'Hermes' codename bytes to canonical 'Claude' across repo
- Rewrites all Claude/claude/CLAUDE -> Hermes/claude/CLAUDE
- Renames 31 files (hermes-*.ts -> claude-*.ts, hermes-*.png -> claude-*.png, etc.)
- Renames 1 directory (src/routes/api/hermes-proxy -> claude-proxy)
- 254 files content-modified, 2681 byte sequences replaced
- Build passes, no new test regressions (pre-existing failures unchanged)
- Adds skills-bundle/ to gitignore + vitest exclude to keep test scope clean
2026-05-01 01:00:06 -04:00
Eric
92c19c30a2 wip: swarm2 framework, sidebar nav, notification bridge, GH propagation
- Swarm + Swarm2 sidebar nav entries restored
- Swarm2 screens, routes, components, server modules
- API routes: swarm-roster, swarm-runtime, swarm-dispatch, swarm-checkpoint, swarm-orchestrator-loop, swarm-notifications, etc.
- Worker memory framework: swarm-memory, swarm-missions, swarm-lifecycle, swarm-foundation
- swarm.yaml roster reorganized by priority
- GH token propagation in dispatch + wrapper-side
- Multiple workspace shell + mobile nav additions
- Note: this snapshot includes some pre-PR-merge versions of files; needs reconciliation with origin/main for PRs #177, #168, #180, #165, #164
2026-04-29 10:21:58 -04:00
Felipe Vieira
c09e2dea3e fix: stabilize managed companion runtime and smoke path (#74)
- Rebuild managed companion from clean dist before restart
- Keep /chat/new as stable managed smoke target
- Add managed smoke script + local runtime docs for 4445 companion path
- Type-safe route nav (/cron -> /jobs), DialogContent style prop, task column/priority type guards

All 27 tests pass, build clean. Thanks @FelipeLVieira!
2026-04-20 15:07:51 -04:00
Eric
175f92b906 fix(skills): wire marketplace search to hermes unified_search via Python bridge
hub-search now calls scripts/skills-search.py which imports hermes-agent's
unified_search() directly — searches official, skills.sh, GitHub, LobeHub
registries. No more 404 from missing gateway endpoint.
2026-04-12 13:50:39 -04:00
Eric
fb17b5f86f feat: v1.0.0 — profiles, knowledge browser, MCP settings, skills hub upgrade, eslint, security contact update
New features:
- Multi-profile management (create, switch, rename, delete)
- Knowledge browser with document viewer
- MCP server settings screen
- Skills hub with marketplace search fallback
- Context usage tracking and display

Improvements:
- eslint added and auto-fixed (69 issues resolved)
- Settings dialog restructured (Agent, Smart Routing, Voice, Display sections)
- Navigation updated with Profiles tab across desktop/mobile
- Security contact updated to GitHub advisories + X DM
- .gitignore hardened (.runtime/, internal dev docs)
- Version bumped to 1.0.0

Build: clean | TypeScript: 0 errors | Tests: 4/4 passing
2026-04-10 01:49:13 -04:00
outsourc-e
e8baad35b7 chore: Hermes Workspace v0.1.0 — initial open-source release 2026-03-16 16:18:20 -04:00
outsourc-e
1f38e0d5d3 chore: remove all remaining 'claw' references — SVG logos, spinner presets, skill refs
Deleted 9 ClawSuite SVG logos from public/
Renamed braille-claw spinner preset → braille-hermes
Removed clawops from skills marketplace
Fixed all comments and labels
Only remaining 'claw' string: openclaw-control-ui protocol ID mapping (functional)
2026-03-16 16:12:28 -04:00
outsourc-e
8e92fc6375 chore: remove Electron/Tauri/beta artifacts — web-only Hermes Workspace
Deleted: electron-builder.config.cjs, src-tauri/, assets/ (desktop icons),
__pycache__/, .workspace-source, .cta.json, test-model-switch.js,
package-lock.json, scripts/beta/, release workflow
Removed electron/electron-builder from devDependencies
Removed electron:* and beta:* scripts from package.json
41 files, -19,132 lines
2026-03-16 15:59:41 -04:00
outsourc-e
f8bb4910ca chore: remove all OpenClaw/gateway dependencies — fully standalone Hermes
Deleted:
- electron/ (gateway spawning, desktop app shell)
- src/server/gateway.ts, gateway-discovery.ts, providers.ts, usage-cost.ts
- src/lib/gateway-api.ts, cloud-store.ts, cloud-types.ts, diagnostics.ts, connection-errors.ts, cron-api.ts
- src/components/agent-swarm/, agent-view/, orchestrator-avatar, system-metrics-footer
- src/stores/agent-swarm-store, chat-activity-store, mission stores
- src/hooks/use-gateway-setup, use-activity-log, use-system-metrics, use-workspace,
  use-agent-behaviors, use-sounds, use-orchestrator-state
- scripts/qa/test-redaction.ts, usage-cost.test.ts

Simplified:
- models.ts: fetches directly from Hermes /v1/models (no OpenClaw config filtering)
- workspace.ts: reads ~/.hermes/ instead of ~/.openclaw/
- Stubbed: use-gateway-chat-stream, gateway-restart-overlay (no-op, preserves chat)

Zero OpenClaw dependencies remain. tsc clean.
59 files, -12,459 lines.
2026-03-16 15:52:58 -04:00
outsourc-e
82c3f70975 chore: deep cleanup — remove all ClawSuite/OpenClaw bloat, dead screens, workspace daemon, gateway UI
Deleted:
- 30+ stale .md files (specs, audits, roadmaps)
- docs/archive/ directory
- data/specs/, data/agent-hub-architecture-report.md
- workspace-daemon/ (entire ClawSuite orchestration daemon)
- release/ (Electron builds)
- Screens: activity, costs, cron, tasks, gateway (kept approvals stub)
- Components: gateway-setup-wizard, openclaw-update-notifier, update-notifier,
  compaction-notifier, fallback-banner, exec-approval-toast, gateway-restart-overlay
- API routes: gateway/*, cloud/*, cron/*, browser/*, debug/*, events/*,
  workspace/* (orchestration), cli-agents, system-metrics, diagnostics, etc.
- Server: debug-analyzer, activity-stream, activity-events, workspace-proxy,
  exec-approval-store, browser-monitor, gateway-stream, cron
- Stores: mission-store, mission-event-store
- Hooks: use-agent-view, use-task-reminders

Stubbed (preserves chat functionality):
- approvals-store (no-op, chat-screen imports it)
- use-research-card (no-op)
- research-card component (returns null)
- gateway-restart-overlay (passthrough)

Rebranded:
- CONTRIBUTING.md, docker-compose.yml, vite.config.ts, test-redaction.ts
- Env vars: HERMES_WORKSPACE_DIR with OPENCLAW fallback

213 files changed, -56,503 lines. tsc clean.
2026-03-16 15:33:03 -04:00
outsourc-e
d3a59225dc chore: full ClawSuite/OpenClaw reference scrub — rebrand to Hermes Workspace 2026-03-16 14:57:58 -04:00
Eric
c1ef8bd84b polish: chat experience + settings screens — enterprise UX audit fixes
## Chat Experience Fixes

### Code Blocks
- Added horizontal scroll wrapper for long code lines
- Sticky line numbers when scrolling horizontally
- Improved spacing (my-2) for better visual separation
- Enhanced code block text color in fallback mode

### Composer
- Added Cmd+Enter keyboard shortcut to send
- Clear draft button (X icon) when draft exists
- Improved placeholder text with hint: 'Ask anything... (⌘↵ to send)'
- Made model selector responsive (mobile-friendly width)
- Added tooltip to model button showing full model name

### Failed Messages
- Added retry button for failed messages
- Failed messages show red border and background (bg-red-50/50)
- Better visual feedback for queued vs failed states

### Long Messages
- Added max-height protection (600px user, 800px assistant)
- Overflow-y-auto for very long content

### Narration Messages
- Improved collapsible UI with better border and background
- Clear expand/collapse arrow indicator
- Max-height (400px) with scroll for long narration

### Streaming
- Enhanced streaming cursor (simple pulsing dot)
- Better typing indicator with avatar circle and clearer text
- Added role='status' and aria-live='polite' for accessibility

### Loading States
- Added skeleton loader for initial message load
- Animated placeholder messages while loading

### Tool Sections
- 'Show All' button changes to '✓ Expanded' when clicked
- Better hover states and accessibility labels

### Images & Attachments
- Increased max height (48px → 64px) for better visibility
- Added lazy loading for performance
- Added max-w-full to prevent overflow
- w-auto for proper aspect ratio preservation

### Markdown
- Improved inline code sizing (py-1 → py-0.5, text-sm → text-[0.9em])
- Better code block spacing

### Accessibility
- Added aria-labels throughout
- Improved keyboard navigation
- Better focus management

## Settings Screens Fixes

(Previous settings screen changes preserved)
2026-02-13 17:00:12 -05:00
Eric
1e5c0e1856 feat: add PWA support — manifest, service worker, app install 2026-02-13 15:01:46 -05:00
Eric
17982eaa59 fix: default theme to light mode instead of dark 2026-02-13 11:23:06 -05:00
Eric
aa22b0ea24 rebrand: OpenClaw Studio → ClawSuite
- Updated package.json (name, description, repo URL, homepage)
- Replaced all 'OpenClaw Studio' references with 'ClawSuite'
- Replaced all 'openclaw-studio' references with 'clawsuite'
- Updated Tauri config with new identifier
- Updated manifest.json
- Renamed architecture/roadmap docs
- Domain: clawsuite.io
2026-02-11 09:45:11 -05:00
Eric
f86faa4cf3 docs: dashboard golden path + smoke test
- docs/QA/DASHBOARD_GOLDEN_PATH.md: full widget audit, RPC map, manual test steps
- scripts/dashboard-smoke.mjs: automated API shape validation (6/6 pass)
- All 10/11 widgets confirmed wired to real gateway data
- Tasks widget labeled Demo (no backend exists)
- Answers all wiring questions from production wiring plan
2026-02-10 15:24:28 -05:00
Eric
0afb07811b Phase 5: Beta readiness for v2.1.2
Deliverables:
- Comprehensive test checklist (23 test cases, ~16KB)
- Tester instructions (installation, troubleshooting, reporting, ~9KB)
- Beta QA scripts (reset state, export diagnostics + scan)
- Beta readiness report (build verification, security scan proof)

Scripts:
- scripts/beta/reset_local_state.(sh|ps1) - Clear localStorage/cache safely
- scripts/beta/export_diagnostics_and_scan.(sh|ps1) - Export + secret scan
- npm scripts: beta:reset-state, beta:export-diagnostics

Build verification:
 Client build: 4.23s
 Server build: 985ms
 Exit code: 0

Security scan:
 No secrets found in diagnostics export
 8 patterns checked (API keys, tokens, passwords, etc.)

Files: 10 changed (~1,500 lines added)
Status: Ready for external beta testing
2026-02-08 15:12:09 -05:00
Eric
40e876c363 feat(debug): Phase 2.4 - diagnostics bundle export + GitHub issue helper
P2.4-001: Export diagnostics bundle (safe)
- Add redaction utilities for sensitive data (API keys, tokens, paths)
- Export bundle includes: version, OS, gateway status, providers (names only), events
- Warning UI: 'Never share secrets. This bundle is automatically redacted'
- Download as JSON with timestamped filename
- Redaction test suite: scripts/qa/test-redaction.ts (24 tests)

P2.4-002: Open Issue prefill helper
- Button opens GitHub issue page with prefilled template
- Includes version, gateway status, diagnostics summary
- User controls what to paste

QA smoke results:
- Build passes
- All 24 redaction tests pass
- No sensitive patterns (token/secret/bearer) in bundle output
2026-02-08 10:57:25 -05:00