Skip to content

G129: add external executor model store - #349

Merged
delete-cloud merged 1 commit into
mainfrom
codex/external-executor-g129-model-store
May 23, 2026
Merged

delete-cloud merged 1 commit into
mainfrom
codex/external-executor-g129-model-store

Conversation

@delete-cloud

@delete-cloud delete-cloud commented May 23, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • add external executor model/protocol, registry, and PG executor run store
  • add deterministic fake-pool tests for registry, schema idempotency, create/update/attach/list, duplicate create rejection, and no-leak validation
  • update G129 ledger and ADR-0045 acceptance criteria

Verification

  • uv run pytest tests/coding_agent/test_external_executor.py -v
  • uv run pytest tests/coding_agent/test_bee_launch.py -q
  • uv run pytest tests/coding_agent/test_bee_command_bridge.py -q
  • uv run ruff format --check --preview docs/external_executor/GOAL_PROGRESS.md docs/adr/0045-external-executor-adapter-boundaries.md src/coding_agent/external_executor.py tests/coding_agent/test_external_executor.py
  • uv run ruff check src/coding_agent/external_executor.py tests/coding_agent/test_external_executor.py
  • git diff --check -- .

Local subagent review: no blockers after fixes for sk- marker, evidence_ref validation, and duplicate executor_run_id behavior.

Summary by CodeRabbit

Release Notes

  • New Features

    • Added external executor abstraction layer with registry and durable storage for tracking executor runs and execution state.
    • Introduced executor capabilities, plans, evidence, and results with built-in validation.
  • Documentation

    • Updated architecture decision records with completion status for executor-related work.
    • Added detailed goal documentation for executor implementation progress and outcomes.
  • Tests

    • Added comprehensive test coverage for executor registry, storage operations, and data validation.

Review Change Stack

@coderabbitai

coderabbitai Bot commented May 23, 2026 •

Copy link
Copy Markdown
Contributor

Caution

Review failed

Pull request was closed or merged during review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: dc6731a0-df10-457e-a034-eb1fa0eda602

📥 Commits

Reviewing files that changed from the base of the PR and between 8d42c35 and ebfc9f1.

📒 Files selected for processing (4)
  • coding-agent/docs/adr/0045-external-executor-adapter-boundaries.md
  • coding-agent/docs/external_executor/GOAL_PROGRESS.md
  • coding-agent/src/coding_agent/external_executor.py
  • coding-agent/tests/coding_agent/test_external_executor.py

📝 Walkthrough

Walkthrough

This PR introduces the external executor abstraction layer, defining domain models and protocols for external executor implementations and their persistent run records, along with an in-memory registry and Postgres-backed store for managing executor executions with full CRUD lifecycle support and input validation.

Changes

External Executor Abstraction

Layer / File(s) Summary
Domain Models, Protocols, Registry & Store Implementation
coding-agent/src/coding_agent/external_executor.py
Defines ExternalExecutor and ExecutorRunStore protocols with immutable dataclasses (ExecutorCapability, ExecutorPlan, ExecutorEvidence, ExecutorResult, ExecutorRunRecord) that validate executor kinds, run statuses, identifier/label lengths, JSON metadata objects, and reject secret-shaped strings. Implements ExecutorRegistry for in-memory executor registration and resolution, and PGExecutorRunStore with lazy schema initialization, indexes, and async methods for create (with conflict handling), load, list (with task/node/kind/status filtering), status updates, and result attachment.
Comprehensive Test Suite
coding-agent/tests/coding_agent/test_external_executor.py
Provides in-memory FakeExecutorRunPool and FakeExecutor test doubles and fixtures. Tests verify registry resolution and error handling, store schema idempotency and index setup, full CRUD lifecycle (create, status update, result attachment with evidence/metadata, load, filtered lists), duplicate-create rejection, input validation rejecting sensitive metadata and secret-shaped content, and missing-row error handling. Includes deterministic test helpers for rows, records, and datetimes.
Acceptance Criteria & Goal Progress Documentation
coding-agent/docs/adr/0045-external-executor-adapter-boundaries.md, coding-agent/docs/external_executor/GOAL_PROGRESS.md
Marks three executor-related test acceptance criteria as completed and updates the pytest command entry in ADR-0045. Adds new goal G129_EXECUTOR_MODEL_STORE_AND_REGISTRY to the goal progress ledger with before/after state, test coverage expectations, and follow-on risk tracking.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 A registry springs to life, executors gather near,
Postgres stores their runs with care, through status shifts sincere,
Secrets blocked, records safe, the store knows how to test—
Layer by layer, line by line, the abstraction shows its best! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'G129: add external executor model store' clearly and concisely summarizes the main change: adding external executor models and a store, which is the primary objective reflected across all modified files.
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 docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/external-executor-g129-model-store

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.

@delete-cloud
delete-cloud merged commit 71702bc into main May 23, 2026
1 check was pending
@delete-cloud
delete-cloud deleted the codex/external-executor-g129-model-store branch May 23, 2026 07:33
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