Skip to content

feat(autonomy): make AUTO_CODE_AUTONOMY=safe the recommended/CI default#309

Merged
OBenner merged 2 commits into
developfrom
feat/enable-safe-autonomy-defaults
Jun 10, 2026
Merged

feat(autonomy): make AUTO_CODE_AUTONOMY=safe the recommended/CI default#309
OBenner merged 2 commits into
developfrom
feat/enable-safe-autonomy-defaults

Conversation

@OBenner

@OBenner OBenner commented Jun 1, 2026

Copy link
Copy Markdown
Owner

Context

OpenAI, Google, and OpenRouter now pass the full provider e2e suite with stable + live-fault evidence and read ready from the AutonomyPolicy gate (green readiness badges, merged in #308). This enables the evidence-gated safe level across the deployment and CI surfaces.

Scope was confirmed as deployment + CI + docs — the library module default stays claude per ADR-006 (deliberate backward-compat; ~6 tests encode it). No code default flipped, no tests touched.

What changes

  • apps/backend/.env.example — adds the AUTO_CODE_AUTONOMY block as the PRIMARY knob and ships it active at safe (the config users copy). Documents off/claude/safe/bold and that the evidence gate is always enforced.
  • .github/workflows/auto-claude-build.yml (the real agent-build CI) — sets AUTO_CODE_AUTONOMY: ${{ vars.AUTO_CODE_AUTONOMY || 'safe' }} (overridable via repo variable).
  • docs/roadmap/non-claude-provider-autonomy.md — records the 2026-06-01 milestone and that safe is the recommended/shipped default.

Why safe is the right level (not bold)

safe sets direct_api_skip_gate=False, so promotion consults and enforces the recorded evidence gate:

level=safe runtime_mode=full_autonomous
direct_api_gate=True   skip_gate=False (evidence ENFORCED)
runtime_fallback=True  sandbox_requested=True

→ it promotes exactly the three providers that earned evidence and keeps every other provider (litellm/zhipuai/ollama) limited until they do. bold would skip the gate — not what we want.

Intentionally NOT changed

  • Library default AutonomyLevel.default() stays claude (ADR-006 backward-compat).
  • nightly-provider-autonomy.yml keeps its AUTO_CODE_AUTONOMY: claude lock for reproducible evidence runs; its badge-render step already evaluates readiness under safe.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Configuration

    • Added autonomy level settings to control agent behavior with a secure default mode.
    • Optional preset thresholds now available for customization.
  • Documentation

    • Updated roadmap showing OpenAI, Google, and OpenRouter progressing toward full autonomous coding support by June 2026 with evidence-based readiness validation.

OpenAI, Google, and OpenRouter now pass the full provider e2e suite with
stable + live-fault evidence and read "ready" from the AutonomyPolicy
gate. Enable the evidence-gated `safe` level across the deployment and CI
surfaces (the library module default stays `claude` per ADR-006 for
backward compatibility):

- .env.example: add the AUTO_CODE_AUTONOMY block as the PRIMARY knob and
  ship it active at `safe` (the config users copy). Documents off/claude/
  safe/bold and that the evidence gate is always enforced — unproven
  providers stay limited regardless of level.
- auto-claude-build.yml (real agent-build CI): set
  AUTO_CODE_AUTONOMY=safe, overridable via the `AUTO_CODE_AUTONOMY` repo
  variable.
- roadmap doc: record the 2026-06-01 milestone and that safe is the
  recommended/shipped default.

`safe` enforces the gate (direct_api_skip_gate=False), so it promotes
exactly the three providers that earned evidence and keeps every other
provider limited. The Provider Autonomy Probes workflow intentionally
keeps its `claude` lock for reproducible evidence runs (its badge-render
step already evaluates readiness under `safe`).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Oleg Miagkov <mrobenner@gmail.com>
@coderabbitai

coderabbitai Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: ff7863ad-8fbd-4af8-9a46-b7093d5ac9c4

📥 Commits

Reviewing files that changed from the base of the PR and between 7e5cd91 and dc786ea.

📒 Files selected for processing (3)
  • .github/workflows/auto-claude-build.yml
  • apps/backend/.env.example
  • docs/roadmap/non-claude-provider-autonomy.md

📝 Walkthrough

Walkthrough

This PR documents and configures the AUTO_CODE_AUTONOMY feature across the codebase. The workflow introduces the env var with a safe default, the backend example defines usage and optional preset threshold, and the roadmap updates the status to active development with a June 2026 milestone showing e2e readiness evidence for OpenAI, Google, and OpenRouter with evidence-gate enforcement.

Changes

Autonomy policy configuration

Layer / File(s) Summary
AUTO_CODE_AUTONOMY configuration and documentation
.github/workflows/auto-claude-build.yml, apps/backend/.env.example, docs/roadmap/non-claude-provider-autonomy.md
Workflow env var AUTO_CODE_AUTONOMY is introduced sourced from vars.AUTO_CODE_AUTONOMY with 'safe' default; backend .env.example documents the primary autonomy knob and optional AUTO_CODE_AUTONOMY_PRESET threshold with evidence-gate behavior for direct-API providers; roadmap Status section updates to active development with 2026-06-01 milestone detailing e2e readiness evidence sourced from built-in fault fixtures and recommends AUTO_CODE_AUTONOMY=safe for promoting OpenAI, Google, and OpenRouter to full autonomous coding while maintaining evidence-gate enforcement.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Suggested labels

area/ci, size/M

Poem

🐰 A gate of safety, configuration-bright,
Autonomy flows with a default of "safe" in sight,
Workflow, env, and docs now aligned as one,
OpenAI, Google routers—their time has begun!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title directly and specifically describes the main change: establishing AUTO_CODE_AUTONOMY=safe as the recommended default for both CI and deployment, which is the central objective across all modified files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/enable-safe-autonomy-defaults

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Aligns the .env.example level descriptions with PR-7
(feat/safe-mutating-subagents): safe ships the hardened transactional
mutating-subagent surface; bold's distinction is skipping the gate.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Oleg Miagkov <mrobenner@gmail.com>
@sonarqubecloud

Copy link
Copy Markdown

@OBenner OBenner merged commit 5062056 into develop Jun 10, 2026
19 checks passed
OBenner added a commit that referenced this pull request Jun 10, 2026
Phase D / PR-7 — the final step of "mutating subagents -> safe" (stacked
on the PR-6 gate requirement). The protocol is no longer scaffolded:

- children are write-scope confined with runtime enforcement (#319),
- they stage mutations and export changesets without touching the shared
  workspace (#320),
- the parent applies each child transactionally with per-child rollback
  and baseline verification (#322),
- real conflicts are never auto-applied — they block finish until the
  parent resolves explicitly (#323),
- the whole mechanism is covered by the deterministic
  subagent_merge_probe (PR-5) which the promotion gate now requires
  (PR-6).

With that evidence chain in place, AutonomyLevel.SAFE now defaults
mutating_subagents_enabled=True. bold's remaining distinction is skipping
the evidence gate. The explicit AUTO_CODE_MUTATING_SUBAGENTS=false
override still opts out (covered by a new test), per ADR-006 precedence.

ADR-006's level table updated. The .env.example and UI level descriptions
live on the still-open #309/#318 branches and are updated there.

Tests: safe-level expectations flipped (autonomy level + direct-API
runtime policy grant); explicit env opt-out covered. 694 passed across
the affected surface.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Oleg Miagkov <mrobenner@gmail.com>
OBenner added a commit that referenced this pull request Jun 10, 2026
Phase D / PR-7 — the final step of "mutating subagents -> safe" (stacked
on the PR-6 gate requirement). The protocol is no longer scaffolded:

- children are write-scope confined with runtime enforcement (#319),
- they stage mutations and export changesets without touching the shared
  workspace (#320),
- the parent applies each child transactionally with per-child rollback
  and baseline verification (#322),
- real conflicts are never auto-applied — they block finish until the
  parent resolves explicitly (#323),
- the whole mechanism is covered by the deterministic
  subagent_merge_probe (PR-5) which the promotion gate now requires
  (PR-6).

With that evidence chain in place, AutonomyLevel.SAFE now defaults
mutating_subagents_enabled=True. bold's remaining distinction is skipping
the evidence gate. The explicit AUTO_CODE_MUTATING_SUBAGENTS=false
override still opts out (covered by a new test), per ADR-006 precedence.

ADR-006's level table updated. The .env.example and UI level descriptions
live on the still-open #309/#318 branches and are updated there.

Tests: safe-level expectations flipped (autonomy level + direct-API
runtime policy grant); explicit env opt-out covered. 694 passed across
the affected surface.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Oleg Miagkov <mrobenner@gmail.com>
OBenner added a commit that referenced this pull request Jun 10, 2026
…326)

* chore: retrigger CI after base retarget to develop

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Oleg Miagkov <mrobenner@gmail.com>

* feat(autonomy): enable mutating parallel subagents at the safe level

Phase D / PR-7 — the final step of "mutating subagents -> safe" (stacked
on the PR-6 gate requirement). The protocol is no longer scaffolded:

- children are write-scope confined with runtime enforcement (#319),
- they stage mutations and export changesets without touching the shared
  workspace (#320),
- the parent applies each child transactionally with per-child rollback
  and baseline verification (#322),
- real conflicts are never auto-applied — they block finish until the
  parent resolves explicitly (#323),
- the whole mechanism is covered by the deterministic
  subagent_merge_probe (PR-5) which the promotion gate now requires
  (PR-6).

With that evidence chain in place, AutonomyLevel.SAFE now defaults
mutating_subagents_enabled=True. bold's remaining distinction is skipping
the evidence gate. The explicit AUTO_CODE_MUTATING_SUBAGENTS=false
override still opts out (covered by a new test), per ADR-006 precedence.

ADR-006's level table updated. The .env.example and UI level descriptions
live on the still-open #309/#318 branches and are updated there.

Tests: safe-level expectations flipped (autonomy level + direct-API
runtime policy grant); explicit env opt-out covered. 694 passed across
the affected surface.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Oleg Miagkov <mrobenner@gmail.com>

* chore: retrigger CI after base retarget to develop

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Oleg Miagkov <mrobenner@gmail.com>

* chore: retrigger CI on develop base

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Oleg Miagkov <mrobenner@gmail.com>

---------

Signed-off-by: Oleg Miagkov <mrobenner@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant