test(e2e): workflow example 11 — complex graph actor for multi-stage code review (trusted profile) #796

Closed
freemo wants to merge 1 commits from test/e2e-wf11-graph-actor into master
Owner

Summary

  • Adds WF11 graph-actor E2E test for complex multi-stage code review with trusted automation profile: registers a 5-node graph actor with exact topology validation (nodes, edges, fan-out/fan-in tuples), creates a read-only action, executes the plan with structured second-execute gating via JSON status metadata, and verifies synthesized review evidence with branch-marker-before-synthesis ordering.
  • Includes trusted-profile metadata checks, robust plan-id extraction, explicit test timeouts, secure metadata-only process logging with DEBUG-level stdout/stderr for CI debuggability, and no-changeset artifact assertions.
  • Uses shared Log Process Result Summary from common_e2e.resource for secure logging; full stdout/stderr available at DEBUG level.

Approach

  • robot/e2e/wf11_graph_actor.robot:

    • Inline Python code fixtures and YAML graph actor definition with 5 nodes and 6 edges. Simplified inline format chosen for single-suite self-containment (documented in test [Documentation]).
    • Registers actor, creates read-only action, resource, project, and plan with trusted automation profile.
    • Executes plan with Execute Plan And Validate shared keyword (DRY — used by both first and optional second execute).
    • Polls Wait For Stable Plan Status with configurable max polls/interval and warns on poll exhaustion.
    • Assert Execute Progressed Beyond Strategize validates meaningful status (rejects empty JSON), checks for failure, strategize-stuck states, and positively asserts forward progress.
    • Strips whitespace before empty-check on execution output to avoid false-pass from literal newlines.
    • Assert Registered Jinja2 Template Marker uses a sanitized failure message to avoid leaking raw CLI output in CI logs.
    • Runtime topology validation skips when actor show --format json omits topology fields.
    • Route-finding logic extracted into Extract Route From Actor JSON helper keyword, eliminating duplication between Assert Registered Graph Topology and Runtime Actor JSON Has Topology. Fallback chain only uses intermediate containers as route when they structurally contain nodes or edges, preventing false-positive short-circuiting.
    • Assert Output Has No Traceback and Extract Plan Id From Outputs promoted to common_e2e.resource for cross-test reuse. Shared keyword intentionally named Extract Plan Id From Outputs (2 args) to avoid shadowing m1_acceptance.robot's simpler local Extract Plan Id (1 arg).
    • WF11 Test Teardown uses Log Process Result Summary for secure diagnostic logging on failure.
    • Force Tags E2E at suite level for tag consistency with other E2E suites.
    • Test timeout increased to 50 minutes to accommodate worst-case execution paths.
    • All Run Process git calls include timeout=60s on_timeout=kill for consistency.
    • Sanitization filters in Assert Runtime Review Evidence Present cover all synthesizer prompt lines (documented formatting assumption in comments).
    • Diff detection regex uses (?m)^---[ \t]+ to avoid false-positives on Markdown horizontal rules. All Should Not Match Regexp and Should Contain assertions include custom msg= parameters to prevent raw content leakage in CI failures.
    • Trusted profile regex tightened to automation_profile variants only (no bare profile).
    • Idiomatic Should Not Be True used in Assert Execute Progressed Beyond Strategize.
    • Redundant Log Process Result Summary calls removed (already called internally by Run CleverAgents Command).
  • robot/e2e/common_e2e.resource:

    • Run CleverAgents Command and Run CLI now log stdout/stderr at DEBUG level alongside the secure summary, restoring CI debuggability for all 8+ E2E suites.
    • Log Process Result Summary documentation includes security rationale for why raw output is excluded from default INFO-level logs.
    • Extract JSON From Stdout exception message is sanitized (truncated to 120 chars) to prevent stdout fragment leakage.
    • Pre-existing error messages updated from "Check DEBUG logs above" to "See secure command summary logs for context."

