fix(opencode): execute asyncio helper on hash-locked quality CI - #1059
fix(opencode): execute asyncio helper on hash-locked quality CI#1059cursor[bot] wants to merge 2 commits into
Conversation
Add hash-pinned pytest-asyncio and a fail-closed import helper so marked asyncio tests can run in the coverage sandbox without rewriting the review-agent dispatch blob.
Keep the coverage plugin pin off the hashed review-dispatch blob, but run the fail-closed import helper after the quality job installs the lock and collect a marked coroutine the same way a downstream buyer suite does. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
There was a problem hiding this comment.
Next action
Do not merge #1059 as the landing vehicle.
The quality-CI helper execution and marked-coroutine contract are the right increment over #819. This head still edits root AGENTS.md, ARCHITECTURE.md, and CLAUDE.md, which open #896 already owns. Merging both will collide the control-plane documentation graph.
Use #1060. That head keeps the lock pin, runs the helper after the quality-job lock install, collects a marked buyer-style coroutine, and leaves the three root ADRs on protected main. Do not merge #819, #1059, and #1060 together. Do not self-approve. Do not open a fourth asyncio-toolchain PR unless #1060 regresses the lock pin, the quality-CI helper step, or the marked coroutine.
Sent by Cursor Automation: Fix Issues
|
|
||
| Materialize accepts only exact SHA-256 pins or a bounded relative `-r` include (no `.`/`..`); a lone `--require-hashes` directive is not trust evidence. See [`docs/doctoring/hourly-nvidia-nim-autofix.md`](docs/doctoring/hourly-nvidia-nim-autofix.md). | ||
| Conflict-scope roots fail closed when the immediate parent directory is a symbolic link. | ||
| Coverage sandbox asyncio execution is pinned through `requirements-opencode-review-ci.txt` and `scripts/ci/ensure_opencode_asyncio_toolchain.sh`; quality CI must run that helper after the hash-lock install. Do not rewrite hashed `opencode-review-dispatch.yml` for that import. |
| ## Coverage asyncio toolchain | ||
|
|
||
| The hash-pinned OpenCode review lock includes `pytest-asyncio==1.4.0`. | ||
| `scripts/ci/ensure_opencode_asyncio_toolchain.sh` fail-closed imports that |


Next action
Review this successor of #819, then merge it instead of the unread-helper head. After protected
mainabsorbs the pin, rerun coverage on an affected async consumer such as ContextualWisdomLab/pg-erd-cloud and keep that consumer issue open until marked coroutines collect.Buyer-visible gap this closes
#819 already hash-pins
pytest-asyncio==1.4.0so the coverage image can executepytest.mark.asynciowithout rewriting the hashed review-dispatch blob. The helper that importspytest_asynciowas not executed after lock install, so an unread script could claim the runtime was present.This head keeps that pin and:
scripts/ci/ensure_opencode_asyncio_toolchain.shafter the quality job installs the hash lockdocs/doctoring/opencode-asyncio-test-runtime.mdMerge gate
Do not self-approve. Require exact-head checks and a qualifying non-author review. Do not edit
opencode-review-dispatch.ymlto carry the import.