6 phases, 13 plans, 21 requirements. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5.8 KiB
5.8 KiB
| phase | plan | subsystem | tags | requires | provides | affects | tech-stack | key-files | key-decisions | requirements-completed | duration | completed | ||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 28-ollama-integration | 02 | ui |
|
|
|
|
|
|
|
|
12min | 2026-04-02 |
Phase 28 Plan 02: Ollama UI Surface Summary
Hermes agent config gains Ollama model dropdown with install callout, and AgentSkillsTab shows purple "Hermes skill" badge for native Hermes skills
Performance
- Duration: ~12 min
- Started: 2026-04-02T17:00:19Z
- Completed: 2026-04-02T17:12:00Z
- Tasks: 2
- Files modified: 3
Accomplishments
- Created
ollamaApiclient withstatus()andmodels()methods calling the Plan 01 server routes - Rewrote
HermesLocalConfigFieldswith hybrid Ollama dropdown: live model list with recommended markers, install callout when absent, and manual entry fallback - Selecting an Ollama model in edit mode atomically sets
model,provider: "custom", andbase_url: "http://localhost:11434/v1"viamark()calls - Added purple
"Hermes skill"badge rendering inAgentSkillsTab.renderSkillRowfor skills withoriginLabel === "Hermes skill" - Conditional section header in unmanaged skills section shows "Hermes native skills & user-installed skills" for hermes_local agents
Task Commits
- Task 1: Create ollamaApi client and enhance HermesLocalConfigFields with model dropdown -
076c42c8(feat) - Task 2: Add Hermes skill badge rendering in AgentSkillsTab -
a9783f00(feat)
Files Created/Modified
ui/src/api/ollama.ts— OllamaStatus/OllamaModel/OllamaModelsResponse types + ollamaApi.status() and ollamaApi.models()ui/src/adapters/hermes-local/config-fields.tsx— Rewritten with Ollama dropdown, install callout, and manual fallbackui/src/pages/AgentDetail.tsx— Hermes skill badge in renderSkillRow, conditional section header
Decisions Made
- Used
useCompany()hook (notuseParams) forcompanyIdin config-fields — consistent with howAgentConfigFormparent already works - Create mode only sets
model(notprovider/base_url) becauseCreateConfigValuestype doesn't include those fields; Hermes'sbuildHermesConfigintentionally leaves provider for runtime resolution - Edit mode uses three sequential
mark()calls (model, provider, base_url) since that's how adapterConfig dirty tracking works
Deviations from Plan
Auto-fixed Issues
1. [Rule 1 - Bug] Create mode provider/base_url not settable via set!()
- Found during: Task 1 (TypeScript compilation)
- Issue: Plan specified
set!({ model, provider: "custom", base_url: "..." })butCreateConfigValuestype does not includeproviderorbase_urlfields — TypeScript error TS2353 - Fix: Create mode only calls
set!({ model: selectedModel }). Added comment explaining Hermes runtime resolves provider from model name at execute time (per buildHermesConfig source comments) - Files modified:
ui/src/adapters/hermes-local/config-fields.tsx - Verification: TypeScript compiled cleanly after fix
- Committed in:
076c42c8(Task 1 commit)
Total deviations: 1 auto-fixed (Rule 1 - TypeScript type constraint) Impact on plan: Minor — create mode sets model only (as designed by the adapter package); edit mode sets all three fields atomically as planned. Functional result is equivalent since provider is resolved at runtime.
Issues Encountered
None beyond the TypeScript deviation noted above.
User Setup Required
None — Ollama detection is on-demand per request, no environment variables required.
Next Phase Readiness
- Ollama UI surface complete — model dropdown, install callout, and Hermes skill badges all implemented
- Phase 28 Plan 03 (Hermes runtime dashboard card) can proceed independently
- TypeScript compiles cleanly — no type regressions
Phase: 28-ollama-integration Completed: 2026-04-02