Skip to content

feat: add Codex-native looperators agent loop - #15

Merged
ObservedObserver merged 2 commits into
mainfrom
codex/looperators-agent-loop-p1-data-root-fix
Aug 5, 2026
Merged

feat: add Codex-native looperators agent loop#15
ObservedObserver merged 2 commits into
mainfrom
codex/looperators-agent-loop-p1-data-root-fix

Conversation

@ObservedObserver

@ObservedObserver ObservedObserver commented Aug 5, 2026

Copy link
Copy Markdown
Owner

Summary

Adds the first production-shaped Codex-native looperators vertical slice: a bounded review-until-clean loop governed by typed MCP state, native Codex workers, and a protected localhost live graph.

This PR consolidates the full P0 → P1 development line and the later localhost-first simplification into one reviewed branch.

What changed

  • adds a durable, versioned Agent Loop store and verified graph projection
  • supports preview, start, typed implementer/reviewer reports, pause, resume, cancel, lap cap, and restart recovery
  • replaces the default Hook-dependent design with cooperative role capabilities; the shipped Plugin has no Hooks
  • adds an authenticated 127.0.0.1 review surface with SSE and same-origin controls
  • extracts Desktop-derived ReactFlow graph components into @looperators/agent-graph-ui
  • renders Governor, Implementer, Reviewer, relationships, inspector, loop state, issues, recovery, and timeline in the Codex right Browser
  • records isolated install, real native-agent Gate A, and Codex Desktop Gate B evidence
  • removes legacy inline rendering from the critical product path

Why

The earlier Hook and inline-first design required too much trust and was tightly coupled to Codex lifecycle behavior. The accepted architecture keeps Codex as the native task/subagent runtime, uses typed MCP as the loop authority, and treats the protected localhost Browser surface as the primary interactive UI.

User impact

A user can run one bounded review-until-clean loop inside a Codex task with a root Governor and native implementer/reviewer workers, inspect live authoritative state in the right Browser, and request pause/resume/cancel without installing default Hooks.

This is intentionally a focused Codex workflow, not a full replacement for the looperators Desktop orchestration runtime.

Validation

  • npm run test:plugin-agent-loop-ui — 60 passed, 0 failed
  • npm run lint — 0 errors; existing warnings only
  • npm run build — passed
  • git diff --check origin/main...HEAD — passed
  • tracked-file credential pattern scan — no matches
  • isolated local Plugin install — passed
  • Gate A real root + implementer + reviewer issues-to-clean loop — passed
  • Gate B fresh Codex Desktop task, right Browser graph, and UI pause round-trip — passed

Evidence

  • internal_docs/plans/2026-08-02-codex-desktop-agent-loop-localhost-first.md
  • internal_docs/experiments/artifacts/2026-08-02-codex-desktop-agent-loop-localhost-first/gate-a-real-loop.md
  • internal_docs/experiments/artifacts/2026-08-02-codex-desktop-agent-loop-localhost-first/gate-b-desktop.md
  • internal_docs/experiments/artifacts/2026-08-02-codex-desktop-agent-loop-localhost-first/desktop-interaction-parity.md

Known boundary

The default mode is cooperative. It cannot forcibly stop an in-flight native worker, force a worker to report, or force Codex to continue an ended turn. The Plugin currently requires a usable Node runtime and a new Codex task after installation or metadata updates.

Review status

  • independent Codex review: all reported P1 findings fixed; follow-up found no remaining code P0/P1 after branch-history cleanup
  • Grok Build review: root-only subagent authorization P1 fixed; follow-up found no remaining P0/P1
  • CI rerun after the sanitized force-push: passed
  • runtime prerequisite is Node.js 24.x; the Plugin does not yet bundle Node

@ObservedObserver
ObservedObserver force-pushed the codex/looperators-agent-loop-p1-data-root-fix branch from 3477089 to 2caa783 Compare August 5, 2026 11:52
@ObservedObserver
ObservedObserver marked this pull request as ready for review August 5, 2026 15:25
@ObservedObserver
ObservedObserver merged commit 93d4d52 into main Aug 5, 2026
1 check passed
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