chore: complete v1.4 Hermes Default Provider milestone

3 phases, 6 plans, 16 requirements. Archives copied to milestones/.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nexus Dev 2026-04-02 17:44:55 +00:00
parent aa4e698b77
commit 147529076d
24 changed files with 194 additions and 2 deletions

View file

@ -1,5 +1,20 @@
# Milestones
## v1.4 Hermes Default Provider (Shipped: 2026-04-02)
**Phases completed:** 3 phases, 6 plans, 9 tasks
**Key accomplishments:**
- Four HERM-01..04 integration gaps closed: hermes_local in SESSIONED_LOCAL_ADAPTERS, Toolsets field edit-only, and hermes session codec round-trip tests added
- One-liner:
- Hermes agent config gains Ollama model dropdown with install callout, and AgentSkillsTab shows purple "Hermes skill" badge for native Hermes skills
- Hermes heartbeat now persists model name + VRAM via jsonb merge, and AgentOverview renders a HermesRuntimeCard showing model, native skill count, and memory usage.
- Board-auth hermes probe route + NexusOnboardingWizard Hermes fallback + adapter-neutral agent templates in NewAgentDialog
- Hermes agents created via wizard get a promptTemplate with Nexus HEARTBEAT.md workflow instructions and Mustache variables, validated by 8 integration tests covering probe logic, template contract, and bundle loading
---
## v1.3 Chat & PWA (Shipped: 2026-04-02)
**Phases completed:** 6 phases, 35 plans, 51 tasks

View file

@ -145,4 +145,4 @@ After every `/gsd:complete-milestone`, perform an upstream rebase before startin
- Dashboard showing Hermes-specific info
---
*Last updated: 2026-04-02 — v1.4 milestone started*
*Last updated: 2026-04-02 after v1.4 milestone*

View file

@ -4,7 +4,7 @@ milestone: v1.4
milestone_name: milestone
status: verifying
stopped_at: Completed 29-default-provider-29-02-PLAN.md
last_updated: "2026-04-02T17:43:53.428Z"
last_updated: "2026-04-02T17:44:25.937Z"
last_activity: 2026-04-02
progress:
total_phases: 3

View file

