Commit d999965
committed
ci(openclaw-acp-bridge): also run test_inbox_goudan.py in the smoke workflow (PR #30 round-7 follow-up)
The PR #30 round-7 fix removed the per-instance `base_url` constructor
parameter from `scripts/acp_inbox.py` and added `read(limit=...)`
forwarding to `_acp_client.inbox_read`. The contract is pinned by the
26-check `scripts/test_inbox_goudan.py` smoke (Checks 4 + 13b in
particular), but the existing workflow only ran `smoke.py` against
the stub. A regression on either round-7 property would land on the
PR with no CI signal.
This commit extends the `Run bundled smoke + goudan-side wrapper
tests` step to also invoke `test_inbox_goudan.py` against the same
live stub (one startup covers both). `unset SMOKE_SKIP_LIVE` is
applied before the wrapper smoke so its own CI fallback cannot
degrade the live checks to skipped.
Validation
----------
- Local CI step simulation: stub started with
`--token ci-test-token-xyzzy --port 19999`, then
`python smoke.py` and (after `unset SMOKE_SKIP_LIVE`)
`python test_inbox_goudan.py` ran back-to-back. Wrapper smoke
reported `PASSED: 41, FAILED: 0, SKIPPED: 0`, rc=0.
- Stub-backed roundtrip (Check 12) returned message_id=1; live
read (Check 13) returned the written message; auth negatives
(Check 14 missing / Check 15 wrong) both raised HTTPError 401.
Test evidence
-------------
- Negative-injection: removed `limit=limit,` from
`acp_inbox.py:read()`, re-ran `test_inbox_goudan.py` CI-mode.
Check 13b reported
[FAIL] inbox_read was called with limit=42 (got None)
and rc=1, with `PASSED: 30, FAILED: 1, SKIPPED: 8`. Restored
the line; re-ran; rc=0 and `PASSED: 31, FAILED: 0, SKIPPED: 8`.
The test is structural, not false-green.
- Live-mode re-run against the stub (ACP_TOKEN set, SMOKE_SKIP_LIVE
unset): `PASSED: 41, FAILED: 0, SKIPPED: 0`, rc=0. All 26 checks
(which expand to 41 individual assertions) exercise the
documented wrapper surface.
- The `unset SMOKE_SKIP_LIVE` is a defensive no-op today (no prior
step sets the variable) but matters for any future CI matrix
step that might.
Design compliance
-----------------
- Skill-only Plugin: no `mcp.json`, no `package.json`, 0 npm
dependencies. Workflow change is one .yml file; no new scripts.
- 4 disclosure sections in README intact (no credentials, no
network, no telemetry, no third-party services); the workflow
uses only the github-hosted `ubuntu-latest` runner and
`actions/checkout` + `actions/setup-python`, both already in
the file.
- Atomic write contract is unchanged. Cross-platform path
resolution is unchanged: the path is hard-coded
`plugins/antianqi/openclaw-acp-bridge/scripts/test_inbox_goudan.py`
in the workflow (Linux), which is the path that the
`actions/checkout` materialises from the PR branch.
- One commit, one concern: this commit only touches the workflow.
No wrapper code, no test code, no Skill, no README, no
`plugin.json` is modified.
Refs: PR #30 (hetaoBackend 2026-09-02T01:08:36Z, "Two public
wrapper parameters do not work as documented") and the round-7
fix `0995886` (this branch, "fix(openclaw-acp-bridge): remove
dead `base_url`, forward `read(limit=)`").1 parent 6ad7a00 commit d999965
1 file changed
Lines changed: 14 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | | - | |
| 50 | + | |
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
65 | 76 | | |
66 | 77 | | |
67 | 78 | | |
| |||
73 | 84 | | |
74 | 85 | | |
75 | 86 | | |
| 87 | + | |
| 88 | + | |
76 | 89 | | |
77 | 90 | | |
78 | 91 | | |
| |||
0 commit comments