8000 aloop stop: one stop for the whole project (M10.4) by adeelahmad · Pull Request #109 · adeelahmad/aloop · GitHub
[go: up one dir, main page]

Skip to content

aloop stop: one stop for the whole project (M10.4) - #109

Merged
adeelahmad merged 1 commit into
masterfrom
claude/project-thread-qerfr9
Oct 20, 2026
Merged

adeelahmad merged 1 commit into
masterfrom
claude/project-thread-qerfr9

Conversation

@adeelahmad
Copy link
Copy Markdown
Owner

Requested by Adeel · project thread

Before: limits existed only per attempt. Nothing could halt a whole project at once: the supervisor, every worker in its worktree, the mission roles and the mission loop.

After: aloop stop [REASON] stops every agent of the project at its next tool call, on all four hosts. Each acting call is refused, and the agent's next read ends it (continue: false). mission tick answers STOPPED with the reason. Only the human resumes, with aloop stop --clear in their own terminal; a shell an agent host runs is refused. aloop stop --status exits 3 while the project is stopped.

How:

  • bin/_stop.py holds the flag at .aladdin/state/STOP in the main tree.
  • bin/stop is the CLI. It records run.stopped and run.resumed, and events emit now refuses both, so neither can be forged.
  • budget hook pre checks the flag before any opt-out (SKIP_HOOKS, AGENTIC_NO_BUDGET). Claude Code, Codex, OpenCode and dsh already run it on every tool call.
  • mission tick has a new first rule, STOPPED (the human's). The mission skill has a row for it.

Call I made: any shell may stop, since a stop only takes power away; only clearing is limited to the human.

Not in this PR (both are in the ROADMAP M10 row):

Evidence:

  • scripts/test/project-stop.test.py: 7 checks. It failed before the change (no stop tool).
  • It covers the supervisor, a worker in a task worktree and a mission role, plus the opt-outs, tick, a refused --clear from an agent shell, and forged events.
  • Re-run with no failures: mission-tick (32 checks) and budget-hard-stop, budget-roles and budget-worktree.
  • check-tracking: 96 requirements. TRACKING now splits M10.2 into the shipped part and the still-open dependency audit.
  • make ci passed locally, conformance 78/78.

Generated by Claude Code

…d by mission tick (M10.4)

`aloop stop [REASON]` sets .aladdin/state/STOP and records run.stopped. `budget hook pre`,
which all four hosts run on every tool call, then refuses each agent's acting calls and ends it
at its next read (continue: false); `mission tick` answers STOPPED. `stop --clear` resumes and
records run.resumed, refused in an agent host's shell. events emit cannot forge either record.
Test: scripts/test/project-stop.test.py (7 checks).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015QxyVf3NgwsgRyYpBgDDTC
@adeelahmad
adeelahmad marked this pull request as ready for review October 20, 2026 15:08
@adeelahmad
adeelahmad merged commit f26f33a into master Oct 20, 2026
5 checks passed
adeelahmad pushed a commit that referenced this pull request Oct 20, 2026
…nto the dsh follow-ups

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AiLhAWTRtwbgMCDQNJUbea
adeelahmad pushed a commit that referenced this pull request Oct 20, 2026
…follow-up

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WBVFNrEg85XAnSfHQidCXN
adeelahmad pushed a commit that referenced this pull request Oct 20, 2026
… into the artifact gate fixes

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0197nSutKR1QAAqgJhFZ8fPj
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

0