Skip to content

coverage-evidence sandbox: stale requirements hash-lock (missing asyncpg/psycopg2) + invalid pnpm --trust-lockfile flag block LineageWeave approvals #1250

Description

@seonghobae

Problem

The central coverage-evidence sandbox (OpenCode Review Dispatch workflow, coverage-evidence job, "Measure test and docstring evidence" step) blocks OpenCode approval for LineageWeave PRs with a spurious FAIL that has nothing to do with the PR's actual code.

Evidence

Run 32628753453 against ContextualWisdomLab/LineageWeave#417 at head 91b7e1cd914442e61e322620f194d1ba9da48567 (a clean, unrelated docs/backend PR — TEPP topic-lineage ADR + analysis-run scaffolding). Result: Coverage Decision: FAIL, Failure count: 4. All 4 are environment/tooling failures in the sandbox itself, not the PR:

1. Python test collection: 39/39 test files fail to import

ModuleNotFoundError: No module named 'asyncpg'
ModuleNotFoundError: No module named 'psycopg2'

Every test file that imports LineageWeave's backend app modules fails collection (1 skipped, 39 errors in 1.57s). asyncpg>=0.29.0 and psycopg2-binary>=2.9.12 are genuine, declared dependencies in LineageWeave's pyproject.toml — they're not missing from the PR, they're missing from the sandbox's pip install --require-hashes -r /tmp/requirements-opencode-review-ci-hashes.txt step. That hash-pinned requirements file appears stale or generated from an incomplete source relative to LineageWeave's actual pyproject.toml.

2. JS/TS dependency install: unsupported pnpm flag

$ corepack pnpm install --offline --frozen-lockfile --trust-lockfile --ignore-scripts --store-dir ...
ERROR  Unknown option: 'trust-lockfile'
Did you mean 'frozen-lockfile'? Use "--config.unknown=value" to force an unknown option.

--trust-lockfile isn't a valid pnpm flag on the version installed in the sandbox (pnpm 11.17.0 per LineageWeave's own CI). This looks like either a typo for --frozen-lockfile (already present separately in the same command) or a flag from a different pnpm major version.

3 & 4. Cascading failures from #2
JS/TS test coverage (vitest: not foundnode_modules never got installed because of #2) and JS/TS coverage threshold (no coverage summary files were produced) both fail as a direct downstream consequence.

Impact

This is a hard block, not a slow-down: coverage-evidence failing means OpenCode explicitly posts REQUEST_CHANGES ("OpenCode cannot approve yet because required coverage evidence did not pass") regardless of the PR's actual content. Since asyncpg/psycopg2 are core LineageWeave backend dependencies, this should reproduce on essentially any LineageWeave PR that touches backend/tests — i.e., this is very likely blocking a large fraction of the current org-wide review backlog independently of .github#624's model-pool issue.

Not attempting a fix

The install pipeline here is deliberately hardened (hash-pinned pip install --require-hashes --only-binary=:all:, VCS-locked base dependencies with import-root/symlink/compiled-extension validation, trusted-source materialization without a repository token) — consistent with the same kind of anti-tampering design already documented as under active maintenance elsewhere in this org's CI. I don't have visibility into how requirements-opencode-review-ci-hashes.txt or the pnpm invocation are generated/maintained, so I'm not guessing at a fix here; recording the evidence for whoever owns that generation step.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status
    In Progress

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions