Repository navigation
fix(history): keep accepted outputs reported when retention fails - #105
Merged
Merged
Conversation
A retention failure after an accepted rollback or repair no longer hides the published result: the editor still opens the restored revision and refreshes its rollback points, and repair writes its report and registers its outputs before enforcing retention. The per-run preflight coverage claim again states that Loop makes no formal GWG conformance claim for every profile family, alongside the sheetfed-offset/packaging limit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What changed
Follow-up review fixes for 846e869 (#685 retention enforcement + #664 GWG claim). In #685, if history retention failed after a rollback or repair had already been accepted and published, the workflow stopped early and the result was hidden:
EditorHost::requestFixRollback): the rolled-back revision was written but never opened, and the recorded-revisions list was not refreshed. It now still opens and refreshes. The retention error is announced with the restore message, and the function returnsfalse.--report-filewas written and before outputs were registered, so a failure dropped the report. Retention now runs after the report, output registration, and console output. It still exitsProcessingFailurewithhistory.retention-failed.coverage_scope.claim: the #664 rewording dropped "Loop does not claim formal GWG conformance." for every profile family. That sentence is restored, and the sheetfed-offset/packaging certificate limit is kept.Targets
dev(integration); it reachesstableonly through promotiondev→unstable→stableafter theunstablechecks pass.Release changelog
Topic fragment:
changes/cc-code-review-ebc857.md(Category: fixed).Proof
python scripts/agent/check-change.py --base origin/stablereports fail: everybuild:*target andfocused_testsfail because this worktree has no configured build directory (configuring one needs approval), andclang_tidyisincomplete(nocompile_commands.json/clang-tidy).changelog,source_integrity,architecture_catalog,policy_adapters,preflight_truth_source,qml_mirror_parity,search_budget_gate,independent_validation_gate,qt_test_runtime,architecture_contracts, andformat:*for all three touched files pass. Not built or tested locally; relying on CI.changes/<sanitized-head-branch>.mdfragment added (Category, Audience, Breaking-Change, Summary), pluschanges/cc-code-review-ebc857.evidence.yamlcoverage_scopekeeps the same shape, and no fixture contains the #664 string.Internal logic (touched behavior-bearing code)
Anti-slop pass
anyor equivalent cast added only to suppress a type errorAnti-slop summary (1-3 sentences):
Only two one-line rationale comments were added, both explaining why retention runs after publication. Failure handling was kept: both paths still return failure and name the retention error.
Security and rollback
Docs
docs/OPERATION_HISTORY.mdalready states that a retention failure is reported after the accepted event and output are preserved, and this PR makes the code do that.Open review findings (not addressed here)
appendPreflightAuditRunpoints are the only unprotected (approvalNone) rollback points and never trigger retention; the four #685 call sites only create approved (protected) points, so default-policy retention never evicts anything.PDFOperationHistoryStore::enforceRetentiondeletes artifact files beforeCOMMIT; a later failure leaves non-evicted points whose artifacts are gone.history.write-failedand skip output registration.passedwhen retention later fails. Recording retention in the report would change the report schema.Self-review (BSP-002 §4.3)
🤖 Generated with Claude Code