Skip to content

Preserve reviewed scope through decision refresh and commit cleanup - #40

Merged
dkropachev merged 3 commits into
mainfrom
fix/30-preserve-reviewed-scope
Oct 27, 2026
Merged

dkropachev merged 3 commits into
mainfrom
fix/30-preserve-reviewed-scope

Conversation

@dkropachev

@dkropachev dkropachev commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Issue

Required replies can add discussion Decisions that restate an already reviewed contract. Refreshing preparation then loses review coverage, leaving identical-tree cleanup blocked after the fifth cycle. GitHub CLI responses with an empty headRepository.nameWithOwner also block accessible PRs during configuration and cleanup (#30, #39).

Fixes #30
Fixes #39

Fix

Add version-2 attestations that compare refreshed preparation directly with the original review. Every added discussion Decision needs a source-verified mapping to an original decision or prepared boundary. Operational wording and exact Decisions-backed choice evidence can retain coverage when engineering meaning is unchanged; material or ambiguous changes remain blocking. Original hashes, review artifacts, reviewer packages and cycle budgets stay intact, and version-1 attestations keep their original restrictions.

Require an immutable prepublication receipt for regroup pushes and no-op assessments, binding the candidate, lease and guard state to both preparations and the original review. Revalidate before publication and preserve uncertain-push recovery. Prechecks establish review and cleanup readiness separately from completion; final-head preparation, reconciliation, engineering verification and exact-head CI remain required.

Use one shared repository identity resolver across configuration, preflight, cleanup, completion, review context and Decisions code links. When the CLI omits the full head name, cross-check the REST pull-request identity, repositories, IDs, refs, SHAs and fork status before proceeding.

Document recovery into the repaired runtime while preserving the active run and its exhausted budget. Bump both plugin manifests, the Claude marketplace entry and README to 1.2.1. Recovery is covered by representative fixtures; this change does not operate on the external PR #150 run.

@dkropachev
dkropachev force-pushed the fix/30-preserve-reviewed-scope branch from 320546b to ee6b222 Compare October 26, 2026 22:17
Use the registry revision when a native manifest omits its version, while
keeping explicit version mismatches and resource tampering blocking.
Exclude transient root host leases from new package snapshots and retain
historical sealed inventories exactly.

Keep the retention and descriptor regressions with their compatibility
changes so host metadata refreshes preserve reviewed provider identity.
Cross-check incomplete CLI repository names against authoritative REST
identity, IDs, refs, SHAs and fork status before choosing ownership.
Share the resolver across configuration, review context, Decisions code
links and live series evidence.

Keep read-only support for deleted forks with positive fork evidence,
while ownership-sensitive operations remain strict. Cover same-repository
and fork identities, inconsistent evidence and actual caller behavior.

Fixes #39
Compare refreshed preparation directly with original review evidence.
Require source-verified mappings for discussion restatements and assess
operational wording without weakening strict inputs, legacy provenance
or persisted negative judgments.

Bind regroup publication to immutable candidate and lease prechecks.
Keep final preparation, reconciliation, engineering verification and
exact-head CI separate, with structured diagnostics and recovery state.

Keep regression fixtures aligned with preparation lineage and native
exporters. Document retained-run recovery and release plugin 1.2.1.

Fixes #30
@dkropachev
dkropachev force-pushed the fix/30-preserve-reviewed-scope branch from 282e801 to 550ddb2 Compare October 27, 2026 02:24
@dkropachev
dkropachev merged commit 0fa0898 into main Oct 27, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant