ACP readiness probe returned 000 for the full retry window on
xworkmate-bridge-ubuntu-26 (nothing listening = adapter crash-loop), but the
play aborted at the probe so the real cause never reached the CI log.
- systemd unit: add Environment=PATH ({{ acp_opencode_path }}, parity with the
launchd plist) so the lazily-spawned opencode/node CLI resolves; replace the
hardcoded --opencode-bin /usr/bin/opencode with {{ acp_opencode_binary_path }}
({{ npm_global_bin }}/opencode), matching the gemini/codex roles and macOS.
- validate.yml: wrap the readiness probe in block/rescue that dumps systemctl
status + journalctl on failure, so the adapter crash reason is visible.
- fix latent undefined var in the summary (acp_opencode_adapter_http ->
acp_opencode_adapter_probe), which would have errored once the endpoint came up.
Co-authored-by: Haitao Pan <manbuzhe2009@qq.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
21 lines
732 B
Django/Jinja
21 lines
732 B
Django/Jinja
[Unit]
|
|
Description=OpenCode ACP server
|
|
After=network-online.target
|
|
Wants=network-online.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User={{ acp_opencode_service_user }}
|
|
Group={{ acp_opencode_service_group }}
|
|
WorkingDirectory={{ acp_opencode_workdir }}
|
|
Environment=HOME={{ acp_opencode_home }}
|
|
Environment=PATH={{ acp_opencode_path }}
|
|
Environment=TERM=xterm-256color
|
|
Environment=OPENCODE_ADAPTER_ALLOWED_ORIGINS={{ acp_opencode_bridge_allowed_origins | join(',') }}
|
|
ExecStart={{ acp_opencode_bridge_binary_path }} adapter opencode --listen {{ acp_opencode_listen_host }}:{{ acp_opencode_listen_port }} --opencode-bin {{ acp_opencode_binary_path }} --cwd {{ acp_opencode_workdir }}
|
|
Restart=always
|
|
RestartSec=2
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|