-
Notifications
You must be signed in to change notification settings - Fork 0
fix(opencode): bind coverage artifacts to workflow attempts #812
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from all commits
Commits
Show all changes
59 commits
Select commit
Hold shift + click to select a range
ae86a8c
test(opencode): define attempt-scoped coverage artifact contract
seonghobae b0f4565
ci(opencode): execute coverage artifact rerun contract
seonghobae bd9ad77
ci: materialize rerun-safe coverage artifact handoff
seonghobae 3504af2
ci: trigger attempt-scoped coverage artifact materialization
seonghobae 7dd1292
docs(opencode): record attempt-scoped artifact rerun contract
seonghobae a79e7ca
ci(opencode): apply verified attempt-scoped artifact repair
seonghobae f939923
ci: trigger verified attempt-scoped artifact repair
seonghobae 5a45220
fix(ci): preserve literal Actions expressions in repair
seonghobae 2431afb
ci: rerun corrected attempt-scoped artifact repair
seonghobae a7f8901
fix(ci): avoid nested Actions expression parsing
seonghobae 54436c6
ci: rerun expression-safe artifact repair
seonghobae 8fe2148
fix(ci): patch workflow by bounded line anchors
seonghobae 46ec344
fix(ci): publish verified repair with repository token
seonghobae ff6121b
chore(opencode): add temporary verified patch materializer
seonghobae 17d16cf
ci(opencode): export verified workflow repair payload
seonghobae 3dc3a73
ci(opencode): publish repair with OpenCode app token
seonghobae 76c11d9
fix(opencode): bind coverage source artifacts to attempts
opencode-agent[bot] 86f661c
chore(opencode): remove temporary artifact materializer
seonghobae e4ae5a3
test(opencode): forbid temporary artifact repair workflows
seonghobae 19fd117
Merge branch 'main' into fix/opencode-attempt-scoped-coverage-artifact
opencode-agent[bot] 321a9af
test(opencode): enforce 100% coverage and docstrings
seonghobae cae2d8f
test(opencode): distinguish permanent quality gate from repairs
seonghobae 817772b
test(opencode): reject prior-attempt coverage evidence
seonghobae face57d
chore(opencode): add exact current-attempt repair runner
seonghobae e45ba8f
fix(opencode): harden exact repair materializer
seonghobae 3569ade
test(opencode): reject empty attempt-scoped artifact IDs
seonghobae 9a86669
fix(opencode): bind repair to exact PR head
seonghobae 952c8d4
chore(opencode): add temporary current-attempt identity materializer
seonghobae 554ad4a
chore(opencode): remove branch-writing coverage repair workflow
seonghobae df3be69
fix(opencode): satisfy validated artifact identity contract
seonghobae 65f8465
chore(opencode): remove branch-writing artifact repair workflow
seonghobae 61687bb
chore(opencode): remove artifact patch generator
seonghobae 00cafaf
chore(opencode): finalize attempt-scoped artifact handoff
seonghobae 4808ef0
chore(opencode): finalize attempt artifact from reviewed repair
seonghobae 1e7c699
chore(opencode): remove PR-controlled finalizer workflow
seonghobae 5a25032
chore(opencode): remove second PR-controlled finalizer
seonghobae a600086
chore(opencode): add exact current-attempt repair materializer
seonghobae 12776d2
chore(opencode): finalize reviewed attempt identity repair
seonghobae f6ae8a8
test(opencode): reject finalizer workflow from permanent tree
seonghobae 96c8881
ci(opencode): finalize current-attempt artifact identity
seonghobae 82d0589
fix(opencode): validate current-attempt artifact identity
opencode-agent[bot] 981aca3
chore(opencode): remove third PR-controlled finalizer
seonghobae ac87c6a
test(opencode): reject renamed branch repair workflows
seonghobae 97e4f35
fix(opencode): bind quality gate to production config
seonghobae 3291678
test(opencode): require reachable rerun recovery guidance
seonghobae 77e06f5
test(opencode): align rerun contract to fail-closed implementation
seonghobae 600fbb4
test(opencode): scope rerun recovery assertions to exact steps
seonghobae eb8e721
chore(ci): materialize PR 812 control-flow repair
seonghobae 02da0c7
test(opencode): prove producer failure blocks downstream reuse
seonghobae 8561a37
chore(opencode): remove completed PR 812 repair workflow
seonghobae 2d20a96
test(opencode): keep rerun recovery reachable
seonghobae 94455d2
chore(opencode): stage rerun recovery control flow
seonghobae a3c6395
chore(opencode): remove unapplied attempt-recovery patch artifact
seonghobae 64d1749
chore(opencode): restage reachable rerun recovery
seonghobae d0bda16
chore(opencode): remove unapplied attempt-recovery patch artifact
seonghobae b996029
chore(opencode): restage reachable artifact recovery
seonghobae 552235b
chore(opencode): remove staged recovery patch artifact
seonghobae 2137012
chore(stack): reconcile attempt-scoped coverage evidence with main
seonghobae e5e4272
fix(opencode): preserve rerun recovery control flow
seonghobae File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
79 changes: 79 additions & 0 deletions
79
.github/workflows/opencode-coverage-artifact-rerun-quality-ci.yml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,79 @@ | ||
| name: OpenCode Coverage Artifact Rerun Quality CI | ||
|
|
||
| on: | ||
| pull_request: | ||
| branches: [main] | ||
| paths: | ||
| - ".github/workflows/opencode-review-dispatch.yml" | ||
| - ".github/workflows/opencode-coverage-artifact-rerun-quality-ci.yml" | ||
| - "tests/test_opencode_coverage_artifact_rerun_contract.py" | ||
| - "docs/doctoring/opencode-coverage-artifact-reruns.md" | ||
| - "CHANGELOG.md" | ||
| - "requirements-opencode-review-ci-hashes.txt" | ||
| - "pyproject.toml" | ||
| push: | ||
| branches: [main] | ||
| paths: | ||
| - ".github/workflows/opencode-review-dispatch.yml" | ||
| - ".github/workflows/opencode-coverage-artifact-rerun-quality-ci.yml" | ||
| - "tests/test_opencode_coverage_artifact_rerun_contract.py" | ||
| - "docs/doctoring/opencode-coverage-artifact-reruns.md" | ||
| - "CHANGELOG.md" | ||
| - "requirements-opencode-review-ci-hashes.txt" | ||
| - "pyproject.toml" | ||
|
|
||
| concurrency: | ||
| group: opencode-coverage-artifact-rerun-${{ github.event.pull_request.number || github.ref }} | ||
| cancel-in-progress: true | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| env: | ||
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true | ||
|
|
||
| jobs: | ||
| exact-head-contract: | ||
| name: Python 3.14 attempt-scoped artifact contract | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 25 | ||
| steps: | ||
| - name: Harden runner | ||
| uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0 | ||
| with: | ||
| egress-policy: audit | ||
|
|
||
| - name: Checkout exact source | ||
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | ||
| with: | ||
| persist-credentials: false | ||
| ref: ${{ github.event.pull_request.head.sha || github.sha }} | ||
|
|
||
| - name: Set up current stable Python | ||
| uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | ||
| with: | ||
| python-version: "3.14" | ||
| cache: pip | ||
| cache-dependency-path: requirements-opencode-review-ci-hashes.txt | ||
|
|
||
| - name: Install hash-locked quality tooling | ||
| run: python -m pip install --disable-pip-version-check --require-hashes -r requirements-opencode-review-ci-hashes.txt | ||
|
|
||
| - name: Run attempt-scoped artifact regression | ||
| run: python -m pytest tests/test_opencode_coverage_artifact_rerun_contract.py -q | ||
|
|
||
| - name: Enforce complete central test and branch coverage | ||
| run: | | ||
| set -euo pipefail | ||
| python -m coverage erase | ||
| python -m coverage run -m pytest tests -q | ||
| python -m coverage report --show-missing | ||
|
|
||
| - name: Enforce production docstring coverage | ||
| run: python -m interrogate scripts/ci | ||
|
|
||
| - name: Compile permanent contracts | ||
| run: python -m compileall -q scripts tests | ||
|
|
||
| - name: Reject uncommitted generated state | ||
| run: git diff --exit-code --check && test -z "$(git status --porcelain)" | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.