Known Limitation

  • In the current runtime, actor show --format json does not consistently expose graph topology (route.nodes/route.edges) for WF11. The test now SKIPs in this case with an explicit reason rather than falling back to fixture YAML or producing a false pass.

Closes #757

## Summary - Adds WF11 graph-actor E2E test for complex multi-stage code review with trusted automation profile: registers a 5-node graph actor with exact topology validation (nodes, edges, fan-out/fan-in tuples), creates a read-only action, executes the plan with structured second-execute gating via JSON status metadata, and verifies synthesized review evidence with branch-marker-before-synthesis ordering. - Includes trusted-profile metadata checks, robust plan-id extraction, explicit test timeouts, secure metadata-only process logging with DEBUG-level stdout/stderr for CI debuggability, and no-changeset artifact assertions. - Uses shared `Log Process Result Summary` from `common_e2e.resource` for secure logging; full stdout/stderr available at DEBUG level. ## Approach - `robot/e2e/wf11_graph_actor.robot`: - Inline Python code fixtures and YAML graph actor definition with 5 nodes and 6 edges. Simplified inline format chosen for single-suite self-containment (documented in test `[Documentation]`). - Registers actor, creates read-only action, resource, project, and plan with trusted automation profile. - Executes plan with `Execute Plan And Validate` shared keyword (DRY — used by both first and optional second execute). - Polls `Wait For Stable Plan Status` with configurable max polls/interval and warns on poll exhaustion. - `Assert Execute Progressed Beyond Strategize` validates meaningful status (rejects empty JSON), checks for failure, strategize-stuck states, and positively asserts forward progress. - Strips whitespace before empty-check on execution output to avoid false-pass from literal newlines. - `Assert Registered Jinja2 Template Marker` uses a sanitized failure message to avoid leaking raw CLI output in CI logs. - Runtime topology validation skips when `actor show --format json` omits topology fields. - Route-finding logic extracted into `Extract Route From Actor JSON` helper keyword, eliminating duplication between `Assert Registered Graph Topology` and `Runtime Actor JSON Has Topology`. Fallback chain only uses intermediate containers as route when they structurally contain `nodes` or `edges`, preventing false-positive short-circuiting. - `Assert Output Has No Traceback` and `Extract Plan Id From Outputs` promoted to `common_e2e.resource` for cross-test reuse. Shared keyword intentionally named `Extract Plan Id From Outputs` (2 args) to avoid shadowing `m1_acceptance.robot`'s simpler local `Extract Plan Id` (1 arg). - `WF11 Test Teardown` uses `Log Process Result Summary` for secure diagnostic logging on failure. - `Force Tags E2E` at suite level for tag consistency with other E2E suites. - Test timeout increased to 50 minutes to accommodate worst-case execution paths. - All `Run Process git` calls include `timeout=60s on_timeout=kill` for consistency. - Sanitization filters in `Assert Runtime Review Evidence Present` cover all synthesizer prompt lines (documented formatting assumption in comments). - Diff detection regex uses `(?m)^---[ \t]+` to avoid false-positives on Markdown horizontal rules. All `Should Not Match Regexp` and `Should Contain` assertions include custom `msg=` parameters to prevent raw content leakage in CI failures. - Trusted profile regex tightened to `automation_profile` variants only (no bare `profile`). - Idiomatic `Should Not Be True` used in `Assert Execute Progressed Beyond Strategize`. - Redundant `Log Process Result Summary` calls removed (already called internally by `Run CleverAgents Command`). - `robot/e2e/common_e2e.resource`: - `Run CleverAgents Command` and `Run CLI` now log stdout/stderr at DEBUG level alongside the secure summary, restoring CI debuggability for all 8+ E2E suites. - `Log Process Result Summary` documentation includes security rationale for why raw output is excluded from default INFO-level logs. - `Extract JSON From Stdout` exception message is sanitized (truncated to 120 chars) to prevent stdout fragment leakage. - Pre-existing error messages updated from "Check DEBUG logs above" to "See secure command summary logs for context." ## Known Limitation - In the current runtime, `actor show --format json` does not consistently expose graph topology (`route.nodes`/`route.edges`) for WF11. The test now **SKIPs** in this case with an explicit reason rather than falling back to fixture YAML or producing a false pass. Closes #757
freemo added this to the v3.1.0 milestone 2026-03-12 23:13:52 +00:00
freemo added the
Type
Testing
label 2026-03-12 23:13:52 +00:00
freemo force-pushed test/e2e-wf11-graph-actor from 55c18eeccb to 6c006e0139 2026-03-13 16:17:10 +00:00 Compare
freemo force-pushed test/e2e-wf11-graph-actor from 6c006e0139 to 82be762b64 2026-03-13 16:24:06 +00:00 Compare
freemo added the
State
In Review
label 2026-03-13 21:16:32 +00:00
freemo force-pushed test/e2e-wf11-graph-actor from 82be762b64 to 03a190215e 2026-03-13 23:19:44 +00:00 Compare
freemo added the
Priority
Medium
label 2026-03-14 04:10:10 +00:00
Author
Owner

