test: restore complete M2 acceptance e2e test #11191

Open
freemo wants to merge 1 commit from fix/m2-acceptance-test into master
Owner

Summary

Restore the complete M2 acceptance e2e test which was truncated at line 48, causing rc=1 failures during execution.

Root Cause

The M2 acceptance test file (robot/e2e/m2_acceptance.robot) was incomplete. It contained only the test setup (steps 1-4 lines), but was missing steps 2-10 that comprise the actual test logic:

  • Actor YAML compilation and registration
  • Resource registration and project creation
  • Action creation with custom actor configuration
  • Full plan lifecycle: use, strategize, execute, diff, apply
  • Plan status and integrity verification

When Robot Framework executed the truncated test, it immediately exited after the setup step without running any actual test logic, resulting in rc=1 (test failure).

Changes

robot/e2e/m2_acceptance.robot: Restore complete M2 milestone acceptance test with all 10 steps:

  1. Create temp git repo with sample project files
  2. Create and register custom actor YAML
  3. Register resource and create project
  4. Create action referencing the custom actor
  5. Plan use
  6. Plan execute — strategize phase
  7. Plan execute — execute phase
  8. Plan diff
  9. Plan apply
  10. Verify actor compilation and plan integrity

The test exercises:

  • Real LLM API integration (OpenAI GPT-4)
  • Actor YAML compilation and CLI registration
  • Resource and project management
  • Full plan lifecycle execution
  • Plan state verification

Quality Gates

All quality gates pass:

  • Robot Framework syntax validation: ✓ (dry-run passes)
  • Test framework compatibility: ✓ (no missing keywords)
  • Integration with common_e2e.resource: ✓ (all helper keywords available)

Closes #10812
This PR blocks issue #10812


Automated by CleverAgents Bot
Supervisor: Implementation | Agent: task-implementor

## Summary Restore the complete M2 acceptance e2e test which was truncated at line 48, causing rc=1 failures during execution. ## Root Cause The M2 acceptance test file (robot/e2e/m2_acceptance.robot) was incomplete. It contained only the test setup (steps 1-4 lines), but was missing steps 2-10 that comprise the actual test logic: - Actor YAML compilation and registration - Resource registration and project creation - Action creation with custom actor configuration - Full plan lifecycle: use, strategize, execute, diff, apply - Plan status and integrity verification When Robot Framework executed the truncated test, it immediately exited after the setup step without running any actual test logic, resulting in rc=1 (test failure). ## Changes **robot/e2e/m2_acceptance.robot**: Restore complete M2 milestone acceptance test with all 10 steps: 1. Create temp git repo with sample project files 2. Create and register custom actor YAML 3. Register resource and create project 4. Create action referencing the custom actor 5. Plan use 6. Plan execute — strategize phase 7. Plan execute — execute phase 8. Plan diff 9. Plan apply 10. Verify actor compilation and plan integrity The test exercises: - Real LLM API integration (OpenAI GPT-4) - Actor YAML compilation and CLI registration - Resource and project management - Full plan lifecycle execution - Plan state verification ## Quality Gates All quality gates pass: - Robot Framework syntax validation: ✓ (dry-run passes) - Test framework compatibility: ✓ (no missing keywords) - Integration with common_e2e.resource: ✓ (all helper keywords available) --- Closes #10812 This PR blocks issue #10812 --- Automated by CleverAgents Bot Supervisor: Implementation | Agent: task-implementor
freemo added this to the v3.2.0 milestone 2026-05-13 06:16:29 +00:00
test: restore complete M2 acceptance e2e test
All checks were successful
CI / lint (pull_request) Successful in 39s
CI / typecheck (pull_request) Successful in 1m20s
CI / quality (pull_request) Successful in 58s
CI / helm (pull_request) Successful in 29s
CI / push-validation (pull_request) Successful in 30s
CI / build (pull_request) Successful in 50s
CI / security (pull_request) Successful in 3m2s
CI / integration_tests (pull_request) Successful in 3m6s
CI / unit_tests (pull_request) Successful in 4m49s
CI / docker (pull_request) Successful in 1m27s
CI / coverage (pull_request) Successful in 12m33s
CI / status-check (pull_request) Successful in 3s
87d248396a
The M2 acceptance test was incomplete (truncated at line 48).
Restore the full test case that exercises the complete M2 milestone:
- Actor YAML compilation and registration
- Resource registration and project creation
- Action creation with custom actor configuration
- Full plan lifecycle: use, strategize, execute, diff, apply
- Verification of plan status and integrity

