Skip to content

Commit de63457

Browse files
Waymorewaym0re
authored andcommitted
tasks: Add Docker removal task and refine FreeBSD work items
- Task NousResearch#2: Remove Docker dependency (Critical priority) - Hermes runs natively via LocalEnvironment, no containers needed - Make Docker backend optional with graceful fallback to local - Update setup wizard to skip Docker on FreeBSD - Renumbered tasks: Setup Documentation → NousResearch#3, Voice Error Handling → NousResearch#4 - Added detailed acceptance criteria for each task - Programming assistant can now proceed with Docker removal
1 parent 5384e6b commit de63457

1 file changed

Lines changed: 48 additions & 6 deletions

File tree

PLANS/task-coordination.md

Lines changed: 48 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,42 @@ Perform comprehensive audit of codebase to identify Linux-specific dependencies
104104

105105
---
106106

107-
### Task #2: Setup Documentation Review
107+
### Task #2: Remove Docker Dependency for FreeBSD Compatibility
108+
**Status**: [ ] Not started
109+
**Priority**: Critical
110+
**Assigned to**: Programming Assistant
111+
112+
**Description**:
113+
Hermes Agent runs natively on the host system using `LocalEnvironment`. Docker is NOT required for normal operation - it's only used as an optional isolated execution backend. Since Docker has no official FreeBSD support and won't be added, we need to safely remove/disable all Docker-related code paths while ensuring native execution works perfectly.
114+
115+
**Background**:
116+
- `tools/environments/local.py` (`LocalEnvironment`) already provides full terminal execution on the host
117+
- You (waym0re) confirmed running Hermes on Linux without Docker enabled
118+
- FreeBSD users should use native execution exclusively - no containerization needed
119+
120+
**Deliverables**:
121+
1. **Audit all Docker usages** - Find every reference to `DockerEnvironment` and docker-related config
122+
2. **Make Docker backend optional/failable** - When user selects "docker" but it's unavailable, gracefully fall back to "local" with warning
123+
3. **Update setup wizard** - Remove Docker as an option on FreeBSD, default to local
124+
4. **Update documentation** - Clarify that Hermes runs natively; Docker is Linux-only optional feature
125+
5. **Test native execution** - Ensure `LocalEnvironment` works without any container dependencies
126+
127+
**Files to Modify**:
128+
- `tools/terminal_tool.py:618-628` - Add fallback from docker→local when unavailable
129+
- `hermes_cli/setup.py:1320-1400` - Skip Docker option on FreeBSD, default to local
130+
- `hermes_cli/status.py:261-263` - Don't show Docker status on FreeBSD
131+
- `README.md:26` - Update "Terminal backends" line to clarify native execution
132+
- `pyproject.toml` - Remove `[modal]` and `[daytona]` extras if they depend on Docker
133+
134+
**Acceptance Criteria**:
135+
- On FreeBSD, setup wizard never offers Docker as an option
136+
- If config has `"terminal_backend": "docker"` on FreeBSD, it auto-falls back to local with warning
137+
- All core functionality works with `LocalEnvironment` alone (no containers)
138+
- Documentation clearly states: "Hermes runs natively; Docker is optional Linux-only isolation"
139+
140+
---
141+
142+
### Task #3: Setup Documentation Review
108143
**Status**: [ ] Not started
109144
**Priority**: Medium
110145
**Assigned to**: Programming Assistant
@@ -117,21 +152,28 @@ Review `README.md` installation instructions and verify all FreeBSD package name
117152
- [ ] Verify `pkg install python311` availability
118153
- [ ] Check if `uv` has a FreeBSD port or needs cargo install
119154
- [ ] Validate all optional dependencies have FreeBSD equivalents
155+
- [ ] Update installation section to reflect Docker removal (Task #2)
120156

121157
---
122158

123-
### Task #3: Create FreeBSD-Specific Error Handling
159+
### Task #4: Create FreeBSD-Specific Error Handling for Voice Tools
124160
**Status**: [ ] Not started
125161
**Priority**: High
126162
**Assigned to**: Programming Assistant
127163

128164
**Description**:
129-
Add graceful degradation for features that don't work on FreeBSD (voice, PTY) with clear user messaging.
165+
Add graceful degradation for features that don't work on FreeBSD (voice/STT/TTS) with clear user messaging. The audit identified `faster-whisper` as unavailable due to missing `ctranslate2` wheels.
130166

131167
**Files to Modify**:
132-
- `hermes_cli/config.py` - Add FreeBSD detection
133-
- `tools/terminal_tool.py` - Handle missing PTY gracefully
134-
- `cli.py` - Show platform-specific warnings
168+
- `hermes_cli/config.py` - Add FreeBSD detection, disable voice tools by default
169+
- `tools/voice_mode.py:65-67` - Enhance Docker/headless detection for FreeBSD
170+
- `pyproject.toml:49-55` - Make `[voice]` extra conditional on platform
171+
- `cli.py` - Show platform-specific warnings at startup
172+
173+
**Acceptance Criteria**:
174+
- Voice tools are disabled by default on FreeBSD with clear explanation
175+
- User can optionally enable cloud STT (Groq, OpenAI) via env vars if desired
176+
- No crashes or confusing errors when voice tools are unavailable
135177

136178
---
137179

0 commit comments

Comments
 (0)