Files
hermes-workspace/swarm.yaml
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

499 lines
9.9 KiB
YAML

version: 1
workers:
- id: orchestrator
name: Orchestrator
role: Swarm Orchestrator / Greenlight Gate
specialty: mission routing, task decomposition, handoffs, proof contracts, human approval gates
model: GPT-5.5
mission: Decompose missions into safe, proof-bearing work and route to the right specialist while preserving human greenlight control.
profile: orchestrator
modes:
- plan
tools:
- todo
- kanban
- delegation
- terminal
- file
- gbrain
- session_search
- cronjob
- skills
- clarify
- web
skills:
- orchestrator-core
- gstack-for-hermes
- gbrain
- kanban-orchestrator
- subagent-driven-development
- writing-plans
- requesting-code-review
- workspace-dispatch
capabilities:
- orchestration
- decomposition
- routing
- proof-contracts
- greenlight-gate
preferredTaskTypes:
- orchestration
- planning
- routing
- coordination
- handoff
greenlightRequiredFor:
- merge
- publish
- destructive
- external-send
- credential-change
maxConcurrentTasks: 1
acceptsBroadcast: true
plugins: []
pluginToolsets: []
mcpServers:
- gbrain
wrapper: orchestrator:plan
- id: km-agent
name: KM Agent
role: RAZSOC / GBrain Knowledge Steward
specialty: RAZSOC, GBrain, Obsidian, TaskNotes, graph health, durable knowledge capture, drift audits
model: GPT-5.5
mission: Keep the operating brain coherent, searchable, and source-of-record aligned without polluting durable knowledge.
profile: km-agent
modes:
- health
- curate
tools:
- gbrain
- file
- terminal
- session_search
- skills
- todo
- cronjob
- web
skills:
- km-agent-core
- gbrain
- obsidian-markdown
- obsidian-cli
- obsidian-bases
- json-canvas
- gstack-for-hermes
capabilities:
- gbrain
- razsoc
- obsidian
- tasknotes
- drift-audit
- knowledge-curation
preferredTaskTypes:
- knowledge
- curation
- brain-health
- drift
- documentation
greenlightRequiredFor:
- delete
- purge
- bulk-edit
- source-of-record-change
maxConcurrentTasks: 1
acceptsBroadcast: true
plugins: []
pluginToolsets: []
mcpServers:
- gbrain
wrapper: km:health
- id: builder
name: Builder
role: Scoped Implementation Agent
specialty: focused implementation, tests, small diffs, integration fixes
model: GPT-5.5
mission: Ship scoped product/code slices with tests, minimal diffs, and clear verification evidence.
profile: builder
modes:
- task
tools:
- terminal
- file
- browser
- web
- gbrain
- session_search
- skills
- todo
skills:
- builder-core
- gstack-for-hermes
- test-driven-development
- systematic-debugging
- github-pr-workflow
- requesting-code-review
- codebase-inspection
capabilities:
- implementation
- code-editing
- tests
- integration
- build-verification
preferredTaskTypes:
- implementation
- bugfix
- feature
- refactor
- integration
greenlightRequiredFor:
- merge
- push
- destructive
- external-write
maxConcurrentTasks: 1
acceptsBroadcast: true
plugins: []
pluginToolsets: []
mcpServers:
- gbrain
wrapper: builder:task
- id: reviewer
name: Reviewer
role: Independent Review / Merge Gate
specialty: security review, logic review, regression detection, quality gates
model: GPT-5.5
mission: Independently review changes and block unsafe, untested, or logically broken work before it lands.
profile: reviewer
modes:
- gate
tools:
- terminal
- file
- web
- gbrain
- session_search
- skills
skills:
- reviewer-core
- requesting-code-review
- github-code-review
- systematic-debugging
- gstack-for-hermes
- gbrain
- codebase-inspection
capabilities:
- code-review
- security-review
- regression-analysis
- quality-gate
- merge-readiness
preferredTaskTypes:
- review
- qa
- regression
- verification
- merge-gate
greenlightRequiredFor:
- approve-merge
- external-comment
- destructive
reviewRequired: false
maxConcurrentTasks: 1
acceptsBroadcast: true
plugins: []
pluginToolsets: []
mcpServers:
- gbrain
wrapper: reviewer:gate
- id: qa
name: QA
role: Browser / Workflow / CLI Smoke Verification
specialty: browser QA, workflow smoke tests, expected-vs-actual checks, regression reproduction
model: GPT-5.5
mission: Verify user-visible behavior with concrete smoke evidence and concise bug reports.
profile: qa
modes:
- smoke
tools:
- browser
- terminal
- file
- vision
- gbrain
- session_search
- skills
- web
skills:
- qa-core
- browser-harness-power-use
- dogfood
- gstack-for-hermes
capabilities:
- browser-qa
- smoke-verification
- regression-reproduction
- cli-verification
- evidence-capture
preferredTaskTypes:
- qa
- smoke
- browser
- verification
- regression
greenlightRequiredFor:
- destructive
- external-write
maxConcurrentTasks: 1
acceptsBroadcast: true
plugins: []
pluginToolsets: []
mcpServers:
- gbrain
wrapper: qa:smoke
- id: researcher
name: Researcher
role: Brain-first Research / Bounded Autoresearch
specialty: GBrain-first lookup, external research, synthesis, source trails, bounded research loops
model: GPT-5.5
mission: Produce decision-grade research with brain-first context, external verification, and explicit uncertainty.
profile: researcher
modes:
- quick
- autoresearch
tools:
- gbrain
- web
- browser
- terminal
- file
- vision
- session_search
- skills
- todo
skills:
- researcher-core
- gbrain
- autoresearch
- browser-harness-power-use
- gstack-for-hermes
- researcher-quick
- researcher-autoresearch
- arxiv
- youtube-content
- polymarket
capabilities:
- research
- synthesis
- source-verification
- gbrain-query
- autoresearch
preferredTaskTypes:
- research
- analysis
- options
- source-review
- market-map
greenlightRequiredFor:
- publish
- external-send
- long-running-loop
maxConcurrentTasks: 1
acceptsBroadcast: true
plugins: []
pluginToolsets: []
mcpServers:
- gbrain
wrapper: researcher:quick
- id: ops-watch
name: Ops Watch
role: Local Infra / Runtime Health Watch
specialty: gateway health, cron, MCP, workspace services, local process status, boring reliability
model: GPT-5.5
mission: Keep Hermes, Workspace, GBrain, gateway, cron, and local services observable and healthy with quiet, low-risk checks.
profile: ops-watch
modes:
- health
tools:
- terminal
- cronjob
- file
- gbrain
- skills
- session_search
- web
skills:
- ops-watch-core
- gbrain
- hermes-agent
- systematic-debugging
- webhook-subscriptions
capabilities:
- ops-health
- gateway-status
- runtime-monitoring
- cron
- mcp-health
- lifecycle-sweep
preferredTaskTypes:
- ops
- health
- monitoring
- lifecycle
- incident-triage
greenlightRequiredFor:
- restart-service
- destructive
- config-change
- credential-change
maxConcurrentTasks: 1
acceptsBroadcast: true
plugins: []
pluginToolsets: []
mcpServers:
- gbrain
wrapper: ops:health
- id: maintainer
name: Maintainer
role: Upstream Dependency / Patch Hygiene
specialty: upstream tracking, local patch hygiene, dependency updates, PR/issue follow-through
model: GPT-5.5
mission: Keep local forks and upstream dependencies healthy without losing local patches or dirty-worktree context.
profile: maintainer
modes:
- check
tools:
- terminal
- file
- web
- browser
- gbrain
- session_search
- skills
skills:
- maintainer-core
- github-repo-management
- github-pr-workflow
- github-issues
- github-code-review
- gbrain
- gstack-for-hermes
- hermes-agent
capabilities:
- upstream-tracking
- dependency-maintenance
- patch-hygiene
- git-review
- issue-tracking
preferredTaskTypes:
- maintenance
- upstream
- dependency
- patch
- release-notes
greenlightRequiredFor:
- merge
- push
- destructive
- fork-reset
maxConcurrentTasks: 1
acceptsBroadcast: true
plugins: []
pluginToolsets: []
mcpServers:
- gbrain
wrapper: maintainer:check
- id: strategist
name: Strategist
role: Wedges / Bets / Kill Criteria
specialty: operating plans, gstack-style wedges, strategy reviews, decision framing, kill criteria
model: GPT-5.5
mission: Turn ambiguity into crisp wedges, bets, constraints, and kill criteria without over-planning.
profile: strategist
modes:
- review
tools:
- gbrain
- web
- session_search
- file
- skills
- todo
- clarify
skills:
- strategist-core
- gstack-for-hermes
- gbrain
- writing-plans
- polymarket
capabilities:
- strategy
- planning
- ideation
- decision-framing
- kill-criteria
preferredTaskTypes:
- strategy
- planning
- review
- ideation
- prioritization
greenlightRequiredFor:
- publish
- external-send
- irreversible-decision
maxConcurrentTasks: 1
acceptsBroadcast: true
plugins: []
pluginToolsets: []
mcpServers:
- gbrain
wrapper: strategist:review
- id: inbox-triage
name: Inbox Triage
role: Capture / Discard / Route / Task Triage
specialty: low-friction inbox processing, capture routing, task/research/defer decisions, durable-context filtering
model: GPT-5.5
mission: Route incoming material into discard, task, research, or durable brain capture with minimal overhead and no junk accumulation.
profile: inbox-triage
modes:
- triage
tools:
- gbrain
- web
- file
- session_search
- todo
- skills
- terminal
skills:
- inbox-triage-core
- gbrain
- obsidian-markdown
- gstack-for-hermes
- defuddle
- youtube-content
capabilities:
- inbox-triage
- capture-routing
- task-routing
- knowledge-filtering
- source-review
preferredTaskTypes:
- triage
- inbox
- capture
- task-routing
- reading-queue
greenlightRequiredFor:
- delete
- purge
- publish
- external-send
maxConcurrentTasks: 1
acceptsBroadcast: true
plugins: []
pluginToolsets: []
mcpServers:
- gbrain
wrapper: inbox:triage