Skip to content

[codex] add Hermes Agent provider-team assignment lane - #84

Merged
Ghenghis merged 1 commit into
codex/hermes-agent-git-operatorfrom
codex/hermes-agent-team-assignments
May 8, 2026
Merged

Ghenghis merged 1 commit into
codex/hermes-agent-git-operatorfrom
codex/hermes-agent-team-assignments

Conversation

@Ghenghis

@Ghenghis Ghenghis commented May 7, 2026

Copy link
Copy Markdown
Owner

Summary

  • add provider-team readiness for Team A MiniMax builders and Team B DeepSeek reviewers
  • add proof-backed assignment and second-team review request APIs under /api/code-operator/teams/*
  • mirror the team lane into /api/agents/action-catalog, raising the catalog to 74 actions
  • update the roadmap to show this as a real boundary, not a fake provider executor

Truth / Proof

  • Hermes task: H3D-CODEX-HERMES-AGENT-TEAMS
  • Hermes evidence: ev_bccf8739b9829cca
  • Route smoke: /api/code-operator/teams/readiness returned 200; /api/agents/action-catalog returned 74 contracts
  • Route smoke: assign/review/release returned assigned, review_requested, released

Validation

  • python -m py_compile 03_implementation/src/hermes3d/services/code_history.py 03_implementation/src/hermes3d/api/routes/code_operator.py 03_implementation/src/hermes3d/api/routes/agents.py
  • python -m ruff check 03_implementation/src/hermes3d/services/code_history.py 03_implementation/src/hermes3d/api/routes/code_operator.py 03_implementation/src/hermes3d/api/routes/agents.py 04_testing/pytest/unit/test_code_operator.py 04_testing/pytest/unit/test_agent_action_catalog.py
  • python -m pytest 04_testing/pytest/unit/test_code_operator.py 04_testing/pytest/unit/test_agent_action_catalog.py -q (33 passed)
  • python -m pytest 04_testing/pytest/unit/test_code_operator.py 04_testing/pytest/unit/test_agent_action_catalog.py 04_testing/pytest/unit/test_printer_policy.py -q (49 passed)
  • python 03_implementation/scripts/scan_active_ui_no_fake.py
  • python -m pytest 04_testing/pytest/unit -q --maxfail=1 (passed, 1 skipped)
  • python -m pytest 03_implementation/tests -q --maxfail=1 (passed with existing expected xfails)
  • pre-push fast subset passed

Remaining Roadmap Gap

This does not yet invoke MiniMax/DeepSeek to autonomously write/review code. It creates the real readiness, assignment, review-request, MCP/proof boundary needed before that provider-backed execution loop can be added safely.

@coderabbitai

coderabbitai Bot commented May 7, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e4ca25ac-e3c5-4f56-a3b8-741866044112

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/hermes-agent-team-assignments

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

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request implements the provider-team slice of the Hermes Agent programming ecosystem, introducing infrastructure for task assignment and second-team code reviews. Key changes include new API endpoints for team readiness, task assignment, and review requests, along with service-level logic to validate prerequisites like MCP locks and provider configurations. The feedback identifies opportunities to improve maintainability by extracting duplicated validation and readiness-checking logic into shared helper functions.

Comment on lines +677 to +679
files = payload.get("files")
if not isinstance(files, list) or not files:
raise ValueError("Payload field files must be a non-empty list.")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This validation logic for a non-empty list is also used for files and proof_ids in the code.teams.request_review handler (lines 695-698). To improve maintainability and reduce code duplication, consider extracting this logic into a helper function, similar to how _required_payload_text is used for string validation.

Comment on lines +926 to +933
readiness = provider_team_readiness()
team_map = {team["id"]: team for team in readiness["teams"]}
selected_status = [team_map[item] for item in selected_teams]
blocked = [
f"{team['id']}: {reason}"
for team in selected_status
for reason in (team.get("blocked_reasons") or [])
]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This block of code to check team readiness and gather blocked reasons is duplicated in request_provider_team_review (lines 1010-1017). To improve maintainability, consider extracting this logic into a private helper function that could be called from both places. For example, a function like _get_selected_teams_status(selected_teams) could return the selected_status and blocked lists.

@Ghenghis
Ghenghis merged commit f0efa91 into codex/hermes-agent-git-operator May 8, 2026
1 check passed
@Ghenghis
Ghenghis deleted the codex/hermes-agent-team-assignments branch May 8, 2026 17:24
Ghenghis added a commit that referenced this pull request May 10, 2026
…85) (#198)

Adds H3D-CLOSED-PR-LEDGER.md as the source-of-truth for the 19
closed-unmerged PRs in the Wave 10 audit scope. Each row cites the
merged successor PR(s) and proof file paths, satisfying the
feedback_weakness_correction.md rule that every PARTIAL audit finding
must be paired with a fix-PR. The PR-#85 row in particular records the
fold-in chain attribution (#84 team assignment -> #104 provider smoke
-> #107/#112/#124/#145/#148 hardening) that was missing from the
replacement-PR bodies per W10-A9's anti-rubber-stamp finding.

Also includes a See also link from the W10 audit synthesis
(CLOSED_UNMERGED_PR_SUPERSESSION_AUDIT_2026-05-10.md) to the new
ledger, and a PARTIAL gap reconciliation section enumerating the
Wave 11 closing PRs for #37 (W11-2 UI Playwright spec), #83 (W11-3
5 git-contract unit tests), and #85 (this PR — ledger doc).

Doc-only PR: no source/test edits.

Hermes evidence chain: PASS
Task ID: W11-4-PR85-LEDGER-2026-05-10
Hermes lock owner: claude-w11-4-pr85
hermes_run_gate: docs-only-truth-gate

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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