Skip to content

Make upstream automations self-owned and observable - #1157

Merged
acgxv merged 15 commits into
mainfrom
xv/fix-upstream-validation-makefile
Jul 26, 2026
Merged

Make upstream automations self-owned and observable#1157
acgxv merged 15 commits into
mainfrom
xv/fix-upstream-validation-makefile

Conversation

@acgxv

@acgxv acgxv commented Jul 26, 2026

Copy link
Copy Markdown
Member

Summary

  • run upstream automation through a pre-execution trusted Python launcher
  • make Maintainer and Reviewer spawn native subagents and require one-time, state-bound handoff receipts before commit, decision, repair, or land
  • keep Decodex restricted to local commit and land effects; no Decodex server, planner, queue, or development execution is used
  • make retries, repair ownership, external effects, and terminal outcomes explicit and bounded
  • auto-archive terminal scheduled tasks while retaining tasks with unknown or unowned external effects
  • bootstrap the content and browser publisher from the exact workspace binary and use collision-free schedules
  • repair sandbox validation, linked-worktree Git reads, socket/process handling, and PostgreSQL impact rejection

Validation

  • env PATH=/nix/store/h2vxf9d0mwgc7gcxm8m468gv9zdyl4da-python3-3.12.13/bin:$PATH cargo make check-upstream-automation: passed in 631.47 seconds
  • automation aggregate: 187 tests passed
  • all-target Rust aggregate: 539 tests passed, 52 skipped
  • architecture aggregate: 22 tests passed
  • CLI diagnostics: 3 tests passed
  • complete live PostgreSQL 18 aggregate: all stages passed, including restore parity and authority-drift restoration
  • independent final review: no residual P0-P2 findings in the scoped receipt, recovery, and external-effect probes
  • git diff --check: passed

Acceptance Boundary

Repository behavior is verified at head 489b3e94fbe89377d410c7687dd1d7436448c066. After landing, the scheduled clean-main run must still prove the live Maintainer -> worker subagent -> Reviewer subagent -> Decodex land path and native task self-archive behavior. The live browser publisher must separately prove publish readback and restoration to the original X account.

acgxv added 13 commits July 26, 2026 06:29
…tream validation sandbox","authority":"manual","impact":"compatible"}
… sandboxed authority reads","authority":"manual","impact":"compatible"}
…endent of host config","authority":"manual","impact":"compatible"}
…get in validation","authority":"manual","impact":"compatible"}
… candidate sandbox","authority":"manual","impact":"compatible"}
…de the active sandbox","authority":"manual","impact":"compatible"}
…reap its children","authority":"manual","impact":"compatible"}
…r local socket authority","authority":"manual","impact":"compatible"}
…s sandbox process tree","authority":"manual","impact":"compatible"}
…n CLI diagnostics","authority":"manual","impact":"compatible"}
…ted validation","authority":"manual","impact":"compatible"}
…tible PostgreSQL changes","authority":"manual","impact":"compatible"}
…lidation sandbox","authority":"manual","impact":"compatible"}
import importlib.util
import os
from pathlib import Path
import unittest
acgxv added 2 commits July 26, 2026 12:37
…d and observable","authority":"manual","impact":"compatible"}
…d recovery evidence","authority":"manual","impact":"compatible"}
@acgxv acgxv changed the title Repair autonomous upstream validation sandbox Make upstream automations self-owned and observable Jul 26, 2026
from upstream_autopilot_lib import cli as cli_module
from upstream_autopilot_lib import core as core_module
from upstream_autopilot_lib import effects as effects_module
from upstream_autopilot_lib import handoff as handoff_module
"""Standalone Codex upstream adaptation policy and state machine."""

from .core import * # noqa: F403
from .handoff import * # noqa: F403
if create:
try:
os.mkdir("handoffs", mode=0o700, dir_fd=root_descriptor)
except FileExistsError:
now=now,
)

def land_started_state(self, *, include_token=False):
candidate = find_candidate(state, candidate_id)
lease_matches(candidate, "reviewer", token, now)
decision = candidate.get("decision")
active_handoff = candidate.get("handoff")
@acgxv
acgxv merged commit 1a857aa into main Jul 26, 2026
5 checks passed
@acgxv
acgxv deleted the xv/fix-upstream-validation-makefile branch July 26, 2026 18:17
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.

1 participant