Default the supervise flag to true #250

Merged
didericis merged 1 commits from remove-supervise-flag into main 2026-06-23 21:44:46 -04:00
Owner

Closes #249.

Summary

Bottles should be supervised by default. Instead of removing the supervise flag (which would make supervision mandatory), this keeps the flag and flips its default from false to true.

  • Bottles that omit supervise: now bring up the stuck-recovery sidecar automatically.
  • supervise: false remains a supported opt-out for headless/CI/ephemeral bottles that don't have an operator watching the proposal queue.

Why not remove the flag entirely

The earlier version of this PR removed the flag and made supervision unconditional. That was reconsidered: the current supervise sidecar is agent-initiated (the agent proposes egress-block/capability-block; an operator approves), so it can't enforce anything against an uncooperative agent. Making it mandatory would not deliver forced cost-cutoff and would remove a legitimate unsupervised mode. The enforcement/observability plane that should be unconditional is tracked separately in #251.

Scope

One-line behavior change in ManifestBottle (dataclass default + from_dict default + docstrings). All other plumbing (SupervisePlan | None, per-backend conditional rendering) is unchanged. Full unit suite passes (1072 tests).

Closes #249. ## Summary Bottles should be supervised by default. Instead of removing the `supervise` flag (which would make supervision mandatory), this keeps the flag and flips its default from `false` to `true`. - Bottles that omit `supervise:` now bring up the stuck-recovery sidecar automatically. - `supervise: false` remains a supported opt-out for headless/CI/ephemeral bottles that don't have an operator watching the proposal queue. ## Why not remove the flag entirely The earlier version of this PR removed the flag and made supervision unconditional. That was reconsidered: the current supervise sidecar is **agent-initiated** (the agent proposes `egress-block`/`capability-block`; an operator approves), so it can't enforce anything against an uncooperative agent. Making it mandatory would not deliver forced cost-cutoff and would remove a legitimate unsupervised mode. The enforcement/observability plane that *should* be unconditional is tracked separately in #251. ## Scope One-line behavior change in `ManifestBottle` (dataclass default + `from_dict` default + docstrings). All other plumbing (`SupervisePlan | None`, per-backend conditional rendering) is unchanged. Full unit suite passes (1072 tests).
didericis added 1 commit 2026-06-23 20:48:12 -04:00
Default the supervise flag to true
test / unit (pull_request) Successful in 36s
test / integration (pull_request) Successful in 17s
lint / lint (push) Successful in 1m40s
test / unit (push) Successful in 30s
test / integration (push) Successful in 15s
Update Quality Badges / update-badges (push) Successful in 1m44s
369d332204
Issue #249: bottles should be supervised by default. Rather than
remove the flag (which would make supervision mandatory and is the
wrong plane for cost-control enforcement — see #251), keep the
opt-out and flip the default. Bottles that omit `supervise:` now get
the stuck-recovery sidecar; `supervise: false` still skips it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YcU7nerbg8cVj9R4EkpfLJ
didericis force-pushed remove-supervise-flag from bdca1c8bea to 369d332204 2026-06-23 20:48:12 -04:00 Compare
didericis changed title from Remove the supervise flag to Default the supervise flag to true 2026-06-23 20:48:23 -04:00
Author
Owner

Note: the branch is still named remove-supervise-flag from the original approach. The PR no longer removes the flag — it just flips the default to true and keeps supervise: false as an opt-out. Leaving the branch name as-is rather than repointing the PR.

Note: the branch is still named `remove-supervise-flag` from the original approach. The PR no longer removes the flag — it just flips the default to `true` and keeps `supervise: false` as an opt-out. Leaving the branch name as-is rather than repointing the PR.
didericis merged commit 369d332204 into main 2026-06-23 21:44:46 -04:00
didericis deleted branch remove-supervise-flag 2026-06-23 21:44:47 -04:00
Sign in to join this conversation.