Skip to content
Merged
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
6be8193
feat: implement issue #588 — [E2E] Scenario 04: dev-lead label routin…
donpetry-bot Jun 11, 2026
28e17d9
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 11, 2026
1aa0ac0
chore: apply manual instructions [skip ci-relay]
donpetry-bot Jun 11, 2026
4ec5896
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 12, 2026
71970eb
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 12, 2026
5b1ce46
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 12, 2026
ecc589a
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 12, 2026
ad7323f
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 12, 2026
0c4dc65
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 13, 2026
2d7e966
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 13, 2026
2596223
Merge branch 'main' into dev-lead/issue-588-20260611-2258
github-actions[bot] Jun 13, 2026
ff5daa2
Merge branch 'main' into dev-lead/issue-588-20260611-2258
github-actions[bot] Jun 13, 2026
65de4d7
Merge branch 'main' into dev-lead/issue-588-20260611-2258
github-actions[bot] Jun 13, 2026
d6db947
Merge branch 'main' into dev-lead/issue-588-20260611-2258
github-actions[bot] Jun 13, 2026
059160e
Merge branch 'main' into dev-lead/issue-588-20260611-2258
github-actions[bot] Jun 13, 2026
b1113d9
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 13, 2026
2ad88d6
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 13, 2026
de8b135
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 13, 2026
fe3a020
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 13, 2026
ed1a1cf
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 14, 2026
fa7d568
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 14, 2026
ebadf0a
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 14, 2026
4edc809
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 14, 2026
ecfb2dd
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 14, 2026
737be20
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 14, 2026
ab5e809
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 14, 2026
da0b15f
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 14, 2026
9c391c1
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 14, 2026
cf9a74f
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 14, 2026
0304b05
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 14, 2026
b7983a5
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 14, 2026
fea8db6
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 14, 2026
ad0068e
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 14, 2026
32b2fe8
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 14, 2026
df5b60e
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 14, 2026
63ccf88
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 14, 2026
3699f46
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 14, 2026
1ceecea
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 15, 2026
fab2fc4
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 15, 2026
d208f1c
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 15, 2026
0676417
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 15, 2026
0a8418a
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 15, 2026
6bfdd56
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 15, 2026
16ce466
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 15, 2026
69c4e4b
Merge branch 'main' into dev-lead/issue-588-20260611-2258
don-petry Jun 15, 2026
ceecf06
Merge branch 'main' into dev-lead/issue-588-20260611-2258
donpetry-bot Jun 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 25 additions & 3 deletions tests/dev-lead/e2e/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,26 @@ with code 1 (simulating an engine failure).

---

### 07 — rate-limit-retry (script-based, stub network)

**What it tests:** Rate-limit handling and retry infrastructure across fix-ci, fix-reviews, and the retry scanner.

**Parts:**
- **A:** `dev-lead-fix-ci.sh` exits 2 (not 1) and posts `status=rate-limited` when all engines are rate-limited.
- **B:** Rate-limited markers do **not** count toward the exhaustion threshold (`MAX_FAIL_ATTEMPTS`).
- **C:** A pre-existing `status=rate-limited` marker is retriable — idempotency check does not block a second attempt.
- **D:** `dev-lead-fix-reviews.sh` exits 2 and posts a rate-limited marker for the `fix-reviews` intent.
- **E:** `fix-reviews` on-mention intent exits 2 and emits user-visible rate-limit/re-trigger acknowledgment.
- **F:** `dev-lead-retry.sh` dry-run scan identifies PRs with rate-limited markers and reports would-dispatch.
- **G:** Retry skips a PR whose `human-pr` rate-limited marker has a corresponding `review-changes` terminal marker.
- **H:** Retry normalizes `human-pr` → `review-changes` intent when dispatching a retry.

**How it works:** Runs fix-ci, fix-reviews, and retry scripts directly using stub `claude`/`gemini`/`copilot` and `gh` binaries — no real GitHub API calls.

**Requires:** Nothing (fully local).

---

## Results

Each run writes results to `tests/dev-lead/e2e/results/`:
Expand All @@ -144,22 +164,24 @@ tests/dev-lead/e2e/
│ ├── 03-ci-failure-relay.sh
│ ├── 04-issue-labeled.sh
│ ├── 05-skip-anti-loop.sh
│ └── 06-exhaustion-guard.sh
│ ├── 06-exhaustion-guard.sh
│ └── 07-rate-limit-retry.sh
├── results/ Created at runtime — gitignored
└── README.md
```

## Running in CI

The E2E suite is designed to be runnable by the dev-lead agent itself via a
`workflow_dispatch` or as a scheduled job. Fixture-based scenarios (01, 05, 06)
`workflow_dispatch` or as a scheduled job. Local (fixture/stub-based) scenarios (01, 05, 06, 07)
are safe to run in any environment without credentials. Live scenarios (02–04)
require a `GH_TOKEN` secret with `repo` scope.

```yaml
- name: Run E2E fixture scenarios
- name: Run E2E local scenarios
run: |
bash tests/dev-lead/e2e/run-all.sh --scenario 01-skip-bot-pr
bash tests/dev-lead/e2e/run-all.sh --scenario 05-skip-anti-loop
bash tests/dev-lead/e2e/run-all.sh --scenario 06-exhaustion-guard
bash tests/dev-lead/e2e/run-all.sh --scenario 07-rate-limit-retry
```
Loading