fix: feat: integrate supervisor into edge container (#344) #349
No reviewers
Labels
No labels
action
backlog
blocked
bug-report
in-progress
prediction/actioned
prediction/dismissed
prediction/unreviewed
priority
tech-debt
underspecified
vision
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: disinto-admin/disinto#349
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/issue-344"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #344
Changes
AI Review
Summary\n\nThis PR correctly wires the supervisor loop into the edge container and commits so the guard passes. The loop structure, , and 20-minute sleep interval all look correct. Two real issues need fixing before merge.\n\n### Issues\n\n- high
docker-compose.yml:67: Hardcoded Claude binary path/home/johba/.local/share/claude/versions/2.1.84— this pins to a specific user's home directory AND a specific Claude version. All other services (e.g.agents,agents-llama) mount/usr/local/bin/claude:/usr/local/bin/claude:ro. This will silently break the edge container whenever Claude auto-updates to a new versioned directory. Should use a consistent path — either/usr/local/bin/claudelike other services, or a${CLAUDE_BIN:-/usr/local/bin/claude}env-var pattern.\n\n- mediumdocker-compose.yml(edge environment block): MissingDISINTO_CONTAINER=1. Thelib/env.shchecks this variable to routeDISINTO_LOG_DIRto${HOME}/data/logs(persistent volume) vs.${FACTORY_ROOT}(the ephemeral git clone at/opt/disinto). Without it,supervisor-run.shwrites its structured internal log to/opt/disinto/supervisor/supervisor.log— inside the transient clone, not on thedisinto-logsnamed volume. Thetee -a /opt/disinto-logs/supervisor.login the entrypoint captures stdout/stderr, but thelog()calls insidesupervisor-run.shwrite directly to$LOG_FILE(not stdout) and will be lost across container restarts.\n\n### Looks Good\n\n- Supervisor loop inentrypoint-edge.sh: shell quoting,set -euo pipefail,|| trueplacement, and background (&) all correct.\n-state/.supervisor-active+.gitignorenegation: clean pattern — cloned repo satisfiescheck_active supervisorwithout needing runtime setup.\n-FORGE_SUPERVISOR_TOKENplumbed through compose env — matchessupervisor-run.sh:31fallback logic.Verdict
REQUEST_CHANGES — Hardcoded Claude version path will break on updates; missing DISINTO_CONTAINER=1 causes structured logs to go to ephemeral git clone
Reviewed at
13a35f8| AGENTS.mdAI Review: REQUEST_CHANGES — Hardcoded Claude version path will break on updates; missing DISINTO_CONTAINER=1 causes structured logs to go to ephemeral git clone
AI Re-review (round 2)
Previous Findings\n\n- Hardcoded Claude path () → FIXED: replaced with , consistent with other services.\n- **Missing ** → FIXED: added to edge environment block; will now correctly route to the persistent volume path.
Verdict
APPROVE — Both previous findings fixed: hardcoded Claude path replaced with /usr/local/bin/claude, DISINTO_CONTAINER=1 added
Reviewed at
96d1aa7| Previous:13a35f8| AGENTS.mdAI Re-review (round 2): APPROVE — Both previous findings fixed: hardcoded Claude path replaced with /usr/local/bin/claude, DISINTO_CONTAINER=1 added