Skip to content

test(e2e): the devops gate + delegation lane join the live smoke - #1114

Merged
rennf93 merged 1 commit into
feat/devops-agentfrom
test/devops-e2e-smoke-arcs
Sep 21, 2026
Merged

rennf93 merged 1 commit into
feat/devops-agentfrom
test/devops-e2e-smoke-arcs

Conversation

@rennf93

@rennf93 rennf93 commented Sep 21, 2026

Copy link
Copy Markdown
Owner

Stacked onto #1109 (merges into the devops PR).

What

Three scripted arcs in tests/e2e_smoke/test_devops_gate.py give the DevOps feature its place in the live smoke suite (it previously had unit coverage only and zero e2e presence):

  1. The infra review gate, end to end. An assembled cell→root PR whose diff touches the project's effective infra globs (shipped defaults, no conventions.yml needed) REFUSES the primary reviewer's pr_pass until devops-1 co-claims via claim_gate_review and records a passed verdict, then composes. Both designed rejections are walked explicitly.
  2. Flag-off inertia. The identical chain with ROBOCO_DEVOPS_ENABLED off passes with no devops involvement.
  3. The delegation lane. A PM-assigned infra leaf flows through the normal authoring lifecycle as devops-1 (give_me_work → claim → worktree → commit → PR → i_am_done → awaiting_qa).

The arcs caught four real production gaps (all fixed here)

  • record_devops_review was advertised in the manifest but never exposed by the MCP flow server — a real devops-1 could not record a verdict.
  • content_notes had no devops entry while i_am_done demands dev_notes>=min — the delegation lane could never complete. devops now authors the developer section.
  • The project agent-access guard had no flag-gated devops exemption (only the task-level one existed) — every delegation-lane claim was wedged behind the assigned-cell rule.
  • The content-ownership gate refused the co-claimant's journal note (the verdict verbs demand a learning entry); the co-claim marker now authorizes content.

Plus harness/infra: the smoke app mounts the flow_devops router (it predated the feature); devops-1 joins the seeded canonical company at its static seed UUID; dev_arc creates nested work-file parents; the i_am_done files_changed evidence leg forwards the submitting agent; and agent-image-smoke.yml gains a devops toolchain-smoke job (build + every pinned binary executes; no daemon).

Verification

  • Full make e2e-smoke locally: 76 passed, 3 skipped (live-forge tests)
  • New unit tests: access-guard exemption (on/off), co-claimant note authorization, section map
  • Repo-wide ruff + mypy clean

…d the arcs caught four real gaps

Three scripted arcs in tests/e2e_smoke/test_devops_gate.py over the REAL
choreographer verbs: (1) the infra review gate end to end — an assembled
cell->root PR touching DEFAULT_INFRA_GLOBS refuses the primary reviewer's
pr_pass until devops-1 co-claims via claim_gate_review and records a
passed record_devops_review verdict, then composes; both rejections
walked (verdict-less pr_pass, record before co-claim); (2) flag-off
inertia: the identical chain passes with no devops involvement;
(3) the delegation lane: a PM-assigned infra leaf flows through the
normal authoring lifecycle as devops-1.

The arcs immediately paid for themselves — four production gaps fixed:

- roboco/mcp/flow_server.py never exposed record_devops_review: the
  manifest advertised it but a real devops-1 could not record a verdict.
  Tool added + registered.
- content_notes had no devops section entry while i_am_done demands
  dev_notes>=min: the delegation lane could never complete. devops now
  authors the developer section (it IS a worktree author).
- _agent_access_claim_guard had no flag-gated devops exemption (the
  task-level carve-out alone): every delegation-lane claim was wedged
  behind the assigned-cell rule.
- content_actions refused the co-claimant's journal note (the verdict
  verbs demand a learning entry; the marker now authorizes content).

Plus: the smoke harness mounts the flow_devops router (it predated the
feature); devops-1 joins the seeded canonical company (static seed UUID
like main-pm); dev_arc creates nested work-file parents; the i_am_done
files_changed evidence leg forwards the submitting agent instead of the
post-transition assignee; agent-image-smoke.yml gains a devops
toolchain-smoke job (build + every pinned binary executes, no daemon).
@github-actions github-actions Bot added ci GitHub Actions and CI configuration area: services Touches roboco/services/ (business logic, side effects) tests Test suite changes area: gateway Touches roboco/services/gateway/ (Choreographer, verb surface) area: mcp Touches roboco/mcp/ (MCP server entry points) labels Sep 21, 2026
@rennf93
rennf93 merged commit f435f35 into feat/devops-agent Sep 21, 2026
6 of 8 checks passed
@github-project-automation github-project-automation Bot moved this from Backlog to Done in RoboCo Kanban Sep 21, 2026
@github-actions

Copy link
Copy Markdown

Thanks for opening your first pull request on RoboCo!

Quick checklist before review (most of these are enforced by CI, but worth a glance):

  • make quality — ruff format check, ruff check, mypy, pytest (≥80% coverage), and the rest of the gate
  • Panel changes pass pnpm lint and pnpm exec tsc --noEmit (run from panel/)
  • No # noqa / # type: ignore shortcuts; pre-existing violations in touched files are fixed
  • Added an entry under ## [Unreleased] in CHANGELOG.md
  • Signed the CLA (the bot will prompt you on this PR)
  • Signed your commits — master requires verified signatures (SSH signing setup)
  • Updated any affected docs under docs/

See CONTRIBUTING.md for the full workflow and the Code of Conduct for the community standards we follow.

Welcome aboard — a maintainer will review shortly.

@github-actions github-actions Bot locked and limited conversation to collaborators Sep 21, 2026
@rennf93 rennf93 self-assigned this Sep 25, 2026
@rennf93
rennf93 deleted the test/devops-e2e-smoke-arcs branch September 25, 2026 22:40
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area: gateway Touches roboco/services/gateway/ (Choreographer, verb surface) area: mcp Touches roboco/mcp/ (MCP server entry points) area: services Touches roboco/services/ (business logic, side effects) ci GitHub Actions and CI configuration tests Test suite changes

Projects

Status: Done

1 participant