fix: harden DGR-017 contract continuity
This commit is contained in:
@@ -161,13 +161,13 @@ seeing a result. Each of those moves now has a test that names it:
|
||||
- admit the dense fallback → `test_admitting_the_dense_attention_fallback_after_the_fact_is_rejected`
|
||||
- shrink the reserve → `test_relaxing_the_per_node_reserve_after_the_fact_is_rejected`
|
||||
|
||||
**Be precise about what the seal does.** `contract_sha256` is tamper-*evidence*, not
|
||||
tamper-proofing. Nothing checked into a repo can stop an agent that rewrites the
|
||||
threshold *and* re-seals the digest — `test_resealing_a_mutated_contract_changes_its_digest`
|
||||
asserts that path openly. What the seal removes is the *silent* mutation: the digest
|
||||
moves, and the change becomes a visible diff on a file whose entire purpose is to not
|
||||
change, still claiming `contract_id: glm-5.2-max-alpha/v1`. Reviewers, not hashes, are
|
||||
the enforcement; the hash makes sure there is something to review.
|
||||
**Contract continuity is fail-closed.** The document’s `contract_sha256` detects
|
||||
accidental edits, and the approved v1 digest is pinned independently in code. A caller
|
||||
that changes a threshold and re-seals it under `glm-5.2-max-alpha/v1` is rejected by
|
||||
`test_resealing_a_mutated_v1_contract_is_rejected`; amendments require a new supported
|
||||
contract identity under human review. Parsed nested state is recursively immutable,
|
||||
so thresholds cannot change between validation and use; `to_dict()` returns an isolated
|
||||
copy rather than exposing the validated object.
|
||||
|
||||
## 6. Upstream status — the gating risk for DGR-004/DGR-018
|
||||
|
||||
|
||||
@@ -98,3 +98,18 @@ $VP -m pytest -q tests/test_tracker_routing.py::test_tracker_dashboard_can_cance
|
||||
-> 1 passed, repeated 5/5 in isolation
|
||||
$VP -m pytest -q # integrated rerun
|
||||
-> 852 passed, 13 skipped in 253.30s (0:04:13)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 7. Late independent-review repair (2026-07-14)
|
||||
# ---------------------------------------------------------------------------
|
||||
PYTHONPATH=packages/node $VP -m pytest -q tests/test_glm_alpha_target.py
|
||||
-> 99 passed in 0.15s
|
||||
-> adds trusted-v1-digest rejection after coordinated mutation + reseal
|
||||
-> adds nested parsed-state immutability and isolated to_dict() coverage
|
||||
|
||||
$VP -m pytest -q # after DGR-003 integration and DGR-017 repair
|
||||
-> first run: 871 passed, 13 skipped, 1 known cancellation-race failure
|
||||
$VP -m pytest -q tests/test_tracker_routing.py::test_tracker_dashboard_can_cancel_inflight_proxy
|
||||
-> 5/5 passed in isolation
|
||||
$VP -m pytest -q # integrated rerun
|
||||
-> 872 passed, 13 skipped in 253.46s (0:04:13)
|
||||
|
||||
Reference in New Issue
Block a user