Skip to content

build(review): add hash-pinned coverage lock for account-unification - #35

Merged
seonghobae merged 3 commits into
mainfrom
claude/keyverse-au-coverage-lock
Aug 3, 2026
Merged

build(review): add hash-pinned coverage lock for account-unification#35
seonghobae merged 3 commits into
mainfrom
claude/keyverse-au-coverage-lock

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

Summary

The central OpenCode coverage-evidence job runs services/account_unification's pytest suite inside a networkless sandbox that installs project dependencies only from a base-branch requirements.lock / requirements-hashes.txt (see materialize_base_python_requirements.py in ContextualWisdomLab/.github; a deliberate supply-chain trust boundary — PR-head manifests are never resolved). keyverse shipped only uv.lock, so the sandbox could not import pydantic/fastapi → coverage-evidence fails → OpenCode publishes REQUEST_CHANGES for "missing test/coverage evidence" on every account-unification PR (e.g. #33).

This adds the missing hash-pinned lock on the default branch so open and future account-unification PRs inherit a runnable coverage sandbox.

What this file is

services/account_unification/requirements.lock — the runtime imports needed to collect and run tests/ (fastapi, pydantic, httpx, pyyaml) plus their fully-resolved transitive closure, hash-pinned.

  • Compiled for the sandbox interpreter: python:3.14-slim, x86_64-manylinux_2_28, wheels only (--only-binary :all:), matching the sandbox's --require-hashes --only-binary=:all: install.
  • Disjoint from the sandbox's pinned test toolchain (pytest/coverage/interrogate) — zero shared package names, so it cannot disturb the toolchain.
  • Separate from uv.lock, which stays authoritative for local/CI uv sync --locked. The file's header documents its purpose and the exact regeneration command.

Verification

  • All 52 account-unification tests pass in a clean venv with exactly this runtime set (fastapi + pydantic + httpx + pyyaml + toolchain).
  • uv pip compile resolved the full transitive closure (15 packages) for the target platform with --generate-hashes --only-binary :all:.
  • This change is lock-only (no *.py), so the Python coverage path is not-applicable → coverage-evidence passes on this PR itself.

Notes

Unblocks #33 (which stays blocked on this exact evidence gap) once merged; #33 then re-runs coverage-evidence against a base that can install its dependencies. Complements — does not conflict with — the central .github#612 approach; this scopes the fix to keyverse and does not depend on that stalled PR.


Generated by Claude Code

The central OpenCode coverage-evidence job runs the
services/account_unification pytest suite in a networkless sandbox that
installs project dependencies only from a base-branch requirements.lock /
requirements-hashes.txt (materialize_base_python_requirements.py in
ContextualWisdomLab/.github). keyverse shipped only uv.lock, so the sandbox
could not import pydantic/fastapi and coverage-evidence failed on every
account-unification PR (e.g. #33), which makes OpenCode publish
REQUEST_CHANGES for missing test/coverage evidence.

Add a hash-pinned requirements.lock covering the runtime imports needed to
collect and run the test suite (fastapi, pydantic, httpx, pyyaml) plus their
fully-resolved transitive closure, compiled for the sandbox interpreter
(python:3.14-slim, x86_64 manylinux_2_28, wheels only). Verified: all 52
account-unification tests pass with exactly this runtime set. The lock is
disjoint from the sandbox's pinned test toolchain and is separate from
uv.lock, which stays authoritative for local/CI `uv sync --locked`.

Landing the lock on the default branch lets open account-unification PRs
inherit a runnable coverage sandbox so coverage-evidence can pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AqtiEQFfuYFsS75Aku9tPT
@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • services/account_unification/requirements.lock is excluded by !**/*.lock

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 566a2f17-94d3-43db-bf4a-3887b0f2617f

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

@seonghobae
seonghobae enabled auto-merge July 30, 2026 04:54
@seonghobae
seonghobae merged commit ffa475a into main Aug 3, 2026
29 checks passed
@seonghobae
seonghobae deleted the claude/keyverse-au-coverage-lock branch August 3, 2026 01:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants