Skip to content

fix: keep descriptive transaction plans non-executable - #103

Merged
iperev merged 2 commits into
mainfrom
fix/transaction-plan-construction
Sep 5, 2026
Merged

fix: keep descriptive transaction plans non-executable#103
iperev merged 2 commits into
mainfrom
fix/transaction-plan-construction

Conversation

@iperev

@iperev iperev commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Summary

Keep public transaction-plan re-admission descriptive even when every payload is empty. Native construction now binds execution to the complete transaction identity; canonical structure, root, payload and filesystem-state checks remain independently necessary. Existing confined journal recovery does not acquire or depend on the public Apply capability.

Closes #102.

This is a prerequisite for managed agent integrations, not their implementation. Integration install/update/remove and native host activation remain open under INTEGRATION-01.

Contract And Compatibility

  • Public transaction JSON, identity derivation, valid empty/nonempty native operations and recovery remain unchanged.
  • Four native-validator source bindings change; an independent full contract comparison found no other structural delta. The complete contract hash intentionally reflects those source bindings.
  • SPEC033 and its required witness inventory bind the construction boundary.
  • The historical integration release edge reads exact digest-pinned v0.10.0 change-record bytes. The current compatible patch edge is v0.10.0 to v0.10.1; no consumer migration is required.

Proof

  • Native create/replace/unchanged, empty/nonempty/mixed plans, exact wire roundtrip, copy/replay and rejected-operation non-mutation controls.
  • Full-identity transplant, including equal desired states with different before states.
  • Independent canonical metadata, root, payload, target-state and parent-directory predicates.
  • Preparing/staged/partial/terminal recovery with exact bytes, modes, count, terminal replay and cleanup.
  • Isolated mutants: absent guard, boolean guard, desired-state-only binding, and removed directory-state comparison.
  • Independent capability/identity and recovery/oracle reviews. The latter found a masked existing directory oracle; it was repaired before the final gate, with a native filesystem-drift counterexample as well as the internal predicate test.

Final local gate completed on 847d38d8f1ecac7d66d63a83a1eb1705171948b9, tree 2a835ac758191caa26245694aec9e6fca901bfdc: npm run check, including 93 browser tests, package artifact execution, 101 bound requirements and 322 scenarios, self receipt, coverage, and release closeout. Targeted race tests and native ARM64 Linux Docker transaction tests also passed. The committed-range whitespace check passed and the worktree remained clean.

All required and advisory provider checks passed on this same head: source, platform, browser and aggregate, CodeQL, OSV, and semantic diff. The two PR provider-upload jobs were policy-skipped; provider ingestion is not inferred from them.

Non-Claims

Native construction is not caller authentication, approval, or a public SDK. This PR does not establish host skill activation, registry publication, rollout, production readiness, or exhaustive installed-catalog correctness. Publication requires the separate post-merge release workflow.

Retro

The original empty-payload defect confused payload reconstruction difficulty with construction authority. The review correction exposed a separate testing failure: an early guard can make a downstream negative test pass for the wrong reason. Each affected test now preserves the earlier predicates and demonstrably kills its assigned wrong implementation. Release-oracle synchronization and an executable Docker temporary mount were also corrected before publication; no installed skills were modified.

@iperev
iperev merged commit 4401e96 into main Sep 5, 2026
9 checks passed
@iperev
iperev deleted the fix/transaction-plan-construction branch September 5, 2026 11:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

Keep re-admitted transaction plans descriptive for empty payloads

1 participant