PM Review — Day 34

Status: Mergeable, 0 reviews, M2 (v3.1.0)
Author: @freemo

E2E test for WF11 (complex graph actor for multi-stage code review). Retroactive M2 coverage.

Action Items

Who Action Deadline
@hurui200320 Peer review Day 37
## PM Review — Day 34 **Status**: Mergeable, 0 reviews, M2 (v3.1.0) **Author**: @freemo E2E test for WF11 (complex graph actor for multi-stage code review). Retroactive M2 coverage. ### Action Items | Who | Action | Deadline | |-----|--------|----------| | @hurui200320 | **Peer review** | Day 37 |
freemo added the
MoSCoW
Must have
Points
3
labels 2026-03-14 22:11:25 +00:00
freemo modified the milestone from v3.1.0 to v3.2.0 2026-03-16 00:32:00 +00:00
freemo added a new dependency 2026-03-16 02:42:15 +00:00
freemo added a new dependency 2026-03-16 02:42:15 +00:00
Author
Owner

PM Status — Day 36 (2026-03-16)

Day 34 review assignment deadline check. This PR has been in review for 2+ days with 0 reviewer activity.

Reminder: Assigned reviewer — please post your review by Day 37 EOD or flag any blockers. These E2E test PRs are foundational for milestone acceptance gates and cannot remain unreviewed indefinitely.

If you are unable to review by the deadline, please comment so the review can be reassigned.

## PM Status — Day 36 (2026-03-16) Day 34 review assignment deadline check. This PR has been in review for 2+ days with 0 reviewer activity. **Reminder**: Assigned reviewer — please post your review by **Day 37 EOD** or flag any blockers. These E2E test PRs are foundational for milestone acceptance gates and cannot remain unreviewed indefinitely. If you are unable to review by the deadline, please comment so the review can be reassigned.
freemo reviewed 2026-03-16 16:15:17 +00:00
freemo left a comment
Author
Owner

PM Day 36 Triage: M3 E2E test PR (v3.2.0). Lower priority than bug fixes and TDD infrastructure. Reviewer: @brent.edwards after critical path items clear.

PM Day 36 Triage: M3 E2E test PR (v3.2.0). Lower priority than bug fixes and TDD infrastructure. Reviewer: @brent.edwards after critical path items clear.
hurui200320 was assigned by freemo 2026-03-16 22:22:31 +00:00
Author
Owner

@hurui200320 I am going to have you take over this PR, it is mostly completed but is waiting on #628 and #966 One is yours and one is Brent's. Please be sure to get this PR and the two blocking PRs I listed in asap, thanks.

