fix(cases): admit reviewed descriptor pin validator revision
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a140c4-354a-7823-8f0d-8f717397f786
This commit is contained in:
tegwick 2026-10-16 21:35:04 +02:00
parent d79f065955
commit d97652a3bb
4 changed files with 72 additions and 2 deletions

View file

@ -0,0 +1,37 @@
# Browser producer pin refresh — 2026-10-16
WARDEN-WP-0044-T03 source review, scoped to NetKingdom commit
`015694ee414c802dc2ef1fa0120dfed610086e69`, against Warden `d79f065`.
Reviewed the exact committed schema, validator, evidence changes and the 21
producer contract tests. The optional bounded `execution_descriptors` map now
requires lowercase exact SHA-256 byte pins keyed to declared steps. The direct
evidence API refuses malformed maps. Absent and incomplete maps retain plan-only
behavior; the repair supplies no descriptor, adapter or execution authority.
This is compatible with Warden's independently authenticated admission gates.
Refresh only the validator and evidence module pins. Composer/capability module
hashes and both reviewed parameter-definition hashes remain exact and unchanged.
All four copied module bytes match the named NetKingdom commit and canonical
checkout. No fallback, wildcard or allowed-drift path is added.
Before the refresh, explicit canonical producer integration failed both positive
version tests (1.1/1.2), with 20 refusals passing. After refresh, 87 producer,
Executor and reducer checks pass, including 14 new malformed descriptor cases
and existing missing/changed-source checks across all four pinned modules.
The 21 producer descriptor-contract checks and focused Ruff checks also pass.
Use `WARDEN_TEST_NETKINGDOM_ROOT=/home/worsch/net-kingdom` explicitly: the
isolated checkout's default sibling can resolve another checkout.
Emergent knowledge 0.2.6 digest
`8d1d6a9d4d07fec7b619618de7dfe2be2254c1790f85f4198c7fe19db9751c02`
was withheld due to source drift; start/local-work cards and actual source were
reviewed directly. It conveys no authority.
No new browser or identity-restore adapter was admitted or attested. No credential
or privileged execution occurred. Native structural receipts, authenticated owner
provenance, descriptor assent, attended sessions, ordered verification and the
first native case run remain open. T03 stays progress; T04 stays wait.
Exact pin hashes, tests and publication identity are retained under the Custodian
`docs/changes/netkingdom-target-2026-10-16/warden-browser-pin-refresh/` directory.

View file

@ -15,9 +15,11 @@ import tempfile
from .case_receipt_state import Refused
# Reviewed producer: net-kingdom 015694ee414c802dc2ef1fa0120dfed610086e69.
# Review: docs/reviews/2026-10-16-browser-producer-pin-refresh.md
SOURCE_PINS = {
"tools/security-case-types/security_case_evidence.py": "3c5d021ca7f1fc41fba4b2ff42fcb036b916a2a09ffc5e147cc3db1874dd2401",
"tools/security-case-types/security_case_validator.py": "cbb9ab532d328f78cf37aca57891400e2e65d63a8ab3c5fe7bd1a4ff21dee56f",
"tools/security-case-types/security_case_evidence.py": "da8efa59c52ad73283397ebe639ae259d0cb9c6348b5cb829135c24230dcdc75",
"tools/security-case-types/security_case_validator.py": "1bcc62e9bc374c711363295549f3cd5bb0b32952671ed4b08fddc7f74742959b",
"tools/security-scenario-composer/security_scenario_composer.py": "9f0cc69930aa8ee2cc3fb92236e6a99728df17b8c0fe36e1250241c38fc01c4f",
"tools/playbook-capability-contract/playbook_contract_validator.py": "2e1e0c809d4bc9d64c2d974cc23fecd1c5636785154c2554edd9191852fd926d",
}

View file

@ -183,3 +183,25 @@ def test_required_browser_parameter_is_not_defaulted_away(rig):
with pytest.raises(Refused, match="exact-version"):
executor.admit(*sources, **kwargs)
assert not calls
@pytest.mark.parametrize("version", ["1.1", "1.2"])
@pytest.mark.parametrize(
"pins",
[
None,
[],
{"mint-secret": "sha256:" + "A" * 64},
{"mint-secret": "sha256:" + "a" * 64 + "\n"},
{"undeclared-step": "sha256:" + "a" * 64},
{"mint-secret": ["sha256:" + "a" * 64]},
{"step-" + str(n): "sha256:" + "a" * 64 for n in range(129)},
],
)
def test_actual_producer_refuses_malformed_descriptor_pins(rig, version, pins):
executor, calls, sources, _ = browser(rig, version)
case, typ = (yaml.safe_load(source) for source in sources[:2])
typ["spec"]["execution_descriptors"] = pins
with pytest.raises(Refused, match="exact-version"):
executor.browser_inputs.target(case, typ, "client_id")
assert not calls

View file

@ -263,3 +263,12 @@ Executor/producer tests cover positive versions and refusal/containment paths.
Acknowledged machine descriptors, authenticated owner evidence, real Forgejo
materialization and contained native sessions remain mandatory and unimplemented;
T03 stays progress, T04 stays wait. No type or case status changed.
2026-10-16 producer source refresh: independently reviewed NetKingdom
`015694ee414c802dc2ef1fa0120dfed610086e69` optional descriptor-map repair.
Only the validator/evidence source pins change; exact parameter and transitive
source identity remain enforced. Actual canonical producer, Executor and reducer
suite passes 87 checks, including 14 new malformed-map integration cases; all
four missing/changed modules still refuse. Review:
`docs/reviews/2026-10-16-browser-producer-pin-refresh.md`. No adapter attestation,
native acceptance, credential use or privileged dispatch. T03 remains progress.