Skip to content
Closed
Show file tree
Hide file tree
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 Aug 6, 2026
b0f4565
ci(opencode): execute coverage artifact rerun contract
seonghobae Aug 6, 2026
bd9ad77
ci: materialize rerun-safe coverage artifact handoff
seonghobae Aug 6, 2026
3504af2
ci: trigger attempt-scoped coverage artifact materialization
seonghobae Aug 6, 2026
7dd1292
docs(opencode): record attempt-scoped artifact rerun contract
seonghobae Aug 6, 2026
a79e7ca
ci(opencode): apply verified attempt-scoped artifact repair
seonghobae Aug 6, 2026
f939923
ci: trigger verified attempt-scoped artifact repair
seonghobae Aug 6, 2026
5a45220
fix(ci): preserve literal Actions expressions in repair
seonghobae Aug 6, 2026
2431afb
ci: rerun corrected attempt-scoped artifact repair
seonghobae Aug 6, 2026
a7f8901
fix(ci): avoid nested Actions expression parsing
seonghobae Aug 6, 2026
54436c6
ci: rerun expression-safe artifact repair
seonghobae Aug 6, 2026
8fe2148
fix(ci): patch workflow by bounded line anchors
seonghobae Aug 6, 2026
46ec344
fix(ci): publish verified repair with repository token
seonghobae Aug 7, 2026
ff6121b
chore(opencode): add temporary verified patch materializer
seonghobae Aug 7, 2026
17d16cf
ci(opencode): export verified workflow repair payload
seonghobae Aug 7, 2026
3dc3a73
ci(opencode): publish repair with OpenCode app token
seonghobae Aug 7, 2026
76c11d9
fix(opencode): bind coverage source artifacts to attempts
opencode-agent[bot] Aug 7, 2026
86f661c
chore(opencode): remove temporary artifact materializer
seonghobae Aug 7, 2026
e4ae5a3
test(opencode): forbid temporary artifact repair workflows
seonghobae Aug 7, 2026
19fd117
Merge branch 'main' into fix/opencode-attempt-scoped-coverage-artifact
opencode-agent[bot] Aug 7, 2026
321a9af
test(opencode): enforce 100% coverage and docstrings
seonghobae Aug 7, 2026
cae2d8f
test(opencode): distinguish permanent quality gate from repairs
seonghobae Aug 7, 2026
817772b
test(opencode): reject prior-attempt coverage evidence
seonghobae Aug 7, 2026
face57d
chore(opencode): add exact current-attempt repair runner
seonghobae Aug 7, 2026
e45ba8f
fix(opencode): harden exact repair materializer
seonghobae Aug 7, 2026
3569ade
test(opencode): reject empty attempt-scoped artifact IDs
seonghobae Aug 7, 2026
9a86669
fix(opencode): bind repair to exact PR head
seonghobae Aug 7, 2026
952c8d4
chore(opencode): add temporary current-attempt identity materializer
seonghobae Aug 7, 2026
554ad4a
chore(opencode): remove branch-writing coverage repair workflow
seonghobae Aug 7, 2026
df3be69
fix(opencode): satisfy validated artifact identity contract
seonghobae Aug 7, 2026
65f8465
chore(opencode): remove branch-writing artifact repair workflow
seonghobae Aug 7, 2026
61687bb
chore(opencode): remove artifact patch generator
seonghobae Aug 7, 2026
00cafaf
chore(opencode): finalize attempt-scoped artifact handoff
seonghobae Aug 7, 2026
4808ef0
chore(opencode): finalize attempt artifact from reviewed repair
seonghobae Aug 7, 2026
1e7c699
chore(opencode): remove PR-controlled finalizer workflow
seonghobae Aug 7, 2026
5a25032
chore(opencode): remove second PR-controlled finalizer
seonghobae Aug 7, 2026
a600086
chore(opencode): add exact current-attempt repair materializer
seonghobae Aug 7, 2026
12776d2
chore(opencode): finalize reviewed attempt identity repair
seonghobae Aug 7, 2026
f6ae8a8
test(opencode): reject finalizer workflow from permanent tree
seonghobae Aug 7, 2026
96c8881
ci(opencode): finalize current-attempt artifact identity
seonghobae Aug 7, 2026
82d0589
fix(opencode): validate current-attempt artifact identity
opencode-agent[bot] Aug 7, 2026
981aca3
chore(opencode): remove third PR-controlled finalizer
seonghobae Aug 7, 2026
ac87c6a
test(opencode): reject renamed branch repair workflows
seonghobae Aug 7, 2026
97e4f35
fix(opencode): bind quality gate to production config
seonghobae Aug 7, 2026
3291678
test(opencode): require reachable rerun recovery guidance
seonghobae Aug 7, 2026
77e06f5
test(opencode): align rerun contract to fail-closed implementation
seonghobae Aug 7, 2026
600fbb4
test(opencode): scope rerun recovery assertions to exact steps
seonghobae Aug 7, 2026
eb8e721
chore(ci): materialize PR 812 control-flow repair
seonghobae Aug 7, 2026
02da0c7
test(opencode): prove producer failure blocks downstream reuse
seonghobae Aug 7, 2026
8561a37
chore(opencode): remove completed PR 812 repair workflow
seonghobae Aug 7, 2026
2d20a96
test(opencode): keep rerun recovery reachable
seonghobae Aug 7, 2026
94455d2
chore(opencode): stage rerun recovery control flow
seonghobae Aug 7, 2026
a3c6395
chore(opencode): remove unapplied attempt-recovery patch artifact
seonghobae Aug 7, 2026
64d1749
chore(opencode): restage reachable rerun recovery
seonghobae Aug 7, 2026
d0bda16
chore(opencode): remove unapplied attempt-recovery patch artifact
seonghobae Aug 7, 2026
b996029
chore(opencode): restage reachable artifact recovery
seonghobae Aug 7, 2026
552235b
chore(opencode): remove staged recovery patch artifact
seonghobae Aug 7, 2026
2137012
chore(stack): reconcile attempt-scoped coverage evidence with main
seonghobae Aug 7, 2026
e5e4272
fix(opencode): preserve rerun recovery control flow
seonghobae Aug 11, 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
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"
Comment thread
seonghobae marked this conversation as resolved.
- "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)"
Loading
Loading