Skip to content

feat: migrate 5 build loop nodes from omnibase_infra [OMN-7752] - #27

Closed
jonahgabriel wants to merge 1 commit into
mainfrom
jonah/omn-7752-migrate-build-loop-nodes
Closed

jonahgabriel wants to merge 1 commit into
mainfrom
jonah/omn-7752-migrate-build-loop-nodes

Conversation

@jonahgabriel

@jonahgabriel jonahgabriel commented Apr 7, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Migrate 5 build loop workflow nodes from omnibase_infra to omnimarket: node_closeout_effect, node_rsd_fill_compute, node_ticket_classify_compute, node_build_dispatch_effect, node_loop_state_reducer
  • Update all imports from omnibase_infra to omnimarket, replace EnumHandlerType/Category with Literal types
  • Update contract.yaml topic namespaces from omnibase-infra to omnimarket
  • Add build_loop_workflow.yaml referencing node_build_loop_orchestrator (already migrated in feat: migrate node_build_loop_orchestrator to omnimarket [OMN-7583] #19)
  • Add shared EnumBuildability enum at omnimarket.models.enum_buildability
  • Add 5 entry points to pyproject.toml
  • Add 27 golden chain tests (all passing)

Part of OMN-7746 (Build Loop Node Migration epic). Companion PR in omnibase_infra deletes the original nodes.

Test plan

  • All 361 tests pass (27 new + 334 existing)
  • FSM reducer tests cover: phase transitions, skip_closeout, failure counting, circuit breaker, correlation mismatch rejection, out-of-order rejection, terminal state rejection, metric capture
  • Build dispatch tests cover: dry-run, real dispatch with delegation payloads, empty targets, duplicate detection
  • RSD fill tests cover: top-N selection, tie-breaking by priority, empty input, overflow clamping
  • Ticket classify tests cover: all buildability classifications, override logic, empty input
  • Closeout effect tests cover: model construction, defaults

Summary by CodeRabbit

  • New Features

    • Added a complete autonomous 7-phase build loop workflow for ticket management and deployment.
    • Implemented ticket buildability classification using keyword-based heuristics.
    • Added RSD score-based ticket selection for optimal build prioritization.
    • Implemented build dispatch mechanism with PR merge sweep functionality.
    • Added FSM-based loop state management with circuit breaker protection.
  • Tests

    • Added comprehensive test coverage for all new workflow components and operations.

…MN-7752]

Migrate node_closeout_effect, node_rsd_fill_compute, node_ticket_classify_compute,
node_build_dispatch_effect, and node_loop_state_reducer from omnibase_infra.

- Update all imports from omnibase_infra to omnimarket
- Replace EnumHandlerType/Category with Literal types (omnimarket pattern)
- Update contract.yaml topic namespaces to omnimarket
- Add build_loop_workflow.yaml referencing new orchestrator
- Add shared EnumBuildability enum
- Add 5 entry points to pyproject.toml
- Add 27 golden chain tests covering all migrated nodes
@coderabbitai

coderabbitai Bot commented Apr 7, 2026 •

Copy link
Copy Markdown

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

This pull request introduces five new nodes for an autonomous build loop orchestration system: a dispatch effect node for ticket-pipeline builds, a closeout effect node for merge-sweep and quality gates, a ticket classification compute node, an RSD-score-based ticket selection compute node, and an FSM-based state reducer for loop lifecycle tracking. It also adds workflow definitions and comprehensive test coverage.

Changes

Cohort / File(s) Summary
Configuration & Manifest
pyproject.toml, src/omnimarket/models/enum_buildability.py
Added five entry points for new nodes and a new EnumBuildability enum defining ticket buildability classifications (AUTO_BUILDABLE, NEEDS_ARCH_DECISION, BLOCKED, SKIP).
Build Dispatch Effect Node
src/omnimarket/nodes/node_build_dispatch_effect/*
Complete effect node implementation for dispatching ticket-pipeline builds. Includes contract definition, handler with delegation payload construction, and Pydantic models for input/output validation.
Closeout Effect Node
src/omnimarket/nodes/node_closeout_effect/*
Effect node for merge-sweep and quality gate execution. Includes contract, handler orchestrating PR classification and auto-merge operations, merge-sweep runner with GitHub CLI integration, and result models.
RSD Fill Compute Node
src/omnimarket/nodes/node_rsd_fill_compute/*
Compute node for deterministic top-N ticket selection by RSD score. Handler implements tie-breaking by priority and ticket ID; includes models for input candidates and selected outputs.
Ticket Classify Compute Node
src/omnimarket/nodes/node_ticket_classify_compute/*
Compute node for keyword-heuristic ticket buildability classification. Handler applies prioritized decision logic (skip → blocked → arch decision → auto-buildable) and confidence scoring; extracts criteria from contract YAML.
Loop State Reducer Node
src/omnimarket/nodes/node_loop_state_reducer/*
FSM-based reducer tracking autonomous build loop lifecycle. Implements state transitions, circuit breaker logic for consecutive failures, intent emission, and validation (correlation ID matching, phase sequencing).
Workflow Definition
src/omnimarket/workflows/build_loop_workflow.yaml
Orchestration workflow defining the complete 7-phase build loop with initial command, terminal event, node registration, and event flow wiring between orchestrator and downstream nodes.
Test Suite
tests/test_golden_chain_*.py
Five golden-chain test modules validating core behavior: build dispatch dry-run/real modes and duplicate detection, closeout model construction, loop reducer state transitions and circuit breaker, RSD fill sorting and filtering, and ticket classification keyword heuristics.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Poem

🐰 Five nodes hop into the loop,
Classifying, filling, dispatching in a swoop!
FSM tracks the phases with care,
Merges sweep and gates compare—
Build automation, fair and rare! ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 59.09% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat: migrate 5 build loop nodes from omnibase_infra [OMN-7752]' clearly and directly summarizes the main change—migrating five build-loop workflow nodes from omnibase_infra to omnimarket as described in the PR objectives.

✏️ 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 jonah/omn-7752-migrate-build-loop-nodes
⚔️ Resolve merge conflicts
  • Resolve merge conflict in branch jonah/omn-7752-migrate-build-loop-nodes

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

@jonahgabriel

Copy link
Copy Markdown
Contributor Author

Closing — this batch PR's content is superseded by the individual migration PRs that are already merged or in the merge queue:

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