Skip to content

fix(collaboration): allow identical closed projection rebuilds - #126

Draft
RecursiveIntell wants to merge 1 commit into
mainfrom
fix/ares-closure-idempotent-rebuild-20261004
Draft

RecursiveIntell wants to merge 1 commit into
mainfrom
fix/ares-closure-idempotent-rebuild-20261004

Conversation

@RecursiveIntell

Copy link
Copy Markdown
Owner

What does this PR do?

Rebuilding a closed closure projection from identical owner evidence currently raises REOPEN_REQUIRES_NEW_EVIDENCE. Allow an identical, schema-validated full artifact to rebuild with the same canonical bytes and digest. Any changed closed artifact still requires a new source event.

Related Issue

Source-supported pure closure review finding. The schema describes a rebuildable derived projection; no deployed consumer or attribution to the active Ares incident has been established.

Type of Change

  • Bug fix

Changes Made

  • ares_runtime/collaboration.py: compare the complete validated projection to its prior artifact after existing lineage and source-existence checks.
  • Add 12 regressions for artifact/mapping replay, event normalization, changed gates/provenance, reopening/quarantine, lineage and missing evidence.

How to Test

scripts/run_tests.sh -j 1 --file-retries 0 --file-timeout 90 tests/ares_runtime/test_closure_projection_rebuild.py -q
scripts/run_tests.sh -j 1 --file-retries 0 --file-timeout 90 tests/test_ares_collaboration.py -q -k 'test_skipped_required_check_is_not_closed or test_missing_source_event_is_rejected or test_ambiguous_effect_is_quarantined or test_reopen_requires_a_new_evidence_projection'

Exact focused tree 5f00d9576299a00dab2ccf3648983aaaed0eb4d8 passed 12 new tests plus four existing controls, zero failures, one worker and zero retries. Original implementation with the same final new test file has three causal failures and nine passing controls. A fresh independent source reviewer found no blocking findings.

Linux offline execution used a disposable source copy, hidden real home, temporary stores and Python network denial. A task-only interpreter shim skipped the optional bytecode cache prebuild for disk headroom; the canonical per-file runner and tests were unchanged. Source/index hashes stayed stable. Full-suite, installed application, provider/MCP and cross-platform runtime checks were not exercised.

Malformed flags or schema-invalid gates can now report validation errors before the former reopen error. They remain rejected; no inspected contract requires the prior error precedence. Mission/event stores retain mutation authority.

Checklist

  • Conventional commit; focused source and tests only
  • Searched current open Ares PRs for overlap
  • Added meaningful regressions and ran four existing closure controls
  • Full repository suite: not run in this bounded draft pass
  • Linux validation; no configuration, schema or architecture changes

Evidence and Rollback

Base 04997747879d54a242941d344c3a38293c307076, tree cbabd9591dc00fdf8deed90aeb3e8b1dc5bd2ebc. Exact forward/reverse index replay restored the base. Reverse delta SHA256: e578cdbfa999a29c88aecd1f757d75d7e6d8427ff0800bb7825db6b1aef8eba4.

Draft source proposal only. A future authorized rollback is reverting this focused commit; no activation, service, installed profile or live rollback action accompanies publication.

@github-actions

github-actions Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

૮ >ﻌ< ა ci review

ran on 26c20f0 — fix(collaboration): allow identical closed projection rebuil

⚠️ Warnings

OSV vulnerability scan · View job

96 known vulnerabilities found in pinned dependencies.

How to fix:

Review the findings in the Security tab. Update the affected dependencies if a patched version is available.


debug info

CI timings

CI timings · View report · View job

Wall time 6m14s vs 7m23s (-15.6%). 9 job(s) slower, 14 faster, 1 unchanged.

  • OS-specific tests / macOS-only tests: -81.0s
  • Python tests / Run tests slice 2/12: -78.0s
  • Python tests / Run tests slice 1/12: +67.0s
  • OS-specific tests / Windows-only tests: -64.0s
  • Python tests / Run tests slice 5/12: -61.0s

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant