Skip to content
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
4f8c786
fix(coverage): scope Rust evidence to changed packages
seonghobae Aug 21, 2026
e2d7c14
docs(changelog): record scoped Rust coverage
seonghobae Aug 21, 2026
9cb5a40
test(opencode): refresh review workflow snapshot
seonghobae Aug 21, 2026
8ec2c9f
fix(coverage): discover nested Rust manifests
seonghobae Aug 21, 2026
6aa186b
test(coverage): execute Rust manifest selection contract
seonghobae Aug 21, 2026
92810bf
test(coverage): fail on deleted root Rust lockfile
seonghobae Aug 21, 2026
94ab7c0
fix(coverage): keep deleted root lockfile workspace-wide
seonghobae Aug 21, 2026
91c16eb
test(coverage): refresh exact review workflow pin
seonghobae Aug 21, 2026
e960321
test(ci): keep coverage contracts composable
seonghobae Aug 21, 2026
c267298
Merge branch 'main' into fix/rust-coverage-package-scope
opencode-agent[bot] Aug 21, 2026
80d13a1
fix(coverage): inherit Rust workspace baseline for crates
seonghobae Aug 21, 2026
3ea59f4
Merge remote-tracking branch 'origin/main' into HEAD
seonghobae Aug 21, 2026
db1802f
fix(coverage): normalize root Rust workspace manifest
seonghobae Aug 21, 2026
2a5ab45
fix(coverage): avoid duplicate Rust workspace runs
seonghobae Aug 21, 2026
92c4afc
Merge branch 'main' into fix/rust-coverage-package-scope
opencode-agent[bot] Aug 21, 2026
7d66872
Merge branch 'main' into fix/rust-coverage-package-scope
opencode-agent[bot] Aug 21, 2026
fae577e
Merge branch 'main' into fix/rust-coverage-package-scope
opencode-agent[bot] Aug 21, 2026
f71db4b
fix(ci): refresh audit lock and scheduler assertion
seonghobae Aug 21, 2026
be6534b
test(ci): restore complete docstring coverage
seonghobae Aug 21, 2026
0a88e24
Merge remote-tracking branch 'origin/main' into HEAD
seonghobae Aug 21, 2026
471f34d
fix(review): close coverage and credential contract gaps
seonghobae Aug 29, 2026
5772721
fix(review): trigger coverage for deleted manifests
seonghobae Aug 29, 2026
1db47e2
Merge main into fix/rust-coverage-package-scope, updating stale
claude Aug 30, 2026
923fa07
Merge remote-tracking branch 'origin/main' into fix/rust-coverage-pac…
claude Aug 30, 2026
047ad58
fix(rust-coverage): include rename endpoints; enforce workspace bound…
claude Aug 30, 2026
2b1abb0
Merge remote-tracking branch 'origin/main' into work-pr1187
claude Sep 4, 2026
3add872
fix(tests): sync approved_gh_token_assignments with merged workflow
claude Sep 4, 2026
d359776
Merge origin/main; recompute the review-dispatch blob pin
claude Sep 5, 2026
72a9d72
Merge origin/main; recompute the review-dispatch blob pin a second time
claude Sep 5, 2026
3da6596
Merge origin/main into fix/rust-coverage-package-scope
claude Sep 6, 2026
541cadd
Merge origin/main into fix/rust-coverage-package-scope
Sep 6, 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
9 changes: 7 additions & 2 deletions .github/workflows/opencode-review-dispatch.yml
Comment thread
seonghobae marked this conversation as resolved.
Resolved
Original file line number Diff line number Diff line change
Expand Up @@ -1734,7 +1734,11 @@ jobs:
}

rust_coverage_manifests() {
if [ -f Cargo.toml ]; then
# A repository-wide coverage run is required when the workspace
# manifest or lockfile changed. Otherwise measure only the
# changed Rust package(s); building every workspace member at once
# can exhaust the review runner disk before tests begin.
if has_changed_tracked_files Cargo.toml Cargo.lock; then
Comment thread
devin-ai-integration[bot] marked this conversation as resolved.
Resolved
printf '%s\n' Cargo.toml
return 0
Comment thread
seonghobae marked this conversation as resolved.
Resolved
Comment thread
devin-ai-integration[bot] marked this conversation as resolved.
Resolved
fi
Expand All @@ -1745,11 +1749,12 @@ jobs:
*) continue ;;
esac
candidate_dir="$(dirname "$changed_path")"
while [ "$candidate_dir" != "." ] && [ "$candidate_dir" != "/" ]; do
while :; do
if [ -f "${candidate_dir}/Cargo.toml" ]; then
printf '%s\n' "${candidate_dir}/Cargo.toml"
break
Comment thread
seonghobae marked this conversation as resolved.
Resolved
fi
[ "$candidate_dir" = "." ] && break
Comment thread
seonghobae marked this conversation as resolved.
Resolved
next_dir="$(dirname "$candidate_dir")"
if [ "$next_dir" = "$candidate_dir" ]; then
break
Comment thread
seonghobae marked this conversation as resolved.
Resolved
Comment thread
seonghobae marked this conversation as resolved.
Resolved
Expand Down
3 changes: 3 additions & 0 deletions tests/test_opencode_agent_contract.py
Original file line number Diff line number Diff line change
Expand Up @@ -750,6 +750,9 @@ def test_opencode_target_coverage_materializes_only_after_authorized_dispatch():
assert "rust_coverage_fail_under_lines()" in measure_step
assert "package.metadata.opencode.coverage.minimum_lines" in measure_step
assert "workspace.metadata.opencode.coverage.minimum_lines" in measure_step
assert "has_changed_tracked_files Cargo.toml Cargo.lock" in measure_step
assert "changed Rust package(s)" in measure_step
assert 'candidate_dir="$(dirname "$changed_path")"' in measure_step
assert "scripts/ci/rust_coverage_threshold.py" in measure_step
assert '--fail-under-lines "$threshold"' in measure_step
assert "uv sync --project" not in measure_step
Expand Down
Loading