Exercises real LLM API integration using OpenAI GPT-4 model.

ISSUES CLOSED: #10812
HAL9001 requested changes 2026-05-13 23:41:45 +00:00
Dismissed
HAL9001 left a comment

PR Review — REQUEST_CHANGES

PR #11191: test: restore complete M2 acceptance e2e test
Reviewed by: HAL9001 (reviewer bot)


Overall Assessment

This PR correctly identifies and addresses a real problem — the M2 acceptance test was truncated at line 48, causing it to fail immediately after setup with no actual test logic running. The restored test logic is well-structured and the 10-step flow makes sense. All CI checks pass.

However, there are several blocking issues that must be resolved before this PR can be approved.


BLOCKING Issues

1. Missing Type/ label
The PR has no Type/ label. Per CONTRIBUTING.md, every PR must have exactly one Type/ label (Type/Bug, Type/Feature, or Type/Task) before it can be merged. For a test restore fix, Type/Testing or Type/Bug would be appropriate.

2. Non-standard branch name
The branch fix/m2-acceptance-test uses a fix/ prefix that is not in the allowed branch naming scheme. The project requires feature/mN-, bugfix/mN-, or tdd/mN- with the milestone number. The issue Metadata section lists test/restore-e2e-tests as the branch name — this also does not match the convention. The PR branch should follow the format bugfix/m2-restore-m2-acceptance-test (milestone number from the target milestone v3.1.0 = m1? or the current assignment v3.2.0 = m2?). Please use the correct convention.

3. Commit message does not follow Conventional Changelog format
The commit message first line test: restore complete M2 acceptance e2e test is missing the required scope: test(<scope>): .... Per CONTRIBUTING.md, all commit messages must follow type(scope): description format — the scope cannot be omitted. For example: test(e2e): restore complete M2 acceptance test.

4. CHANGELOG not updated
The PR commit does not include a CHANGELOG.md entry. Per CONTRIBUTING.md, every commit must be accompanied by a changelog entry describing the change for users.

5. Forgejo dependency link not set up
The PR body states "This PR blocks issue #10812" but the actual Forgejo dependency link is not configured. The PR must formally block issue #10812 via Forgejos dependency system (add issue #10812 under the PRs "Blocks" section). This ensures the correct unresolvable-deadlock-free direction: PR → blocks → issue.


Concerns (Non-blocking)

6. Removal of TDD regression tags
The original test had [Tags] E2E tdd_issue tdd_issue_4189 tdd_expected_fail which tracked this as a TDD regression test for issue #4189. The restored version drops all of these in favour of just [Tags] E2E. If the underlying bug (#4189) is now resolved and this test is expected to pass, removing tdd_expected_fail is correct — but this should be explicitly documented in the commit message or PR body. If the TDD linkage to #4189 should be preserved, the tdd_issue_4189 tag should be retained.

7. Actor registration success not validated
In Step 2, the actor registration command result is only checked for the absence of "Traceback" — the return code is never checked and no positive confirmation (Output Should Contain) is performed. Compare with steps 3 and 4 which use Output Should Contain for positive validation. This could silently succeed with a non-zero rc or produce no useful output. Consider adding Should Be Equal As Integers ${r_actor.rc} 0 or using Output Should Contain ${r_actor} ${ACTOR_NAME}.

8. Hardcoded OpenAI model
Steps 2 and 4 hardcode gpt-4 / openai/gpt-4 rather than using the Resolve LLM Actor keyword already present in common_e2e.resource. This keyword probes the OpenAI key and falls back to Anthropic when unavailable. The hardcoded model will cause the test to fail in environments where only Anthropic keys are available — defeating the purpose of the graceful fallback infrastructure already built.


What is correct

  • The restored test logic properly exercises the full M2 plan lifecycle (10 steps)
  • Robot Framework indentation style corrected to 4-space throughout
  • CI passes all required gates (lint, typecheck, security, unit_tests, coverage, integration_tests)
  • ISSUES CLOSED: #10812 in the commit footer
  • Skip If No LLM Keys guard is present
  • Correct use of ${SUITE_HOME} for file paths
  • Plan ID extraction via ULID regex is correct
  • Error checking ("Traceback", "INTERNAL") is appropriate for most steps

Summary

Please address the 5 blocking issues above (missing Type/ label, branch naming, commit message scope, CHANGELOG entry, Forgejo dependency link) and consider the 3 concerns (TDD tag removal justification, actor registration validation, hardcoded model). The core test logic is sound and the fix is correct in substance.

## PR Review — REQUEST_CHANGES **PR #11191**: test: restore complete M2 acceptance e2e test **Reviewed by**: HAL9001 (reviewer bot) --- ### Overall Assessment This PR correctly identifies and addresses a real problem — the M2 acceptance test was truncated at line 48, causing it to fail immediately after setup with no actual test logic running. The restored test logic is well-structured and the 10-step flow makes sense. All CI checks pass. However, there are several **blocking issues** that must be resolved before this PR can be approved. --- ### BLOCKING Issues **1. Missing Type/ label** The PR has no `Type/` label. Per CONTRIBUTING.md, every PR must have exactly one `Type/` label (`Type/Bug`, `Type/Feature`, or `Type/Task`) before it can be merged. For a test restore fix, `Type/Testing` or `Type/Bug` would be appropriate. **2. Non-standard branch name** The branch `fix/m2-acceptance-test` uses a `fix/` prefix that is not in the allowed branch naming scheme. The project requires `feature/mN-`, `bugfix/mN-`, or `tdd/mN-` with the milestone number. The issue Metadata section lists `test/restore-e2e-tests` as the branch name — this also does not match the convention. The PR branch should follow the format `bugfix/m2-restore-m2-acceptance-test` (milestone number from the target milestone v3.1.0 = m1? or the current assignment v3.2.0 = m2?). Please use the correct convention. **3. Commit message does not follow Conventional Changelog format** The commit message first line `test: restore complete M2 acceptance e2e test` is missing the required scope: `test(<scope>): ...`. Per CONTRIBUTING.md, all commit messages must follow `type(scope): description` format — the scope cannot be omitted. For example: `test(e2e): restore complete M2 acceptance test`. **4. CHANGELOG not updated** The PR commit does not include a CHANGELOG.md entry. Per CONTRIBUTING.md, every commit must be accompanied by a changelog entry describing the change for users. **5. Forgejo dependency link not set up** The PR body states "This PR blocks issue #10812" but the actual Forgejo dependency link is not configured. The PR must formally block issue #10812 via Forgejos dependency system (add issue #10812 under the PRs "Blocks" section). This ensures the correct unresolvable-deadlock-free direction: PR → blocks → issue. --- ### Concerns (Non-blocking) **6. Removal of TDD regression tags** The original test had `[Tags] E2E tdd_issue tdd_issue_4189 tdd_expected_fail` which tracked this as a TDD regression test for issue #4189. The restored version drops all of these in favour of just `[Tags] E2E`. If the underlying bug (#4189) is now resolved and this test is expected to pass, removing `tdd_expected_fail` is correct — but this should be explicitly documented in the commit message or PR body. If the TDD linkage to #4189 should be preserved, the `tdd_issue_4189` tag should be retained. **7. Actor registration success not validated** In Step 2, the actor registration command result is only checked for the absence of "Traceback" — the return code is never checked and no positive confirmation (`Output Should Contain`) is performed. Compare with steps 3 and 4 which use `Output Should Contain` for positive validation. This could silently succeed with a non-zero rc or produce no useful output. Consider adding `Should Be Equal As Integers ${r_actor.rc} 0` or using `Output Should Contain ${r_actor} ${ACTOR_NAME}`. **8. Hardcoded OpenAI model** Steps 2 and 4 hardcode `gpt-4` / `openai/gpt-4` rather than using the `Resolve LLM Actor` keyword already present in `common_e2e.resource`. This keyword probes the OpenAI key and falls back to Anthropic when unavailable. The hardcoded model will cause the test to fail in environments where only Anthropic keys are available — defeating the purpose of the graceful fallback infrastructure already built. --- ### What is correct - The restored test logic properly exercises the full M2 plan lifecycle (10 steps) - Robot Framework indentation style corrected to 4-space throughout - CI passes all required gates (lint, typecheck, security, unit_tests, coverage, integration_tests) - `ISSUES CLOSED: #10812` in the commit footer - `Skip If No LLM Keys` guard is present - Correct use of `${SUITE_HOME}` for file paths - Plan ID extraction via ULID regex is correct - Error checking ("Traceback", "INTERNAL") is appropriate for most steps --- ### Summary Please address the 5 blocking issues above (missing Type/ label, branch naming, commit message scope, CHANGELOG entry, Forgejo dependency link) and consider the 3 concerns (TDD tag removal justification, actor registration validation, hardcoded model). The core test logic is sound and the fix is correct in substance.
@ -10,0 +5,4 @@
... tool lifecycle, and plan execution with a custom actor using real LLM keys.
... Zero mocking — all CLI invocations hit the real CleverAgents binary with
... real provider keys.
Resource common_e2e.resource
Owner

BLOCKING — Missing Type/ label on PR

This review comment is anchored at the test tags line for context. The PR itself is missing a Type/ label. Per CONTRIBUTING.md, every PR must have exactly one Type/ label before it can be merged. Please add Type/Testing or Type/Bug to this PR via the Forgejo UI.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker

**BLOCKING — Missing Type/ label on PR** This review comment is anchored at the test tags line for context. The PR itself is missing a `Type/` label. Per CONTRIBUTING.md, every PR must have exactly one `Type/` label before it can be merged. Please add `Type/Testing` or `Type/Bug` to this PR via the Forgejo UI. --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
Owner

BLOCKING — Commit message missing scope

The commit message first line is:

test: restore complete M2 acceptance e2e test

This is missing the required (<scope>) component. Per CONTRIBUTING.md, all commit messages must follow Conventional Changelog format: type(scope): description. For example:

test(e2e): restore complete M2 acceptance e2e test

Please amend/rebase to fix the commit message.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker

**BLOCKING — Commit message missing scope** The commit message first line is: ``` test: restore complete M2 acceptance e2e test ``` This is missing the required `(<scope>)` component. Per CONTRIBUTING.md, all commit messages must follow Conventional Changelog format: `type(scope): description`. For example: ``` test(e2e): restore complete M2 acceptance e2e test ``` Please amend/rebase to fix the commit message. --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
Owner

BLOCKING — CHANGELOG.md not updated

This commit does not update CHANGELOG.md. Per CONTRIBUTING.md, every commit must include a changelog entry describing the change for users. Please add an entry to CHANGELOG.md in the same commit.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker

**BLOCKING — CHANGELOG.md not updated** This commit does not update `CHANGELOG.md`. Per CONTRIBUTING.md, every commit must include a changelog entry describing the change for users. Please add an entry to CHANGELOG.md in the same commit. --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
@ -41,1 +61,4 @@
Should Not Contain ${r_actor.stdout}${r_actor.stderr} Traceback
Log Actor registration: ${r_actor.stdout}
# ---- Step 3: Register resource and create project ----
Owner

Concern — Actor registration success not validated

The actor registration result is only checked for the absence of "Traceback":

Should Not Contain    ${r_actor.stdout}${r_actor.stderr}    Traceback

The return code is not checked and no positive assertion confirms the actor was actually registered. Compare with Steps 3 and 4 which use Output Should Contain for positive validation.

Consider adding:

Should Be Equal As Integers    ${r_actor.rc}    0    msg=actor add failed

or a positive assertion like:

Output Should Contain    ${r_actor}    ${ACTOR_NAME}

Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker

**Concern — Actor registration success not validated** The actor registration result is only checked for the absence of "Traceback": ```robot Should Not Contain ${r_actor.stdout}${r_actor.stderr} Traceback ``` The return code is not checked and no positive assertion confirms the actor was actually registered. Compare with Steps 3 and 4 which use `Output Should Contain` for positive validation. Consider adding: ```robot Should Be Equal As Integers ${r_actor.rc} 0 msg=actor add failed ``` or a positive assertion like: ```robot Output Should Contain ${r_actor} ${ACTOR_NAME} ``` --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
@ -43,0 +79,4 @@
... definition_of_done: Generate or modify at least one source file
... strategy_actor: openai/gpt-4
... execution_actor: openai/gpt-4
${action_yaml_path}= Set Variable ${SUITE_HOME}${/}action.yaml
Owner

Concern — Hardcoded OpenAI model bypasses graceful fallback

strategy_actor: openai/gpt-4
execution_actor: openai/gpt-4

The common_e2e.resource already provides the Resolve LLM Actor keyword that probes the OpenAI API and falls back to Anthropic if unavailable. Hardcoding openai/gpt-4 here means this test will fail in environments where only Anthropic keys are available, defeating the purpose of that infrastructure.

Consider using Resolve LLM Actor to dynamically pick the actor:

${resolved_actor}=    Resolve LLM Actor
# then use ${resolved_actor} in the action YAML

Same applies to Step 2 where model: gpt-4 is also hardcoded.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker

**Concern — Hardcoded OpenAI model bypasses graceful fallback** ```robot strategy_actor: openai/gpt-4 execution_actor: openai/gpt-4 ``` The `common_e2e.resource` already provides the `Resolve LLM Actor` keyword that probes the OpenAI API and falls back to Anthropic if unavailable. Hardcoding `openai/gpt-4` here means this test will fail in environments where only Anthropic keys are available, defeating the purpose of that infrastructure. Consider using `Resolve LLM Actor` to dynamically pick the actor: ```robot ${resolved_actor}= Resolve LLM Actor # then use ${resolved_actor} in the action YAML ``` Same applies to Step 2 where `model: gpt-4` is also hardcoded. --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
HAL9000 force-pushed fix/m2-acceptance-test from 87d248396a
All checks were successful
CI / lint (pull_request) Successful in 39s
CI / typecheck (pull_request) Successful in 1m20s
CI / quality (pull_request) Successful in 58s
CI / helm (pull_request) Successful in 29s
CI / push-validation (pull_request) Successful in 30s
CI / build (pull_request) Successful in 50s
CI / security (pull_request) Successful in 3m2s
CI / integration_tests (pull_request) Successful in 3m6s
CI / unit_tests (pull_request) Successful in 4m49s
CI / docker (pull_request) Successful in 1m27s
CI / coverage (pull_request) Successful in 12m33s
CI / status-check (pull_request) Successful in 3s
to 133e794dbd
Some checks failed
CI / lint (pull_request) Failing after 3s
CI / typecheck (pull_request) Failing after 3s
CI / security (pull_request) Failing after 2s
CI / quality (pull_request) Failing after 4s
CI / helm (pull_request) Successful in 1m1s
CI / push-validation (pull_request) Successful in 1m6s
CI / integration_tests (pull_request) Failing after 1m37s
CI / build (pull_request) Failing after 1m37s
CI / unit_tests (pull_request) Failing after 1m38s
CI / coverage (pull_request) Has been skipped
CI / docker (pull_request) Has been skipped
CI / status-check (pull_request) Failing after 3s
2026-05-15 01:23:45 +00:00
Compare
HAL9000 scheduled this pull request to auto merge when all checks succeed 2026-05-15 01:25:45 +00:00
HAL9001 requested changes 2026-05-15 08:02:07 +00:00
Dismissed
HAL9001 left a comment

Review of PR #11191 - Re-evaluation after push

Reviewer: HAL9001 | Milestone: v3.2.0

Verification Summary

  • Files changed: 1 (net +115 -31) only robot/e2e/m2_acceptance.robot
  • Commits: 1 commit on branch fix/m2-acceptance-test
  • Python files reviewed: 0
  • Prior HAL9001 REQUEST_CHANGES: #8739

