Repository navigation
Conversation
doublewhy
force-pushed
the
1451-portable-disclosure-payloads
branch
from
October 9, 2026 14:40
5e39e53 to
a156e90
Compare
doublewhy
marked this pull request as ready for review
October 9, 2026 15:40
9 of 11 tasks
This was referenced Oct 12, 2026
doublewhy
force-pushed
the
1451-portable-disclosure-payloads
branch
from
October 13, 2026 09:26
a06450c to
34f1850
Compare
doublewhy
marked this pull request as draft
October 13, 2026 19:39
…rojection during realization disclosure Backend snapshot admission accepts tuple, enum, dataclass and model carriers in entry payloads, but the SEM-218 disclosure readers walk only JSON objects and arrays. A closed concern wrapped in an Enum member or a dataclass read as absent and was committed as realized. The runtime now presents declared operation payloads and returned entry payloads to the disclosure readers as their portable JSON projections, the relation snapshot_values_equal already uses.
…judges The safe-persistence sanitizer walked plain mappings only. A registered concern reached through an admitted carrier therefore skipped sanitization while the disclosure readers, which read the portable projection, admitted it, and the raw observation was committed. The sanitizer now reads the same portable projection. An entry keeps the backend's own representation when that representation, sanitized in place, serializes to its sanitized view; otherwise the sanitized view is committed in its place. Tests cover the issue #985 safe-projection case for an exact and an open runtime environment, with the returned spec as a plain mapping, an Enum member or a dataclass, and with the environment value itself wrapped. They also cover a planned domain-topology tuple returned as the planned tuple or as a JSON array.
…and re-plans unchanged _safe_realization_snapshot keeps the backend's own entry when it serializes to the sanitized view. No test failed when that branch was removed: honest domain-topology results then committed controller_addresses as a list, and every later plan scheduled UPDATE for provision.node.dc, provision.domain-controller.corp.dc and provision.account.domain-admin. The new test asserts the committed tuple and an all-UNCHANGED re-plan. The module docstring and the two carrier test names now limit the carrier claim to carriers that serialize the wrapped value: a model field that its serializer excludes, renames or rewrites is not in the portable projection, so the readers and the sanitizer do not see a concern placed there, as on dev.
Collected on this branch's source (dev 348c490 plus #1451) with the shared collection tool: 6 pinned artifacts through the production pipeline, 10 retained SDL cases via replay_case, 4 production cases via raes processor, 14 participant functions (18 passed); recorded with python -m tools.research_capture record.
doublewhy
force-pushed
the
1451-portable-disclosure-payloads
branch
from
October 14, 2026 01:57
34f1850 to
be2c827
Compare
doublewhy
marked this pull request as ready for review
October 14, 2026 03:52
This branch has not been deployed
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.
Summary
Snapshot admission accepts tuple, enum, dataclass and model carriers in entry payloads; the SEM-218 disclosure readers and sanitizer that run next read JSON objects and arrays only. Up to dev
cf8b4308, a registered concern inside a carrier was misjudged or committed raw:specwrapped in anEnummember or dataclass committed with success;specwas committed raw ("value": "production", no provenance row);Both now read the portable JSON projections of the plan's and result's payloads (as
snapshot_values_equaldoes), so a registered concern is judged and persisted identically as a plain mapping or inside an admitted carrier whose portable serialization keeps every field admission walks under the same name and value. Plain-mapping results commit what they did before.Requirement UIDs
SEM-218(Explicitness And Realization Semantics). Per the Carry resolved realization posture through the backend-facing plan #1067 preflight (item 8), closed excess is a backend-contract failure, checked before accepting or persisting. As in feat: carry resolved realization authority through plans #1081, no scope file or record change.Related Issues
Closes #1451
Follow-ups: #1502 (model fields the serializer excludes, renames or rewrites), #1518 (credential and prepared-node boundaries).
ADR Impact
Changes
backend_apply_results.py:_portable_payloadsprojects payloads viato_jsonable_python;_realization_disclosure_resultruns both disclosures over them._safe_realization_snapshotsanitizes the same projection; an entry keeps the backend's representation when it serializes to its sanitized view (a tuple returned as planned stays a tuple), else the sanitized view is committed.planner/ordering._entry_matches_resourcestill re-plans the three domain resources as UPDATE; one returned as planned re-plans as UNCHANGED.collect_research_evidence.pyon source71e86070(dev348c4903, clean): 6 pinned artifacts through the production pipeline (42 stage results: 38 passed, 4 preregistered non-execution); 10 retained SDL cases replayed, 4 production cases and 14 participant functions run (18 passed); all 20 formal observations as expected. Recorded withpython -m tools.research_capture record(templatesc9ca186a/3bad3945):capture-55f3cb3a…,capture-36481077…. Drift:versions.python3.12.3 (was 3.11.15); formalcommands[0]is theretained-case-replayargv that ran.Enummember or a dataclass. All three are refused withruntime.backend-contract-invalid, and the snapshot stays empty. An honest apply is still admitted._realization_disclosure_resulttest_closed_runtime_environment_is_refused_inside_a_carrier_that_serializes_it(enum-member,dataclass);test_honest_apply_is_admittedpinsEnummember or a dataclass, and with the environment value itself wrapped. Each is admitted, commits the same portable payload and provenance as the plain mapping, and never commitsproductionor thedescriptionannotation._safe_realization_snapshottest_only_the_safe_projection_persists_inside_a_carrier_that_serializes_it(6 carrier cases)_portable_payloadstest_planned_tuple_matches_the_same_value_returned_as_json[returned-as-json];test_tuple_returned_as_planned_is_committed_as_returned_and_replans_unchangeddevbefore the fix.Test Plan
pytest <new module>: 15 passed. With dev'sbackend_apply_results.py: 9 failed (exactly the carrier cases andreturned-as-json), 6 passed. With the sanitized view always committed (before the rebase), only the re-plan test failed.45 SEM-218 modules: 686 passed (+1 integration). 158
raes_runtimemodules: 3587 passed, 2 skipped (43 integration). 82 backend and conformance modules: 2075 passed (22 integration). Docker tests: CIintegration-docker.tools/check_specification_coverage.pyandtools/check_formal_semantic_validation.pyexit 0 at the head and ongit merge-tree --write-tree origin/dev HEAD.nox -s verify-fast-feedback -- --base-rev origin/devandnox -s lintpassed.CI on head
be2c827a(dev base348c4903): all 28 checks passed, 1 skipped; canonical run 38498469224 (21 jobs succeeded).Ground Control Checks
make policypassed; test quality: the fail-without-change run.Traceability
Checklist
CHANGELOG.mdfrom it)