@@ -64,10 +64,15 @@ The deployment expects secrets and mutable state to be supplied outside git:
6464- ` COVEN_CODE_BIN ` - absolute coven-code path inside that rootfs
6565- ` COVEN_RUNTIME_NETWORK=shared ` - explicit opt-in required when the Codex
6666 provider needs network access; the default is ` none `
67- - ` COVEN_REVIEW_FIX_LOOPS ` - optional bounded review-fix loop count, clamped
68- between ` 0 ` and ` 5 ` ; defaults to ` 0 ` so hosted repair loops are opt-in
67+ - Automatic review and repair are repository-policy controls, not ambient
68+ environment switches. ` autoreview.enabled ` and ` repair.enabled ` must each be
69+ opted into explicitly; ` kill_switch ` stops new routing and repair pushes.
6970- Codex OAuth tokens under the deployed account's ` .coven-code ` directory
7071
72+ The host refreshes an expiring Codex OAuth session through the fixed OpenAI
73+ token endpoint and atomically updates the private token file. Only the resulting
74+ short-lived access token enters the model sandbox; the refresh token never does.
75+
7176Do not commit private keys, webhook secrets, OAuth tokens, generated task state,
7277workspaces, or attempt artifacts.
7378
@@ -82,7 +87,9 @@ records the task as `runtime_isolation_unavailable` with no direct fallback.
8287The runtime rootfs must contain the configured ` coven-code ` , ` git ` , and shell
8388executables plus their libraries, CA/DNS files, and approved runtime assets. It
8489must not contain the GitHub App key, webhook state, policy, parent home, or Codex
85- token store. The runtime receives only its dedicated model credential; it never
90+ token store. The private PID namespace receives an empty ` /proc ` , avoiding host
91+ procfs exposure and nested procfs-mount authority. The runtime receives only its
92+ dedicated model credential; it never
8693receives a GitHub token or Git askpass helper. Shared networking is not an
8794egress-confidentiality boundary, so use a dedicated, revocable model credential
8895and an externally enforced allowlist that blocks loopback, LAN, and metadata
@@ -185,7 +192,9 @@ connection guide in
185192 sandbox.
186193- Uses repository-scoped installation tokens: parent Git gets only
187194 ` contents:read ` , PR evidence gets read authority, and publication write
188- authority is minted only after isolated execution has finished.
195+ authority is minted only after isolated execution has finished. An opted-in
196+ repair mints a separate short-lived token with only ` contents:write ` and
197+ ` pull_requests:read ` ; the model never receives it.
189198- Persists ` publication_pending ` before GitHub writes and resumes interrupted
190199 publication on startup or duplicate webhook delivery without rerunning the
191200 agent.
@@ -198,6 +207,12 @@ connection guide in
198207- Publishes non-PR task results and operational notices as issue comments,
199208 including structured ` reviewed_files ` , ` supporting_files ` , findings, test
200209 evidence, no-findings rationale, and limitations.
201- - When ` COVEN_REVIEW_FIX_LOOPS ` is greater than ` 0 ` , reruns ` coven-code ` with
202- prior structured review findings as explicit repair instructions until no
203- findings remain or the configured loop count is exhausted.
210+ - With explicit ` autoreview.enabled ` , routes opened, ready-for-review, reopened,
211+ and synchronized pull-request revisions by repository, PR number, and exact
212+ head SHA. Drafts remain excluded unless ` include_drafts ` is enabled.
213+ - With separate ` repair.enabled ` , an evidence-complete REQUEST_CHANGES review
214+ may launch a file-write-only hosted repair. The trusted host rejects forks,
215+ protected branches and paths, oversized or unrelated diffs, stale heads, and
216+ failed validation; it then creates a Covencat-attributed non-force commit and
217+ queues a fresh review of the new SHA. The loop stops after the configured
218+ ` max_attempts ` (clamped to 1-3) or on repeated findings or non-progress.
0 commit comments