@hurui200320 I am going to have you take over this PR, it is mostly completed but is waiting on https://git.cleverthis.com/cleveragents/cleveragents-core/issues/628 and https://git.cleverthis.com/cleveragents/cleveragents-core/issues/966 One is yours and one is Brent's. Please be sure to get this PR and the two blocking PRs I listed in asap, thanks.
freemo requested review from hamza.khyari 2026-03-17 18:23:59 +00:00
freemo requested review from CoreRasurae 2026-03-17 18:23:59 +00:00
hurui200320 force-pushed test/e2e-wf11-graph-actor from 03a190215e to ef2ca2dcc8 2026-03-18 08:45:41 +00:00 Compare
hurui200320 force-pushed test/e2e-wf11-graph-actor from ef2ca2dcc8 to 07949b80fa 2026-03-26 07:26:35 +00:00 Compare
hurui200320 force-pushed test/e2e-wf11-graph-actor from 07949b80fa to 2398a08a94 2026-03-26 09:18:51 +00:00 Compare
hurui200320 force-pushed test/e2e-wf11-graph-actor from 2398a08a94 to a52102381a 2026-03-26 10:56:37 +00:00 Compare
hurui200320 force-pushed test/e2e-wf11-graph-actor from a52102381a to 3975f7b86a 2026-03-26 12:08:41 +00:00 Compare
hurui200320 force-pushed test/e2e-wf11-graph-actor from 3975f7b86a to 62680b5bea 2026-03-26 13:11:25 +00:00 Compare
hurui200320 force-pushed test/e2e-wf11-graph-actor from 62680b5bea to 7548803a4f 2026-03-26 16:45:41 +00:00 Compare
hurui200320 force-pushed test/e2e-wf11-graph-actor from 7548803a4f to bdcf585b73 2026-03-26 19:27:23 +00:00 Compare
hurui200320 force-pushed test/e2e-wf11-graph-actor from bdcf585b73 to 78eff7efa1 2026-03-26 20:12:48 +00:00 Compare
hurui200320 force-pushed test/e2e-wf11-graph-actor from 78eff7efa1 to 3ea71f83cc 2026-03-27 09:59:13 +00:00 Compare
hurui200320 was unassigned by freemo 2026-04-02 06:15:24 +00:00
freemo self-assigned this 2026-04-02 06:15:24 +00:00
Author
Owner

🤖 Backlog Groomer (groomer-1): Closing as duplicate of #757.

Issue #757 (test(e2e): workflow example 11 — complex graph actor for multi-stage code generation) is the canonical version with full labels (MoSCoW/Must have, Priority/Critical, State/In Review, Type/Testing) and milestone v3.2.0. This issue is an exact title duplicate.

🤖 **Backlog Groomer (groomer-1):** Closing as duplicate of #757. Issue #757 (`test(e2e): workflow example 11 — complex graph actor for multi-stage code generation`) is the canonical version with full labels (`MoSCoW/Must have`, `Priority/Critical`, `State/In Review`, `Type/Testing`) and milestone `v3.2.0`. This issue is an exact title duplicate.
freemo closed this pull request 2026-04-02 17:34:19 +00:00
All checks were successful
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 3m45s
Required
Details
CI / build (pull_request) Successful in 27s
Required
Details
CI / security (pull_request) Successful in 4m5s
Required
Details
CI / quality (pull_request) Successful in 4m7s
Required
Details
CI / typecheck (pull_request) Successful in 4m45s
Required
Details
CI / unit_tests (pull_request) Successful in 9m29s
Required
Details
CI / integration_tests (pull_request) Successful in 9m5s
Required
Details
CI / docker (pull_request) Successful in 1m8s
Required
Details
CI / e2e_tests (pull_request) Successful in 15m1s
CI / coverage (pull_request) Successful in 15m1s
Required
Details
CI / status-check (pull_request) Successful in 2s
CI / benchmark-regression (pull_request) Successful in 1h9m53s

Pull request closed

Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Reference: cleveragents/cleveragents-core#796