diff --git a/docs/reference/release-process.md b/docs/reference/release-process.md index 0ba7d601d..fe0e02dd8 100644 --- a/docs/reference/release-process.md +++ b/docs/reference/release-process.md @@ -12,33 +12,19 @@ Before publishing a release, maintainers verify: - User-facing documentation covers new public behavior. - Known issues are documented before the release notes are finalized. -CI green is required for release readiness, but CI does not replace manual -verification for bugs whose reproducer depends on timing, providers, models, or -external OpenCode behavior. +CI green is required for release readiness, but CI does not replace manual verification for bugs whose reproducer depends on timing, providers, models, or external OpenCode behavior. ## Post-Fix Repro Verification -### Policy - -For race-condition and concurrency fixes, the original issue reporter, or a -maintainer if the reporter is unavailable, must re-run the documented -reproducer against the fix commit before the issue is closed. CI green is -necessary but not sufficient. +Race-condition and concurrency fixes must include reporter-verified repro confirmation before the originating issue is closed. CI green is necessary but not sufficient for this class of fix. ### Checklist -- [ ] Reproducer documented in the issue thread with steps, expected result, - and actual result. -- [ ] Fix commit identified. -- [ ] Reproducer re-run on the fix commit. -- [ ] Result documented in the issue thread as - "Repro retested: PASS on ". -- [ ] If the repro is environmental, such as a specific OS, model, or provider, - the re-run is attempted in matching conditions. +- [ ] Original issue reporter (or maintainer if reporter unavailable) re-runs the documented reproducer against the fix commit. +- [ ] Re-run result documented in the issue thread as "Repro retested: PASS/FAIL on commit ". +- [ ] If repro is environmental (specific OS, model, provider), repro is attempted in matching environment. +- [ ] If repro cannot be obtained, this is explicitly noted in the issue close comment AND recorded in release notes as "Fix unverified end-to-end". -### Escalation +### Rationale -If the repro cannot be obtained, such as a transient race that does not -reproduce locally, the limitation must be noted in the issue close comment and -added to release notes as "Fix unverified end-to-end". Do not close the issue -as fully verified without that disclosure. +Race-condition fixes that pass CI but were never retested against the original reproducer have historically regressed in production. Issues #4006, #3996, #3962 are recent examples where reporter confirmation was sparse. Issue #4012 (the prompt-async-gate motivating bug) had detailed reporter analysis that drove the eventual fix, and that level of post-fix verification should be the norm for this class.