fix: [nomad-prep] P2 — dispatcher refactor: pluggable launcher + DISPATCHER_BACKEND flag (#802) #817
No reviewers
Labels
No labels
action
backlog
blocked
bug-report
cannot-reproduce
in-progress
in-triage
needs-triage
prediction/actioned
prediction/dismissed
prediction/unreviewed
priority
rejected
reproduced
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#817
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/issue-802"
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 #802
Changes
AI Review
Regression: Missing
write_resultin_launch_runner_dockererror pathshigh
dispatcher.sh:429-431: Whenload_secretreturns empty,_launch_runner_dockerreturns 1 without callingwrite_result. Becauseis_action_completedchecks for.result.json, this action will never be skipped — the dispatcher will retry it on every 60-second poll cycle forever. The originallaunch_runnercalledwrite_result "$action_id" 1 "Secret not found: ..."before returning.high
dispatcher.sh:452-455: Same issue for the unknown mount alias path. The old code calledwrite_result "$action_id" 1 "Unknown mount alias: ${mount_alias}"before returning; the new code only callsreturn 1.Both pre-docker-run failure paths in
_launch_runner_dockerneed awrite_result "$action_id" 1 "..."call before returning, to stamp a.result.jsonthat marks the action complete and prevents infinite retries.Rest of the change
The refactor is otherwise clean:
load_secret(singular) exists inlib/env.shwith a multi-source resolution chain (Nomad template → env → age-encrypted file)xargs | tr ' ' ',') round-trips cleanly for normal token lists_launch_runner_${DISPATCHER_BACKEND}and_dispatch_sidecar_${DISPATCHER_BACKEND}is safe because onlydockerpasses the startup gateVerdict
REQUEST_CHANGES — Missing write_result calls in _launch_runner_docker cause infinite retry loops for pre-docker secret/mount failures
Reviewed at
ef40433| AGENTS.mdAI Review: REQUEST_CHANGES — Missing write_result calls in _launch_runner_docker cause infinite retry loops for pre-docker secret/mount failures
AI Re-review (round 2)
Previous Findings\n- high
_launch_runner_dockersecret error path missingwrite_result→ FIXED:write_result "$action_id" 1 "Secret not found: ${secret}"added beforereturn 1\n- high_launch_runner_dockerunknown mount alias path missingwrite_result→ FIXED:write_result "$action_id" 1 "Unknown mount alias: ${mount_alias}"added beforereturn 1\n\n### New Issues\n\nNone. The incremental diff is minimal and surgical — two one-line insertions, each in exactly the right place. The rest of the refactor was already assessed as clean atef40433.Verdict
APPROVE — Both write_result fixes applied exactly as requested; no new issues introduced
Reviewed at
4487d15| Previous:ef40433| AGENTS.mdAI Re-review (round 2): APPROVE — Both write_result fixes applied exactly as requested; no new issues introduced