@ -0,0 +1,68 @@
# Requirements Archive: v1.4 Hermes Default Provider
**Archived:** 2026-04-02
**Status:** SHIPPED
For current requirements, see `.planning/REQUIREMENTS.md`.
---
# Requirements — Milestone v1.4: Hermes Default Provider
## Hermes Integration (7)
- [x] **HERM-01** — Hermes adapter is installed, enabled, and appears in the "Add Agent" dropdown
- [x] **HERM-02** — User can create a Hermes agent with config options (model selection, tool permissions)
- [x] **HERM-03** — Heartbeat execution spawns `hermes chat -q`, processes task, returns result
- [x] **HERM-04** — Session persistence works across heartbeats via `--resume` flag
- [x] **HERM-05** — Nexus-managed skills are visible alongside Hermes native skills in agent config
- [x] **HERM-06** — Cost tracking captures token usage and model costs for Hermes agents
- [x] **HERM-07** — Dashboard shows Hermes-specific info (model name, memory usage, native skill count)
## Ollama Integration (5)
- [x] **OLLA-01** — Nexus detects whether Ollama is installed locally
- [x] **OLLA-02** — User can see a list of available Ollama models when configuring a Hermes agent
- [x] **OLLA-03** — User can configure a Hermes agent with any local Ollama model
- [x] **OLLA-04** — Model recommendation based on RAM/VRAM from a shipped catalog
- [x] **OLLA-05** — If Ollama is not present, user is offered installation instructions
## Default Provider Logic (4)
- [x] **DFLT-01** — If no cloud provider (Claude Code, etc.) is detected, Hermes + Ollama is offered as default during onboarding
- [x] **DFLT-02** — Default agent templates (PM, Engineer, Generalist) work correctly with Hermes runtime
- [x] **DFLT-03** — GSD workflow functions correctly with Hermes as the agent runtime
- [x] **DFLT-04** — Fresh install with only Hermes + Ollama works end-to-end (no paid subscription or API key required)
---
## Future Requirements
None deferred — all PRD items included in this milestone.
## Out of Scope
- Multi-provider model routing (Hermes can use OpenRouter/Anthropic/OpenAI but that's Hermes config, not Nexus)
- Hermes MCP server management (Hermes handles its own MCP connections)
- Custom Hermes skill authoring UI (skills are file-based, not GUI-managed)
## Traceability
| Requirement | Phase | Status |
|-------------|-------|--------|
| HERM-01 | Phase 27 | Complete |
| HERM-02 | Phase 27 | Complete |
| HERM-03 | Phase 27 | Complete |
| HERM-04 | Phase 27 | Complete |
| HERM-05 | Phase 28 | Complete |
| HERM-06 | Phase 28 | Complete |
| HERM-07 | Phase 28 | Complete |
| OLLA-01 | Phase 28 | Complete |
| OLLA-02 | Phase 28 | Complete |
| OLLA-03 | Phase 28 | Complete |
| OLLA-04 | Phase 28 | Complete |
| OLLA-05 | Phase 28 | Complete |
| DFLT-01 | Phase 29 | Complete |
| DFLT-02 | Phase 29 | Complete |
| DFLT-03 | Phase 29 | Complete |
| DFLT-04 | Phase 29 | Complete |

View file

@ -0,0 +1,100 @@
# Roadmap: v1.4 Hermes Default Provider
**Milestone:** v1.4
**Status:** Active
**Phases:** 27-29 (3 phases)
**Granularity:** Coarse
**Coverage:** 16/16 requirements mapped
---
## Phases
- [x] **Phase 27: Hermes Adapter** — Install and enable the Hermes adapter, expose it in the Add Agent dialog, and deliver working heartbeat execution with session persistence (completed 2026-04-02)
- [x] **Phase 28: Ollama Integration & Agent Surface** — Detect Ollama, list and recommend models, expose skill/cost/dashboard data for Hermes agents (completed 2026-04-02)
- [x] **Phase 29: Default Provider & End-to-End** — Onboarding fallback to Hermes, agent template compatibility, GSD workflow validation, full end-to-end smoke test (completed 2026-04-02)
---
## Phase Details
### Phase 27: Hermes Adapter
**Goal**: Users can create a Hermes agent in Nexus, configure it, and have it execute heartbeats that spawn `hermes chat -q`, return a result, and persist the session across runs
**Depends on**: Nothing (first phase of v1.4; depends on v1.3 milestone being shipped)
**Requirements**: HERM-01, HERM-02, HERM-03, HERM-04
**Success Criteria** (what must be TRUE):
1. "Hermes" appears in the "Add Agent" dropdown and can be selected to create a new agent
2. When creating a Hermes agent, the user can pick a model and toggle tool permissions; the agent is saved and appears in the agent list
3. When a heartbeat fires for a Hermes agent, Nexus spawns `hermes chat -q` with the task, the process completes, and the result is written back as a task update
4. A second heartbeat on the same Hermes agent resumes the prior session via `--resume`; context from the previous run is accessible
**Plans:** 1/1 plans complete
Plans:
- [x] 27-01-PLAN.md — Close four integration gaps: SESSIONED_LOCAL_ADAPTERS, create-mode toolsets bug, duplicate constant, session codec test
### Phase 28: Ollama Integration & Agent Surface
**Goal**: Users can see which Ollama models are available, get a recommendation for their hardware, configure any Hermes agent to use a local model, and see Hermes-specific runtime data in the dashboard and agent config
**Depends on**: Phase 27
**Requirements**: OLLA-01, OLLA-02, OLLA-03, OLLA-04, OLLA-05, HERM-05, HERM-06, HERM-07
**Success Criteria** (what must be TRUE):
1. When Ollama is installed, a status indicator in the Hermes agent config shows "Ollama detected" with the version; when Ollama is absent, the config shows installation instructions with a link
2. A Hermes agent's model selector lists all locally available Ollama models pulled from `ollama list`
3. User can save a Hermes agent with any Ollama model from the list; heartbeats use the selected model
4. The model selector shows a recommended model (highlighted) based on detected RAM/VRAM, derived from a shipped catalog
5. The agent config page shows Nexus-managed skills alongside Hermes native skills in a single unified list
6. The dashboard agent card for a Hermes agent shows model name, memory usage, and native skill count
7. Token usage and estimated model cost are recorded per heartbeat and surfaced in the cost tracking view
**Plans:** 3/3 plans complete
Plans:
- [x] 28-01-PLAN.md — Ollama service, routes, model catalog, and unit tests
- [x] 28-02-PLAN.md — UI model selector dropdown, install callout, Hermes skill badge
- [x] 28-03-PLAN.md — Hermes stateJson runtime data and dashboard HermesRuntimeCard
**UI hint**: yes
### Phase 29: Default Provider & End-to-End
**Goal**: A fresh Nexus install with only Hermes and Ollama works end-to-end — onboarding offers Hermes as the default, PM and Engineer templates run correctly on the Hermes runtime, and GSD workflow tasks complete successfully
**Depends on**: Phase 28
**Requirements**: DFLT-01, DFLT-02, DFLT-03, DFLT-04
**Success Criteria** (what must be TRUE):
1. During onboarding, if no cloud provider API key is detected, the setup flow offers "Use Hermes (local, free)" as the default provider with a one-click path to configure it
2. Creating a PM agent or Engineer agent from the predefined templates and assigning it to a Hermes runtime produces a working agent — heartbeats execute and return meaningful results
3. Running a full GSD workflow task (create issue, assign to Engineer, execute heartbeat, mark complete) with Hermes as the sole runtime completes without errors
4. A machine with only Nexus, Hermes, and Ollama installed (no Anthropic/OpenAI key) can complete the entire onboarding-to-first-task flow with no paywalls or missing-key errors
**Plans:** 2/2 plans complete
Plans:
- [x] 29-01-PLAN.md — Adapter probe route, onboarding wizard Hermes fallback, adapter-neutral templates
- [x] 29-02-PLAN.md — Hermes skill injection via promptTemplate, integration tests
---
## Coverage Validation
All 16 v1 requirements are mapped to exactly one phase. No orphans.
| Requirement | Phase |
|-------------|-------|
| HERM-01 | 27 |
| HERM-02 | 27 |
| HERM-03 | 27 |
| HERM-04 | 27 |
| HERM-05 | 28 |
| HERM-06 | 28 |
| HERM-07 | 28 |
| OLLA-01 | 28 |
| OLLA-02 | 28 |
| OLLA-03 | 28 |
| OLLA-04 | 28 |
| OLLA-05 | 28 |
| DFLT-01 | 29 |
| DFLT-02 | 29 |
| DFLT-03 | 29 |
| DFLT-04 | 29 |
---
## Progress
| Phase | Milestone | Plans Complete | Status | Completed |
|-------|-----------|----------------|--------|-----------|
| 27. Hermes Adapter | v1.4 | 1/1 | Complete | 2026-04-02 |
| 28. Ollama Integration & Agent Surface | v1.4 | 3/3 | Complete | 2026-04-02 |
| 29. Default Provider & End-to-End | v1.4 | 2/2 | Complete | 2026-04-02 |

View file

@ -136,6 +136,15 @@ None - no external service configuration required.
- Integration tests validate the full contract from probe to bundle loading
- A machine with only Hermes + Ollama can complete onboarding and get working agents with no API keys
## Self-Check: PASSED
- `ui/src/components/NexusOnboardingWizard.tsx` — FOUND
- `server/src/__tests__/29-default-provider.test.ts` — FOUND
- `server/src/services/default-agent-instructions.ts` — FOUND
- `.planning/phases/29-default-provider/29-02-SUMMARY.md` — FOUND
- Task 1 commit `9ed3e7a1` — FOUND
- Task 2 commit `0ea6d031` — FOUND
---
*Phase: 29-default-provider*
*Completed: 2026-04-01*