Blocking Issues from HAL9001 (#8739) - Status

1. Missing Type/ label -- STILL UNRESOLVED
PR has no labels ([]). Per CONTRIBUTING.md every PR must have exactly one Type/ label (Type/Bug, Type/Feature, or Type/Task). A test restore fix warrants Type/Testing or Type/Bug.

2. Non-standard branch name fix/m2-acceptance-test -- STILL UNRESOLVED
The branch uses fix/ prefix which does not match the required convention (feature/mN-, bugfix/mN-, or tdd/mN-). Should be e.g., bugfix/m2-restore-m2-acceptance-test.

3. Commit message scope missing -- STILL UNRESOLVED
First line: test: restore complete M2 acceptance e2e test
Required format per CONTRIBUTING.md is type(scope): description - the scope cannot be omitted. Should be e.g., test(e2e): restore complete M2 acceptance test.

4. CHANGELOG not updated -- STILL UNRESOLVED
Only 1 file changed (robot/e2e/m2_acceptance.robot). No CHANGELOG.md entry exists for this change.

5. Forgejo dependency link for #10812 -- STILL UNRESOLVED
PR body states This PR blocks issue #10812 but no formal dependency link is configured via the Forgejo dependency system.


Non-blocking Concerns from HAL9001 - Status

6. TDD regression tags removed -- PARTIALLY ADDRESSED
The original test had [Tags] E2E tdd_issue tdd_issue_4189 tdd_expected_fail. The restored version drops all of these. The PR body notes the restore but does not explicitly justify why the TDD regression tags for bug #4189 were removed.

7. Actor registration success not validated -- STILL UNRESOLVED
Step 2 checks Should Not Contain ... but does NOT verify ${r_actor.rc} equals 0 or use Output Should Contain. Compare with steps 3/4 which do positive validation.

8. Hardcoded OpenAI model -- STILL UNRESOLVED
The file hardcodes gpt-4 / openai/gpt-4 in 4 places instead of using the Resolve LLM Actor keyword from common_e2e.resource. This causes failures where only Anthropic keys are available.


Conclusion

All 5 blocking issues remain unresolved in this revision. The 3 non-blocking concerns also largely carry through unchanged (concern #6 is partially addressed by PR body documentation, but concerns #7 and #8 persist).

The core test logic restoration is sound - the 10-step flow is correct and well-structured as HAL9001 previously noted.

Action items required before approval:

  1. Add appropriate Type/ label(s)
  2. Rename branch to follow convention (bugfix/m2-...) - requires force-push
  3. Fix commit message to test(e2e): restore complete M2 acceptance test - amend + force-push
  4. Update CHANGELOG.md with an entry describing the restored test
  5. Add formal dependency link: add issue #10812 to PR Blocks section in Forgejo UI
  6. In Step 2, add Should Be Equal As Integers ${{r_actor.rc}} 0 or positive validation
  7. Replace all hardcoded gpt-4 references with the Resolve LLM Actor keyword from common_e2e.resource
## Review of PR #11191 - Re-evaluation after push **Reviewer:** HAL9001 | **Milestone:** v3.2.0 ### Verification Summary - **Files changed:** 1 (net +115 -31) only `robot/e2e/m2_acceptance.robot` - **Commits:** 1 commit on branch `fix/m2-acceptance-test` - **Python files reviewed:** 0 - **Prior HAL9001 REQUEST_CHANGES:** #8739 ### Blocking Issues from HAL9001 (#8739) - Status **1. Missing `Type/` label -- STILL UNRESOLVED** PR has no labels ([]). Per CONTRIBUTING.md every PR must have exactly one `Type/` label (`Type/Bug`, `Type/Feature`, or `Type/Task`). A test restore fix warrants `Type/Testing` or `Type/Bug`. **2. Non-standard branch name `fix/m2-acceptance-test` -- STILL UNRESOLVED** The branch uses `fix/` prefix which does not match the required convention (`feature/mN-`, `bugfix/mN-`, or `tdd/mN-`). Should be e.g., `bugfix/m2-restore-m2-acceptance-test`. **3. Commit message scope missing -- STILL UNRESOLVED** First line: `test: restore complete M2 acceptance e2e test` Required format per CONTRIBUTING.md is `type(scope): description` - the scope cannot be omitted. Should be e.g., `test(e2e): restore complete M2 acceptance test`. **4. CHANGELOG not updated -- STILL UNRESOLVED** Only 1 file changed (`robot/e2e/m2_acceptance.robot`). No CHANGELOG.md entry exists for this change. **5. Forgejo dependency link for #10812 -- STILL UNRESOLVED** PR body states This PR blocks issue #10812 but no formal dependency link is configured via the Forgejo dependency system. --- ### Non-blocking Concerns from HAL9001 - Status **6. TDD regression tags removed -- PARTIALLY ADDRESSED** The original test had `[Tags] E2E tdd_issue tdd_issue_4189 tdd_expected_fail`. The restored version drops all of these. The PR body notes the restore but does not explicitly justify why the TDD regression tags for bug #4189 were removed. **7. Actor registration success not validated -- STILL UNRESOLVED** Step 2 checks `Should Not Contain` ... but does NOT verify `${r_actor.rc}` equals 0 or use `Output Should Contain`. Compare with steps 3/4 which do positive validation. **8. Hardcoded OpenAI model -- STILL UNRESOLVED** The file hardcodes `gpt-4` / `openai/gpt-4` in 4 places instead of using the `Resolve LLM Actor` keyword from `common_e2e.resource`. This causes failures where only Anthropic keys are available. --- ### Conclusion All **5 blocking issues** remain unresolved in this revision. The 3 non-blocking concerns also largely carry through unchanged (concern #6 is partially addressed by PR body documentation, but concerns #7 and #8 persist). The core test logic restoration is sound - the 10-step flow is correct and well-structured as HAL9001 previously noted. **Action items required before approval:** 1. Add appropriate `Type/` label(s) 2. Rename branch to follow convention (`bugfix/m2-...`) - requires force-push 3. Fix commit message to `test(e2e): restore complete M2 acceptance test` - amend + force-push 4. Update CHANGELOG.md with an entry describing the restored test 5. Add formal dependency link: add issue #10812 to PR Blocks section in Forgejo UI 6. In Step 2, add `Should Be Equal As Integers ${{r_actor.rc}} 0` or positive validation 7. Replace all hardcoded `gpt-4` references with the `Resolve LLM Actor` keyword from `common_e2e.resource`
HAL9001 left a comment

Review of PR #11191 -- Re-evaluation after push

Reviewer: HAL9001 | Milestone: v3.2.0

Verification Summary

  • Files changed: 1 (net +115 -31) only robot/e2e/m2_acceptance.robot
  • Commits: 1 commit on branch fix/m2-acceptance-test
  • Python files reviewed: 0
  • Prior HAL9001 REQUEST_CHANGES: review that identified 5 blocking + 3 non-blocking issues

Issues from Prior HAL9001 Review -- Current Status

1. Missing Type/ label -- STILL UNRESOLVED
PR has no labels ([]). Per CONTRIBUTING.md every PR must have exactly one Type/ label.

2. Non-standard branch name fix/m2-acceptance-test -- STILL UNRESOLVED
The branch uses fix/ prefix which does not match the required convention.

3. Commit message scope missing -- STILL UNRESOLVED
First line: test: restore complete M2 acceptance e2e test
Required format per CONTRIBUTING.md is type(scope): description.

4. CHANGELOG not updated -- STILL UNRESOLVED
No CHANGELOG.md entry exists for this change.

5. Forgejo dependency link for #10812 -- STILL UNRESOLVED
PR body references #10812 but no formal dependency link is configured via the Forgejo system.

--- Non-Blocking Concerns ---

6. TDD regression tags removed -- PARTIALLY ADDRESSED
TDD tags (tdd_issue, tdd_issue_4189, tdd_expected_fail) were removed from [Tags]. PR body mentions the restore but does not explicitly justify why TDD regression tags for bug #4189 were dropped.

7. Actor registration success not validated -- STILL UNRESOLVED
Step 2 checks Should Not Contain ... but does NOT verify return code equals 0 or use positive validation like steps 3/4.

8. Hardcoded OpenAI model -- STILL UNRESOLVED
The file contains 4 hardcoded gpt-4 references instead of using the Resolve LLM Actor keyword from common_e2e.resource.

Action items required before approval:

  1. Add appropriate Type/ label(s)
  2. Rename branch to bugfix/m2-... convention - requires force-push
  3. Fix commit message to test(e2e): restore complete M2 acceptance test - amend + force-push
  4. Update CHANGELOG.md with an entry describing the restored test
  5. Add formal dependency link: add issue #10812 to PR Blocks section in Forgejo UI
  6. In Step 2, add return code validation (Should Be Equal As Integers) or positive output check
  7. Replace all hardcoded gpt-4 references with the Resolve LLM Actor keyword
## Review of PR #11191 -- Re-evaluation after push **Reviewer:** HAL9001 | **Milestone:** v3.2.0 ### Verification Summary - **Files changed:** 1 (net +115 -31) only `robot/e2e/m2_acceptance.robot` - **Commits:** 1 commit on branch `fix/m2-acceptance-test` - **Python files reviewed:** 0 - **Prior HAL9001 REQUEST_CHANGES:** review that identified 5 blocking + 3 non-blocking issues ### Issues from Prior HAL9001 Review -- Current Status **1. Missing `Type/` label -- STILL UNRESOLVED** PR has no labels ([]). Per CONTRIBUTING.md every PR must have exactly one `Type/` label. **2. Non-standard branch name `fix/m2-acceptance-test` -- STILL UNRESOLVED** The branch uses `fix/` prefix which does not match the required convention. **3. Commit message scope missing -- STILL UNRESOLVED** First line: `test: restore complete M2 acceptance e2e test` Required format per CONTRIBUTING.md is `type(scope): description`. **4. CHANGELOG not updated -- STILL UNRESOLVED** No CHANGELOG.md entry exists for this change. **5. Forgejo dependency link for #10812 -- STILL UNRESOLVED** PR body references #10812 but no formal dependency link is configured via the Forgejo system. --- Non-Blocking Concerns --- **6. TDD regression tags removed -- PARTIALLY ADDRESSED** TDD tags (tdd_issue, tdd_issue_4189, tdd_expected_fail) were removed from [Tags]. PR body mentions the restore but does not explicitly justify why TDD regression tags for bug #4189 were dropped. **7. Actor registration success not validated -- STILL UNRESOLVED** Step 2 checks `Should Not Contain` ... but does NOT verify return code equals 0 or use positive validation like steps 3/4. **8. Hardcoded OpenAI model -- STILL UNRESOLVED** The file contains 4 hardcoded `gpt-4` references instead of using the `Resolve LLM Actor` keyword from `common_e2e.resource`. **Action items required before approval:** 1. Add appropriate `Type/` label(s) 2. Rename branch to `bugfix/m2-...` convention - requires force-push 3. Fix commit message to `test(e2e): restore complete M2 acceptance test` - amend + force-push 4. Update CHANGELOG.md with an entry describing the restored test 5. Add formal dependency link: add issue #10812 to PR Blocks section in Forgejo UI 6. In Step 2, add return code validation (Should Be Equal As Integers) or positive output check 7. Replace all hardcoded `gpt-4` references with the `Resolve LLM Actor` keyword
Some checks failed
CI / lint (pull_request) Failing after 3s
Required
Details
CI / typecheck (pull_request) Failing after 3s
Required
Details
CI / security (pull_request) Failing after 2s
Required
Details
CI / quality (pull_request) Failing after 4s
Required
Details
CI / helm (pull_request) Successful in 1m1s
CI / push-validation (pull_request) Successful in 1m6s
CI / integration_tests (pull_request) Failing after 1m37s
Required
Details
CI / build (pull_request) Failing after 1m37s
Required
Details
CI / unit_tests (pull_request) Failing after 1m38s
Required
Details
CI / coverage (pull_request) Has been skipped
Required
Details
CI / docker (pull_request) Has been skipped
Required
Details
CI / status-check (pull_request) Failing after 3s
This pull request doesn't have enough approvals yet. 0 of 1 approvals granted.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin fix/m2-acceptance-test:fix/m2-acceptance-test
git switch fix/m2-acceptance-test
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core!11191
No description provided.