diff --git a/docs/changes/netkingdom-target-2026-10-17/original-context-r1/source-references.json b/docs/changes/netkingdom-target-2026-10-17/original-context-r1/source-references.json new file mode 100644 index 00000000..aed3dc33 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/original-context-r1/source-references.json @@ -0,0 +1,18 @@ +[ + { + "path": "/home/worsch/ops-warden/src/warden/case_inputs.py", + "sha256": "sha256:1334b0cd9897e763cfea2d306e997c659f3f284ecc3f9612140c2104835da7c7" + }, + { + "path": "/home/worsch/ops-warden/src/warden/case_receipt_state.py", + "sha256": "sha256:a2cda7f187e77bd76d4d209505638de44a587fae0bc033ec75c23ee9ea9f73bc" + }, + { + "path": "/home/worsch/ops-warden/AGENTS.md", + "sha256": "sha256:aa03031516b886b254d8c4b1fafa160c063c74aa0115ba51af3dd7326dccfad6" + }, + { + "path": "/home/worsch/ops-warden/workplans/WARDEN-WP-0044-security-case-follow-through.md", + "sha256": "sha256:1df57687200f6a60a2a6f26a4066ce1e93ae663fc4e43db3884d04dc1d6e874e" + } +] diff --git a/docs/changes/netkingdom-target-2026-10-17/original-context-r1/superseded-mixed-base.patch b/docs/changes/netkingdom-target-2026-10-17/original-context-r1/superseded-mixed-base.patch new file mode 100644 index 00000000..6d5a1dc1 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/original-context-r1/superseded-mixed-base.patch @@ -0,0 +1,832 @@ +--- a/src/warden/case_run.py ++++ b/src/warden/case_run.py +@@ -168,52 +168,83 @@ + pins: Pins + attempt_id: str = "" + operation: str = "admission" +- tenant: str = "" +- realm: str = "" +- +- +-INTENT_SCHEMA = "warden.case.original-intent.v1" ++ ++ ++def invocation_fingerprint(invocation: Invocation) -> str: ++ """Fingerprint a fixed validated projection; retain no owner payload or refs. ++ ++ Invocation is not a generic metadata container. Accept only this exact class, ++ its reviewed identifier fields and closed Pins. Never serialize arbitrary ++ attributes, case parameters, OwnerResult.evidence or callback output. ++ """ ++ if type(invocation) is not Invocation or type(invocation.pins) is not Pins: ++ raise Refused("exact invocation metadata required") ++ identifiers = ( ++ invocation.step, ++ invocation.owner, ++ invocation.target, ++ invocation.principal, ++ invocation.lane, ++ invocation.attempt_id, ++ ) ++ if ( ++ not all( ++ type(value) is str and IDENTIFIER.fullmatch(value) for value in identifiers ++ ) ++ or invocation.actor not in ("human", "agent") ++ or invocation.operation not in ("run", "rollback", "reconcile") ++ ): ++ raise Refused("bounded invocation metadata required") ++ pins = [ ++ invocation.pins.case, ++ invocation.pins.case_type, ++ invocation.pins.adapter, ++ invocation.pins.catalog, ++ invocation.pins.acceptance, ++ invocation.pins.run_sheet, ++ ] ++ if not all(type(value) is str and DIGEST.fullmatch(value) for value in pins): ++ raise Refused("exact invocation pins required") ++ projection = [ ++ "warden.case.invocation-fingerprint.v1", ++ *identifiers, ++ invocation.actor, ++ invocation.operation, ++ *pins, ++ ] ++ return digest(json.dumps(projection, separators=(",", ":")).encode()) + + + @dataclass(frozen=True, slots=True) +-class OriginalIntent: +- """Durable record of the original mutating dispatch, written before dispatch. +- +- Binds the original Invocation (attempt, step, owner, target, actor, principal, +- lane), all pins, the admitted adapter source and the tenant/realm provenance +- the caller was admitted with. It is evidence of what Warden dispatched, not +- owner proof of creation: owners still authenticate created-only provenance. ++class OriginalAttemptContext: ++ """Local lookup context, never independently authenticated owner evidence. ++ ++ Original fields are reconstructed from current exact admission and checked ++ against the fingerprint atomically stored with the original running intent. ++ Journal fingerprints cannot establish native creation or authorize an undo. + """ + +- binding: str +- invocation: Invocation +- source: str +- +- def payload(self) -> str: +- return json.dumps( +- {"schema": INTENT_SCHEMA, "binding": self.binding, "source": self.source} +- | asdict(self.invocation), +- separators=(",", ":"), +- sort_keys=True, +- ) +- +- @classmethod +- def decode(cls, raw: str) -> OriginalIntent: +- obj = json.loads(raw) +- fields = {f for f in Invocation.__dataclass_fields__} +- if set(obj) != fields | {"schema", "binding", "source"} or obj["schema"] != INTENT_SCHEMA: +- raise Refused("unknown original intent schema") +- inv = {k: obj[k] for k in fields} +- inv["pins"] = Pins(**inv["pins"]) +- return cls(obj["binding"], Invocation(**inv), obj["source"]) +- +- +-@dataclass(frozen=True, slots=True) +-class ReconcileContext: +- """Original intent and the new reconciliation attempt, kept separate.""" +- +- original: OriginalIntent +- attempt: Invocation ++ original: Invocation ++ intent_sequence: int ++ intent_digest: str ++ result_sequence: int ++ evidence_digest: str | None ++ session_revocation_digest: str | None ++ grant_revocation_digest: str | None ++ ++ @property ++ def digest(self) -> str: ++ projection = [ ++ "warden.case.original-context.v1", ++ invocation_fingerprint(self.original), ++ self.intent_sequence, ++ self.intent_digest, ++ self.result_sequence, ++ self.evidence_digest, ++ self.session_revocation_digest, ++ self.grant_revocation_digest, ++ ] ++ return digest(json.dumps(projection, separators=(",", ":")).encode()) + + + @dataclass(frozen=True, slots=True) +@@ -223,8 +254,7 @@ + invoke: Callable[[Invocation], OwnerResult] + verify: Callable[[Invocation, OwnerResult], bool] + rollback: Callable[[Invocation, tuple[str, ...]], OwnerResult] | None = None +- reconcile: Callable[[Invocation], OwnerResult] | None = None +- reconcile_original: Callable[[ReconcileContext], OwnerResult] | None = None ++ reconcile: Callable[[Invocation, OriginalAttemptContext], OwnerResult] | None = None + + + class Journal: +@@ -252,33 +282,12 @@ + self.db.execute( + "CREATE TABLE IF NOT EXISTS receipts (seq INTEGER PRIMARY KEY, binding TEXT NOT NULL, payload TEXT NOT NULL)" + ) ++ # Additive local storage v1; no existing receipt payload is rewritten or ++ # backfilled. Legacy attempts without this atomic companion fail closed. + self.db.execute( +- "CREATE TABLE IF NOT EXISTS intents (seq INTEGER PRIMARY KEY, attempt_id TEXT NOT NULL UNIQUE, binding TEXT NOT NULL, payload TEXT NOT NULL)" ++ "CREATE TABLE IF NOT EXISTS attempt_context_v1 " ++ "(receipt_seq INTEGER PRIMARY KEY, invocation_digest TEXT NOT NULL)" + ) +- +- def original_intent(self, binding: str, current: Invocation, source: str) -> OriginalIntent: +- """Latest original run intent for binding, refused unless it matches exactly. +- +- Missing or mismatched records refuse; the step stays uncertain. +- """ +- row = self.db.execute( +- "SELECT payload FROM intents WHERE binding=? ORDER BY seq DESC LIMIT 1", +- (binding,), +- ).fetchone() +- if row is None: +- raise Refused("original intent record missing; step stays uncertain") +- intent = OriginalIntent.decode(row[0]) +- o = intent.invocation +- if intent.binding != binding or o.operation != "run": +- raise Refused("original intent binding mismatch") +- if o.pins != current.pins: +- raise Refused("original intent pins mismatch") +- if intent.source != source: +- raise Refused("original intent source mismatch") +- for name in ("step", "owner", "target", "principal", "lane", "tenant", "realm"): +- if getattr(o, name) != getattr(current, name): +- raise Refused(f"original intent {name} mismatch") +- return intent + + @contextmanager + def locked(self): +@@ -353,16 +362,14 @@ + state: StepState, + evidence: OwnerResult | None = None, + invocation: Invocation | None = None, +- intent: OriginalIntent | None = None, + ): ++ # Validate/hash only the fixed field contract before opening the write. ++ fingerprint = ( ++ invocation_fingerprint(invocation) if invocation is not None else None ++ ) + self.db.execute("BEGIN IMMEDIATE") + try: +- if intent is not None: +- self.db.execute( +- "INSERT INTO intents(attempt_id,binding,payload) VALUES (?,?,?)", +- (intent.invocation.attempt_id, binding, intent.payload()), +- ) +- self.db.execute( ++ inserted = self.db.execute( + "INSERT INTO receipts(binding,payload) VALUES (?,?)", + ( + binding, +@@ -391,10 +398,98 @@ + ), + ), + ) ++ if fingerprint is not None: ++ self.db.execute( ++ "INSERT INTO attempt_context_v1(receipt_seq,invocation_digest) " ++ "VALUES (?,?)", ++ (inserted.lastrowid, fingerprint), ++ ) + self.db.execute("COMMIT") + except BaseException: + self.db.execute("ROLLBACK") + raise ++ ++ def original_context( ++ self, binding: str, invocation: Invocation ++ ) -> OriginalAttemptContext: ++ """Locate original run intent across recovery/reconcile rows, never trust it. ++ ++ Called under the existing journal lock after exact current admission and ++ state validation. No owner receipt/reference/payload is hydrated here. ++ """ ++ rows = self.db.execute( ++ "SELECT seq,payload FROM receipts WHERE binding=? " ++ "ORDER BY seq DESC LIMIT ?", ++ (binding, MAX_HISTORY + 1), ++ ).fetchall() ++ if len(rows) > MAX_HISTORY: ++ raise Refused("bounded original context requires owner archival") ++ try: ++ decoded = [(seq, raw, json.loads(raw)) for seq, raw in rows] ++ intent = next( ++ ( ++ row ++ for row in decoded ++ if row[2].get("operation") == "run" ++ and row[2].get("receipts") ++ and row[2]["receipts"][-1].get("outcome") == "running" ++ ), ++ None, ++ ) ++ if intent is None: ++ raise Refused("original run context absent; no legacy backfill") ++ sequence, raw, payload = intent ++ attempt = payload.get("attempt_id") ++ original = replace(invocation, attempt_id=attempt, operation="run") ++ fingerprint = invocation_fingerprint(original) ++ # Match both old journal binding and independently re-admitted fields. ++ if ( ++ payload.get("journal_schema") != "warden.case.step-journal.v1" ++ or payload.get("pins") != asdict(invocation.pins) ++ or payload.get("step_id") != invocation.step ++ or payload.get("owner") != invocation.owner ++ or binding != f"{invocation.step}:{invocation.target}" ++ ): ++ raise Refused("original context differs from current admission") ++ latest = next( ++ row ++ for row in decoded ++ if row[2].get("attempt_id") == attempt ++ and row[2].get("operation") == "run" ++ ) ++ for seq, _, row in (intent, latest): ++ stored = self.db.execute( ++ "SELECT invocation_digest FROM attempt_context_v1 " ++ "WHERE receipt_seq=?", ++ (seq,), ++ ).fetchone() ++ if ( ++ stored is None ++ or stored[0] != fingerprint ++ or row.get("pins") != asdict(invocation.pins) ++ or row.get("step_id") != invocation.step ++ or row.get("owner") != invocation.owner ++ ): ++ raise Refused("original context fingerprint absent or changed") ++ proofs = [ ++ latest[2].get(field) ++ for field in ( ++ "evidence_digest", ++ "session_revocation_digest", ++ "grant_revocation_digest", ++ ) ++ ] ++ if any( ++ value is not None ++ and (type(value) is not str or not DIGEST.fullmatch(value)) ++ for value in proofs ++ ): ++ raise Refused("original evidence fingerprint invalid") ++ return OriginalAttemptContext( ++ original, sequence, digest(raw.encode()), latest[0], *proofs ++ ) ++ except (TypeError, ValueError, KeyError, AttributeError, StopIteration): ++ raise Refused("original context unavailable or malformed") from None + + + class Executor: +@@ -674,12 +769,7 @@ + raise Refused("bounded journal history requires owner archival") + running = begin(state, invocation.pins, retry=retry) + dispatched = self._attempt(invocation, running, "run") +- self.journal.save( +- binding, +- running, +- invocation=dispatched, +- intent=OriginalIntent(binding, dispatched, adapter.source), +- ) ++ self.journal.save(binding, running, invocation=dispatched) + evidence = None + try: + with contained_output(): +@@ -711,12 +801,7 @@ + raise Refused("bounded journal history requires owner archival") + running = begin_rollback(state, invocation.pins) + dispatched = self._attempt(invocation, running, "rollback") +- self.journal.save( +- binding, +- running, +- invocation=dispatched, +- intent=OriginalIntent(binding, dispatched, adapter.source), +- ) ++ self.journal.save(binding, running, invocation=dispatched) + evidence = None + try: + with contained_output(): +@@ -738,7 +823,7 @@ + ) -> StepState: + """Explicit owner-native state inspection; never redispatches the mutation.""" + adapter = self._admission(descriptor, invocation, initial) +- if adapter.reconcile is None and adapter.reconcile_original is None: ++ if adapter.reconcile is None: + raise Refused("owner reconciliation adapter absent") + with self.journal.locked(): + binding = f"{invocation.step}:{invocation.target}" +@@ -750,6 +835,7 @@ + raise Refused("no uncertain mutation to reconcile") + if len(state.receipts) > MAX_HISTORY - 4: + raise Refused("bounded journal history requires owner archival") ++ original = self.journal.original_context(binding, invocation) + state = replace( + state, + receipts=( +@@ -757,21 +843,25 @@ + Receipt(len(state.receipts) + 1, Outcome.UNCERTAIN), + ), + ) +- original = ( +- self.journal.original_intent(binding, invocation, adapter.source) +- if adapter.reconcile_original is not None +- else None +- ) + dispatched = self._attempt(invocation, state, "reconcile") + self.journal.save(binding, state, invocation=dispatched) + with contained_output(): +- result = self._result( +- adapter, +- dispatched, +- adapter.reconcile_original(ReconcileContext(original, dispatched)) +- if original is not None +- else adapter.reconcile(dispatched), +- ) ++ result = adapter.reconcile(dispatched, original) ++ # Local context is only a lookup key. Require the independent ++ # owner verifier to bind its exact original/fresh attempt pair ++ # and context to the returned evidence before accepting a result. ++ if ( ++ type(result) is not OwnerResult ++ or self._verify_evidence( ++ f"original-attempt-context:{original.original.attempt_id}:" ++ f"{dispatched.attempt_id}", ++ original.digest, ++ result.evidence, ++ ) ++ is not True ++ ): ++ raise Refused("independent original context evidence absent") ++ result = self._result(adapter, dispatched, result) + if result.outcome not in ( + Outcome.NO_CHANGE, + Outcome.SUCCESS, +--- a/tests/test_case_run.py ++++ b/tests/test_case_run.py +@@ -89,7 +89,7 @@ + grant_revocation_evidence="grant-revoked", + ), + ), +- lambda inv: bound( ++ lambda inv, original: bound( + inv, + OwnerResult( + Outcome.NO_CHANGE, +@@ -113,6 +113,19 @@ + } + + def verifier(purpose, source, evidence): ++ if purpose.startswith("original-attempt-context:"): ++ # Existing fixture trust only; exact lookup context, not a real holder. ++ context = executor.journal.original_context( ++ "mint-secret:fixture-client", admitted[1] ++ ) ++ parts = purpose.split(":") ++ return ( ++ len(parts) == 3 ++ and parts[1] == context.original.attempt_id ++ and parts[2] != context.original.attempt_id ++ and source == context.digest ++ and evidence == "owner-receipt" ++ ) + if purpose.startswith(("session-revocation:", "grant-revocation:")): + scope, lane, operation, attempt = purpose.split(":") + return ( +@@ -629,72 +642,3 @@ + ) + with pytest.raises(Refused, match="secret-sensitivity"): + executor.admit(sources[0], source, sources[2], sources[3], **kwargs) +- +- +-def _lose_result(executor, args, calls): +- old = executor.adapters[args[0].adapter] +- +- def lost(inv): +- calls.append(inv) +- raise TimeoutError("lost") +- +- seen = [] +- +- def by_original(ctx): +- seen.append(ctx) +- return old.reconcile(ctx.attempt) +- +- executor.adapters[old.reference] = replace( +- old, invoke=lost, reconcile=None, reconcile_original=by_original +- ) +- assert executor.run(*args).last.outcome is Outcome.UNCERTAIN +- return seen +- +- +-def test_original_intent_survives_restart_separate_from_reconcile_attempt(rig): +- executor, args, calls, _, _ = rig +- seen = _lose_result(executor, args, calls) +- executor.journal = Journal(executor.journal.directory) # restart: fresh handle +- assert executor.reconcile(*args).last.outcome is Outcome.NO_CHANGE +- (ctx,) = seen +- original = ctx.original.invocation +- assert original.attempt_id == calls[0].attempt_id +- assert original.operation == "run" and ctx.attempt.operation == "reconcile" +- assert ctx.attempt.attempt_id != original.attempt_id +- assert original.pins == args[1].pins +- assert (original.principal, original.tenant, original.realm) == ( +- args[1].principal, +- args[1].tenant, +- args[1].realm, +- ) +- assert ctx.original.source == executor.adapters[args[0].adapter].source +- +- +-def test_missing_original_intent_refuses_and_stays_uncertain(rig): +- executor, args, calls, _, _ = rig +- seen = _lose_result(executor, args, calls) +- executor.journal.db.execute("DELETE FROM intents") +- with pytest.raises(Refused, match="original intent record missing"): +- executor.reconcile(*args) +- assert seen == [] +- binding = f"{args[1].step}:{args[1].target}" +- assert executor.journal.load(binding, args[2]).last.outcome is Outcome.UNCERTAIN +- +- +-@pytest.mark.parametrize( +- "change", [{"tenant": "other-tenant"}, {"realm": "other-realm"}, {"lane": "x"}] +-) +-def test_original_intent_mismatch_refuses(rig, change): +- executor, args, calls, _, _ = rig +- seen = _lose_result(executor, args, calls) +- with pytest.raises(Refused): +- executor.reconcile(args[0], replace(args[1], **change), args[2]) +- assert seen == [] +- +- +-def test_original_intent_source_mismatch_refuses(rig): +- executor, args, calls, _, _ = rig +- _lose_result(executor, args, calls) +- binding = f"{args[1].step}:{args[1].target}" +- with pytest.raises(Refused, match="source mismatch"): +- executor.journal.original_intent(binding, calls[0], "other-source") +--- /dev/null ++++ b/tests/test_case_original_context.py +@@ -0,0 +1,291 @@ ++"""Context persistence/refusal only, without a native holder or trusted JSON. ++ ++Existing fixture owner/issuer trust is synthetic. The new fresh-process trial ++proves context survives; missing independent proof must retain uncertainty. ++""" ++ ++from dataclasses import asdict, replace ++import json ++from pathlib import Path ++import sqlite3 ++import subprocess ++import sys ++import pytest ++from test_case_run import bound, rig as rig ++from warden.case_receipt_state import Outcome, Pins, Refused ++from warden.case_run import ( ++ Executor, ++ Invocation, ++ Journal, ++ OwnerResult, ++ invocation_fingerprint, ++) ++ ++ ++def lose(rig, hard=False): ++ executor, args, calls, sources, kwargs = rig ++ old = executor.adapters[args[0].adapter] ++ ++ def lost(inv): ++ calls.append(inv) ++ if hard: ++ raise KeyboardInterrupt ++ raise TimeoutError("owner output must not persist") ++ ++ executor.adapters[old.reference] = replace(old, invoke=lost) ++ if hard: ++ with pytest.raises(KeyboardInterrupt): ++ executor.run(*args) ++ else: ++ assert executor.run(*args).last.outcome is Outcome.UNCERTAIN ++ return executor, args, calls, sources, kwargs, old ++ ++ ++def test_context_committed_with_intent_before_effect_without_new_raw_fields(rig): ++ executor, args, calls, _, _ = rig ++ old = executor.adapters[args[0].adapter] ++ ++ def inspect(inv): ++ with sqlite3.connect(executor.journal.directory / "journal.sqlite") as other: ++ payload, fingerprint = other.execute( ++ "SELECT r.payload,c.invocation_digest FROM receipts r JOIN attempt_context_v1 c ON c.receipt_seq=r.seq ORDER BY r.seq DESC LIMIT 1" ++ ).fetchone() ++ row = json.loads(payload) ++ assert ( ++ row["attempt_id"] == inv.attempt_id ++ and row["receipts"][-1]["outcome"] == "running" ++ ) ++ assert fingerprint == invocation_fingerprint(inv) ++ assert inv.principal not in payload and inv.principal not in fingerprint ++ assert set(row) == { ++ "step_id", ++ "owner", ++ "pins", ++ "allowed_created", ++ "retry_safe", ++ "receipts", ++ "journal_schema", ++ "evidence_digest", ++ "session_revoked", ++ "session_revocation_digest", ++ "grant_revocation_digest", ++ "attempt_id", ++ "operation", ++ } ++ return old.invoke(inv) ++ ++ executor.adapters[old.reference] = replace(old, invoke=inspect) ++ assert executor.run(*args).last.outcome is Outcome.SUCCESS and len(calls) == 1 ++ ++ ++def test_fresh_process_recovers_identity_but_unproved_reconcile_stays_uncertain(rig): ++ executor, args, calls, sources, kwargs, old = lose(rig, hard=True) ++ original = calls[-1] ++ code = """import json,sys ++from pathlib import Path ++from warden.case_run import Journal,Invocation ++from warden.case_receipt_state import Pins ++obj=json.load(sys.stdin);obj['pins']=Pins(**obj['pins']);j=Journal(Path(sys.argv[1])) ++with j.locked(): ++ c=j.original_context('mint-secret:fixture-client',Invocation(**obj)) ++ print(json.dumps({'id':c.original.attempt_id,'op':c.original.operation,'evidence':c.evidence_digest})) ++""" ++ env = { ++ "PATH": "/usr/bin:/bin", ++ "PYTHONPATH": str(Path(__file__).parents[1] / "src"), ++ "PYTHONDONTWRITEBYTECODE": "1", ++ } ++ result = subprocess.run( ++ [sys.executable, "-B", "-c", code, str(executor.journal.directory)], ++ input=json.dumps(asdict(args[1])), ++ text=True, ++ capture_output=True, ++ env=env, ++ timeout=15, ++ check=True, ++ ) ++ recovered = json.loads(result.stdout) ++ assert recovered == {"id": original.attempt_id, "op": "run", "evidence": None} ++ seen = [] ++ ++ def reconcile(fresh, context): ++ seen.append((fresh, context)) ++ assert fresh.attempt_id != context.original.attempt_id == original.attempt_id ++ assert fresh.operation == "reconcile" and context.original.operation == "run" ++ return bound( ++ fresh, OwnerResult(Outcome.SUCCESS, "owner-receipt", ("case-policy",), True) ++ ) ++ ++ def reject_original(purpose, source, evidence): ++ return ( ++ False ++ if purpose.startswith("original-attempt-context:") ++ else executor.evidence_verifier(purpose, source, evidence) ++ ) ++ ++ reopened = Executor( ++ Journal(executor.journal.directory), ++ {old.reference: replace(old, reconcile=reconcile)}, ++ reject_original, ++ ) ++ admitted = reopened.admit(*sources, **kwargs) ++ with pytest.raises(Refused): ++ reopened.reconcile(*admitted) ++ assert len(seen) == len(calls) == 1 ++ assert ( ++ reopened.journal.load("mint-secret:fixture-client", admitted[2]).last.outcome ++ is Outcome.UNCERTAIN ++ ) ++ with pytest.raises(Refused): ++ reopened.run(*admitted, retry=True) ++ with pytest.raises(Refused): ++ reopened.rollback(*admitted) ++ ++ ++def test_legacy_context_not_backfilled_and_refused_before_callback(rig): ++ executor, args, calls, _, _, old = lose(rig) ++ executor.journal.db.execute("DROP TABLE attempt_context_v1") ++ executor.journal = Journal(executor.journal.directory) ++ seen = [] ++ executor.adapters[old.reference] = replace(old, reconcile=lambda *v: seen.append(v)) ++ with pytest.raises(Refused): ++ executor.reconcile(*args) ++ assert not seen and len(calls) == 1 ++ assert executor.journal.db.execute( ++ "SELECT COUNT(*) FROM attempt_context_v1" ++ ).fetchone() == (0,) ++ ++ ++@pytest.mark.parametrize( ++ "field,value", ++ [ ++ ("principal", "other"), ++ ("actor", "agent"), ++ ("lane", "other-lane"), ++ ("target", "other-target"), ++ ("owner", "other-owner"), ++ ("pins", Pins(*["sha256:" + "f" * 64] * 6)), ++ ], ++) ++def test_wrong_readmitted_original_context_refused(rig, field, value): ++ executor, args, _, _, _, _ = lose(rig) ++ with executor.journal.locked(), pytest.raises(Refused): ++ executor.journal.original_context( ++ "mint-secret:fixture-client", replace(args[1], **{field: value}) ++ ) ++ ++ ++def test_wrong_original_attempt_or_missing_row_link_refuses_callback(rig): ++ executor, args, _, _, _, old = lose(rig) ++ row = executor.journal.db.execute( ++ "SELECT seq,payload FROM receipts ORDER BY seq LIMIT 1" ++ ).fetchone() ++ payload = json.loads(row[1]) ++ payload["attempt_id"] = "attempt-wrong" ++ executor.journal.db.execute( ++ "UPDATE receipts SET payload=? WHERE seq=?", (json.dumps(payload), row[0]) ++ ) ++ seen = [] ++ executor.adapters[old.reference] = replace(old, reconcile=lambda *v: seen.append(v)) ++ with pytest.raises(Refused): ++ executor.reconcile(*args) ++ assert not seen ++ executor.journal.db.execute( ++ "DELETE FROM attempt_context_v1 WHERE receipt_seq=?", (row[0],) ++ ) ++ with pytest.raises(Refused): ++ executor.reconcile(*args) ++ assert not seen ++ ++ ++def test_context_write_failure_rolls_back_intent_and_prevents_effect(rig): ++ executor, args, calls, _, _ = rig ++ executor.journal.db.execute( ++ "CREATE TRIGGER fail_context BEFORE INSERT ON attempt_context_v1 BEGIN SELECT RAISE(ABORT,'fixture'); END" ++ ) ++ with pytest.raises(sqlite3.IntegrityError): ++ executor.run(*args) ++ assert not calls ++ assert executor.journal.db.execute("SELECT COUNT(*) FROM receipts").fetchone() == ( ++ 0, ++ ) ++ ++ ++@pytest.mark.parametrize( ++ "bad", ++ [ ++ {}, ++ object(), ++ Invocation( ++ "step", ++ "owner", ++ "target", ++ "human", ++ "actor", ++ "lane", ++ Pins(*["sha256:" + "1" * 64] * 6), ++ attempt_id={"owner": "payload"}, ++ operation="run", ++ ), ++ ], ++) ++def test_arbitrary_context_never_serialized_or_persisted(rig, bad): ++ executor, args, calls, _, _ = rig ++ with pytest.raises(Refused): ++ executor.journal.save("binding", args[2], invocation=bad) ++ assert not calls ++ assert executor.journal.db.execute("SELECT COUNT(*) FROM receipts").fetchone() == ( ++ 0, ++ ) ++ ++ ++def test_interrupted_reconcile_preserves_original_run_for_followup(rig): ++ executor, args, calls, _, _, old = lose(rig) ++ seen = [] ++ ++ def interrupted(fresh, original): ++ seen.append((fresh, original)) ++ raise KeyboardInterrupt ++ ++ executor.adapters[old.reference] = replace(old, reconcile=interrupted) ++ for _ in range(2): ++ with pytest.raises(KeyboardInterrupt): ++ executor.reconcile(*args) ++ assert seen[0][0].attempt_id != seen[1][0].attempt_id ++ assert seen[0][1].original == seen[1][1].original == calls[0] ++ assert seen[0][1].digest == seen[1][1].digest and len(calls) == 1 ++ ++ ++def test_prior_context_proof_cannot_authenticate_new_reconcile(rig): ++ executor, args, calls, _, _, _ = lose(rig) ++ old = executor.evidence_verifier ++ purposes = [] ++ ++ def verify(purpose, source, evidence): ++ if purpose.startswith("original-attempt-context:"): ++ purposes.append((purpose, source, evidence)) ++ return purpose.endswith(":attempt-from-another-reconcile") ++ return old(purpose, source, evidence) ++ ++ executor.evidence_verifier = verify ++ with pytest.raises(Refused): ++ executor.reconcile(*args) ++ assert len(purposes) == 1 and purposes[0][0].split(":")[1] == calls[0].attempt_id ++ assert purposes[0][0].split(":")[2] != calls[0].attempt_id ++ assert ( ++ executor.journal.load("mint-secret:fixture-client", args[2]).last.outcome ++ is Outcome.UNCERTAIN ++ ) ++ ++ ++def test_one_argument_legacy_callback_cannot_ignore_original_context(rig): ++ executor, args, _, _, _, old = lose(rig) ++ seen = [] ++ ++ def legacy(inv): ++ seen.append(inv) ++ ++ executor.adapters[old.reference] = replace(old, reconcile=legacy) ++ with pytest.raises(Refused): ++ executor.reconcile(*args) ++ assert not seen +--- a/docs/security-case-execution-kernel-v1.md ++++ b/docs/security-case-execution-kernel-v1.md +@@ -125,3 +125,52 @@ + by `check-evidence`, outside this admission path; Warden nevertheless pins and + copies it with the complete reviewed producer set. Missing or modified bytes in + any of the four modules refuse admission. The test covers every dependency. ++ ++ ++## Original-attempt context candidate — 2026-10-17 ++ ++Source-review candidate only; no native holder, adapter installation or execution ++permission is introduced. The local reconcile callback changes explicitly from ++`reconcile(fresh_invocation)` to ++`reconcile(fresh_invocation, original_attempt_context)`. Existing one-argument ++callbacks fail closed; no signature probing or silent fallback is used. Exact ++adapter source/descriptor admission remains required for a real integration. ++ ++Journal initialization adds `attempt_context_v1(receipt_seq, invocation_digest)`. ++The companion fingerprint is inserted in the same SQLite transaction as each ++invocation-bearing receipt, before dispatch. Existing v1 receipt JSON, IDs and ++source pins are unchanged. The fingerprint hashes only a fixed validated field ++projection: exact Invocation class, bounded step/owner/target/principal/lane/ ++attempt identifiers, closed actor/operation values and the six Pins digests. ++No arbitrary attributes, parameters, OwnerResult payload, evidence identifiers, ++credentials or raw callback output are added to this table. Original fields are ++reconstructed from current exact admission and the original intent's attempt ID; ++they must match that stored fingerprint. Legacy rows are never backfilled and ++missing/mismatched context refuses before an owner callback. ++ ++The original context identifies the original run intent row/digest and the latest ++same-attempt evidence/session/grant fingerprints. Recovery rows lacking invocation ++and later interrupted reconciliation attempts do not replace the original run. ++The fresh reconciliation attempt remains distinct, with its normal current owner ++and session/grant verification. Before any reconciled result can be accepted, ++independent evidence verification must also accept purpose ++`original-attempt-context::`, ++source equal to the exact OriginalAttemptContext digest, and the returned owner ++evidence reference. This is a new source interface, not existing native assent. ++Journal hashes are lookup/correspondence context, never independent authentication. ++ ++No actual independent original-attempt holder/readback or verifier is supplied. ++NetKingdom's registration adapter still has no reconcile callback and cannot undo ++a prior-process creation. Missing original owner proof stays uncertain, including ++when the local intent/fingerprint is intact; no native result is inferred from ++matching JSON or current target bytes. Ordinary exact pins continue to apply: ++a changed caller/session/run-sheet requires separately reviewed migration and ++cannot inherit old journal state. Interrupted rollback remains its existing ++rollback-uncertain owner gate, not a new supported automatic recovery path. ++ ++The focused tests reuse existing synthetic owner/issuer trust and explicitly do ++not provide a native JSON trust holder. They cover atomic context/intent visibility, ++a distinct interpreter with no original Adapter closure, refusal without independent ++original proof, legacy/missing/wrong-attempt/current-context refusal, interrupted ++reconciliation continuity, paired-proof replay refusal and transaction failure ++before effect. Existing reducer/owner/session/revocation checks remain required. diff --git a/docs/changes/netkingdom-target-2026-10-17/original-context-r1/verification.json b/docs/changes/netkingdom-target-2026-10-17/original-context-r1/verification.json new file mode 100644 index 00000000..2fe81cd2 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/original-context-r1/verification.json @@ -0,0 +1,53 @@ +{ + "observed_at": "2026-10-17T02:30:54.176715+00:00", + "candidate_only": true, + "checks": [ + { + "name": "focused-tests", + "argv": [ + "python3", + "-B", + "-m", + "pytest", + "-q", + "-c", + "pytest.ini", + "tests/test_case_run.py", + "tests/test_case_receipt_state.py", + "tests/test_case_original_context.py" + ], + "exit_code": 0, + "stdout": ".................................................................... [100%]\n68 passed in 2.06s\n", + "stderr": "" + }, + { + "name": "lint", + "argv": [ + "/home/worsch/ops-warden/.venv/bin/ruff", + "check", + "src/warden/case_run.py", + "tests/test_case_run.py", + "tests/test_case_original_context.py" + ], + "exit_code": 0, + "stdout": "All checks passed!\n", + "stderr": "" + }, + { + "name": "format", + "argv": [ + "/home/worsch/ops-warden/.venv/bin/ruff", + "format", + "--check", + "src/warden/case_run.py", + "tests/test_case_run.py", + "tests/test_case_original_context.py" + ], + "exit_code": 0, + "stdout": "3 files already formatted\n", + "stderr": "" + } + ], + "native_calls": false, + "independent_owner_holder_proven": false +} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/authoritative-notes-commit.stderr.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/authoritative-notes-commit.stderr.txt new file mode 100644 index 00000000..1cd42c0a --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/authoritative-notes-commit.stderr.txt @@ -0,0 +1 @@ +{"blocked_blob_ids": [], "scanned_blobs": 2, "scanner_sha256": "88f91962aa2f93ac6ab281d553b9e125f5197bbbce38f9f2437f7299c32e5509", "scanner_version": "8.30.1", "scope": "changed-staged-blobs", "status": "clean"} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/authoritative-notes-commit.stdout.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/authoritative-notes-commit.stdout.txt new file mode 100644 index 00000000..bb038029 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/authoritative-notes-commit.stdout.txt @@ -0,0 +1,2 @@ +[main 1513dad] Record published owner work and actual Forgejo consumer compatibility + 2 files changed, 59 insertions(+) diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/authoritative-notes-consistency.stderr.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/authoritative-notes-consistency.stderr.txt new file mode 100644 index 00000000..047afc64 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/authoritative-notes-consistency.stderr.txt @@ -0,0 +1 @@ +WARN: working-memory commit failed: Generated-only commits rejected: staged diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/authoritative-notes-consistency.stdout.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/authoritative-notes-consistency.stdout.txt new file mode 100644 index 00000000..32da2c36 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/authoritative-notes-consistency.stdout.txt @@ -0,0 +1,131 @@ +{ + "repo_slug": "the-custodian", + "repo_path": "/home/worsch/the-custodian", + "source_revision": "1513dad6528ab766a7631e88d9c04be4bc605f42", + "source_revision_reason": null, + "issues": [ + { + "severity": "WARN", + "check_id": "C-35", + "message": "Repo Manager warning: workplans/: repository uses more than one workplan prefix: ['CUST-WP', 'THE-WP']", + "file_path": "workplans/", + "db_id": "", + "file_value": "", + "db_value": "", + "fixable": false + }, + { + "severity": "WARN", + "check_id": "C-35", + "message": "Repo Manager contradictory: workplans/ADHOC-2026-08-25-retired.md: workplan id 'CUST-WP-ADHOC-2026-08-25-RETIRED' is not accepted by the canon kind registry", + "file_path": "workplans/ADHOC-2026-08-25-retired.md", + "db_id": "", + "file_value": "", + "db_value": "", + "fixable": false + }, + { + "severity": "WARN", + "check_id": "C-05", + "message": "Title drift in 'cust-wp-0010': file='Domain and Repository Goals' db='Workplan Lifecycle Documentation' (file wins)", + "file_path": "workplans/CUST-WP-0010b-domain-and-repo-goals.md", + "db_id": "def8455a-9de4-4891-a15a-5b09ca98ab1e", + "file_value": "Domain and Repository Goals", + "db_value": "Workplan Lifecycle Documentation", + "fixable": true + }, + { + "severity": "WARN", + "check_id": "C-20", + "message": "Workplan dependency target 'STATE-WP-0092' is not linked to State Hub", + "file_path": "workplans/CUST-WP-0072-fleet-flavor-and-depends-on-backfill.md", + "db_id": "", + "file_value": "STATE-WP-0092", + "db_value": "", + "fixable": false + }, + { + "severity": "WARN", + "check_id": "C-40", + "message": "blocker satisfied, task still wait: 'CUST-WP-0073-T05' in workplan 'CUST-WP-0073' \u2014 decision 1591daa1-6e85-4dfd-aadd-5a9fe1ef47fa is resolved", + "file_path": "workplans/CUST-WP-0073-agent-credential-separation.md#CUST-WP-0073-T05", + "db_id": "", + "file_value": "1591daa1-6e85-4dfd-aadd-5a9fe1ef47fa", + "db_value": "", + "fixable": false + }, + { + "severity": "WARN", + "check_id": "C-39", + "message": "Human wait task 'CUST-WP-0079-T06' in workplan 'CUST-WP-0079' has needs_human: true without decision_id \u2014 unrouted human gate", + "file_path": "workplans/CUST-WP-0079-deterministic-security-flow.md#CUST-WP-0079-T06", + "db_id": "", + "file_value": "needs_human: true", + "db_value": "", + "fixable": false + }, + { + "severity": "INFO", + "check_id": "C-08", + "message": "Closed DB workstream 'cust-wp-0010b' (id=416ff571\u2026, status=finished) has no backing workplan file", + "file_path": "", + "db_id": "416ff571-18cf-5cb2-9c8b-836f68a301b3", + "file_value": "", + "db_value": "", + "fixable": false + }, + { + "severity": "INFO", + "check_id": "C-08", + "message": "Retired DB workstream 'interactive-the-custodian@retired-20260828' (id=370c2481\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work", + "file_path": "", + "db_id": "370c2481-6806-41eb-a917-f8874f03184f", + "file_value": "", + "db_value": "", + "fixable": false + }, + { + "severity": "INFO", + "check_id": "C-08", + "message": "Retired DB workstream 'adhoc-2026-05-02@retired-20260827' (id=3f54ce9c\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work", + "file_path": "", + "db_id": "3f54ce9c-1f95-42de-894f-0f81a52ba2e8", + "file_value": "", + "db_value": "", + "fixable": false + }, + { + "severity": "INFO", + "check_id": "C-08", + "message": "Retired DB workstream 'the-custodian-adhoc-2026-07-02@retired-20260827' (id=5c53733b\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work", + "file_path": "", + "db_id": "5c53733b-c077-4a93-be66-9c3af8f9b6fd", + "file_value": "", + "db_value": "", + "fixable": false + }, + { + "severity": "WARN", + "check_id": "C-26", + "message": "Workplan id 'THE-WP-0001' uses prefix 'THE-WP' but repo canonical prefix is 'CUST-WP' \u2014 new plans must conform", + "file_path": "workplans/THE-WP-0001-federation-interface.md", + "db_id": "", + "file_value": "THE-WP-0001", + "db_value": "CUST-WP", + "fixable": false + } + ], + "fixes_applied": [ + "bindings: synced 89/89", + "C-17 cleared: pushed 2 backlogged commit(s)", + "C-05 fixed: workstream def8455a\u2026 title \u2192 'Domain and Repository Goals'", + "push: pushed" + ], + "summary": { + "fail": 0, + "automation_error": 0, + "warn": 7, + "info": 4 + }, + "result": "warn" +} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/authoritative-notes-sync.stderr.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/authoritative-notes-sync.stderr.txt new file mode 100644 index 00000000..e69de29b diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/authoritative-notes-sync.stdout.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/authoritative-notes-sync.stdout.txt new file mode 100644 index 00000000..f9df83d8 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/authoritative-notes-sync.stdout.txt @@ -0,0 +1,292 @@ +{ + "ok": true, + "status": "applied", + "repo_slug": "the-custodian", + "commit": "1513dad6528ab766a7631e88d9c04be4bc605f42", + "requests": 2, + "elapsed_ms": 22641.1, + "git": { + "upstream": "origin/main", + "behind": 0, + "ahead": 0 + }, + "identifiers": { + "schema": "repo-manager.identifier-assignment.v1", + "ok": true, + "executed": true, + "repo": "the-custodian", + "namespace": "helixforge", + "assignments": [], + "historical_invalid_identifiers": [ + { + "kind": "workplan", + "id": "CUST-WP-ADHOC-2026-08-25-RETIRED", + "source": "workplans/ADHOC-2026-08-25-retired.md" + } + ], + "historical_identity_collisions": [], + "files_changed": [] + }, + "receipt": { + "schema": "state-hub.repository-projection-reconcile.v1", + "instance_role": "primary", + "instance_label": "railiance01", + "expected_commit": "1513dad6528ab766a7631e88d9c04be4bc605f42", + "derived_commit": "1513dad6528ab766a7631e88d9c04be4bc605f42", + "outcome": { + "schema": "state-hub.projection-reset.v1", + "repo_slug": "the-custodian", + "commit": "1513dad6528ab766a7631e88d9c04be4bc605f42", + "status": "applied", + "counts": { + "created": 0, + "updated": 88, + "retired": 0, + "refused": 0, + "released": 0, + "created_tasks": 0, + "updated_tasks": 0, + "cancelled_tasks": 0, + "created_edges": 0, + "removed_edges": 0, + "unresolved_edges": 0, + "external_edges": 13 + }, + "created": [], + "updated": [ + "CUST-WP-0000", + "CUST-WP-0000b", + "CUST-WP-0000c", + "CUST-WP-0001", + "CUST-WP-0002", + "CUST-WP-0004", + "CUST-WP-0005", + "CUST-WP-0006", + "CUST-WP-0007", + "CUST-WP-0008", + "CUST-WP-0009", + "CUST-WP-0010", + "CUST-WP-0010b", + "CUST-WP-0013", + "CUST-WP-0014", + "CUST-WP-0015", + "CUST-WP-0016", + "CUST-WP-0017", + "CUST-WP-0017-LEGACY", + "CUST-WP-0018", + "CUST-WP-0019", + "CUST-WP-0020", + "CUST-WP-0021", + "CUST-WP-0022", + "CUST-WP-0023", + "CUST-WP-0024", + "CUST-WP-0025", + "CUST-WP-0026", + "CUST-WP-0027", + "CUST-WP-0028", + "CUST-WP-0029", + "CUST-WP-0030", + "CUST-WP-0031", + "CUST-WP-0032", + "CUST-WP-0033", + "CUST-WP-0034", + "CUST-WP-0035", + "CUST-WP-0036", + "CUST-WP-0037", + "CUST-WP-0039", + "CUST-WP-0040", + "CUST-WP-0041", + "CUST-WP-0043", + "CUST-WP-0044", + "CUST-WP-0045", + "CUST-WP-0046", + "CUST-WP-0047", + "CUST-WP-0048", + "CUST-WP-0049", + "CUST-WP-0050", + "CUST-WP-0051", + "CUST-WP-0052", + "CUST-WP-0053", + "CUST-WP-0053-LEGACY", + "CUST-WP-0054", + "CUST-WP-0055", + "CUST-WP-0056", + "CUST-WP-0057", + "CUST-WP-0058", + "CUST-WP-0059", + "CUST-WP-0060", + "CUST-WP-0061", + "CUST-WP-0062", + "CUST-WP-0063", + "CUST-WP-0064", + "CUST-WP-0065", + "CUST-WP-0066", + "CUST-WP-0067", + "CUST-WP-0068", + "CUST-WP-0069", + "CUST-WP-0070", + "CUST-WP-0071", + "CUST-WP-0072", + "CUST-WP-0073", + "CUST-WP-0074", + "CUST-WP-0075", + "CUST-WP-0076", + "CUST-WP-0077", + "CUST-WP-0078", + "CUST-WP-0079", + "CUST-WP-0080", + "CUST-WP-0081", + "CUST-WP-ADHOC-2026-03-29", + "CUST-WP-ADHOC-2026-05-02", + "CUST-WP-ADHOC-2026-07-02", + "CUST-WP-ADHOC-2026-08-25", + "CUST-WP-ADHOC-2026-09-06", + "THE-WP-0001" + ], + "retired": [], + "released": [], + "created_tasks": [], + "updated_tasks": [], + "cancelled_tasks": [], + "created_edges": [], + "removed_edges": [], + "unresolved_edges": [], + "external_edges": [ + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T05", + "target": "CUST-WP-0071-T04", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "20ddd4d7-d85d-5b95-bb0a-7b0ca8af76ca", + "to_workplan_id": null, + "to_task_id": "944f98e2-7e42-5894-925b-752423f3a1cc" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T03", + "target": "CUST-WP-0071-T01", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495", + "to_workplan_id": null, + "to_task_id": "4ae8eb8d-f8c5-5256-ae50-c323cfd73d7a" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T03", + "target": "CUST-WP-0071-T02", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495", + "to_workplan_id": null, + "to_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T02", + "target": "CUST-WP-0071-T01", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68", + "to_workplan_id": null, + "to_task_id": "4ae8eb8d-f8c5-5256-ae50-c323cfd73d7a" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T02", + "target": "RAPPS-WP-0014-T03", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68", + "to_workplan_id": null, + "to_task_id": "dd069c6d-fcc1-5bac-b233-976f2f0d5cd1" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T04", + "target": "CUST-WP-0071-T03", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "944f98e2-7e42-5894-925b-752423f3a1cc", + "to_workplan_id": null, + "to_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495" + }, + { + "workplan": "CUST-WP-0073", + "from": "CUST-WP-0073-T02", + "target": "GLAS-WP-0012", + "relationship_type": "blocks", + "from_workplan_id": "a98a9f34-83b4-5c8c-8107-e05f7806d50d", + "from_task_id": "4b88b0b7-dc7e-5612-aa5d-1a08f0530c35", + "to_workplan_id": "170bf1ae-337f-5553-8d1e-03b07100e08f", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0073", + "from": "CUST-WP-0073-T04", + "target": "CUST-WP-0073-T02", + "relationship_type": "starts_after", + "from_workplan_id": "a98a9f34-83b4-5c8c-8107-e05f7806d50d", + "from_task_id": "90725511-4e31-549f-b567-47feff1a9ca4", + "to_workplan_id": null, + "to_task_id": "4b88b0b7-dc7e-5612-aa5d-1a08f0530c35" + }, + { + "workplan": "CUST-WP-0079", + "from": "CUST-WP-0079-T03", + "target": "ACTIVITY-WP-0047", + "relationship_type": "blocks", + "from_workplan_id": "ab288f92-d364-5c24-9362-aee451f266c3", + "from_task_id": "1be0569c-221d-5925-a0ff-fd2af88e52b1", + "to_workplan_id": "ee97869b-dca2-54c9-aa18-0b479c244fb3", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0079", + "from": "CUST-WP-0079-T04", + "target": "PNEX-WP-0006", + "relationship_type": "blocks", + "from_workplan_id": "ab288f92-d364-5c24-9362-aee451f266c3", + "from_task_id": "5dd52156-09a8-5781-b288-99ae822f59a6", + "to_workplan_id": "774c5037-a3d0-5e65-893c-d18970acd66a", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T04", + "target": "CUST-WP-0080-T03", + "relationship_type": "starts_after", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "82378b0f-7004-5c2f-9683-b356a1227576", + "to_workplan_id": null, + "to_task_id": "87637402-02f1-57c1-8fbc-4141598af8e3" + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T05", + "target": "RPF-WP-0056", + "relationship_type": "blocks", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "ed8b909a-23bf-5e5f-b600-e477fbae136b", + "to_workplan_id": "31933d08-c877-5fda-aff9-6220c3705c92", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T05", + "target": "RAPP-PLAYWRIGHT-WP-0004", + "relationship_type": "blocks", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "ed8b909a-23bf-5e5f-b600-e477fbae136b", + "to_workplan_id": "f9280c40-201e-59b5-a6f0-1aace8e0e2e2", + "to_task_id": null + } + ], + "refused": [], + "notes": [ + "Preserved bound historical row and task UUIDs: CUST-WP-ADHOC-2026-08-25-RETIRED" + ] + } + } +} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-1-commit.stderr.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-1-commit.stderr.txt new file mode 100644 index 00000000..f7b1298d --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-1-commit.stderr.txt @@ -0,0 +1 @@ +{"blocked_blob_ids": [], "scanned_blobs": 18, "scanner_sha256": "88f91962aa2f93ac6ab281d553b9e125f5197bbbce38f9f2437f7299c32e5509", "scanner_version": "8.30.1", "scope": "changed-staged-blobs", "status": "clean"} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-1-commit.stdout.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-1-commit.stdout.txt new file mode 100644 index 00000000..c73b8fdc --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-1-commit.stdout.txt @@ -0,0 +1,20 @@ +[main 518369d] Record reviewed owner implementation and consumer compatibility (1) + 18 files changed, 1990 insertions(+) + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/README.md + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/SHA256SUMS + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/baseline-reproduction.log + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/candidate/credential-grants/catalog.yaml + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/candidate/scripts/keycape_client_secret_generate.py + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/candidate/tests/test_credential_grants.py + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/candidate/tests/test_keycape_client_secret_generate.py + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/manifest.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/patch-check.log + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/platform-source.patch + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/reproduce-baseline.py + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/run-tests.sh + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/tests.log + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/workplan-source-draft.md + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-broker-review-r1/baseline-reproduction.log + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-broker-review-r1/independent-probes.py + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-broker-review-r1/review.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/apply_source.py diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-1-sync.stderr.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-1-sync.stderr.txt new file mode 100644 index 00000000..e69de29b diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-1-sync.stdout.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-1-sync.stdout.txt new file mode 100644 index 00000000..76d3c74b --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-1-sync.stdout.txt @@ -0,0 +1,8 @@ +{ + "ok": false, + "status": "pending_commit", + "error": "authoritative workplan files have uncommitted changes", + "dirty_paths": [ + "workplans/CUST-WP-0080-netkingdom-security-blueprint-and-gap-closure.md" + ] +} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-3-commit.stderr.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-3-commit.stderr.txt new file mode 100644 index 00000000..1f31d5eb --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-3-commit.stderr.txt @@ -0,0 +1 @@ +{"blocked_blob_ids": [], "scanned_blobs": 17, "scanner_sha256": "88f91962aa2f93ac6ab281d553b9e125f5197bbbce38f9f2437f7299c32e5509", "scanner_version": "8.30.1", "scope": "changed-staged-blobs", "status": "clean"} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-3-commit.stdout.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-3-commit.stdout.txt new file mode 100644 index 00000000..d3573fec --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-3-commit.stdout.txt @@ -0,0 +1,20 @@ +[main 6548540] Record reviewed owner implementation and consumer compatibility (3) + 18 files changed, 1866 insertions(+) + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/OWNER-CHANGE.md + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/README.md + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/SHA256SUMS.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/apps-source.patch + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/postimages/helm/forgejo-registry-values.yaml + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/postimages/helm/forgejo-values.yaml + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/preimages/helm/forgejo-registry-values.yaml + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/consistency.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/consistency.stderr.txt + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/identifier-assignment.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/identifier-preview.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/projection.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/projection.stderr.txt + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/publication-commit.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/publication-inputs.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/source-application.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/verified-task-bindings.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/workplan.md diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-3-sync.stderr.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-3-sync.stderr.txt new file mode 100644 index 00000000..e69de29b diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-3-sync.stdout.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-3-sync.stdout.txt new file mode 100644 index 00000000..1e90e0e8 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-3-sync.stdout.txt @@ -0,0 +1,292 @@ +{ + "ok": true, + "status": "applied", + "repo_slug": "the-custodian", + "commit": "6548540fd46c7fcd365f399516a5d36e38d1e7fd", + "requests": 2, + "elapsed_ms": 27751.2, + "git": { + "upstream": "origin/main", + "behind": 0, + "ahead": 0 + }, + "identifiers": { + "schema": "repo-manager.identifier-assignment.v1", + "ok": true, + "executed": true, + "repo": "the-custodian", + "namespace": "helixforge", + "assignments": [], + "historical_invalid_identifiers": [ + { + "kind": "workplan", + "id": "CUST-WP-ADHOC-2026-08-25-RETIRED", + "source": "workplans/ADHOC-2026-08-25-retired.md" + } + ], + "historical_identity_collisions": [], + "files_changed": [] + }, + "receipt": { + "schema": "state-hub.repository-projection-reconcile.v1", + "instance_role": "primary", + "instance_label": "railiance01", + "expected_commit": "6548540fd46c7fcd365f399516a5d36e38d1e7fd", + "derived_commit": "6548540fd46c7fcd365f399516a5d36e38d1e7fd", + "outcome": { + "schema": "state-hub.projection-reset.v1", + "repo_slug": "the-custodian", + "commit": "6548540fd46c7fcd365f399516a5d36e38d1e7fd", + "status": "applied", + "counts": { + "created": 0, + "updated": 88, + "retired": 0, + "refused": 0, + "released": 0, + "created_tasks": 0, + "updated_tasks": 0, + "cancelled_tasks": 0, + "created_edges": 0, + "removed_edges": 0, + "unresolved_edges": 0, + "external_edges": 13 + }, + "created": [], + "updated": [ + "CUST-WP-0000", + "CUST-WP-0000b", + "CUST-WP-0000c", + "CUST-WP-0001", + "CUST-WP-0002", + "CUST-WP-0004", + "CUST-WP-0005", + "CUST-WP-0006", + "CUST-WP-0007", + "CUST-WP-0008", + "CUST-WP-0009", + "CUST-WP-0010", + "CUST-WP-0010b", + "CUST-WP-0013", + "CUST-WP-0014", + "CUST-WP-0015", + "CUST-WP-0016", + "CUST-WP-0017", + "CUST-WP-0017-LEGACY", + "CUST-WP-0018", + "CUST-WP-0019", + "CUST-WP-0020", + "CUST-WP-0021", + "CUST-WP-0022", + "CUST-WP-0023", + "CUST-WP-0024", + "CUST-WP-0025", + "CUST-WP-0026", + "CUST-WP-0027", + "CUST-WP-0028", + "CUST-WP-0029", + "CUST-WP-0030", + "CUST-WP-0031", + "CUST-WP-0032", + "CUST-WP-0033", + "CUST-WP-0034", + "CUST-WP-0035", + "CUST-WP-0036", + "CUST-WP-0037", + "CUST-WP-0039", + "CUST-WP-0040", + "CUST-WP-0041", + "CUST-WP-0043", + "CUST-WP-0044", + "CUST-WP-0045", + "CUST-WP-0046", + "CUST-WP-0047", + "CUST-WP-0048", + "CUST-WP-0049", + "CUST-WP-0050", + "CUST-WP-0051", + "CUST-WP-0052", + "CUST-WP-0053", + "CUST-WP-0053-LEGACY", + "CUST-WP-0054", + "CUST-WP-0055", + "CUST-WP-0056", + "CUST-WP-0057", + "CUST-WP-0058", + "CUST-WP-0059", + "CUST-WP-0060", + "CUST-WP-0061", + "CUST-WP-0062", + "CUST-WP-0063", + "CUST-WP-0064", + "CUST-WP-0065", + "CUST-WP-0066", + "CUST-WP-0067", + "CUST-WP-0068", + "CUST-WP-0069", + "CUST-WP-0070", + "CUST-WP-0071", + "CUST-WP-0072", + "CUST-WP-0073", + "CUST-WP-0074", + "CUST-WP-0075", + "CUST-WP-0076", + "CUST-WP-0077", + "CUST-WP-0078", + "CUST-WP-0079", + "CUST-WP-0080", + "CUST-WP-0081", + "CUST-WP-ADHOC-2026-03-29", + "CUST-WP-ADHOC-2026-05-02", + "CUST-WP-ADHOC-2026-07-02", + "CUST-WP-ADHOC-2026-08-25", + "CUST-WP-ADHOC-2026-09-06", + "THE-WP-0001" + ], + "retired": [], + "released": [], + "created_tasks": [], + "updated_tasks": [], + "cancelled_tasks": [], + "created_edges": [], + "removed_edges": [], + "unresolved_edges": [], + "external_edges": [ + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T05", + "target": "CUST-WP-0071-T04", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "20ddd4d7-d85d-5b95-bb0a-7b0ca8af76ca", + "to_workplan_id": null, + "to_task_id": "944f98e2-7e42-5894-925b-752423f3a1cc" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T03", + "target": "CUST-WP-0071-T01", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495", + "to_workplan_id": null, + "to_task_id": "4ae8eb8d-f8c5-5256-ae50-c323cfd73d7a" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T03", + "target": "CUST-WP-0071-T02", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495", + "to_workplan_id": null, + "to_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T02", + "target": "CUST-WP-0071-T01", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68", + "to_workplan_id": null, + "to_task_id": "4ae8eb8d-f8c5-5256-ae50-c323cfd73d7a" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T02", + "target": "RAPPS-WP-0014-T03", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68", + "to_workplan_id": null, + "to_task_id": "dd069c6d-fcc1-5bac-b233-976f2f0d5cd1" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T04", + "target": "CUST-WP-0071-T03", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "944f98e2-7e42-5894-925b-752423f3a1cc", + "to_workplan_id": null, + "to_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495" + }, + { + "workplan": "CUST-WP-0073", + "from": "CUST-WP-0073-T02", + "target": "GLAS-WP-0012", + "relationship_type": "blocks", + "from_workplan_id": "a98a9f34-83b4-5c8c-8107-e05f7806d50d", + "from_task_id": "4b88b0b7-dc7e-5612-aa5d-1a08f0530c35", + "to_workplan_id": "170bf1ae-337f-5553-8d1e-03b07100e08f", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0073", + "from": "CUST-WP-0073-T04", + "target": "CUST-WP-0073-T02", + "relationship_type": "starts_after", + "from_workplan_id": "a98a9f34-83b4-5c8c-8107-e05f7806d50d", + "from_task_id": "90725511-4e31-549f-b567-47feff1a9ca4", + "to_workplan_id": null, + "to_task_id": "4b88b0b7-dc7e-5612-aa5d-1a08f0530c35" + }, + { + "workplan": "CUST-WP-0079", + "from": "CUST-WP-0079-T03", + "target": "ACTIVITY-WP-0047", + "relationship_type": "blocks", + "from_workplan_id": "ab288f92-d364-5c24-9362-aee451f266c3", + "from_task_id": "1be0569c-221d-5925-a0ff-fd2af88e52b1", + "to_workplan_id": "ee97869b-dca2-54c9-aa18-0b479c244fb3", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0079", + "from": "CUST-WP-0079-T04", + "target": "PNEX-WP-0006", + "relationship_type": "blocks", + "from_workplan_id": "ab288f92-d364-5c24-9362-aee451f266c3", + "from_task_id": "5dd52156-09a8-5781-b288-99ae822f59a6", + "to_workplan_id": "774c5037-a3d0-5e65-893c-d18970acd66a", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T04", + "target": "CUST-WP-0080-T03", + "relationship_type": "starts_after", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "82378b0f-7004-5c2f-9683-b356a1227576", + "to_workplan_id": null, + "to_task_id": "87637402-02f1-57c1-8fbc-4141598af8e3" + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T05", + "target": "RPF-WP-0056", + "relationship_type": "blocks", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "ed8b909a-23bf-5e5f-b600-e477fbae136b", + "to_workplan_id": "31933d08-c877-5fda-aff9-6220c3705c92", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T05", + "target": "RAPP-PLAYWRIGHT-WP-0004", + "relationship_type": "blocks", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "ed8b909a-23bf-5e5f-b600-e477fbae136b", + "to_workplan_id": "f9280c40-201e-59b5-a6f0-1aace8e0e2e2", + "to_task_id": null + } + ], + "refused": [], + "notes": [ + "Preserved bound historical row and task UUIDs: CUST-WP-ADHOC-2026-08-25-RETIRED" + ] + } + } +} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-4-commit.stderr.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-4-commit.stderr.txt new file mode 100644 index 00000000..f7b1298d --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-4-commit.stderr.txt @@ -0,0 +1 @@ +{"blocked_blob_ids": [], "scanned_blobs": 18, "scanner_sha256": "88f91962aa2f93ac6ab281d553b9e125f5197bbbce38f9f2437f7299c32e5509", "scanner_version": "8.30.1", "scope": "changed-staged-blobs", "status": "clean"} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-4-commit.stdout.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-4-commit.stdout.txt new file mode 100644 index 00000000..11c34943 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-4-commit.stdout.txt @@ -0,0 +1,20 @@ +[main 1467044] Record reviewed owner implementation and consumer compatibility (4) + 18 files changed, 3980 insertions(+) + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/preimages/helm/forgejo-values.yaml + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-inventory.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/consumer-delivery.yaml + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/forgejo-case-1.3.yaml + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/AGENTS.md + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/INTENT.md + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/cmd/keycape/main.go + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/internal/config/config.go + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/internal/domain/model.go + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/internal/server/oidc/token.go + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/internal/server/oidc/userinfo.go + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/type-1.3.yaml + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/test-output.txt + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/tests/test_forgejo_chart_projection.py + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/tools/forgejo_chart_projection.py + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/Chart.yaml + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/templates/_helpers.tpl + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/templates/gitea/deployment.yaml diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-4-sync.stderr.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-4-sync.stderr.txt new file mode 100644 index 00000000..e69de29b diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-4-sync.stdout.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-4-sync.stdout.txt new file mode 100644 index 00000000..1453bdaa --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-4-sync.stdout.txt @@ -0,0 +1,292 @@ +{ + "ok": true, + "status": "applied", + "repo_slug": "the-custodian", + "commit": "14670441cd567621ca86e466b113944ec8363798", + "requests": 2, + "elapsed_ms": 36313.1, + "git": { + "upstream": "origin/main", + "behind": 0, + "ahead": 0 + }, + "identifiers": { + "schema": "repo-manager.identifier-assignment.v1", + "ok": true, + "executed": true, + "repo": "the-custodian", + "namespace": "helixforge", + "assignments": [], + "historical_invalid_identifiers": [ + { + "kind": "workplan", + "id": "CUST-WP-ADHOC-2026-08-25-RETIRED", + "source": "workplans/ADHOC-2026-08-25-retired.md" + } + ], + "historical_identity_collisions": [], + "files_changed": [] + }, + "receipt": { + "schema": "state-hub.repository-projection-reconcile.v1", + "instance_role": "primary", + "instance_label": "railiance01", + "expected_commit": "14670441cd567621ca86e466b113944ec8363798", + "derived_commit": "14670441cd567621ca86e466b113944ec8363798", + "outcome": { + "schema": "state-hub.projection-reset.v1", + "repo_slug": "the-custodian", + "commit": "14670441cd567621ca86e466b113944ec8363798", + "status": "applied", + "counts": { + "created": 0, + "updated": 88, + "retired": 0, + "refused": 0, + "released": 0, + "created_tasks": 0, + "updated_tasks": 0, + "cancelled_tasks": 0, + "created_edges": 0, + "removed_edges": 0, + "unresolved_edges": 0, + "external_edges": 13 + }, + "created": [], + "updated": [ + "CUST-WP-0000", + "CUST-WP-0000b", + "CUST-WP-0000c", + "CUST-WP-0001", + "CUST-WP-0002", + "CUST-WP-0004", + "CUST-WP-0005", + "CUST-WP-0006", + "CUST-WP-0007", + "CUST-WP-0008", + "CUST-WP-0009", + "CUST-WP-0010", + "CUST-WP-0010b", + "CUST-WP-0013", + "CUST-WP-0014", + "CUST-WP-0015", + "CUST-WP-0016", + "CUST-WP-0017", + "CUST-WP-0017-LEGACY", + "CUST-WP-0018", + "CUST-WP-0019", + "CUST-WP-0020", + "CUST-WP-0021", + "CUST-WP-0022", + "CUST-WP-0023", + "CUST-WP-0024", + "CUST-WP-0025", + "CUST-WP-0026", + "CUST-WP-0027", + "CUST-WP-0028", + "CUST-WP-0029", + "CUST-WP-0030", + "CUST-WP-0031", + "CUST-WP-0032", + "CUST-WP-0033", + "CUST-WP-0034", + "CUST-WP-0035", + "CUST-WP-0036", + "CUST-WP-0037", + "CUST-WP-0039", + "CUST-WP-0040", + "CUST-WP-0041", + "CUST-WP-0043", + "CUST-WP-0044", + "CUST-WP-0045", + "CUST-WP-0046", + "CUST-WP-0047", + "CUST-WP-0048", + "CUST-WP-0049", + "CUST-WP-0050", + "CUST-WP-0051", + "CUST-WP-0052", + "CUST-WP-0053", + "CUST-WP-0053-LEGACY", + "CUST-WP-0054", + "CUST-WP-0055", + "CUST-WP-0056", + "CUST-WP-0057", + "CUST-WP-0058", + "CUST-WP-0059", + "CUST-WP-0060", + "CUST-WP-0061", + "CUST-WP-0062", + "CUST-WP-0063", + "CUST-WP-0064", + "CUST-WP-0065", + "CUST-WP-0066", + "CUST-WP-0067", + "CUST-WP-0068", + "CUST-WP-0069", + "CUST-WP-0070", + "CUST-WP-0071", + "CUST-WP-0072", + "CUST-WP-0073", + "CUST-WP-0074", + "CUST-WP-0075", + "CUST-WP-0076", + "CUST-WP-0077", + "CUST-WP-0078", + "CUST-WP-0079", + "CUST-WP-0080", + "CUST-WP-0081", + "CUST-WP-ADHOC-2026-03-29", + "CUST-WP-ADHOC-2026-05-02", + "CUST-WP-ADHOC-2026-07-02", + "CUST-WP-ADHOC-2026-08-25", + "CUST-WP-ADHOC-2026-09-06", + "THE-WP-0001" + ], + "retired": [], + "released": [], + "created_tasks": [], + "updated_tasks": [], + "cancelled_tasks": [], + "created_edges": [], + "removed_edges": [], + "unresolved_edges": [], + "external_edges": [ + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T05", + "target": "CUST-WP-0071-T04", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "20ddd4d7-d85d-5b95-bb0a-7b0ca8af76ca", + "to_workplan_id": null, + "to_task_id": "944f98e2-7e42-5894-925b-752423f3a1cc" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T03", + "target": "CUST-WP-0071-T01", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495", + "to_workplan_id": null, + "to_task_id": "4ae8eb8d-f8c5-5256-ae50-c323cfd73d7a" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T03", + "target": "CUST-WP-0071-T02", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495", + "to_workplan_id": null, + "to_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T02", + "target": "CUST-WP-0071-T01", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68", + "to_workplan_id": null, + "to_task_id": "4ae8eb8d-f8c5-5256-ae50-c323cfd73d7a" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T02", + "target": "RAPPS-WP-0014-T03", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68", + "to_workplan_id": null, + "to_task_id": "dd069c6d-fcc1-5bac-b233-976f2f0d5cd1" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T04", + "target": "CUST-WP-0071-T03", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "944f98e2-7e42-5894-925b-752423f3a1cc", + "to_workplan_id": null, + "to_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495" + }, + { + "workplan": "CUST-WP-0073", + "from": "CUST-WP-0073-T02", + "target": "GLAS-WP-0012", + "relationship_type": "blocks", + "from_workplan_id": "a98a9f34-83b4-5c8c-8107-e05f7806d50d", + "from_task_id": "4b88b0b7-dc7e-5612-aa5d-1a08f0530c35", + "to_workplan_id": "170bf1ae-337f-5553-8d1e-03b07100e08f", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0073", + "from": "CUST-WP-0073-T04", + "target": "CUST-WP-0073-T02", + "relationship_type": "starts_after", + "from_workplan_id": "a98a9f34-83b4-5c8c-8107-e05f7806d50d", + "from_task_id": "90725511-4e31-549f-b567-47feff1a9ca4", + "to_workplan_id": null, + "to_task_id": "4b88b0b7-dc7e-5612-aa5d-1a08f0530c35" + }, + { + "workplan": "CUST-WP-0079", + "from": "CUST-WP-0079-T03", + "target": "ACTIVITY-WP-0047", + "relationship_type": "blocks", + "from_workplan_id": "ab288f92-d364-5c24-9362-aee451f266c3", + "from_task_id": "1be0569c-221d-5925-a0ff-fd2af88e52b1", + "to_workplan_id": "ee97869b-dca2-54c9-aa18-0b479c244fb3", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0079", + "from": "CUST-WP-0079-T04", + "target": "PNEX-WP-0006", + "relationship_type": "blocks", + "from_workplan_id": "ab288f92-d364-5c24-9362-aee451f266c3", + "from_task_id": "5dd52156-09a8-5781-b288-99ae822f59a6", + "to_workplan_id": "774c5037-a3d0-5e65-893c-d18970acd66a", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T04", + "target": "CUST-WP-0080-T03", + "relationship_type": "starts_after", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "82378b0f-7004-5c2f-9683-b356a1227576", + "to_workplan_id": null, + "to_task_id": "87637402-02f1-57c1-8fbc-4141598af8e3" + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T05", + "target": "RPF-WP-0056", + "relationship_type": "blocks", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "ed8b909a-23bf-5e5f-b600-e477fbae136b", + "to_workplan_id": "31933d08-c877-5fda-aff9-6220c3705c92", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T05", + "target": "RAPP-PLAYWRIGHT-WP-0004", + "relationship_type": "blocks", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "ed8b909a-23bf-5e5f-b600-e477fbae136b", + "to_workplan_id": "f9280c40-201e-59b5-a6f0-1aace8e0e2e2", + "to_task_id": null + } + ], + "refused": [], + "notes": [ + "Preserved bound historical row and task UUIDs: CUST-WP-ADHOC-2026-08-25-RETIRED" + ] + } + } +} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-5-commit.stderr.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-5-commit.stderr.txt new file mode 100644 index 00000000..180a988a --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-5-commit.stderr.txt @@ -0,0 +1 @@ +{"blocked_blob_ids": [], "scanned_blobs": 8, "scanner_sha256": "88f91962aa2f93ac6ab281d553b9e125f5197bbbce38f9f2437f7299c32e5509", "scanner_version": "8.30.1", "scope": "changed-staged-blobs", "status": "clean"} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-5-commit.stdout.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-5-commit.stdout.txt new file mode 100644 index 00000000..3244d8f7 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-5-commit.stdout.txt @@ -0,0 +1,10 @@ +[main 11a485f] Record reviewed owner implementation and consumer compatibility (5) + 8 files changed, 3069 insertions(+) + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/templates/gitea/init.yaml + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/values.yaml + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-index-entry.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/forgejo-v11.0.3/cmd/admin_auth_oauth.go + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/forgejo-v11.0.3/routers/web/auth/oauth.go + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/forgejo-v11.0.3/services/auth/source/oauth2/source.go + create mode 100644 docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/validation.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/README.md diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-5-sync.stderr.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-5-sync.stderr.txt new file mode 100644 index 00000000..e69de29b diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-5-sync.stdout.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-5-sync.stdout.txt new file mode 100644 index 00000000..e040dafd --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-5-sync.stdout.txt @@ -0,0 +1,292 @@ +{ + "ok": true, + "status": "applied", + "repo_slug": "the-custodian", + "commit": "11a485f1dd9267cc63f9beb0436aa17c0d3317cb", + "requests": 2, + "elapsed_ms": 28269.0, + "git": { + "upstream": "origin/main", + "behind": 0, + "ahead": 0 + }, + "identifiers": { + "schema": "repo-manager.identifier-assignment.v1", + "ok": true, + "executed": true, + "repo": "the-custodian", + "namespace": "helixforge", + "assignments": [], + "historical_invalid_identifiers": [ + { + "kind": "workplan", + "id": "CUST-WP-ADHOC-2026-08-25-RETIRED", + "source": "workplans/ADHOC-2026-08-25-retired.md" + } + ], + "historical_identity_collisions": [], + "files_changed": [] + }, + "receipt": { + "schema": "state-hub.repository-projection-reconcile.v1", + "instance_role": "primary", + "instance_label": "railiance01", + "expected_commit": "11a485f1dd9267cc63f9beb0436aa17c0d3317cb", + "derived_commit": "11a485f1dd9267cc63f9beb0436aa17c0d3317cb", + "outcome": { + "schema": "state-hub.projection-reset.v1", + "repo_slug": "the-custodian", + "commit": "11a485f1dd9267cc63f9beb0436aa17c0d3317cb", + "status": "applied", + "counts": { + "created": 0, + "updated": 88, + "retired": 0, + "refused": 0, + "released": 0, + "created_tasks": 0, + "updated_tasks": 0, + "cancelled_tasks": 0, + "created_edges": 0, + "removed_edges": 0, + "unresolved_edges": 0, + "external_edges": 13 + }, + "created": [], + "updated": [ + "CUST-WP-0000", + "CUST-WP-0000b", + "CUST-WP-0000c", + "CUST-WP-0001", + "CUST-WP-0002", + "CUST-WP-0004", + "CUST-WP-0005", + "CUST-WP-0006", + "CUST-WP-0007", + "CUST-WP-0008", + "CUST-WP-0009", + "CUST-WP-0010", + "CUST-WP-0010b", + "CUST-WP-0013", + "CUST-WP-0014", + "CUST-WP-0015", + "CUST-WP-0016", + "CUST-WP-0017", + "CUST-WP-0017-LEGACY", + "CUST-WP-0018", + "CUST-WP-0019", + "CUST-WP-0020", + "CUST-WP-0021", + "CUST-WP-0022", + "CUST-WP-0023", + "CUST-WP-0024", + "CUST-WP-0025", + "CUST-WP-0026", + "CUST-WP-0027", + "CUST-WP-0028", + "CUST-WP-0029", + "CUST-WP-0030", + "CUST-WP-0031", + "CUST-WP-0032", + "CUST-WP-0033", + "CUST-WP-0034", + "CUST-WP-0035", + "CUST-WP-0036", + "CUST-WP-0037", + "CUST-WP-0039", + "CUST-WP-0040", + "CUST-WP-0041", + "CUST-WP-0043", + "CUST-WP-0044", + "CUST-WP-0045", + "CUST-WP-0046", + "CUST-WP-0047", + "CUST-WP-0048", + "CUST-WP-0049", + "CUST-WP-0050", + "CUST-WP-0051", + "CUST-WP-0052", + "CUST-WP-0053", + "CUST-WP-0053-LEGACY", + "CUST-WP-0054", + "CUST-WP-0055", + "CUST-WP-0056", + "CUST-WP-0057", + "CUST-WP-0058", + "CUST-WP-0059", + "CUST-WP-0060", + "CUST-WP-0061", + "CUST-WP-0062", + "CUST-WP-0063", + "CUST-WP-0064", + "CUST-WP-0065", + "CUST-WP-0066", + "CUST-WP-0067", + "CUST-WP-0068", + "CUST-WP-0069", + "CUST-WP-0070", + "CUST-WP-0071", + "CUST-WP-0072", + "CUST-WP-0073", + "CUST-WP-0074", + "CUST-WP-0075", + "CUST-WP-0076", + "CUST-WP-0077", + "CUST-WP-0078", + "CUST-WP-0079", + "CUST-WP-0080", + "CUST-WP-0081", + "CUST-WP-ADHOC-2026-03-29", + "CUST-WP-ADHOC-2026-05-02", + "CUST-WP-ADHOC-2026-07-02", + "CUST-WP-ADHOC-2026-08-25", + "CUST-WP-ADHOC-2026-09-06", + "THE-WP-0001" + ], + "retired": [], + "released": [], + "created_tasks": [], + "updated_tasks": [], + "cancelled_tasks": [], + "created_edges": [], + "removed_edges": [], + "unresolved_edges": [], + "external_edges": [ + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T05", + "target": "CUST-WP-0071-T04", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "20ddd4d7-d85d-5b95-bb0a-7b0ca8af76ca", + "to_workplan_id": null, + "to_task_id": "944f98e2-7e42-5894-925b-752423f3a1cc" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T03", + "target": "CUST-WP-0071-T01", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495", + "to_workplan_id": null, + "to_task_id": "4ae8eb8d-f8c5-5256-ae50-c323cfd73d7a" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T03", + "target": "CUST-WP-0071-T02", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495", + "to_workplan_id": null, + "to_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T02", + "target": "CUST-WP-0071-T01", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68", + "to_workplan_id": null, + "to_task_id": "4ae8eb8d-f8c5-5256-ae50-c323cfd73d7a" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T02", + "target": "RAPPS-WP-0014-T03", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68", + "to_workplan_id": null, + "to_task_id": "dd069c6d-fcc1-5bac-b233-976f2f0d5cd1" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T04", + "target": "CUST-WP-0071-T03", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "944f98e2-7e42-5894-925b-752423f3a1cc", + "to_workplan_id": null, + "to_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495" + }, + { + "workplan": "CUST-WP-0073", + "from": "CUST-WP-0073-T02", + "target": "GLAS-WP-0012", + "relationship_type": "blocks", + "from_workplan_id": "a98a9f34-83b4-5c8c-8107-e05f7806d50d", + "from_task_id": "4b88b0b7-dc7e-5612-aa5d-1a08f0530c35", + "to_workplan_id": "170bf1ae-337f-5553-8d1e-03b07100e08f", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0073", + "from": "CUST-WP-0073-T04", + "target": "CUST-WP-0073-T02", + "relationship_type": "starts_after", + "from_workplan_id": "a98a9f34-83b4-5c8c-8107-e05f7806d50d", + "from_task_id": "90725511-4e31-549f-b567-47feff1a9ca4", + "to_workplan_id": null, + "to_task_id": "4b88b0b7-dc7e-5612-aa5d-1a08f0530c35" + }, + { + "workplan": "CUST-WP-0079", + "from": "CUST-WP-0079-T03", + "target": "ACTIVITY-WP-0047", + "relationship_type": "blocks", + "from_workplan_id": "ab288f92-d364-5c24-9362-aee451f266c3", + "from_task_id": "1be0569c-221d-5925-a0ff-fd2af88e52b1", + "to_workplan_id": "ee97869b-dca2-54c9-aa18-0b479c244fb3", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0079", + "from": "CUST-WP-0079-T04", + "target": "PNEX-WP-0006", + "relationship_type": "blocks", + "from_workplan_id": "ab288f92-d364-5c24-9362-aee451f266c3", + "from_task_id": "5dd52156-09a8-5781-b288-99ae822f59a6", + "to_workplan_id": "774c5037-a3d0-5e65-893c-d18970acd66a", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T04", + "target": "CUST-WP-0080-T03", + "relationship_type": "starts_after", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "82378b0f-7004-5c2f-9683-b356a1227576", + "to_workplan_id": null, + "to_task_id": "87637402-02f1-57c1-8fbc-4141598af8e3" + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T05", + "target": "RPF-WP-0056", + "relationship_type": "blocks", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "ed8b909a-23bf-5e5f-b600-e477fbae136b", + "to_workplan_id": "31933d08-c877-5fda-aff9-6220c3705c92", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T05", + "target": "RAPP-PLAYWRIGHT-WP-0004", + "relationship_type": "blocks", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "ed8b909a-23bf-5e5f-b600-e477fbae136b", + "to_workplan_id": "f9280c40-201e-59b5-a6f0-1aace8e0e2e2", + "to_task_id": null + } + ], + "refused": [], + "notes": [ + "Preserved bound historical row and task UUIDs: CUST-WP-ADHOC-2026-08-25-RETIRED" + ] + } + } +} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-6-commit.stderr.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-6-commit.stderr.txt new file mode 100644 index 00000000..d2f7f2e4 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-6-commit.stderr.txt @@ -0,0 +1 @@ +{"blocked_blob_ids": [], "scanned_blobs": 1, "scanner_sha256": "88f91962aa2f93ac6ab281d553b9e125f5197bbbce38f9f2437f7299c32e5509", "scanner_version": "8.30.1", "scope": "changed-staged-blobs", "status": "clean"} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-6-commit.stdout.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-6-commit.stdout.txt new file mode 100644 index 00000000..fa4bfe11 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-6-commit.stdout.txt @@ -0,0 +1,3 @@ +[main 31f5cbf] Record reviewed owner implementation and consumer compatibility (6) + 1 file changed, 4461 insertions(+) + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/clustersecretstore-v1-schema.json diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-6-sync.stderr.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-6-sync.stderr.txt new file mode 100644 index 00000000..e69de29b diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-6-sync.stdout.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-6-sync.stdout.txt new file mode 100644 index 00000000..c144f9a9 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-6-sync.stdout.txt @@ -0,0 +1,292 @@ +{ + "ok": true, + "status": "applied", + "repo_slug": "the-custodian", + "commit": "31f5cbf7b52c909ceebfdfc39ef0100908f63d5b", + "requests": 2, + "elapsed_ms": 15557.6, + "git": { + "upstream": "origin/main", + "behind": 0, + "ahead": 0 + }, + "identifiers": { + "schema": "repo-manager.identifier-assignment.v1", + "ok": true, + "executed": true, + "repo": "the-custodian", + "namespace": "helixforge", + "assignments": [], + "historical_invalid_identifiers": [ + { + "kind": "workplan", + "id": "CUST-WP-ADHOC-2026-08-25-RETIRED", + "source": "workplans/ADHOC-2026-08-25-retired.md" + } + ], + "historical_identity_collisions": [], + "files_changed": [] + }, + "receipt": { + "schema": "state-hub.repository-projection-reconcile.v1", + "instance_role": "primary", + "instance_label": "railiance01", + "expected_commit": "31f5cbf7b52c909ceebfdfc39ef0100908f63d5b", + "derived_commit": "31f5cbf7b52c909ceebfdfc39ef0100908f63d5b", + "outcome": { + "schema": "state-hub.projection-reset.v1", + "repo_slug": "the-custodian", + "commit": "31f5cbf7b52c909ceebfdfc39ef0100908f63d5b", + "status": "applied", + "counts": { + "created": 0, + "updated": 88, + "retired": 0, + "refused": 0, + "released": 0, + "created_tasks": 0, + "updated_tasks": 0, + "cancelled_tasks": 0, + "created_edges": 0, + "removed_edges": 0, + "unresolved_edges": 0, + "external_edges": 13 + }, + "created": [], + "updated": [ + "CUST-WP-0000", + "CUST-WP-0000b", + "CUST-WP-0000c", + "CUST-WP-0001", + "CUST-WP-0002", + "CUST-WP-0004", + "CUST-WP-0005", + "CUST-WP-0006", + "CUST-WP-0007", + "CUST-WP-0008", + "CUST-WP-0009", + "CUST-WP-0010", + "CUST-WP-0010b", + "CUST-WP-0013", + "CUST-WP-0014", + "CUST-WP-0015", + "CUST-WP-0016", + "CUST-WP-0017", + "CUST-WP-0017-LEGACY", + "CUST-WP-0018", + "CUST-WP-0019", + "CUST-WP-0020", + "CUST-WP-0021", + "CUST-WP-0022", + "CUST-WP-0023", + "CUST-WP-0024", + "CUST-WP-0025", + "CUST-WP-0026", + "CUST-WP-0027", + "CUST-WP-0028", + "CUST-WP-0029", + "CUST-WP-0030", + "CUST-WP-0031", + "CUST-WP-0032", + "CUST-WP-0033", + "CUST-WP-0034", + "CUST-WP-0035", + "CUST-WP-0036", + "CUST-WP-0037", + "CUST-WP-0039", + "CUST-WP-0040", + "CUST-WP-0041", + "CUST-WP-0043", + "CUST-WP-0044", + "CUST-WP-0045", + "CUST-WP-0046", + "CUST-WP-0047", + "CUST-WP-0048", + "CUST-WP-0049", + "CUST-WP-0050", + "CUST-WP-0051", + "CUST-WP-0052", + "CUST-WP-0053", + "CUST-WP-0053-LEGACY", + "CUST-WP-0054", + "CUST-WP-0055", + "CUST-WP-0056", + "CUST-WP-0057", + "CUST-WP-0058", + "CUST-WP-0059", + "CUST-WP-0060", + "CUST-WP-0061", + "CUST-WP-0062", + "CUST-WP-0063", + "CUST-WP-0064", + "CUST-WP-0065", + "CUST-WP-0066", + "CUST-WP-0067", + "CUST-WP-0068", + "CUST-WP-0069", + "CUST-WP-0070", + "CUST-WP-0071", + "CUST-WP-0072", + "CUST-WP-0073", + "CUST-WP-0074", + "CUST-WP-0075", + "CUST-WP-0076", + "CUST-WP-0077", + "CUST-WP-0078", + "CUST-WP-0079", + "CUST-WP-0080", + "CUST-WP-0081", + "CUST-WP-ADHOC-2026-03-29", + "CUST-WP-ADHOC-2026-05-02", + "CUST-WP-ADHOC-2026-07-02", + "CUST-WP-ADHOC-2026-08-25", + "CUST-WP-ADHOC-2026-09-06", + "THE-WP-0001" + ], + "retired": [], + "released": [], + "created_tasks": [], + "updated_tasks": [], + "cancelled_tasks": [], + "created_edges": [], + "removed_edges": [], + "unresolved_edges": [], + "external_edges": [ + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T05", + "target": "CUST-WP-0071-T04", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "20ddd4d7-d85d-5b95-bb0a-7b0ca8af76ca", + "to_workplan_id": null, + "to_task_id": "944f98e2-7e42-5894-925b-752423f3a1cc" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T03", + "target": "CUST-WP-0071-T01", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495", + "to_workplan_id": null, + "to_task_id": "4ae8eb8d-f8c5-5256-ae50-c323cfd73d7a" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T03", + "target": "CUST-WP-0071-T02", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495", + "to_workplan_id": null, + "to_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T02", + "target": "CUST-WP-0071-T01", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68", + "to_workplan_id": null, + "to_task_id": "4ae8eb8d-f8c5-5256-ae50-c323cfd73d7a" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T02", + "target": "RAPPS-WP-0014-T03", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68", + "to_workplan_id": null, + "to_task_id": "dd069c6d-fcc1-5bac-b233-976f2f0d5cd1" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T04", + "target": "CUST-WP-0071-T03", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "944f98e2-7e42-5894-925b-752423f3a1cc", + "to_workplan_id": null, + "to_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495" + }, + { + "workplan": "CUST-WP-0073", + "from": "CUST-WP-0073-T02", + "target": "GLAS-WP-0012", + "relationship_type": "blocks", + "from_workplan_id": "a98a9f34-83b4-5c8c-8107-e05f7806d50d", + "from_task_id": "4b88b0b7-dc7e-5612-aa5d-1a08f0530c35", + "to_workplan_id": "170bf1ae-337f-5553-8d1e-03b07100e08f", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0073", + "from": "CUST-WP-0073-T04", + "target": "CUST-WP-0073-T02", + "relationship_type": "starts_after", + "from_workplan_id": "a98a9f34-83b4-5c8c-8107-e05f7806d50d", + "from_task_id": "90725511-4e31-549f-b567-47feff1a9ca4", + "to_workplan_id": null, + "to_task_id": "4b88b0b7-dc7e-5612-aa5d-1a08f0530c35" + }, + { + "workplan": "CUST-WP-0079", + "from": "CUST-WP-0079-T03", + "target": "ACTIVITY-WP-0047", + "relationship_type": "blocks", + "from_workplan_id": "ab288f92-d364-5c24-9362-aee451f266c3", + "from_task_id": "1be0569c-221d-5925-a0ff-fd2af88e52b1", + "to_workplan_id": "ee97869b-dca2-54c9-aa18-0b479c244fb3", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0079", + "from": "CUST-WP-0079-T04", + "target": "PNEX-WP-0006", + "relationship_type": "blocks", + "from_workplan_id": "ab288f92-d364-5c24-9362-aee451f266c3", + "from_task_id": "5dd52156-09a8-5781-b288-99ae822f59a6", + "to_workplan_id": "774c5037-a3d0-5e65-893c-d18970acd66a", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T04", + "target": "CUST-WP-0080-T03", + "relationship_type": "starts_after", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "82378b0f-7004-5c2f-9683-b356a1227576", + "to_workplan_id": null, + "to_task_id": "87637402-02f1-57c1-8fbc-4141598af8e3" + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T05", + "target": "RPF-WP-0056", + "relationship_type": "blocks", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "ed8b909a-23bf-5e5f-b600-e477fbae136b", + "to_workplan_id": "31933d08-c877-5fda-aff9-6220c3705c92", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T05", + "target": "RAPP-PLAYWRIGHT-WP-0004", + "relationship_type": "blocks", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "ed8b909a-23bf-5e5f-b600-e477fbae136b", + "to_workplan_id": "f9280c40-201e-59b5-a6f0-1aace8e0e2e2", + "to_task_id": null + } + ], + "refused": [], + "notes": [ + "Preserved bound historical row and task UUIDs: CUST-WP-ADHOC-2026-08-25-RETIRED" + ] + } + } +} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-7-commit.stderr.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-7-commit.stderr.txt new file mode 100644 index 00000000..f7b1298d --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-7-commit.stderr.txt @@ -0,0 +1 @@ +{"blocked_blob_ids": [], "scanned_blobs": 18, "scanner_sha256": "88f91962aa2f93ac6ab281d553b9e125f5197bbbce38f9f2437f7299c32e5509", "scanner_version": "8.30.1", "scope": "changed-staged-blobs", "status": "clean"} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-7-commit.stdout.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-7-commit.stdout.txt new file mode 100644 index 00000000..cf426406 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-7-commit.stdout.txt @@ -0,0 +1,20 @@ +[main 0caed1f] Record reviewed owner implementation and consumer compatibility (7) + 18 files changed, 1870 insertions(+) + create mode 100644 docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/apply_refinement.py + create mode 100644 docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/consistency.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/consistency.stderr.txt + create mode 100644 docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/identifier-assignment.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/identifier-preview.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/externalsecret-v1-schema.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/independent-defect-reproductions.log + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/original-command-tests.log + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/original-contract-tests.log + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-defaults-fix.patch + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-fix-source/scripts/keycape_issuer_delivery.py + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-fix-source/scripts/keycape_issuer_eso.py + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-fix-tests.log + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-patch-check.log + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/runs.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/source-pins.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/test_independent_review.py + create mode 100644 docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/test_partial_defaults_fix.py diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-7-sync.stderr.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-7-sync.stderr.txt new file mode 100644 index 00000000..e69de29b diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-7-sync.stdout.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-7-sync.stdout.txt new file mode 100644 index 00000000..8328bcb5 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-7-sync.stdout.txt @@ -0,0 +1,292 @@ +{ + "ok": true, + "status": "applied", + "repo_slug": "the-custodian", + "commit": "0caed1f5300c1f5a6ededcca7948b120a126b85d", + "requests": 2, + "elapsed_ms": 37391.6, + "git": { + "upstream": "origin/main", + "behind": 0, + "ahead": 0 + }, + "identifiers": { + "schema": "repo-manager.identifier-assignment.v1", + "ok": true, + "executed": true, + "repo": "the-custodian", + "namespace": "helixforge", + "assignments": [], + "historical_invalid_identifiers": [ + { + "kind": "workplan", + "id": "CUST-WP-ADHOC-2026-08-25-RETIRED", + "source": "workplans/ADHOC-2026-08-25-retired.md" + } + ], + "historical_identity_collisions": [], + "files_changed": [] + }, + "receipt": { + "schema": "state-hub.repository-projection-reconcile.v1", + "instance_role": "primary", + "instance_label": "railiance01", + "expected_commit": "0caed1f5300c1f5a6ededcca7948b120a126b85d", + "derived_commit": "0caed1f5300c1f5a6ededcca7948b120a126b85d", + "outcome": { + "schema": "state-hub.projection-reset.v1", + "repo_slug": "the-custodian", + "commit": "0caed1f5300c1f5a6ededcca7948b120a126b85d", + "status": "applied", + "counts": { + "created": 0, + "updated": 88, + "retired": 0, + "refused": 0, + "released": 0, + "created_tasks": 0, + "updated_tasks": 0, + "cancelled_tasks": 0, + "created_edges": 0, + "removed_edges": 0, + "unresolved_edges": 0, + "external_edges": 13 + }, + "created": [], + "updated": [ + "CUST-WP-0000", + "CUST-WP-0000b", + "CUST-WP-0000c", + "CUST-WP-0001", + "CUST-WP-0002", + "CUST-WP-0004", + "CUST-WP-0005", + "CUST-WP-0006", + "CUST-WP-0007", + "CUST-WP-0008", + "CUST-WP-0009", + "CUST-WP-0010", + "CUST-WP-0010b", + "CUST-WP-0013", + "CUST-WP-0014", + "CUST-WP-0015", + "CUST-WP-0016", + "CUST-WP-0017", + "CUST-WP-0017-LEGACY", + "CUST-WP-0018", + "CUST-WP-0019", + "CUST-WP-0020", + "CUST-WP-0021", + "CUST-WP-0022", + "CUST-WP-0023", + "CUST-WP-0024", + "CUST-WP-0025", + "CUST-WP-0026", + "CUST-WP-0027", + "CUST-WP-0028", + "CUST-WP-0029", + "CUST-WP-0030", + "CUST-WP-0031", + "CUST-WP-0032", + "CUST-WP-0033", + "CUST-WP-0034", + "CUST-WP-0035", + "CUST-WP-0036", + "CUST-WP-0037", + "CUST-WP-0039", + "CUST-WP-0040", + "CUST-WP-0041", + "CUST-WP-0043", + "CUST-WP-0044", + "CUST-WP-0045", + "CUST-WP-0046", + "CUST-WP-0047", + "CUST-WP-0048", + "CUST-WP-0049", + "CUST-WP-0050", + "CUST-WP-0051", + "CUST-WP-0052", + "CUST-WP-0053", + "CUST-WP-0053-LEGACY", + "CUST-WP-0054", + "CUST-WP-0055", + "CUST-WP-0056", + "CUST-WP-0057", + "CUST-WP-0058", + "CUST-WP-0059", + "CUST-WP-0060", + "CUST-WP-0061", + "CUST-WP-0062", + "CUST-WP-0063", + "CUST-WP-0064", + "CUST-WP-0065", + "CUST-WP-0066", + "CUST-WP-0067", + "CUST-WP-0068", + "CUST-WP-0069", + "CUST-WP-0070", + "CUST-WP-0071", + "CUST-WP-0072", + "CUST-WP-0073", + "CUST-WP-0074", + "CUST-WP-0075", + "CUST-WP-0076", + "CUST-WP-0077", + "CUST-WP-0078", + "CUST-WP-0079", + "CUST-WP-0080", + "CUST-WP-0081", + "CUST-WP-ADHOC-2026-03-29", + "CUST-WP-ADHOC-2026-05-02", + "CUST-WP-ADHOC-2026-07-02", + "CUST-WP-ADHOC-2026-08-25", + "CUST-WP-ADHOC-2026-09-06", + "THE-WP-0001" + ], + "retired": [], + "released": [], + "created_tasks": [], + "updated_tasks": [], + "cancelled_tasks": [], + "created_edges": [], + "removed_edges": [], + "unresolved_edges": [], + "external_edges": [ + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T05", + "target": "CUST-WP-0071-T04", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "20ddd4d7-d85d-5b95-bb0a-7b0ca8af76ca", + "to_workplan_id": null, + "to_task_id": "944f98e2-7e42-5894-925b-752423f3a1cc" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T03", + "target": "CUST-WP-0071-T01", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495", + "to_workplan_id": null, + "to_task_id": "4ae8eb8d-f8c5-5256-ae50-c323cfd73d7a" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T03", + "target": "CUST-WP-0071-T02", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495", + "to_workplan_id": null, + "to_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T02", + "target": "CUST-WP-0071-T01", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68", + "to_workplan_id": null, + "to_task_id": "4ae8eb8d-f8c5-5256-ae50-c323cfd73d7a" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T02", + "target": "RAPPS-WP-0014-T03", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68", + "to_workplan_id": null, + "to_task_id": "dd069c6d-fcc1-5bac-b233-976f2f0d5cd1" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T04", + "target": "CUST-WP-0071-T03", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "944f98e2-7e42-5894-925b-752423f3a1cc", + "to_workplan_id": null, + "to_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495" + }, + { + "workplan": "CUST-WP-0073", + "from": "CUST-WP-0073-T02", + "target": "GLAS-WP-0012", + "relationship_type": "blocks", + "from_workplan_id": "a98a9f34-83b4-5c8c-8107-e05f7806d50d", + "from_task_id": "4b88b0b7-dc7e-5612-aa5d-1a08f0530c35", + "to_workplan_id": "170bf1ae-337f-5553-8d1e-03b07100e08f", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0073", + "from": "CUST-WP-0073-T04", + "target": "CUST-WP-0073-T02", + "relationship_type": "starts_after", + "from_workplan_id": "a98a9f34-83b4-5c8c-8107-e05f7806d50d", + "from_task_id": "90725511-4e31-549f-b567-47feff1a9ca4", + "to_workplan_id": null, + "to_task_id": "4b88b0b7-dc7e-5612-aa5d-1a08f0530c35" + }, + { + "workplan": "CUST-WP-0079", + "from": "CUST-WP-0079-T03", + "target": "ACTIVITY-WP-0047", + "relationship_type": "blocks", + "from_workplan_id": "ab288f92-d364-5c24-9362-aee451f266c3", + "from_task_id": "1be0569c-221d-5925-a0ff-fd2af88e52b1", + "to_workplan_id": "ee97869b-dca2-54c9-aa18-0b479c244fb3", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0079", + "from": "CUST-WP-0079-T04", + "target": "PNEX-WP-0006", + "relationship_type": "blocks", + "from_workplan_id": "ab288f92-d364-5c24-9362-aee451f266c3", + "from_task_id": "5dd52156-09a8-5781-b288-99ae822f59a6", + "to_workplan_id": "774c5037-a3d0-5e65-893c-d18970acd66a", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T04", + "target": "CUST-WP-0080-T03", + "relationship_type": "starts_after", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "82378b0f-7004-5c2f-9683-b356a1227576", + "to_workplan_id": null, + "to_task_id": "87637402-02f1-57c1-8fbc-4141598af8e3" + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T05", + "target": "RPF-WP-0056", + "relationship_type": "blocks", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "ed8b909a-23bf-5e5f-b600-e477fbae136b", + "to_workplan_id": "31933d08-c877-5fda-aff9-6220c3705c92", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T05", + "target": "RAPP-PLAYWRIGHT-WP-0004", + "relationship_type": "blocks", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "ed8b909a-23bf-5e5f-b600-e477fbae136b", + "to_workplan_id": "f9280c40-201e-59b5-a6f0-1aace8e0e2e2", + "to_task_id": null + } + ], + "refused": [], + "notes": [ + "Preserved bound historical row and task UUIDs: CUST-WP-ADHOC-2026-08-25-RETIRED" + ] + } + } +} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-8-commit.stderr.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-8-commit.stderr.txt new file mode 100644 index 00000000..bd09013a --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-8-commit.stderr.txt @@ -0,0 +1 @@ +{"blocked_blob_ids": [], "scanned_blobs": 13, "scanner_sha256": "88f91962aa2f93ac6ab281d553b9e125f5197bbbce38f9f2437f7299c32e5509", "scanner_version": "8.30.1", "scope": "changed-staged-blobs", "status": "clean"} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-8-commit.stdout.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-8-commit.stdout.txt new file mode 100644 index 00000000..082d0f53 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-8-commit.stdout.txt @@ -0,0 +1,15 @@ +[main 9049000] Record reviewed owner implementation and consumer compatibility (8) + 13 files changed, 1715 insertions(+) + create mode 100644 docs/changes/netkingdom-target-2026-10-17/key39-finalization-current-r2/progress-receipt.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/key39-finalization-current-r2/upstream-preparation.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/key39-finalization-current-r2/verification.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/projection.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/projection.stderr.txt + create mode 100644 docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/publication-commit.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/publication-inputs.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/source-refinement.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/task-additions.md + create mode 100644 docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/verified-task-bindings.json + create mode 100644 docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/fetch_public_inputs.py + create mode 100644 docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/publish.py + create mode 100644 docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/scope.json diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-8-sync.stderr.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-8-sync.stderr.txt new file mode 100644 index 00000000..e69de29b diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-8-sync.stdout.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-8-sync.stdout.txt new file mode 100644 index 00000000..89fc8bf3 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/batch-8-sync.stdout.txt @@ -0,0 +1,292 @@ +{ + "ok": true, + "status": "applied", + "repo_slug": "the-custodian", + "commit": "90490002c16d353d675f4295f395d1917d30b9ef", + "requests": 2, + "elapsed_ms": 36337.6, + "git": { + "upstream": "origin/main", + "behind": 0, + "ahead": 0 + }, + "identifiers": { + "schema": "repo-manager.identifier-assignment.v1", + "ok": true, + "executed": true, + "repo": "the-custodian", + "namespace": "helixforge", + "assignments": [], + "historical_invalid_identifiers": [ + { + "kind": "workplan", + "id": "CUST-WP-ADHOC-2026-08-25-RETIRED", + "source": "workplans/ADHOC-2026-08-25-retired.md" + } + ], + "historical_identity_collisions": [], + "files_changed": [] + }, + "receipt": { + "schema": "state-hub.repository-projection-reconcile.v1", + "instance_role": "primary", + "instance_label": "railiance01", + "expected_commit": "90490002c16d353d675f4295f395d1917d30b9ef", + "derived_commit": "90490002c16d353d675f4295f395d1917d30b9ef", + "outcome": { + "schema": "state-hub.projection-reset.v1", + "repo_slug": "the-custodian", + "commit": "90490002c16d353d675f4295f395d1917d30b9ef", + "status": "applied", + "counts": { + "created": 0, + "updated": 88, + "retired": 0, + "refused": 0, + "released": 0, + "created_tasks": 0, + "updated_tasks": 0, + "cancelled_tasks": 0, + "created_edges": 0, + "removed_edges": 0, + "unresolved_edges": 0, + "external_edges": 13 + }, + "created": [], + "updated": [ + "CUST-WP-0000", + "CUST-WP-0000b", + "CUST-WP-0000c", + "CUST-WP-0001", + "CUST-WP-0002", + "CUST-WP-0004", + "CUST-WP-0005", + "CUST-WP-0006", + "CUST-WP-0007", + "CUST-WP-0008", + "CUST-WP-0009", + "CUST-WP-0010", + "CUST-WP-0010b", + "CUST-WP-0013", + "CUST-WP-0014", + "CUST-WP-0015", + "CUST-WP-0016", + "CUST-WP-0017", + "CUST-WP-0017-LEGACY", + "CUST-WP-0018", + "CUST-WP-0019", + "CUST-WP-0020", + "CUST-WP-0021", + "CUST-WP-0022", + "CUST-WP-0023", + "CUST-WP-0024", + "CUST-WP-0025", + "CUST-WP-0026", + "CUST-WP-0027", + "CUST-WP-0028", + "CUST-WP-0029", + "CUST-WP-0030", + "CUST-WP-0031", + "CUST-WP-0032", + "CUST-WP-0033", + "CUST-WP-0034", + "CUST-WP-0035", + "CUST-WP-0036", + "CUST-WP-0037", + "CUST-WP-0039", + "CUST-WP-0040", + "CUST-WP-0041", + "CUST-WP-0043", + "CUST-WP-0044", + "CUST-WP-0045", + "CUST-WP-0046", + "CUST-WP-0047", + "CUST-WP-0048", + "CUST-WP-0049", + "CUST-WP-0050", + "CUST-WP-0051", + "CUST-WP-0052", + "CUST-WP-0053", + "CUST-WP-0053-LEGACY", + "CUST-WP-0054", + "CUST-WP-0055", + "CUST-WP-0056", + "CUST-WP-0057", + "CUST-WP-0058", + "CUST-WP-0059", + "CUST-WP-0060", + "CUST-WP-0061", + "CUST-WP-0062", + "CUST-WP-0063", + "CUST-WP-0064", + "CUST-WP-0065", + "CUST-WP-0066", + "CUST-WP-0067", + "CUST-WP-0068", + "CUST-WP-0069", + "CUST-WP-0070", + "CUST-WP-0071", + "CUST-WP-0072", + "CUST-WP-0073", + "CUST-WP-0074", + "CUST-WP-0075", + "CUST-WP-0076", + "CUST-WP-0077", + "CUST-WP-0078", + "CUST-WP-0079", + "CUST-WP-0080", + "CUST-WP-0081", + "CUST-WP-ADHOC-2026-03-29", + "CUST-WP-ADHOC-2026-05-02", + "CUST-WP-ADHOC-2026-07-02", + "CUST-WP-ADHOC-2026-08-25", + "CUST-WP-ADHOC-2026-09-06", + "THE-WP-0001" + ], + "retired": [], + "released": [], + "created_tasks": [], + "updated_tasks": [], + "cancelled_tasks": [], + "created_edges": [], + "removed_edges": [], + "unresolved_edges": [], + "external_edges": [ + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T05", + "target": "CUST-WP-0071-T04", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "20ddd4d7-d85d-5b95-bb0a-7b0ca8af76ca", + "to_workplan_id": null, + "to_task_id": "944f98e2-7e42-5894-925b-752423f3a1cc" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T03", + "target": "CUST-WP-0071-T01", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495", + "to_workplan_id": null, + "to_task_id": "4ae8eb8d-f8c5-5256-ae50-c323cfd73d7a" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T03", + "target": "CUST-WP-0071-T02", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495", + "to_workplan_id": null, + "to_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T02", + "target": "CUST-WP-0071-T01", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68", + "to_workplan_id": null, + "to_task_id": "4ae8eb8d-f8c5-5256-ae50-c323cfd73d7a" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T02", + "target": "RAPPS-WP-0014-T03", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68", + "to_workplan_id": null, + "to_task_id": "dd069c6d-fcc1-5bac-b233-976f2f0d5cd1" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T04", + "target": "CUST-WP-0071-T03", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "944f98e2-7e42-5894-925b-752423f3a1cc", + "to_workplan_id": null, + "to_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495" + }, + { + "workplan": "CUST-WP-0073", + "from": "CUST-WP-0073-T02", + "target": "GLAS-WP-0012", + "relationship_type": "blocks", + "from_workplan_id": "a98a9f34-83b4-5c8c-8107-e05f7806d50d", + "from_task_id": "4b88b0b7-dc7e-5612-aa5d-1a08f0530c35", + "to_workplan_id": "170bf1ae-337f-5553-8d1e-03b07100e08f", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0073", + "from": "CUST-WP-0073-T04", + "target": "CUST-WP-0073-T02", + "relationship_type": "starts_after", + "from_workplan_id": "a98a9f34-83b4-5c8c-8107-e05f7806d50d", + "from_task_id": "90725511-4e31-549f-b567-47feff1a9ca4", + "to_workplan_id": null, + "to_task_id": "4b88b0b7-dc7e-5612-aa5d-1a08f0530c35" + }, + { + "workplan": "CUST-WP-0079", + "from": "CUST-WP-0079-T03", + "target": "ACTIVITY-WP-0047", + "relationship_type": "blocks", + "from_workplan_id": "ab288f92-d364-5c24-9362-aee451f266c3", + "from_task_id": "1be0569c-221d-5925-a0ff-fd2af88e52b1", + "to_workplan_id": "ee97869b-dca2-54c9-aa18-0b479c244fb3", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0079", + "from": "CUST-WP-0079-T04", + "target": "PNEX-WP-0006", + "relationship_type": "blocks", + "from_workplan_id": "ab288f92-d364-5c24-9362-aee451f266c3", + "from_task_id": "5dd52156-09a8-5781-b288-99ae822f59a6", + "to_workplan_id": "774c5037-a3d0-5e65-893c-d18970acd66a", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T04", + "target": "CUST-WP-0080-T03", + "relationship_type": "starts_after", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "82378b0f-7004-5c2f-9683-b356a1227576", + "to_workplan_id": null, + "to_task_id": "87637402-02f1-57c1-8fbc-4141598af8e3" + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T05", + "target": "RPF-WP-0056", + "relationship_type": "blocks", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "ed8b909a-23bf-5e5f-b600-e477fbae136b", + "to_workplan_id": "31933d08-c877-5fda-aff9-6220c3705c92", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T05", + "target": "RAPP-PLAYWRIGHT-WP-0004", + "relationship_type": "blocks", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "ed8b909a-23bf-5e5f-b600-e477fbae136b", + "to_workplan_id": "f9280c40-201e-59b5-a6f0-1aace8e0e2e2", + "to_task_id": null + } + ], + "refused": [], + "notes": [ + "Preserved bound historical row and task UUIDs: CUST-WP-ADHOC-2026-08-25-RETIRED" + ] + } + } +} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/close-progress-receipt-r2.json b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/close-progress-receipt-r2.json new file mode 100644 index 00000000..7dcc335b --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/close-progress-receipt-r2.json @@ -0,0 +1,14 @@ +{ + "workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "id": "b1d6a2ea-1184-4ac7-9eff-2a5e1fb8e29d", + "topic_id": null, + "task_id": "87637402-02f1-57c1-8fbc-4141598af8e3", + "decision_id": null, + "event_type": "note", + "summary": "Source checkpoint published and verified: Custodian16236ef, Platformd35c0f9 broker/catalog and RPF-WP-0060 owner tasks; NetKingdom201e2fa mandatory task refinement through T39progress.96 published files,56 source/Hub task bindings, original8 dirty/index paths, four public metadata original reconstructions verified. Dependency-verifier original false assumption retained; r2 verifies exact creation commit6201a1d2 and unchanged declaration/current primary projection instead of rewriting unchanged edge provenance. Apps complete frontend/static binary and identical local OCI build packet frozen by assigned agent, exact six-path source proposal f0bcb290; not canonical-integrated, published or deployed. Application inverse/session/journal/all-writer exclusion, authenticated admission and final architecture/native proof remain open. All16 target native gates remain open; goal active. KEY39 finalization review separately logged32796349-c902-456c-97e6-e4de38467aac.", + "detail": null, + "author": "codex", + "session_id": null, + "created_at": "2026-10-17T21:58:56.319272Z", + "workstream_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52" +} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/close-publication-inputs.json b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/close-publication-inputs.json new file mode 100644 index 00000000..2f633f91 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/close-publication-inputs.json @@ -0,0 +1,43 @@ +{ + "owner": "the-custodian", + "base_revision": "90490002c16d353d675f4295f395d1917d30b9ef", + "message": "Record verified consumer source and exact public evidence provenance", + "files": [ + { + "path": "docs/netkingdom-target-implementation.md", + "sha256": "798093602f9c11d086af960b97a97f1a1d116962136e01de1b336df8a9603cec" + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/publication-summary.json", + "sha256": "69f2797c42f6ce33b731956457fc958f189202463845ae7a7c6cc930673651aa" + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/public-digest-refinement.json", + "sha256": "770a5831999df8a8dc1b66dc65b738f58bedd4eb0dab56127f8d37b2b10107b2" + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/publication-refinement.json", + "sha256": "957d1347771eecb16cb50713dc3cbaa43e96c3b3e162eb357be57bf12632a721" + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/dirty-workplan-refinement.json", + "sha256": "c90e021d41a3218f8a1e3b13af00dc7cf3a383a8bf0efe52c583c7f0d63dfc97" + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/metadata-reconstruction-failure.json", + "sha256": "ab943a848c811e22ec7ef4273bf2097ec20ac76902947491de01852c270b26b4" + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/reconstruct_public_metadata.py", + "sha256": "ec20b3378ece29dcf7faf4ad5e610e1e85bfa260121f2b8c537665f9530466e0" + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/recover_pending.py", + "sha256": "1cfad4dd82966efcea13dfe02d702a873a0fa6a422e654551fc1c9f530052a0b" + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/verify_current.py", + "sha256": "8aaa076520f5c954ebca6b1cf5b28df7223b0162e4edba4c7307a5a80cff6c43" + } + ] +} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/close-sync.json b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/close-sync.json new file mode 100644 index 00000000..7fdc1cbf --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/close-sync.json @@ -0,0 +1,292 @@ +{ + "ok": true, + "status": "applied", + "repo_slug": "the-custodian", + "commit": "16236ef479135df4361686aa69e9eeb987f33129", + "requests": 2, + "elapsed_ms": 21512.5, + "git": { + "upstream": "origin/main", + "behind": 0, + "ahead": 0 + }, + "identifiers": { + "schema": "repo-manager.identifier-assignment.v1", + "ok": true, + "executed": true, + "repo": "the-custodian", + "namespace": "helixforge", + "assignments": [], + "historical_invalid_identifiers": [ + { + "kind": "workplan", + "id": "CUST-WP-ADHOC-2026-08-25-RETIRED", + "source": "workplans/ADHOC-2026-08-25-retired.md" + } + ], + "historical_identity_collisions": [], + "files_changed": [] + }, + "receipt": { + "schema": "state-hub.repository-projection-reconcile.v1", + "instance_role": "primary", + "instance_label": "railiance01", + "expected_commit": "16236ef479135df4361686aa69e9eeb987f33129", + "derived_commit": "16236ef479135df4361686aa69e9eeb987f33129", + "outcome": { + "schema": "state-hub.projection-reset.v1", + "repo_slug": "the-custodian", + "commit": "16236ef479135df4361686aa69e9eeb987f33129", + "status": "applied", + "counts": { + "created": 0, + "updated": 88, + "retired": 0, + "refused": 0, + "released": 0, + "created_tasks": 0, + "updated_tasks": 0, + "cancelled_tasks": 0, + "created_edges": 0, + "removed_edges": 0, + "unresolved_edges": 0, + "external_edges": 13 + }, + "created": [], + "updated": [ + "CUST-WP-0000", + "CUST-WP-0000b", + "CUST-WP-0000c", + "CUST-WP-0001", + "CUST-WP-0002", + "CUST-WP-0004", + "CUST-WP-0005", + "CUST-WP-0006", + "CUST-WP-0007", + "CUST-WP-0008", + "CUST-WP-0009", + "CUST-WP-0010", + "CUST-WP-0010b", + "CUST-WP-0013", + "CUST-WP-0014", + "CUST-WP-0015", + "CUST-WP-0016", + "CUST-WP-0017", + "CUST-WP-0017-LEGACY", + "CUST-WP-0018", + "CUST-WP-0019", + "CUST-WP-0020", + "CUST-WP-0021", + "CUST-WP-0022", + "CUST-WP-0023", + "CUST-WP-0024", + "CUST-WP-0025", + "CUST-WP-0026", + "CUST-WP-0027", + "CUST-WP-0028", + "CUST-WP-0029", + "CUST-WP-0030", + "CUST-WP-0031", + "CUST-WP-0032", + "CUST-WP-0033", + "CUST-WP-0034", + "CUST-WP-0035", + "CUST-WP-0036", + "CUST-WP-0037", + "CUST-WP-0039", + "CUST-WP-0040", + "CUST-WP-0041", + "CUST-WP-0043", + "CUST-WP-0044", + "CUST-WP-0045", + "CUST-WP-0046", + "CUST-WP-0047", + "CUST-WP-0048", + "CUST-WP-0049", + "CUST-WP-0050", + "CUST-WP-0051", + "CUST-WP-0052", + "CUST-WP-0053", + "CUST-WP-0053-LEGACY", + "CUST-WP-0054", + "CUST-WP-0055", + "CUST-WP-0056", + "CUST-WP-0057", + "CUST-WP-0058", + "CUST-WP-0059", + "CUST-WP-0060", + "CUST-WP-0061", + "CUST-WP-0062", + "CUST-WP-0063", + "CUST-WP-0064", + "CUST-WP-0065", + "CUST-WP-0066", + "CUST-WP-0067", + "CUST-WP-0068", + "CUST-WP-0069", + "CUST-WP-0070", + "CUST-WP-0071", + "CUST-WP-0072", + "CUST-WP-0073", + "CUST-WP-0074", + "CUST-WP-0075", + "CUST-WP-0076", + "CUST-WP-0077", + "CUST-WP-0078", + "CUST-WP-0079", + "CUST-WP-0080", + "CUST-WP-0081", + "CUST-WP-ADHOC-2026-03-29", + "CUST-WP-ADHOC-2026-05-02", + "CUST-WP-ADHOC-2026-07-02", + "CUST-WP-ADHOC-2026-08-25", + "CUST-WP-ADHOC-2026-09-06", + "THE-WP-0001" + ], + "retired": [], + "released": [], + "created_tasks": [], + "updated_tasks": [], + "cancelled_tasks": [], + "created_edges": [], + "removed_edges": [], + "unresolved_edges": [], + "external_edges": [ + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T05", + "target": "CUST-WP-0071-T04", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "20ddd4d7-d85d-5b95-bb0a-7b0ca8af76ca", + "to_workplan_id": null, + "to_task_id": "944f98e2-7e42-5894-925b-752423f3a1cc" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T03", + "target": "CUST-WP-0071-T01", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495", + "to_workplan_id": null, + "to_task_id": "4ae8eb8d-f8c5-5256-ae50-c323cfd73d7a" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T03", + "target": "CUST-WP-0071-T02", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495", + "to_workplan_id": null, + "to_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T02", + "target": "CUST-WP-0071-T01", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68", + "to_workplan_id": null, + "to_task_id": "4ae8eb8d-f8c5-5256-ae50-c323cfd73d7a" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T02", + "target": "RAPPS-WP-0014-T03", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "82192370-2fd7-5363-88d2-3c67889d3d68", + "to_workplan_id": null, + "to_task_id": "dd069c6d-fcc1-5bac-b233-976f2f0d5cd1" + }, + { + "workplan": "CUST-WP-0071", + "from": "CUST-WP-0071-T04", + "target": "CUST-WP-0071-T03", + "relationship_type": "starts_after", + "from_workplan_id": "2249bddb-7524-5add-bd5c-c4163a6ca0f3", + "from_task_id": "944f98e2-7e42-5894-925b-752423f3a1cc", + "to_workplan_id": null, + "to_task_id": "6dc67558-eb1e-5bb6-a667-986f884dd495" + }, + { + "workplan": "CUST-WP-0073", + "from": "CUST-WP-0073-T02", + "target": "GLAS-WP-0012", + "relationship_type": "blocks", + "from_workplan_id": "a98a9f34-83b4-5c8c-8107-e05f7806d50d", + "from_task_id": "4b88b0b7-dc7e-5612-aa5d-1a08f0530c35", + "to_workplan_id": "170bf1ae-337f-5553-8d1e-03b07100e08f", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0073", + "from": "CUST-WP-0073-T04", + "target": "CUST-WP-0073-T02", + "relationship_type": "starts_after", + "from_workplan_id": "a98a9f34-83b4-5c8c-8107-e05f7806d50d", + "from_task_id": "90725511-4e31-549f-b567-47feff1a9ca4", + "to_workplan_id": null, + "to_task_id": "4b88b0b7-dc7e-5612-aa5d-1a08f0530c35" + }, + { + "workplan": "CUST-WP-0079", + "from": "CUST-WP-0079-T03", + "target": "ACTIVITY-WP-0047", + "relationship_type": "blocks", + "from_workplan_id": "ab288f92-d364-5c24-9362-aee451f266c3", + "from_task_id": "1be0569c-221d-5925-a0ff-fd2af88e52b1", + "to_workplan_id": "ee97869b-dca2-54c9-aa18-0b479c244fb3", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0079", + "from": "CUST-WP-0079-T04", + "target": "PNEX-WP-0006", + "relationship_type": "blocks", + "from_workplan_id": "ab288f92-d364-5c24-9362-aee451f266c3", + "from_task_id": "5dd52156-09a8-5781-b288-99ae822f59a6", + "to_workplan_id": "774c5037-a3d0-5e65-893c-d18970acd66a", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T04", + "target": "CUST-WP-0080-T03", + "relationship_type": "starts_after", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "82378b0f-7004-5c2f-9683-b356a1227576", + "to_workplan_id": null, + "to_task_id": "87637402-02f1-57c1-8fbc-4141598af8e3" + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T05", + "target": "RPF-WP-0056", + "relationship_type": "blocks", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "ed8b909a-23bf-5e5f-b600-e477fbae136b", + "to_workplan_id": "31933d08-c877-5fda-aff9-6220c3705c92", + "to_task_id": null + }, + { + "workplan": "CUST-WP-0080", + "from": "CUST-WP-0080-T05", + "target": "RAPP-PLAYWRIGHT-WP-0004", + "relationship_type": "blocks", + "from_workplan_id": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "from_task_id": "ed8b909a-23bf-5e5f-b600-e477fbae136b", + "to_workplan_id": "f9280c40-201e-59b5-a6f0-1aace8e0e2e2", + "to_task_id": null + } + ], + "refused": [], + "notes": [ + "Preserved bound historical row and task UUIDs: CUST-WP-ADHOC-2026-08-25-RETIRED" + ] + } + } +} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/close-sync.stderr.txt b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/close-sync.stderr.txt new file mode 100644 index 00000000..e69de29b diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/dependency-verification-refinement-r2.json b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/dependency-verification-refinement-r2.json new file mode 100644 index 00000000..32adb207 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/dependency-verification-refinement-r2.json @@ -0,0 +1,11 @@ +{ + "recorded_at": "2026-10-17T21:58:28.337410+00:00", + "original_verifier_sha256": "sha256:8aaa076520f5c954ebca6b1cf5b28df7223b0162e4edba4c7307a5a80cff6c43", + "original_outcome": "failed at dependency source_commit assertion; no final verification receipt produced", + "expected_in_original": "dependency creation source_commit equals latest status-only source commit201e2fa", + "actual": "edge721a1ce8 retains creation commit6201a1d2; relationship/endpoints correct", + "source_basis": "/home/worsch/state-hub/api/services/forge_projection.py:_reconcile_source_edges creates source_commit only on creation; preserves unchanged edges", + "refinement": "retain original verifier unchanged; r2 pins exact creation commit, ancestor relation, identical declared dependency, current primary projection and zero edge changes", + "r2_sha256": "sha256:63aa5193e29c7ff1a8a57d4f2bf33beae30fa48031adeea466871cf217383cb5", + "native_action": false +} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/failed-publish-r1.py b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/failed-publish-r1.py new file mode 100644 index 00000000..61836d01 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/failed-publish-r1.py @@ -0,0 +1,127 @@ +"""Normal bounded source commits/publication; retain exact original dirty state.""" +from pathlib import Path +import hashlib +import json +import re +import subprocess +import sys + +ROOT = Path('/home/worsch/the-custodian') +HERE = Path(__file__).resolve().parent +DATED = HERE.parent +BASE = '05df7c3ee4d31879e7e0074e3210656b4f795794' +PLAN = HERE / 'plan.json' +STATE = HERE / 'state.json' + + +def sha(raw): + return hashlib.sha256(raw).hexdigest() + + +def git(*args): + return subprocess.check_output(['git', '-C', str(ROOT), *args], + stderr=subprocess.PIPE, timeout=45).decode().strip() + + +def protected(restore=False): + rows = json.loads((DATED / 'source-corrections-publication-r1/protected-state.json').read_text()) + for row in rows: + p = ROOT / row['path'] + if restore: + p.write_bytes((HERE / 'protected-backup' / row['path']).read_bytes()) + mode, oid, stage, _ = row['index'].split() + assert stage == '0' + git('update-index', '--cacheinfo', mode, oid, row['path']) + assert sha(p.read_bytes()) == row['sha256'] + assert git('ls-files', '--stage', '--', row['path']) == row['index'] + return rows + + +def run(label, argv, timeout): + result = subprocess.run(argv, cwd=ROOT, capture_output=True, text=True, timeout=timeout) + (HERE / (label + '.stdout.txt')).write_text(result.stdout) + (HERE / (label + '.stderr.txt')).write_text(result.stderr) + assert result.returncode == 0, label + ' refused; retain receipt and stop' + return result.stdout + + +if sys.argv[1] == 'prepare': + assert not PLAN.exists() and not STATE.exists() + assert git('rev-parse', 'HEAD') == BASE + assert git('ls-remote', 'origin', 'refs/heads/main').split()[0] == BASE + rows = protected() + for row in rows: + target = HERE / 'protected-backup' / row['path'] + target.parent.mkdir(parents=True, exist_ok=True) + target.write_bytes((ROOT / row['path']).read_bytes()) + wp = 'workplans/CUST-WP-0080-netkingdom-security-blueprint-and-gap-closure.md' + original = subprocess.check_output(['git', '-C', str(ROOT), 'show', BASE + ':' + wp]) + assert re.findall(rb'```task\n.*?```', original, re.S) == re.findall(rb'```task\n.*?```', (ROOT / wp).read_bytes(), re.S) + packets = ['platform-broker-followthrough-r1', 'platform-broker-review-r1', + 'platform-current-source-integration-r1', 'apps-chart-projection-r1', + 'platform-delivery-review-r1', 'nk48-consumer-compatibility-r1', + 'key39-finalization-current-r2'] + omitted = {'apps-chart-projection-r1/upstream/gitea-12.5.0.tgz', + 'apps-chart-projection-r1/upstream/forgejo-v11.0.3/custom/conf/app.example.ini'} + selected = [] + for name in packets: + for p in sorted((DATED / name).rglob('*')): + if (not p.is_file() or any(x in p.parts for x in ('publication-backup', 'consistency-backup', '__pycache__')) + or str(p.relative_to(DATED)) in omitted): + continue + selected.append(str(p.relative_to(ROOT))) + selected += [str((HERE / p).relative_to(ROOT)) for p in ('publish.py', 'fetch_public_inputs.py', 'scope.json')] + files = [{'path': p, 'sha256': sha((ROOT / p).read_bytes()), 'bytes': (ROOT / p).stat().st_size} for p in selected] + batches = []; batch = []; size = 0 + for row in files: + if batch and (len(batch) >= 18 or size + row['bytes'] > 260000): + batches.append(batch); batch = []; size = 0 + assert row['bytes'] <= 260000 + batch.append(row); size += row['bytes'] + if batch: + batches.append(batch) + batches.append([{'path': p, 'sha256': sha((ROOT / p).read_bytes()), 'bytes': (ROOT / p).stat().st_size} + for p in ('docs/netkingdom-target-implementation.md', wp)]) + PLAN.write_text(json.dumps({'base': BASE, 'batches': batches, 'omitted_public_inputs': sorted(omitted), + 'native_changes': False}, indent=2) + '\n') + STATE.write_text(json.dumps({'head': BASE, 'completed': []}, indent=2) + '\n') + print(json.dumps({'batches': len(batches), 'files': sum(map(len, batches)), + 'bytes': sum(r['bytes'] for b in batches for r in b)})) +elif sys.argv[1] == 'publish': + cfg = json.loads(PLAN.read_text()); state = json.loads(STATE.read_text()) + assert git('rev-parse', 'HEAD') == state['head'] + assert git('ls-remote', 'origin', 'refs/heads/main').split()[0] == state['head'] + protected() + for index, batch in enumerate(cfg['batches']): + if index < len(state['completed']): + continue + for row in batch: + assert sha((ROOT / row['path']).read_bytes()) == row['sha256'], row['path'] + paths = [r['path'] for r in batch] + label = 'batch-' + str(index + 1) + git('add', '--', *paths) + run(label + '-commit', ['git', 'commit', '--only', '-m', + 'Record reviewed owner implementation and consumer compatibility (' + str(index + 1) + ')', '--', *paths], 240) + head = git('rev-parse', 'HEAD') + assert set(git('diff-tree', '--no-commit-id', '--name-only', '-r', head).splitlines()) == set(paths) + protected() + try: + if index == len(cfg['batches']) - 1: + run('required-consistency', ['statehub', 'fix-consistency', '--repo', 'the-custodian', '--json'], 300) + projection = json.loads(run(label + '-sync', ['/home/worsch/repo-manager/.venv/bin/rmgr', + 'sync', '--path', str(ROOT), '--push'], 180)) + finally: + protected(restore=True) + receipt = projection['receipt'] + assert projection['ok'] and projection['status'] in ('applied', 'noop') + assert receipt['expected_commit'] == receipt['derived_commit'] == head + assert (receipt['instance_role'], receipt['instance_label']) == ('primary', 'railiance01') + assert receipt['outcome']['counts']['retired'] == 0 + assert git('ls-remote', 'origin', 'refs/heads/main').split()[0] == head + state['completed'].append({'batch': index + 1, 'commit': head, 'files': len(paths)}) + state['head'] = head + STATE.write_text(json.dumps(state, indent=2) + '\n') + print(json.dumps(state['completed'][-1]), flush=True) + print(json.dumps({'status': 'published', 'commit': state['head'], 'batches': len(state['completed'])})) +else: + raise SystemExit('prepare or publish required') diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/final-verification-r2.json b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/final-verification-r2.json new file mode 100644 index 00000000..5b74c1ec --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/final-verification-r2.json @@ -0,0 +1,352 @@ +{ + "status": "verified", + "root_commit": "git:16236ef479135df4361686aa69e9eeb987f33129", + "frozen_publication_snapshot": "git:90490002c16d353d675f4295f395d1917d30b9ef", + "snapshot_files_verified": 96, + "current_document_delta_verified": [ + "docs/netkingdom-target-implementation.md" + ], + "source_primary_bindings": [ + { + "owner": "the-custodian", + "task_count": 6, + "workplan_uuid": "dfadb19b-445e-59c6-bcd6-48e87b912c52", + "bindings": [ + { + "record_id": "CUST-WP-0080-T01", + "uuid": "c770f7e1-25eb-53ec-9a37-1f7794077ff8", + "status": "done" + }, + { + "record_id": "CUST-WP-0080-T02", + "uuid": "5973026f-8ca9-5882-99fe-65a54bc250ac", + "status": "done" + }, + { + "record_id": "CUST-WP-0080-T03", + "uuid": "87637402-02f1-57c1-8fbc-4141598af8e3", + "status": "progress" + }, + { + "record_id": "CUST-WP-0080-T04", + "uuid": "82378b0f-7004-5c2f-9683-b356a1227576", + "status": "todo" + }, + { + "record_id": "CUST-WP-0080-T05", + "uuid": "ed8b909a-23bf-5e5f-b600-e477fbae136b", + "status": "progress" + }, + { + "record_id": "CUST-WP-0080-T06", + "uuid": "6aca534c-5c7a-556f-b6b6-406433670c29", + "status": "progress" + } + ] + }, + { + "owner": "ops-warden", + "task_count": 4, + "workplan_uuid": "f7e81013-6868-5d99-8528-ba75a442eca9", + "bindings": [ + { + "record_id": "WARDEN-WP-0044-T01", + "uuid": "ef0920fc-418e-52cb-acff-9a5c0c728bf5", + "status": "done" + }, + { + "record_id": "WARDEN-WP-0044-T02", + "uuid": "5f68c991-f490-58f8-a121-92f74073d272", + "status": "done" + }, + { + "record_id": "WARDEN-WP-0044-T03", + "uuid": "bcbf6c91-2c04-5c16-ae8c-5d6c06fd6b89", + "status": "progress" + }, + { + "record_id": "WARDEN-WP-0044-T04", + "uuid": "4a0fa4a7-5ca9-518a-ab92-a79a5e2cf93e", + "status": "wait" + } + ] + }, + { + "owner": "net-kingdom", + "task_count": 39, + "workplan_uuid": "e31f3f9d-0748-5137-b0a3-7b3ca46a66eb", + "bindings": [ + { + "record_id": "NK-WP-0048-T01", + "uuid": "930ac3e9-20ec-5473-98cd-3fe8fddb730f", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T02", + "uuid": "19c25d96-a55c-58f0-9168-3fdbc4955fc2", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T03", + "uuid": "e487975b-73b1-516c-971d-da4cbbb93063", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T04", + "uuid": "2fffe112-7d55-5680-9952-78d74f44f87f", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T05", + "uuid": "3d987d3d-0797-538b-86e4-51185a327ae2", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T06", + "uuid": "d9b26bcf-a7c6-59a2-92a0-f913d76a203c", + "status": "wait" + }, + { + "record_id": "NK-WP-0048-T07", + "uuid": "c3c9c3ae-4f23-5ba7-9e6f-e63bcf29b9f7", + "status": "wait" + }, + { + "record_id": "NK-WP-0048-T08", + "uuid": "8e519082-dc8b-5e46-b660-03d03e55dcf6", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T09", + "uuid": "0ee12dfc-8260-5038-bd39-cc7fb4113be0", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T10", + "uuid": "4b06ca97-c1e4-5680-bf22-ab75ab1646a4", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T11", + "uuid": "ef2a0119-f59e-5e45-9519-115da9df7b85", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T12", + "uuid": "7ce4eee3-cd47-55a9-bfa5-4f1835d4d6fd", + "status": "todo" + }, + { + "record_id": "NK-WP-0048-T13", + "uuid": "b264c10b-565c-5d29-b788-03cf5fbd2883", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T14", + "uuid": "fce95440-a25b-5f27-8ef3-a3d182099113", + "status": "progress" + }, + { + "record_id": "NK-WP-0048-T15", + "uuid": "1b825705-4848-5edc-832f-b1622cd9bdb7", + "status": "wait" + }, + { + "record_id": "NK-WP-0048-T16", + "uuid": "200bf500-5084-5ae7-be26-3033fe1f296e", + "status": "todo" + }, + { + "record_id": "NK-WP-0048-T17", + "uuid": "8c3e4baa-a218-5996-af9e-fe1153a46dac", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T18", + "uuid": "9c45da71-fb4c-5f20-9065-90f448f37c64", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T19", + "uuid": "f50fdcd1-00be-5c3c-be0c-345aa2126032", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T20", + "uuid": "863fcbdb-e246-51ba-87ca-a2f44d01d6f8", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T21", + "uuid": "afe78e4d-408a-516a-ab92-e212e8a2d11d", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T22", + "uuid": "ea50d93b-0d04-55d2-98c4-9b6c3fe925b1", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T23", + "uuid": "6e7cd483-c7af-53a2-9d0a-3d76b6fb49ee", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T24", + "uuid": "1a3931ee-3b5f-52fc-9295-4073804f4bd2", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T25", + "uuid": "0de2a7d9-874d-578b-a076-f653fe42e30b", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T26", + "uuid": "94b3cbf0-c908-5ac6-b0db-67385c3e021c", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T27", + "uuid": "e56365f8-29b5-5c89-a329-8115f9f3b2a7", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T28", + "uuid": "6dab281c-ea9a-5a17-a83f-e8e9a4d4484f", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T29", + "uuid": "129db41d-4560-5e20-9f3b-c3c91e0a5601", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T30", + "uuid": "6f6073ac-52dd-5b70-8874-6d76d4c072e4", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T31", + "uuid": "ed1ccd87-89a0-5e69-885c-0eaf5ab0bb5a", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T32", + "uuid": "c6d0a27e-f6a7-5df0-95f6-3e7473d38bb5", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T33", + "uuid": "5ace28ff-a4cb-5647-a8f6-3cd54bb9d0a5", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T34", + "uuid": "37f43c40-d014-544e-aa0b-5219dd4a6b93", + "status": "progress" + }, + { + "record_id": "NK-WP-0048-T35", + "uuid": "cf1d6ab3-846e-53ea-8575-d6347b6f4769", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T36", + "uuid": "7ba71abd-3c85-53ce-9837-7b0653ec709c", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T37", + "uuid": "e493fb4b-52d2-54d4-a732-b42242855b3e", + "status": "progress" + }, + { + "record_id": "NK-WP-0048-T38", + "uuid": "2c32b963-a87c-50a1-91e1-b07ea1fe4960", + "status": "done" + }, + { + "record_id": "NK-WP-0048-T39", + "uuid": "513c43ae-05f2-5a65-9c80-a911b7d680b8", + "status": "progress" + } + ], + "release_dependency": { + "id": "721a1ce8-a4be-4442-b82d-1f570efa3ca5", + "from_workplan_id": "e31f3f9d-0748-5137-b0a3-7b3ca46a66eb", + "from_task_id": "513c43ae-05f2-5a65-9c80-a911b7d680b8", + "to_workplan_id": null, + "to_task_id": "2c32b963-a87c-50a1-91e1-b07ea1fe4960", + "relationship_type": "starts_after", + "description": "NK-WP-0048-T39 depends_on NK-WP-0048-T38", + "source_owner": "forge:net-kingdom", + "source_commit": "6201a1d2de282a218fde8d81b32f790a526942ef", + "created_at": "2026-10-17T21:24:53.557546Z", + "updated_at": "2026-10-17T21:24:53.557546Z" + } + }, + { + "owner": "key-cape", + "task_count": 3, + "workplan_uuid": "09c3bddf-6058-5603-8488-cccdb7be4f86", + "bindings": [ + { + "record_id": "KEY-WP-0039-T01", + "uuid": "4d06b059-3768-53bb-83a4-a9a71c0850b8", + "status": "done" + }, + { + "record_id": "KEY-WP-0039-T02", + "uuid": "03da4c38-1dac-53b1-8b0b-e697df48e9d3", + "status": "wait" + }, + { + "record_id": "KEY-WP-0039-T03", + "uuid": "54d37ad8-2352-51c2-bb2e-af6070dbbd73", + "status": "done" + } + ] + }, + { + "owner": "railiance-platform", + "task_count": 4, + "workplan_uuid": "43110f82-ef9f-5a46-a305-f0e287b7b226", + "bindings": [ + { + "record_id": "RPF-WP-0060-T01", + "uuid": "afec2053-1995-506d-a112-cda1de552c1c", + "status": "progress" + }, + { + "record_id": "RPF-WP-0060-T02", + "uuid": "1a764c10-3a41-5eff-af96-c9e33a6e2c8b", + "status": "done" + }, + { + "record_id": "RPF-WP-0060-T03", + "uuid": "b5d73ec6-c593-50a9-8367-f899edec6f5f", + "status": "todo" + }, + { + "record_id": "RPF-WP-0060-T04", + "uuid": "84f8b0a4-8450-5623-8608-dc277978383b", + "status": "todo" + } + ] + } + ], + "task_bindings_verified": 56, + "protected_original_paths": 8, + "owner_heads": { + "railiance-platform": "git:d35c0f9d4b1c12684cfc334cd876ba0e96a13b88", + "net-kingdom": "git:201e2fa0f9c8398187e60983782d4aea31da19ea", + "ops-warden": "git:b593c879831378db7dc62adfabdfedf2d44ddd38", + "railiance-apps": "git:944b30ad63ab054cc24617e374e177d34cd572da", + "key-cape": "git:d803e9282a47b49daf930fb905312fa5104c0ace" + }, + "public_original_metadata_reconstructions": 4, + "all_sixteen_native_gates": "open", + "goal": "active", + "observed_at": "2026-10-17T21:58:33.183085+00:00" +} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/netkingdom-progress.json b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/netkingdom-progress.json new file mode 100644 index 00000000..86c462e3 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/netkingdom-progress.json @@ -0,0 +1,14 @@ +{ + "workplan_id": "e31f3f9d-0748-5137-b0a3-7b3ca46a66eb", + "id": "b5ce6f9e-19be-42d8-9ee7-8037f466a85f", + "topic_id": null, + "task_id": "7ba71abd-3c85-53ce-9837-7b0653ec709c", + "decision_id": null, + "event_type": "note", + "summary": "Published source0241070b914d62b6ee483d61d587ee9a8e7152f0; verified primary exact commit and37 NK48 task UUID/status bindings, preserving35 existing blocks. T36done records actual chart12.5.0 / image11.0.3 source and nine independently reproduced network-disabled rendering tests: CLIENT_SECRET reference compatible; singular consumer field cannot express original any-of three-group gate; full case refuses. T37progress tracks faithful consumer implementation; issuer derived verdict was not admitted, stale-ID/currentUserInfo omission and persisted OAuth source inverse/downgrade risks retained. Source candidate extension is undergoing independent whole-package build review. T34 inverse/backend and T16/T06 admission/native remain open. No new type/PIN/owner assent/image/credential/native actions. Evidence nk48-consumer-compatibility-r1/ and apps-chart-projection-r1/.", + "detail": null, + "author": "codex", + "session_id": null, + "created_at": "2026-10-17T21:11:41.004079Z", + "workstream_id": "e31f3f9d-0748-5137-b0a3-7b3ca46a66eb" +} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/plan-before-digest-format.json b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/plan-before-digest-format.json new file mode 100644 index 00000000..6b38b820 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/plan-before-digest-format.json @@ -0,0 +1,506 @@ +{ + "base": "05df7c3ee4d31879e7e0074e3210656b4f795794", + "batches": [ + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/README.md", + "sha256": "fb652cd9c77ae0f270f7775a17e01bc57498db52df40dd867028e0ecc3957cc5", + "bytes": 5372 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/SHA256SUMS", + "sha256": "9cb1c3e6d70595b140dfa65f57d8883667be81cc4e84371426412bb38c9a4716", + "bytes": 1206 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/baseline-reproduction.log", + "sha256": "abcec396aee21d9f44dd949b3de58e91ff4c15452af62dc168354c7f5769dca2", + "bytes": 2203 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/candidate/credential-grants/catalog.yaml", + "sha256": "7cfe12970a57ab75cb91c7c5024a4dcfc28ffae4b31a1afaf4d0cedabbb22886", + "bytes": 8980 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/candidate/scripts/keycape_client_secret_generate.py", + "sha256": "da80947a2c28df36b37e711d1e6d2f66b4c0434082e7bf187da3d3cb692cec28", + "bytes": 13892 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/candidate/tests/test_credential_grants.py", + "sha256": "5c0cfcb039c0220e59dac7986d960bb568593a3a9281ff2557bb6c38de31e68a", + "bytes": 4360 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/candidate/tests/test_keycape_client_secret_generate.py", + "sha256": "5906e32c7fe0db09c1f7db48ad61226497e062f38ebfa91e8a03be89272765c0", + "bytes": 17233 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/manifest.json", + "sha256": "61c15ae8d12b3665eb0e210cc0a1b0a238f52026258a59987657fd77f8d6c0ba", + "bytes": 4508 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/patch-check.log", + "sha256": "3ecccb9cee2279b2f6d665fc7116421685262abbd7b0f82f59e3c8ed56892ba3", + "bytes": 55 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/platform-source.patch", + "sha256": "b0b85153d04a28d4bb05ab39a9b54c782c9efa54bd80ca961e2bcc6348a9b546", + "bytes": 16519 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/reproduce-baseline.py", + "sha256": "f3d1feabe5124f882306b1b58485a86ac2072d93981d468dc746efdf4ed6b6b3", + "bytes": 1594 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/run-tests.sh", + "sha256": "28f077918a87437d76b14dc93a035b358a99f1a721735b189263cf6d3b27fdea", + "bytes": 891 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/tests.log", + "sha256": "2102b703320a633de8a5135a753020d4e8e0854947df41f400b2935562f38191", + "bytes": 3067 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/workplan-source-draft.md", + "sha256": "88e329cb244818427717b9f28b26b2ef2610c20f6ad3dfd3ae0d83386b6c1b51", + "bytes": 3994 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-review-r1/baseline-reproduction.log", + "sha256": "f27db22e006f6272b60d8a581ecedfc2b5096703dc99504eada23a372be6a119", + "bytes": 2227 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-review-r1/independent-probes.py", + "sha256": "11b071b919a2da098ad6f20a89f93aadc55a9c08f731d46f2196f63ebd427f79", + "bytes": 3738 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-review-r1/review.json", + "sha256": "05d5bf9c2b90a8562ce4675866b8b23c0e12d5d069b43b194948d384b0a553f5", + "bytes": 5167 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/apply_source.py", + "sha256": "70ae712d14ad2f21456b98fab2d92ab5736dfae72afd817382f811b9c5823c50", + "bytes": 4450 + } + ], + [ + { + "path": "docs/netkingdom-target-implementation.md", + "sha256": "274109882a4b31163869bccccdc12e51a3c647d5f39fe549c5d4c7aac62e0fe2", + "bytes": 84664 + }, + { + "path": "workplans/CUST-WP-0080-netkingdom-security-blueprint-and-gap-closure.md", + "sha256": "f76417b96a7e7ed0c60394d18a0d0b9305d6320248f67b58ac86e439cb76e343", + "bytes": 85183 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/consistency.json", + "sha256": "39ffa437ed22fa879e6e267a7bec9ba250d6af66135e341ac75cbb7babe546e2", + "bytes": 26051 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/consistency.stderr.txt", + "sha256": "f4a6aa1609a13600a0b97cbb08bbc03b3e247b619ff37912d37f7e109ce798ba", + "bytes": 79 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/identifier-assignment.json", + "sha256": "f6c200a95e24d233710d5025dbc3a45332ea8131c90bb3f29ba32947fc0e5d73", + "bytes": 1337 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/identifier-preview.json", + "sha256": "5c83d1397d2ec4c8bf7b98d38104f06adbda6c5ce9019ed62e62338fb828094b", + "bytes": 1338 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/projection.json", + "sha256": "e5a68f6d05a95025b4822a0ca4754e1ed99c8e8a59956251ab1264c6509e2aa3", + "bytes": 15001 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/projection.stderr.txt", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/publication-commit.json", + "sha256": "c0080b63d652d428b05a48ec031b63c80903a863879988eecc35ce2802836afa", + "bytes": 1416 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/publication-inputs.json", + "sha256": "1b8b686ab3e8fc97dff7e1b7fbc5eb42fca49475103429e90f951f5934b6994e", + "bytes": 989 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/source-application.json", + "sha256": "1e856a3809badba3f2bc4df075730734c4743356f0bd17d98367a309177b5320", + "bytes": 1588 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/verified-task-bindings.json", + "sha256": "6312afc4c4de6f9f37444bba305c62ca19ef956f92e3198f15c755841131205c", + "bytes": 732 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/workplan.md", + "sha256": "1336a513130c9751d73a9d696d38fb6377e85c6cc107c2968431abfd2e8fd762", + "bytes": 5093 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/OWNER-CHANGE.md", + "sha256": "f58e6e3aafec79436c4735387e6a6d4e8302107e9ca7a27bec37b2d65cbd1d50", + "bytes": 6431 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/README.md", + "sha256": "3df15baabe3a0d41397568a6b181a204d6aadd3d63ab7f2b3495589dd8768924", + "bytes": 3658 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/SHA256SUMS.json", + "sha256": "daba4249aeb0563e069cd9c06bd3c80442e2f3ed0f028943bdf8a8355321f74d", + "bytes": 3647 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/apps-source.patch", + "sha256": "85be01b5d370e7996e8a2b18c4d7b576a24b0ca6d1c03454157091c581f20a01", + "bytes": 4130 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/postimages/helm/forgejo-registry-values.yaml", + "sha256": "a38f551734843c6367448f267c7376b1aeee010927a49690fdd7c1471e0ae450", + "bytes": 303 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/postimages/helm/forgejo-values.yaml", + "sha256": "9467ef8d28de53496cf6f7b71c3b9669cd9ce91ef0667342b6aba457d05d424c", + "bytes": 5169 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/preimages/helm/forgejo-registry-values.yaml", + "sha256": "a38f551734843c6367448f267c7376b1aeee010927a49690fdd7c1471e0ae450", + "bytes": 303 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/preimages/helm/forgejo-values.yaml", + "sha256": "cf87a3dccd666bf8870619755afac4af64fc0bee77b0f0ea54718d6384b70d4f", + "bytes": 5083 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-inventory.json", + "sha256": "77aabbe413aae6ac31c342304afa200d09ff3c74e3fc9f18d2af6919a816ab94", + "bytes": 1606 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/consumer-delivery.yaml", + "sha256": "56478a83d799c08dc1e5159983b1e843a46b16dfeee7e84c31401d1f92430df2", + "bytes": 1412 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/forgejo-case-1.3.yaml", + "sha256": "546aad5cf26842c484fc6ba99940d56697b85531afea11872556761008923c94", + "bytes": 722 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/AGENTS.md", + "sha256": "77c8e1ac762e7c101cd09a3aa184993309ed057821bd53fb0d318979a45c9315", + "bytes": 7854 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/INTENT.md", + "sha256": "b22cb440691bb399b064ee10ab1a03e1e07838da1051bf6235fbfe2cf820eb10", + "bytes": 6959 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/cmd/keycape/main.go", + "sha256": "ff1ee4f5d2eb86a1e4184374d5244e24704d9d5fd780e173062af07112344afd", + "bytes": 15751 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/internal/config/config.go", + "sha256": "afd465acd9b6879493b888acc6fc54b9a71e032892701a81f1072986d2c30ac7", + "bytes": 5568 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/internal/domain/model.go", + "sha256": "ce4309fc7426c66e4ebc18022d2f704c10ebbec243cc98e657d1de765ad09029", + "bytes": 5029 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/internal/server/oidc/token.go", + "sha256": "8422cc9dbd39c88dfe835b43f6262cb120bc0d2e5b08898a151167b7555368d3", + "bytes": 20903 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/internal/server/oidc/userinfo.go", + "sha256": "bbd5fa9ebd0726371c90d6938536c1ce5fcfacbbe853a80833e3587fc2115a0b", + "bytes": 8347 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/type-1.3.yaml", + "sha256": "ef02ddae3167bdd1558193a5f6db0379fb8cc84207531706d5ef35caabc3684f", + "bytes": 24585 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/test-output.txt", + "sha256": "64171812c2935ab8616e17c69b6fcfcbfb2ffc411edb1b7a8ff786a936eb63f0", + "bytes": 1987 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/tests/test_forgejo_chart_projection.py", + "sha256": "3aae2236ffcefbeed9225a9bf35650f1128379004ab6e34d548a596192824156", + "bytes": 9899 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/tools/forgejo_chart_projection.py", + "sha256": "b4900a9dbb98847ab81a723eddde1fbf0ea39c2fabc7d7006a1debd811b8a553", + "bytes": 3679 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/Chart.yaml", + "sha256": "60e8522a68c67c0b18bdb9fb66b27a19ad09f8a051ee3757ade5de1d3f299224", + "bytes": 4211 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/templates/_helpers.tpl", + "sha256": "792273fd24f4e8cf5328391fc3f5f1e406e24fe78ac4925c88d61426daccc6fb", + "bytes": 19444 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/templates/gitea/deployment.yaml", + "sha256": "1abdd4e7915f392aca91073003887bf75baf1f0e5b66928a2f4c4a140dbeba0e", + "bytes": 17092 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/templates/gitea/init.yaml", + "sha256": "518c78409b35d4612c413d9ff66c21ced32f8fbeb4b704950ff5ab1b919220bc", + "bytes": 9917 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/values.yaml", + "sha256": "acdcea4c5739152b7fd825202b3920cfa22040d4b82d8e20588163ba3821abf3", + "bytes": 27706 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-index-entry.json", + "sha256": "bb5ea7f46836ded497662ef380c2cd146e34b76cea72085051dfe08f218bcbe5", + "bytes": 4655 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/forgejo-v11.0.3/cmd/admin_auth_oauth.go", + "sha256": "d5faee30ffbb9a560256c92a0e05e652b79e95e016448cbac7dbb6ad0fdad937", + "bytes": 8236 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/forgejo-v11.0.3/routers/web/auth/oauth.go", + "sha256": "6f454b3550b150178a8597a9437adb0c626556f34c15a13778c15d675b05659b", + "bytes": 48922 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/forgejo-v11.0.3/services/auth/source/oauth2/source.go", + "sha256": "a6ee5146c07d8efb1837ef91f1ab5f3139f69a1ff66f814d5e9c6053bf9b0d8b", + "bytes": 1565 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/validation.json", + "sha256": "bca9146212d10c9f3cc68593623032a0e13c0dcb1e43b6117a81129a0e4308cd", + "bytes": 1829 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/README.md", + "sha256": "11e7d8d18d291f609ad98c4d2c033343005061d155a2f5c1ad3482d309e59653", + "bytes": 9675 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/clustersecretstore-v1-schema.json", + "sha256": "f74b1c186ed40fd7e4af47941fb5ec48e70e5fa66631ef1307e943b0773baf00", + "bytes": 234298 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/externalsecret-v1-schema.json", + "sha256": "22f69a2d2c64d1b4887766194b74e9543ec7b2e24f4696f9d7e0838b428ae2a7", + "bytes": 28332 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/independent-defect-reproductions.log", + "sha256": "6608fcaee88f89acf73b3a42fa0da4af42cfaca2c85426616c8103062fe3dbd6", + "bytes": 1809 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/original-command-tests.log", + "sha256": "2d75ce8f96f7d410fa2cf82b695bbce0235449fefa81430de71c0291a1fe3af2", + "bytes": 2603 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/original-contract-tests.log", + "sha256": "a60cbc658cabf862267757db7d303fa678e7a7ca4fe58aa2f2ba933e654451a7", + "bytes": 1150 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-defaults-fix.patch", + "sha256": "1f2da9690e1c61871f7db8f885c90152cd7a68e392f5bcc62fcc8e0f408f8d4e", + "bytes": 2633 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-fix-source/scripts/keycape_issuer_delivery.py", + "sha256": "f740564866f2c71efc034eb1c4f844308a301499c2f67e7629a9f588a76cc84a", + "bytes": 8284 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-fix-source/scripts/keycape_issuer_eso.py", + "sha256": "e0164a39c4a51ebbea66c38c2d42880675e242edb3920b2a2d362f365dee7c67", + "bytes": 4108 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-fix-tests.log", + "sha256": "7cee0c9848167e8417202a0832de5e3ea72db2b36d83ac33a8df932711988f1b", + "bytes": 4209 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-patch-check.log", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/runs.json", + "sha256": "727665c0b005d01b3cd02ede816939d7a643d0fbe481ab05d90d1fce670a479a", + "bytes": 1923 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/source-pins.json", + "sha256": "e308fc2ced7825ae72449ee549cb57fc43eb2842bfac95a79806e4e0b81bdfe3", + "bytes": 2416 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/test_independent_review.py", + "sha256": "6caa6686b85e22461a2fdc1f9893fb11ed074540ebf62a18226f744a169f386e", + "bytes": 7442 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/test_partial_defaults_fix.py", + "sha256": "7c6489103a223a42fe8a31c8d54a38dd066f2ec38db5e18454309b6185c253c4", + "bytes": 2611 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/apply_refinement.py", + "sha256": "4d467786dd70b8073de8c62ff93930637a888573adb20babf52764bbd664ab58", + "bytes": 3496 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/consistency.json", + "sha256": "e6efe6659602921c5cac4d5074f80caf90d722e85235d9ee28fa914ac3e8a6ea", + "bytes": 12776 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/consistency.stderr.txt", + "sha256": "f4a6aa1609a13600a0b97cbb08bbc03b3e247b619ff37912d37f7e109ce798ba", + "bytes": 79 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/identifier-assignment.json", + "sha256": "e531a5763f369c1d38ffc1bf07d6a5f8b05f14e4c4fd9551d91ae2448319f988", + "bytes": 695 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/identifier-preview.json", + "sha256": "a4efdf6208f8c2fefac5044be55c97c27cee2110ff71d28d1991afcb6cda1d20", + "bytes": 696 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/projection.json", + "sha256": "0c67c6d28d63732cfe59283cab0af7699486cc903bf4227756fcda0cc35e5de1", + "bytes": 36719 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/projection.stderr.txt", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/publication-commit.json", + "sha256": "af92f425052512de27404ae5d04691451261bfc2dd7d2c6018b3e65977aefdcd", + "bytes": 699 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/publication-inputs.json", + "sha256": "07f73a93e7532a5a36147b284aa0b14f1c458f4452ff7ce74e8ec8cfdb31171b", + "bytes": 360 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/source-refinement.json", + "sha256": "07352ce8be8512baaee6cfac4a9d61c19ee28d237238c3bdb3e80664aa18da97", + "bytes": 1478 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/task-additions.md", + "sha256": "2908828d7277b7e28b92c15b01c66e7ce04009a81807499c5dfd482410da9eaf", + "bytes": 3320 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/verified-task-bindings.json", + "sha256": "b3cbc9b2f4968cddb88ea9814a9d0da97bbf6921e7abe778a3dd16bec9d430d9", + "bytes": 4968 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/key39-finalization-current-r2/progress-receipt.json", + "sha256": "b83912f0a378db692ba0cb6eb42a5d46b0b10b08e0939fd85c8f9253861852dc", + "bytes": 1182 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/key39-finalization-current-r2/upstream-preparation.json", + "sha256": "541f5ffc7d4761b5e343cf35af7a9af3dfa5009707c075867dd3e191d6d01fc1", + "bytes": 2009 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/key39-finalization-current-r2/verification.json", + "sha256": "1cc5df585559803f83baf337dfdef979ef8c5927d6cd2dcf30de1a574586462b", + "bytes": 8945 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/publish.py", + "sha256": "519c136bfad6d602e44ee35522df68dea2aa8cdda65f1de62c36a5e13c942051", + "bytes": 6521 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/fetch_public_inputs.py", + "sha256": "a3077118f2dd4366b4fc38d554822b72c116aab99d6e978c75ce7fc56816c516", + "bytes": 1246 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/scope.json", + "sha256": "6d0b09dad0ffc9fb28bd2ebd200a668d41fe3f9ece56649689313f28887cf290", + "bytes": 1043 + } + ] + ], + "omitted_public_inputs": [ + "apps-chart-projection-r1/upstream/forgejo-v11.0.3/custom/conf/app.example.ini", + "apps-chart-projection-r1/upstream/gitea-12.5.0.tgz" + ], + "native_changes": false +} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/plan-before-reorder.json b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/plan-before-reorder.json new file mode 100644 index 00000000..fbb0b840 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/plan-before-reorder.json @@ -0,0 +1,506 @@ +{ + "base": "05df7c3ee4d31879e7e0074e3210656b4f795794", + "batches": [ + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/README.md", + "sha256": "fb652cd9c77ae0f270f7775a17e01bc57498db52df40dd867028e0ecc3957cc5", + "bytes": 5372 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/SHA256SUMS", + "sha256": "9cb1c3e6d70595b140dfa65f57d8883667be81cc4e84371426412bb38c9a4716", + "bytes": 1206 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/baseline-reproduction.log", + "sha256": "abcec396aee21d9f44dd949b3de58e91ff4c15452af62dc168354c7f5769dca2", + "bytes": 2203 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/candidate/credential-grants/catalog.yaml", + "sha256": "7cfe12970a57ab75cb91c7c5024a4dcfc28ffae4b31a1afaf4d0cedabbb22886", + "bytes": 8980 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/candidate/scripts/keycape_client_secret_generate.py", + "sha256": "da80947a2c28df36b37e711d1e6d2f66b4c0434082e7bf187da3d3cb692cec28", + "bytes": 13892 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/candidate/tests/test_credential_grants.py", + "sha256": "5c0cfcb039c0220e59dac7986d960bb568593a3a9281ff2557bb6c38de31e68a", + "bytes": 4360 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/candidate/tests/test_keycape_client_secret_generate.py", + "sha256": "5906e32c7fe0db09c1f7db48ad61226497e062f38ebfa91e8a03be89272765c0", + "bytes": 17233 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/manifest.json", + "sha256": "61c15ae8d12b3665eb0e210cc0a1b0a238f52026258a59987657fd77f8d6c0ba", + "bytes": 4508 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/patch-check.log", + "sha256": "3ecccb9cee2279b2f6d665fc7116421685262abbd7b0f82f59e3c8ed56892ba3", + "bytes": 55 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/platform-source.patch", + "sha256": "b0b85153d04a28d4bb05ab39a9b54c782c9efa54bd80ca961e2bcc6348a9b546", + "bytes": 16519 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/reproduce-baseline.py", + "sha256": "f3d1feabe5124f882306b1b58485a86ac2072d93981d468dc746efdf4ed6b6b3", + "bytes": 1594 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/run-tests.sh", + "sha256": "28f077918a87437d76b14dc93a035b358a99f1a721735b189263cf6d3b27fdea", + "bytes": 891 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/tests.log", + "sha256": "2102b703320a633de8a5135a753020d4e8e0854947df41f400b2935562f38191", + "bytes": 3067 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/workplan-source-draft.md", + "sha256": "88e329cb244818427717b9f28b26b2ef2610c20f6ad3dfd3ae0d83386b6c1b51", + "bytes": 3994 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-review-r1/baseline-reproduction.log", + "sha256": "f27db22e006f6272b60d8a581ecedfc2b5096703dc99504eada23a372be6a119", + "bytes": 2227 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-review-r1/independent-probes.py", + "sha256": "11b071b919a2da098ad6f20a89f93aadc55a9c08f731d46f2196f63ebd427f79", + "bytes": 3738 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-review-r1/review.json", + "sha256": "05d5bf9c2b90a8562ce4675866b8b23c0e12d5d069b43b194948d384b0a553f5", + "bytes": 5167 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/apply_source.py", + "sha256": "70ae712d14ad2f21456b98fab2d92ab5736dfae72afd817382f811b9c5823c50", + "bytes": 4450 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/consistency.json", + "sha256": "39ffa437ed22fa879e6e267a7bec9ba250d6af66135e341ac75cbb7babe546e2", + "bytes": 26051 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/consistency.stderr.txt", + "sha256": "f4a6aa1609a13600a0b97cbb08bbc03b3e247b619ff37912d37f7e109ce798ba", + "bytes": 79 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/identifier-assignment.json", + "sha256": "f6c200a95e24d233710d5025dbc3a45332ea8131c90bb3f29ba32947fc0e5d73", + "bytes": 1337 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/identifier-preview.json", + "sha256": "5c83d1397d2ec4c8bf7b98d38104f06adbda6c5ce9019ed62e62338fb828094b", + "bytes": 1338 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/projection.json", + "sha256": "e5a68f6d05a95025b4822a0ca4754e1ed99c8e8a59956251ab1264c6509e2aa3", + "bytes": 15001 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/projection.stderr.txt", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/publication-commit.json", + "sha256": "c0080b63d652d428b05a48ec031b63c80903a863879988eecc35ce2802836afa", + "bytes": 1416 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/publication-inputs.json", + "sha256": "1b8b686ab3e8fc97dff7e1b7fbc5eb42fca49475103429e90f951f5934b6994e", + "bytes": 989 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/source-application.json", + "sha256": "1e856a3809badba3f2bc4df075730734c4743356f0bd17d98367a309177b5320", + "bytes": 1588 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/verified-task-bindings.json", + "sha256": "6312afc4c4de6f9f37444bba305c62ca19ef956f92e3198f15c755841131205c", + "bytes": 732 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/workplan.md", + "sha256": "1336a513130c9751d73a9d696d38fb6377e85c6cc107c2968431abfd2e8fd762", + "bytes": 5093 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/OWNER-CHANGE.md", + "sha256": "f58e6e3aafec79436c4735387e6a6d4e8302107e9ca7a27bec37b2d65cbd1d50", + "bytes": 6431 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/README.md", + "sha256": "3df15baabe3a0d41397568a6b181a204d6aadd3d63ab7f2b3495589dd8768924", + "bytes": 3658 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/SHA256SUMS.json", + "sha256": "daba4249aeb0563e069cd9c06bd3c80442e2f3ed0f028943bdf8a8355321f74d", + "bytes": 3647 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/apps-source.patch", + "sha256": "85be01b5d370e7996e8a2b18c4d7b576a24b0ca6d1c03454157091c581f20a01", + "bytes": 4130 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/postimages/helm/forgejo-registry-values.yaml", + "sha256": "a38f551734843c6367448f267c7376b1aeee010927a49690fdd7c1471e0ae450", + "bytes": 303 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/postimages/helm/forgejo-values.yaml", + "sha256": "9467ef8d28de53496cf6f7b71c3b9669cd9ce91ef0667342b6aba457d05d424c", + "bytes": 5169 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/preimages/helm/forgejo-registry-values.yaml", + "sha256": "a38f551734843c6367448f267c7376b1aeee010927a49690fdd7c1471e0ae450", + "bytes": 303 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/preimages/helm/forgejo-values.yaml", + "sha256": "cf87a3dccd666bf8870619755afac4af64fc0bee77b0f0ea54718d6384b70d4f", + "bytes": 5083 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-inventory.json", + "sha256": "77aabbe413aae6ac31c342304afa200d09ff3c74e3fc9f18d2af6919a816ab94", + "bytes": 1606 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/consumer-delivery.yaml", + "sha256": "56478a83d799c08dc1e5159983b1e843a46b16dfeee7e84c31401d1f92430df2", + "bytes": 1412 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/forgejo-case-1.3.yaml", + "sha256": "546aad5cf26842c484fc6ba99940d56697b85531afea11872556761008923c94", + "bytes": 722 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/AGENTS.md", + "sha256": "77c8e1ac762e7c101cd09a3aa184993309ed057821bd53fb0d318979a45c9315", + "bytes": 7854 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/INTENT.md", + "sha256": "b22cb440691bb399b064ee10ab1a03e1e07838da1051bf6235fbfe2cf820eb10", + "bytes": 6959 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/cmd/keycape/main.go", + "sha256": "ff1ee4f5d2eb86a1e4184374d5244e24704d9d5fd780e173062af07112344afd", + "bytes": 15751 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/internal/config/config.go", + "sha256": "afd465acd9b6879493b888acc6fc54b9a71e032892701a81f1072986d2c30ac7", + "bytes": 5568 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/internal/domain/model.go", + "sha256": "ce4309fc7426c66e4ebc18022d2f704c10ebbec243cc98e657d1de765ad09029", + "bytes": 5029 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/internal/server/oidc/token.go", + "sha256": "8422cc9dbd39c88dfe835b43f6262cb120bc0d2e5b08898a151167b7555368d3", + "bytes": 20903 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/internal/server/oidc/userinfo.go", + "sha256": "bbd5fa9ebd0726371c90d6938536c1ce5fcfacbbe853a80833e3587fc2115a0b", + "bytes": 8347 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/type-1.3.yaml", + "sha256": "ef02ddae3167bdd1558193a5f6db0379fb8cc84207531706d5ef35caabc3684f", + "bytes": 24585 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/test-output.txt", + "sha256": "64171812c2935ab8616e17c69b6fcfcbfb2ffc411edb1b7a8ff786a936eb63f0", + "bytes": 1987 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/tests/test_forgejo_chart_projection.py", + "sha256": "3aae2236ffcefbeed9225a9bf35650f1128379004ab6e34d548a596192824156", + "bytes": 9899 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/tools/forgejo_chart_projection.py", + "sha256": "b4900a9dbb98847ab81a723eddde1fbf0ea39c2fabc7d7006a1debd811b8a553", + "bytes": 3679 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/Chart.yaml", + "sha256": "60e8522a68c67c0b18bdb9fb66b27a19ad09f8a051ee3757ade5de1d3f299224", + "bytes": 4211 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/templates/_helpers.tpl", + "sha256": "792273fd24f4e8cf5328391fc3f5f1e406e24fe78ac4925c88d61426daccc6fb", + "bytes": 19444 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/templates/gitea/deployment.yaml", + "sha256": "1abdd4e7915f392aca91073003887bf75baf1f0e5b66928a2f4c4a140dbeba0e", + "bytes": 17092 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/templates/gitea/init.yaml", + "sha256": "518c78409b35d4612c413d9ff66c21ced32f8fbeb4b704950ff5ab1b919220bc", + "bytes": 9917 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/values.yaml", + "sha256": "acdcea4c5739152b7fd825202b3920cfa22040d4b82d8e20588163ba3821abf3", + "bytes": 27706 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-index-entry.json", + "sha256": "bb5ea7f46836ded497662ef380c2cd146e34b76cea72085051dfe08f218bcbe5", + "bytes": 4655 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/forgejo-v11.0.3/cmd/admin_auth_oauth.go", + "sha256": "d5faee30ffbb9a560256c92a0e05e652b79e95e016448cbac7dbb6ad0fdad937", + "bytes": 8236 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/forgejo-v11.0.3/routers/web/auth/oauth.go", + "sha256": "6f454b3550b150178a8597a9437adb0c626556f34c15a13778c15d675b05659b", + "bytes": 48922 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/forgejo-v11.0.3/services/auth/source/oauth2/source.go", + "sha256": "a6ee5146c07d8efb1837ef91f1ab5f3139f69a1ff66f814d5e9c6053bf9b0d8b", + "bytes": 1565 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/validation.json", + "sha256": "bca9146212d10c9f3cc68593623032a0e13c0dcb1e43b6117a81129a0e4308cd", + "bytes": 1829 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/README.md", + "sha256": "11e7d8d18d291f609ad98c4d2c033343005061d155a2f5c1ad3482d309e59653", + "bytes": 9675 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/clustersecretstore-v1-schema.json", + "sha256": "f74b1c186ed40fd7e4af47941fb5ec48e70e5fa66631ef1307e943b0773baf00", + "bytes": 234298 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/externalsecret-v1-schema.json", + "sha256": "22f69a2d2c64d1b4887766194b74e9543ec7b2e24f4696f9d7e0838b428ae2a7", + "bytes": 28332 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/independent-defect-reproductions.log", + "sha256": "6608fcaee88f89acf73b3a42fa0da4af42cfaca2c85426616c8103062fe3dbd6", + "bytes": 1809 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/original-command-tests.log", + "sha256": "2d75ce8f96f7d410fa2cf82b695bbce0235449fefa81430de71c0291a1fe3af2", + "bytes": 2603 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/original-contract-tests.log", + "sha256": "a60cbc658cabf862267757db7d303fa678e7a7ca4fe58aa2f2ba933e654451a7", + "bytes": 1150 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-defaults-fix.patch", + "sha256": "1f2da9690e1c61871f7db8f885c90152cd7a68e392f5bcc62fcc8e0f408f8d4e", + "bytes": 2633 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-fix-source/scripts/keycape_issuer_delivery.py", + "sha256": "f740564866f2c71efc034eb1c4f844308a301499c2f67e7629a9f588a76cc84a", + "bytes": 8284 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-fix-source/scripts/keycape_issuer_eso.py", + "sha256": "e0164a39c4a51ebbea66c38c2d42880675e242edb3920b2a2d362f365dee7c67", + "bytes": 4108 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-fix-tests.log", + "sha256": "7cee0c9848167e8417202a0832de5e3ea72db2b36d83ac33a8df932711988f1b", + "bytes": 4209 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-patch-check.log", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/runs.json", + "sha256": "727665c0b005d01b3cd02ede816939d7a643d0fbe481ab05d90d1fce670a479a", + "bytes": 1923 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/source-pins.json", + "sha256": "e308fc2ced7825ae72449ee549cb57fc43eb2842bfac95a79806e4e0b81bdfe3", + "bytes": 2416 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/test_independent_review.py", + "sha256": "6caa6686b85e22461a2fdc1f9893fb11ed074540ebf62a18226f744a169f386e", + "bytes": 7442 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/test_partial_defaults_fix.py", + "sha256": "7c6489103a223a42fe8a31c8d54a38dd066f2ec38db5e18454309b6185c253c4", + "bytes": 2611 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/apply_refinement.py", + "sha256": "4d467786dd70b8073de8c62ff93930637a888573adb20babf52764bbd664ab58", + "bytes": 3496 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/consistency.json", + "sha256": "e6efe6659602921c5cac4d5074f80caf90d722e85235d9ee28fa914ac3e8a6ea", + "bytes": 12776 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/consistency.stderr.txt", + "sha256": "f4a6aa1609a13600a0b97cbb08bbc03b3e247b619ff37912d37f7e109ce798ba", + "bytes": 79 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/identifier-assignment.json", + "sha256": "e531a5763f369c1d38ffc1bf07d6a5f8b05f14e4c4fd9551d91ae2448319f988", + "bytes": 695 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/identifier-preview.json", + "sha256": "a4efdf6208f8c2fefac5044be55c97c27cee2110ff71d28d1991afcb6cda1d20", + "bytes": 696 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/projection.json", + "sha256": "0c67c6d28d63732cfe59283cab0af7699486cc903bf4227756fcda0cc35e5de1", + "bytes": 36719 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/projection.stderr.txt", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/publication-commit.json", + "sha256": "af92f425052512de27404ae5d04691451261bfc2dd7d2c6018b3e65977aefdcd", + "bytes": 699 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/publication-inputs.json", + "sha256": "07f73a93e7532a5a36147b284aa0b14f1c458f4452ff7ce74e8ec8cfdb31171b", + "bytes": 360 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/source-refinement.json", + "sha256": "07352ce8be8512baaee6cfac4a9d61c19ee28d237238c3bdb3e80664aa18da97", + "bytes": 1478 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/task-additions.md", + "sha256": "2908828d7277b7e28b92c15b01c66e7ce04009a81807499c5dfd482410da9eaf", + "bytes": 3320 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/verified-task-bindings.json", + "sha256": "b3cbc9b2f4968cddb88ea9814a9d0da97bbf6921e7abe778a3dd16bec9d430d9", + "bytes": 4968 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/key39-finalization-current-r2/progress-receipt.json", + "sha256": "b83912f0a378db692ba0cb6eb42a5d46b0b10b08e0939fd85c8f9253861852dc", + "bytes": 1182 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/key39-finalization-current-r2/upstream-preparation.json", + "sha256": "541f5ffc7d4761b5e343cf35af7a9af3dfa5009707c075867dd3e191d6d01fc1", + "bytes": 2009 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/key39-finalization-current-r2/verification.json", + "sha256": "1cc5df585559803f83baf337dfdef979ef8c5927d6cd2dcf30de1a574586462b", + "bytes": 8945 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/publish.py", + "sha256": "cca499787938ba30cf371d566697b97a7618dc4c49c49682d90b5420b5914b4e", + "bytes": 6495 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/fetch_public_inputs.py", + "sha256": "a3077118f2dd4366b4fc38d554822b72c116aab99d6e978c75ce7fc56816c516", + "bytes": 1246 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/scope.json", + "sha256": "6d0b09dad0ffc9fb28bd2ebd200a668d41fe3f9ece56649689313f28887cf290", + "bytes": 1043 + } + ], + [ + { + "path": "docs/netkingdom-target-implementation.md", + "sha256": "274109882a4b31163869bccccdc12e51a3c647d5f39fe549c5d4c7aac62e0fe2", + "bytes": 84664 + }, + { + "path": "workplans/CUST-WP-0080-netkingdom-security-blueprint-and-gap-closure.md", + "sha256": "f76417b96a7e7ed0c60394d18a0d0b9305d6320248f67b58ac86e439cb76e343", + "bytes": 85183 + } + ] + ], + "omitted_public_inputs": [ + "apps-chart-projection-r1/upstream/forgejo-v11.0.3/custom/conf/app.example.ini", + "apps-chart-projection-r1/upstream/gitea-12.5.0.tgz" + ], + "native_changes": false +} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/plan-original.json b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/plan-original.json new file mode 100644 index 00000000..c0102f05 --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/plan-original.json @@ -0,0 +1,506 @@ +{ + "base": "05df7c3ee4d31879e7e0074e3210656b4f795794", + "batches": [ + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/README.md", + "sha256": "fb652cd9c77ae0f270f7775a17e01bc57498db52df40dd867028e0ecc3957cc5", + "bytes": 5372 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/SHA256SUMS", + "sha256": "9cb1c3e6d70595b140dfa65f57d8883667be81cc4e84371426412bb38c9a4716", + "bytes": 1206 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/baseline-reproduction.log", + "sha256": "abcec396aee21d9f44dd949b3de58e91ff4c15452af62dc168354c7f5769dca2", + "bytes": 2203 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/candidate/credential-grants/catalog.yaml", + "sha256": "7cfe12970a57ab75cb91c7c5024a4dcfc28ffae4b31a1afaf4d0cedabbb22886", + "bytes": 8980 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/candidate/scripts/keycape_client_secret_generate.py", + "sha256": "da80947a2c28df36b37e711d1e6d2f66b4c0434082e7bf187da3d3cb692cec28", + "bytes": 13892 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/candidate/tests/test_credential_grants.py", + "sha256": "5c0cfcb039c0220e59dac7986d960bb568593a3a9281ff2557bb6c38de31e68a", + "bytes": 4360 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/candidate/tests/test_keycape_client_secret_generate.py", + "sha256": "5906e32c7fe0db09c1f7db48ad61226497e062f38ebfa91e8a03be89272765c0", + "bytes": 17233 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/manifest.json", + "sha256": "61c15ae8d12b3665eb0e210cc0a1b0a238f52026258a59987657fd77f8d6c0ba", + "bytes": 4508 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/patch-check.log", + "sha256": "3ecccb9cee2279b2f6d665fc7116421685262abbd7b0f82f59e3c8ed56892ba3", + "bytes": 55 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/platform-source.patch", + "sha256": "b0b85153d04a28d4bb05ab39a9b54c782c9efa54bd80ca961e2bcc6348a9b546", + "bytes": 16519 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/reproduce-baseline.py", + "sha256": "f3d1feabe5124f882306b1b58485a86ac2072d93981d468dc746efdf4ed6b6b3", + "bytes": 1594 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/run-tests.sh", + "sha256": "28f077918a87437d76b14dc93a035b358a99f1a721735b189263cf6d3b27fdea", + "bytes": 891 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/tests.log", + "sha256": "2102b703320a633de8a5135a753020d4e8e0854947df41f400b2935562f38191", + "bytes": 3067 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/workplan-source-draft.md", + "sha256": "88e329cb244818427717b9f28b26b2ef2610c20f6ad3dfd3ae0d83386b6c1b51", + "bytes": 3994 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-review-r1/baseline-reproduction.log", + "sha256": "f27db22e006f6272b60d8a581ecedfc2b5096703dc99504eada23a372be6a119", + "bytes": 2227 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-review-r1/independent-probes.py", + "sha256": "11b071b919a2da098ad6f20a89f93aadc55a9c08f731d46f2196f63ebd427f79", + "bytes": 3738 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-review-r1/review.json", + "sha256": "05d5bf9c2b90a8562ce4675866b8b23c0e12d5d069b43b194948d384b0a553f5", + "bytes": 5167 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/apply_source.py", + "sha256": "70ae712d14ad2f21456b98fab2d92ab5736dfae72afd817382f811b9c5823c50", + "bytes": 4450 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/consistency.json", + "sha256": "39ffa437ed22fa879e6e267a7bec9ba250d6af66135e341ac75cbb7babe546e2", + "bytes": 26051 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/consistency.stderr.txt", + "sha256": "f4a6aa1609a13600a0b97cbb08bbc03b3e247b619ff37912d37f7e109ce798ba", + "bytes": 79 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/identifier-assignment.json", + "sha256": "f6c200a95e24d233710d5025dbc3a45332ea8131c90bb3f29ba32947fc0e5d73", + "bytes": 1337 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/identifier-preview.json", + "sha256": "5c83d1397d2ec4c8bf7b98d38104f06adbda6c5ce9019ed62e62338fb828094b", + "bytes": 1338 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/projection.json", + "sha256": "e5a68f6d05a95025b4822a0ca4754e1ed99c8e8a59956251ab1264c6509e2aa3", + "bytes": 15001 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/projection.stderr.txt", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/publication-commit.json", + "sha256": "c0080b63d652d428b05a48ec031b63c80903a863879988eecc35ce2802836afa", + "bytes": 1416 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/publication-inputs.json", + "sha256": "1b8b686ab3e8fc97dff7e1b7fbc5eb42fca49475103429e90f951f5934b6994e", + "bytes": 989 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/source-application.json", + "sha256": "1e856a3809badba3f2bc4df075730734c4743356f0bd17d98367a309177b5320", + "bytes": 1588 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/verified-task-bindings.json", + "sha256": "6312afc4c4de6f9f37444bba305c62ca19ef956f92e3198f15c755841131205c", + "bytes": 732 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/workplan.md", + "sha256": "1336a513130c9751d73a9d696d38fb6377e85c6cc107c2968431abfd2e8fd762", + "bytes": 5093 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/OWNER-CHANGE.md", + "sha256": "f58e6e3aafec79436c4735387e6a6d4e8302107e9ca7a27bec37b2d65cbd1d50", + "bytes": 6431 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/README.md", + "sha256": "3df15baabe3a0d41397568a6b181a204d6aadd3d63ab7f2b3495589dd8768924", + "bytes": 3658 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/SHA256SUMS.json", + "sha256": "daba4249aeb0563e069cd9c06bd3c80442e2f3ed0f028943bdf8a8355321f74d", + "bytes": 3647 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/apps-source.patch", + "sha256": "85be01b5d370e7996e8a2b18c4d7b576a24b0ca6d1c03454157091c581f20a01", + "bytes": 4130 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/postimages/helm/forgejo-registry-values.yaml", + "sha256": "a38f551734843c6367448f267c7376b1aeee010927a49690fdd7c1471e0ae450", + "bytes": 303 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/postimages/helm/forgejo-values.yaml", + "sha256": "9467ef8d28de53496cf6f7b71c3b9669cd9ce91ef0667342b6aba457d05d424c", + "bytes": 5169 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/preimages/helm/forgejo-registry-values.yaml", + "sha256": "a38f551734843c6367448f267c7376b1aeee010927a49690fdd7c1471e0ae450", + "bytes": 303 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/preimages/helm/forgejo-values.yaml", + "sha256": "cf87a3dccd666bf8870619755afac4af64fc0bee77b0f0ea54718d6384b70d4f", + "bytes": 5083 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-inventory.json", + "sha256": "77aabbe413aae6ac31c342304afa200d09ff3c74e3fc9f18d2af6919a816ab94", + "bytes": 1606 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/consumer-delivery.yaml", + "sha256": "56478a83d799c08dc1e5159983b1e843a46b16dfeee7e84c31401d1f92430df2", + "bytes": 1412 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/forgejo-case-1.3.yaml", + "sha256": "546aad5cf26842c484fc6ba99940d56697b85531afea11872556761008923c94", + "bytes": 722 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/AGENTS.md", + "sha256": "77c8e1ac762e7c101cd09a3aa184993309ed057821bd53fb0d318979a45c9315", + "bytes": 7854 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/INTENT.md", + "sha256": "b22cb440691bb399b064ee10ab1a03e1e07838da1051bf6235fbfe2cf820eb10", + "bytes": 6959 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/cmd/keycape/main.go", + "sha256": "ff1ee4f5d2eb86a1e4184374d5244e24704d9d5fd780e173062af07112344afd", + "bytes": 15751 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/internal/config/config.go", + "sha256": "afd465acd9b6879493b888acc6fc54b9a71e032892701a81f1072986d2c30ac7", + "bytes": 5568 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/internal/domain/model.go", + "sha256": "ce4309fc7426c66e4ebc18022d2f704c10ebbec243cc98e657d1de765ad09029", + "bytes": 5029 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/internal/server/oidc/token.go", + "sha256": "8422cc9dbd39c88dfe835b43f6262cb120bc0d2e5b08898a151167b7555368d3", + "bytes": 20903 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/internal/server/oidc/userinfo.go", + "sha256": "bbd5fa9ebd0726371c90d6938536c1ce5fcfacbbe853a80833e3587fc2115a0b", + "bytes": 8347 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/type-1.3.yaml", + "sha256": "ef02ddae3167bdd1558193a5f6db0379fb8cc84207531706d5ef35caabc3684f", + "bytes": 24585 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/test-output.txt", + "sha256": "64171812c2935ab8616e17c69b6fcfcbfb2ffc411edb1b7a8ff786a936eb63f0", + "bytes": 1987 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/tests/test_forgejo_chart_projection.py", + "sha256": "3aae2236ffcefbeed9225a9bf35650f1128379004ab6e34d548a596192824156", + "bytes": 9899 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/tools/forgejo_chart_projection.py", + "sha256": "b4900a9dbb98847ab81a723eddde1fbf0ea39c2fabc7d7006a1debd811b8a553", + "bytes": 3679 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/Chart.yaml", + "sha256": "60e8522a68c67c0b18bdb9fb66b27a19ad09f8a051ee3757ade5de1d3f299224", + "bytes": 4211 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/templates/_helpers.tpl", + "sha256": "792273fd24f4e8cf5328391fc3f5f1e406e24fe78ac4925c88d61426daccc6fb", + "bytes": 19444 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/templates/gitea/deployment.yaml", + "sha256": "1abdd4e7915f392aca91073003887bf75baf1f0e5b66928a2f4c4a140dbeba0e", + "bytes": 17092 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/templates/gitea/init.yaml", + "sha256": "518c78409b35d4612c413d9ff66c21ced32f8fbeb4b704950ff5ab1b919220bc", + "bytes": 9917 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/values.yaml", + "sha256": "acdcea4c5739152b7fd825202b3920cfa22040d4b82d8e20588163ba3821abf3", + "bytes": 27706 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-index-entry.json", + "sha256": "bb5ea7f46836ded497662ef380c2cd146e34b76cea72085051dfe08f218bcbe5", + "bytes": 4655 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/forgejo-v11.0.3/cmd/admin_auth_oauth.go", + "sha256": "d5faee30ffbb9a560256c92a0e05e652b79e95e016448cbac7dbb6ad0fdad937", + "bytes": 8236 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/forgejo-v11.0.3/routers/web/auth/oauth.go", + "sha256": "6f454b3550b150178a8597a9437adb0c626556f34c15a13778c15d675b05659b", + "bytes": 48922 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/forgejo-v11.0.3/services/auth/source/oauth2/source.go", + "sha256": "a6ee5146c07d8efb1837ef91f1ab5f3139f69a1ff66f814d5e9c6053bf9b0d8b", + "bytes": 1565 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/validation.json", + "sha256": "bca9146212d10c9f3cc68593623032a0e13c0dcb1e43b6117a81129a0e4308cd", + "bytes": 1829 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/README.md", + "sha256": "11e7d8d18d291f609ad98c4d2c033343005061d155a2f5c1ad3482d309e59653", + "bytes": 9675 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/clustersecretstore-v1-schema.json", + "sha256": "f74b1c186ed40fd7e4af47941fb5ec48e70e5fa66631ef1307e943b0773baf00", + "bytes": 234298 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/externalsecret-v1-schema.json", + "sha256": "22f69a2d2c64d1b4887766194b74e9543ec7b2e24f4696f9d7e0838b428ae2a7", + "bytes": 28332 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/independent-defect-reproductions.log", + "sha256": "6608fcaee88f89acf73b3a42fa0da4af42cfaca2c85426616c8103062fe3dbd6", + "bytes": 1809 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/original-command-tests.log", + "sha256": "2d75ce8f96f7d410fa2cf82b695bbce0235449fefa81430de71c0291a1fe3af2", + "bytes": 2603 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/original-contract-tests.log", + "sha256": "a60cbc658cabf862267757db7d303fa678e7a7ca4fe58aa2f2ba933e654451a7", + "bytes": 1150 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-defaults-fix.patch", + "sha256": "1f2da9690e1c61871f7db8f885c90152cd7a68e392f5bcc62fcc8e0f408f8d4e", + "bytes": 2633 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-fix-source/scripts/keycape_issuer_delivery.py", + "sha256": "f740564866f2c71efc034eb1c4f844308a301499c2f67e7629a9f588a76cc84a", + "bytes": 8284 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-fix-source/scripts/keycape_issuer_eso.py", + "sha256": "e0164a39c4a51ebbea66c38c2d42880675e242edb3920b2a2d362f365dee7c67", + "bytes": 4108 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-fix-tests.log", + "sha256": "7cee0c9848167e8417202a0832de5e3ea72db2b36d83ac33a8df932711988f1b", + "bytes": 4209 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-patch-check.log", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/runs.json", + "sha256": "727665c0b005d01b3cd02ede816939d7a643d0fbe481ab05d90d1fce670a479a", + "bytes": 1923 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/source-pins.json", + "sha256": "e308fc2ced7825ae72449ee549cb57fc43eb2842bfac95a79806e4e0b81bdfe3", + "bytes": 2416 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/test_independent_review.py", + "sha256": "6caa6686b85e22461a2fdc1f9893fb11ed074540ebf62a18226f744a169f386e", + "bytes": 7442 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/test_partial_defaults_fix.py", + "sha256": "7c6489103a223a42fe8a31c8d54a38dd066f2ec38db5e18454309b6185c253c4", + "bytes": 2611 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/apply_refinement.py", + "sha256": "4d467786dd70b8073de8c62ff93930637a888573adb20babf52764bbd664ab58", + "bytes": 3496 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/consistency.json", + "sha256": "e6efe6659602921c5cac4d5074f80caf90d722e85235d9ee28fa914ac3e8a6ea", + "bytes": 12776 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/consistency.stderr.txt", + "sha256": "f4a6aa1609a13600a0b97cbb08bbc03b3e247b619ff37912d37f7e109ce798ba", + "bytes": 79 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/identifier-assignment.json", + "sha256": "e531a5763f369c1d38ffc1bf07d6a5f8b05f14e4c4fd9551d91ae2448319f988", + "bytes": 695 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/identifier-preview.json", + "sha256": "a4efdf6208f8c2fefac5044be55c97c27cee2110ff71d28d1991afcb6cda1d20", + "bytes": 696 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/projection.json", + "sha256": "0c67c6d28d63732cfe59283cab0af7699486cc903bf4227756fcda0cc35e5de1", + "bytes": 36719 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/projection.stderr.txt", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/publication-commit.json", + "sha256": "af92f425052512de27404ae5d04691451261bfc2dd7d2c6018b3e65977aefdcd", + "bytes": 699 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/publication-inputs.json", + "sha256": "07f73a93e7532a5a36147b284aa0b14f1c458f4452ff7ce74e8ec8cfdb31171b", + "bytes": 360 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/source-refinement.json", + "sha256": "07352ce8be8512baaee6cfac4a9d61c19ee28d237238c3bdb3e80664aa18da97", + "bytes": 1478 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/task-additions.md", + "sha256": "2908828d7277b7e28b92c15b01c66e7ce04009a81807499c5dfd482410da9eaf", + "bytes": 3320 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/verified-task-bindings.json", + "sha256": "b3cbc9b2f4968cddb88ea9814a9d0da97bbf6921e7abe778a3dd16bec9d430d9", + "bytes": 4968 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/key39-finalization-current-r2/progress-receipt.json", + "sha256": "b83912f0a378db692ba0cb6eb42a5d46b0b10b08e0939fd85c8f9253861852dc", + "bytes": 1182 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/key39-finalization-current-r2/upstream-preparation.json", + "sha256": "541f5ffc7d4761b5e343cf35af7a9af3dfa5009707c075867dd3e191d6d01fc1", + "bytes": 2009 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/key39-finalization-current-r2/verification.json", + "sha256": "1cc5df585559803f83baf337dfdef979ef8c5927d6cd2dcf30de1a574586462b", + "bytes": 8945 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/publish.py", + "sha256": "cf44080058cea7a50fd370c5bb751d580f07a7c1238b10fb26ddfc66887004f2", + "bytes": 6484 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/fetch_public_inputs.py", + "sha256": "a3077118f2dd4366b4fc38d554822b72c116aab99d6e978c75ce7fc56816c516", + "bytes": 1246 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/scope.json", + "sha256": "6d0b09dad0ffc9fb28bd2ebd200a668d41fe3f9ece56649689313f28887cf290", + "bytes": 1043 + } + ], + [ + { + "path": "docs/netkingdom-target-implementation.md", + "sha256": "274109882a4b31163869bccccdc12e51a3c647d5f39fe549c5d4c7aac62e0fe2", + "bytes": 84664 + }, + { + "path": "workplans/CUST-WP-0080-netkingdom-security-blueprint-and-gap-closure.md", + "sha256": "f76417b96a7e7ed0c60394d18a0d0b9305d6320248f67b58ac86e439cb76e343", + "bytes": 85183 + } + ] + ], + "omitted_public_inputs": [ + "apps-chart-projection-r1/upstream/forgejo-v11.0.3/custom/conf/app.example.ini", + "apps-chart-projection-r1/upstream/gitea-12.5.0.tgz" + ], + "native_changes": false +} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/plan.json b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/plan.json new file mode 100644 index 00000000..805e165d --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/plan.json @@ -0,0 +1,506 @@ +{ + "base": "05df7c3ee4d31879e7e0074e3210656b4f795794", + "batches": [ + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/README.md", + "sha256": "fb652cd9c77ae0f270f7775a17e01bc57498db52df40dd867028e0ecc3957cc5", + "bytes": 5372 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/SHA256SUMS", + "sha256": "9cb1c3e6d70595b140dfa65f57d8883667be81cc4e84371426412bb38c9a4716", + "bytes": 1206 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/baseline-reproduction.log", + "sha256": "abcec396aee21d9f44dd949b3de58e91ff4c15452af62dc168354c7f5769dca2", + "bytes": 2203 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/candidate/credential-grants/catalog.yaml", + "sha256": "7cfe12970a57ab75cb91c7c5024a4dcfc28ffae4b31a1afaf4d0cedabbb22886", + "bytes": 8980 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/candidate/scripts/keycape_client_secret_generate.py", + "sha256": "da80947a2c28df36b37e711d1e6d2f66b4c0434082e7bf187da3d3cb692cec28", + "bytes": 13892 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/candidate/tests/test_credential_grants.py", + "sha256": "5c0cfcb039c0220e59dac7986d960bb568593a3a9281ff2557bb6c38de31e68a", + "bytes": 4360 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/candidate/tests/test_keycape_client_secret_generate.py", + "sha256": "5906e32c7fe0db09c1f7db48ad61226497e062f38ebfa91e8a03be89272765c0", + "bytes": 17233 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/manifest.json", + "sha256": "61c15ae8d12b3665eb0e210cc0a1b0a238f52026258a59987657fd77f8d6c0ba", + "bytes": 4508 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/patch-check.log", + "sha256": "3ecccb9cee2279b2f6d665fc7116421685262abbd7b0f82f59e3c8ed56892ba3", + "bytes": 55 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/platform-source.patch", + "sha256": "b0b85153d04a28d4bb05ab39a9b54c782c9efa54bd80ca961e2bcc6348a9b546", + "bytes": 16519 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/reproduce-baseline.py", + "sha256": "f3d1feabe5124f882306b1b58485a86ac2072d93981d468dc746efdf4ed6b6b3", + "bytes": 1594 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/run-tests.sh", + "sha256": "28f077918a87437d76b14dc93a035b358a99f1a721735b189263cf6d3b27fdea", + "bytes": 891 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/tests.log", + "sha256": "2102b703320a633de8a5135a753020d4e8e0854947df41f400b2935562f38191", + "bytes": 3067 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-followthrough-r1/workplan-source-draft.md", + "sha256": "88e329cb244818427717b9f28b26b2ef2610c20f6ad3dfd3ae0d83386b6c1b51", + "bytes": 3994 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-review-r1/baseline-reproduction.log", + "sha256": "f27db22e006f6272b60d8a581ecedfc2b5096703dc99504eada23a372be6a119", + "bytes": 2227 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-review-r1/independent-probes.py", + "sha256": "11b071b919a2da098ad6f20a89f93aadc55a9c08f731d46f2196f63ebd427f79", + "bytes": 3738 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-broker-review-r1/review.json", + "sha256": "05d5bf9c2b90a8562ce4675866b8b23c0e12d5d069b43b194948d384b0a553f5", + "bytes": 5167 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/apply_source.py", + "sha256": "70ae712d14ad2f21456b98fab2d92ab5736dfae72afd817382f811b9c5823c50", + "bytes": 4450 + } + ], + [ + { + "path": "docs/netkingdom-target-implementation.md", + "sha256": "274109882a4b31163869bccccdc12e51a3c647d5f39fe549c5d4c7aac62e0fe2", + "bytes": 84664 + }, + { + "path": "workplans/CUST-WP-0080-netkingdom-security-blueprint-and-gap-closure.md", + "sha256": "f76417b96a7e7ed0c60394d18a0d0b9305d6320248f67b58ac86e439cb76e343", + "bytes": 85183 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/consistency.json", + "sha256": "39ffa437ed22fa879e6e267a7bec9ba250d6af66135e341ac75cbb7babe546e2", + "bytes": 26051 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/consistency.stderr.txt", + "sha256": "f4a6aa1609a13600a0b97cbb08bbc03b3e247b619ff37912d37f7e109ce798ba", + "bytes": 79 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/identifier-assignment.json", + "sha256": "f6c200a95e24d233710d5025dbc3a45332ea8131c90bb3f29ba32947fc0e5d73", + "bytes": 1337 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/identifier-preview.json", + "sha256": "5c83d1397d2ec4c8bf7b98d38104f06adbda6c5ce9019ed62e62338fb828094b", + "bytes": 1338 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/projection.json", + "sha256": "e5a68f6d05a95025b4822a0ca4754e1ed99c8e8a59956251ab1264c6509e2aa3", + "bytes": 15001 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/projection.stderr.txt", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/publication-commit.json", + "sha256": "c0080b63d652d428b05a48ec031b63c80903a863879988eecc35ce2802836afa", + "bytes": 1416 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/publication-inputs.json", + "sha256": "1b8b686ab3e8fc97dff7e1b7fbc5eb42fca49475103429e90f951f5934b6994e", + "bytes": 989 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/source-application.json", + "sha256": "1e856a3809badba3f2bc4df075730734c4743356f0bd17d98367a309177b5320", + "bytes": 1588 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/verified-task-bindings.json", + "sha256": "6312afc4c4de6f9f37444bba305c62ca19ef956f92e3198f15c755841131205c", + "bytes": 732 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-current-source-integration-r1/workplan.md", + "sha256": "1336a513130c9751d73a9d696d38fb6377e85c6cc107c2968431abfd2e8fd762", + "bytes": 5093 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/OWNER-CHANGE.md", + "sha256": "f58e6e3aafec79436c4735387e6a6d4e8302107e9ca7a27bec37b2d65cbd1d50", + "bytes": 6431 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/README.md", + "sha256": "3df15baabe3a0d41397568a6b181a204d6aadd3d63ab7f2b3495589dd8768924", + "bytes": 3658 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/SHA256SUMS.json", + "sha256": "9afff88e80c110d86f8f808657c179938f21ae6f8d32f05f8d605d65cfc117f2", + "bytes": 3878 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/apps-source.patch", + "sha256": "85be01b5d370e7996e8a2b18c4d7b576a24b0ca6d1c03454157091c581f20a01", + "bytes": 4130 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/postimages/helm/forgejo-registry-values.yaml", + "sha256": "a38f551734843c6367448f267c7376b1aeee010927a49690fdd7c1471e0ae450", + "bytes": 303 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/postimages/helm/forgejo-values.yaml", + "sha256": "9467ef8d28de53496cf6f7b71c3b9669cd9ce91ef0667342b6aba457d05d424c", + "bytes": 5169 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/preimages/helm/forgejo-registry-values.yaml", + "sha256": "a38f551734843c6367448f267c7376b1aeee010927a49690fdd7c1471e0ae450", + "bytes": 303 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/preimages/helm/forgejo-values.yaml", + "sha256": "cf87a3dccd666bf8870619755afac4af64fc0bee77b0f0ea54718d6384b70d4f", + "bytes": 5083 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-inventory.json", + "sha256": "866641169b73aa6e56d4f8f3d497eda28229bdf2aafe98daf5fefd09258338a1", + "bytes": 1617 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/consumer-delivery.yaml", + "sha256": "56478a83d799c08dc1e5159983b1e843a46b16dfeee7e84c31401d1f92430df2", + "bytes": 1412 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/forgejo-case-1.3.yaml", + "sha256": "546aad5cf26842c484fc6ba99940d56697b85531afea11872556761008923c94", + "bytes": 722 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/AGENTS.md", + "sha256": "77c8e1ac762e7c101cd09a3aa184993309ed057821bd53fb0d318979a45c9315", + "bytes": 7854 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/INTENT.md", + "sha256": "b22cb440691bb399b064ee10ab1a03e1e07838da1051bf6235fbfe2cf820eb10", + "bytes": 6959 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/cmd/keycape/main.go", + "sha256": "ff1ee4f5d2eb86a1e4184374d5244e24704d9d5fd780e173062af07112344afd", + "bytes": 15751 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/internal/config/config.go", + "sha256": "afd465acd9b6879493b888acc6fc54b9a71e032892701a81f1072986d2c30ac7", + "bytes": 5568 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/internal/domain/model.go", + "sha256": "ce4309fc7426c66e4ebc18022d2f704c10ebbec243cc98e657d1de765ad09029", + "bytes": 5029 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/internal/server/oidc/token.go", + "sha256": "8422cc9dbd39c88dfe835b43f6262cb120bc0d2e5b08898a151167b7555368d3", + "bytes": 20903 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/key-cape/src/internal/server/oidc/userinfo.go", + "sha256": "bbd5fa9ebd0726371c90d6938536c1ce5fcfacbbe853a80833e3587fc2115a0b", + "bytes": 8347 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/source-pins/type-1.3.yaml", + "sha256": "ef02ddae3167bdd1558193a5f6db0379fb8cc84207531706d5ef35caabc3684f", + "bytes": 24585 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/test-output.txt", + "sha256": "64171812c2935ab8616e17c69b6fcfcbfb2ffc411edb1b7a8ff786a936eb63f0", + "bytes": 1987 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/tests/test_forgejo_chart_projection.py", + "sha256": "3aae2236ffcefbeed9225a9bf35650f1128379004ab6e34d548a596192824156", + "bytes": 9899 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/tools/forgejo_chart_projection.py", + "sha256": "b4900a9dbb98847ab81a723eddde1fbf0ea39c2fabc7d7006a1debd811b8a553", + "bytes": 3679 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/Chart.yaml", + "sha256": "60e8522a68c67c0b18bdb9fb66b27a19ad09f8a051ee3757ade5de1d3f299224", + "bytes": 4211 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/templates/_helpers.tpl", + "sha256": "792273fd24f4e8cf5328391fc3f5f1e406e24fe78ac4925c88d61426daccc6fb", + "bytes": 19444 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/templates/gitea/deployment.yaml", + "sha256": "1abdd4e7915f392aca91073003887bf75baf1f0e5b66928a2f4c4a140dbeba0e", + "bytes": 17092 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/templates/gitea/init.yaml", + "sha256": "518c78409b35d4612c413d9ff66c21ced32f8fbeb4b704950ff5ab1b919220bc", + "bytes": 9917 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-12.5.0/values.yaml", + "sha256": "acdcea4c5739152b7fd825202b3920cfa22040d4b82d8e20588163ba3821abf3", + "bytes": 27706 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/chart-index-entry.json", + "sha256": "bb5ea7f46836ded497662ef380c2cd146e34b76cea72085051dfe08f218bcbe5", + "bytes": 4655 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/forgejo-v11.0.3/cmd/admin_auth_oauth.go", + "sha256": "d5faee30ffbb9a560256c92a0e05e652b79e95e016448cbac7dbb6ad0fdad937", + "bytes": 8236 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/forgejo-v11.0.3/routers/web/auth/oauth.go", + "sha256": "6f454b3550b150178a8597a9437adb0c626556f34c15a13778c15d675b05659b", + "bytes": 48922 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/upstream/forgejo-v11.0.3/services/auth/source/oauth2/source.go", + "sha256": "a6ee5146c07d8efb1837ef91f1ab5f3139f69a1ff66f814d5e9c6053bf9b0d8b", + "bytes": 1565 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/apps-chart-projection-r1/validation.json", + "sha256": "bca9146212d10c9f3cc68593623032a0e13c0dcb1e43b6117a81129a0e4308cd", + "bytes": 1829 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/README.md", + "sha256": "11e7d8d18d291f609ad98c4d2c033343005061d155a2f5c1ad3482d309e59653", + "bytes": 9675 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/clustersecretstore-v1-schema.json", + "sha256": "f74b1c186ed40fd7e4af47941fb5ec48e70e5fa66631ef1307e943b0773baf00", + "bytes": 234298 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/externalsecret-v1-schema.json", + "sha256": "22f69a2d2c64d1b4887766194b74e9543ec7b2e24f4696f9d7e0838b428ae2a7", + "bytes": 28332 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/independent-defect-reproductions.log", + "sha256": "6608fcaee88f89acf73b3a42fa0da4af42cfaca2c85426616c8103062fe3dbd6", + "bytes": 1809 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/original-command-tests.log", + "sha256": "2d75ce8f96f7d410fa2cf82b695bbce0235449fefa81430de71c0291a1fe3af2", + "bytes": 2603 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/original-contract-tests.log", + "sha256": "a60cbc658cabf862267757db7d303fa678e7a7ca4fe58aa2f2ba933e654451a7", + "bytes": 1150 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-defaults-fix.patch", + "sha256": "1f2da9690e1c61871f7db8f885c90152cd7a68e392f5bcc62fcc8e0f408f8d4e", + "bytes": 2633 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-fix-source/scripts/keycape_issuer_delivery.py", + "sha256": "f740564866f2c71efc034eb1c4f844308a301499c2f67e7629a9f588a76cc84a", + "bytes": 8284 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-fix-source/scripts/keycape_issuer_eso.py", + "sha256": "e0164a39c4a51ebbea66c38c2d42880675e242edb3920b2a2d362f365dee7c67", + "bytes": 4108 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-fix-tests.log", + "sha256": "7cee0c9848167e8417202a0832de5e3ea72db2b36d83ac33a8df932711988f1b", + "bytes": 4209 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/partial-patch-check.log", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/runs.json", + "sha256": "727665c0b005d01b3cd02ede816939d7a643d0fbe481ab05d90d1fce670a479a", + "bytes": 1923 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/source-pins.json", + "sha256": "c148d950ab1b45479a401aa9c45813793a6575af05694c40f39d35fc2b5db5dc", + "bytes": 2553 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/test_independent_review.py", + "sha256": "6caa6686b85e22461a2fdc1f9893fb11ed074540ebf62a18226f744a169f386e", + "bytes": 7442 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/platform-delivery-review-r1/test_partial_defaults_fix.py", + "sha256": "7c6489103a223a42fe8a31c8d54a38dd066f2ec38db5e18454309b6185c253c4", + "bytes": 2611 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/apply_refinement.py", + "sha256": "4d467786dd70b8073de8c62ff93930637a888573adb20babf52764bbd664ab58", + "bytes": 3496 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/consistency.json", + "sha256": "e6efe6659602921c5cac4d5074f80caf90d722e85235d9ee28fa914ac3e8a6ea", + "bytes": 12776 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/consistency.stderr.txt", + "sha256": "f4a6aa1609a13600a0b97cbb08bbc03b3e247b619ff37912d37f7e109ce798ba", + "bytes": 79 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/identifier-assignment.json", + "sha256": "e531a5763f369c1d38ffc1bf07d6a5f8b05f14e4c4fd9551d91ae2448319f988", + "bytes": 695 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/identifier-preview.json", + "sha256": "a4efdf6208f8c2fefac5044be55c97c27cee2110ff71d28d1991afcb6cda1d20", + "bytes": 696 + } + ], + [ + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/projection.json", + "sha256": "0c67c6d28d63732cfe59283cab0af7699486cc903bf4227756fcda0cc35e5de1", + "bytes": 36719 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/projection.stderr.txt", + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytes": 0 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/publication-commit.json", + "sha256": "af92f425052512de27404ae5d04691451261bfc2dd7d2c6018b3e65977aefdcd", + "bytes": 699 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/publication-inputs.json", + "sha256": "07f73a93e7532a5a36147b284aa0b14f1c458f4452ff7ce74e8ec8cfdb31171b", + "bytes": 360 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/source-refinement.json", + "sha256": "07352ce8be8512baaee6cfac4a9d61c19ee28d237238c3bdb3e80664aa18da97", + "bytes": 1478 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/task-additions.md", + "sha256": "2908828d7277b7e28b92c15b01c66e7ce04009a81807499c5dfd482410da9eaf", + "bytes": 3320 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/nk48-consumer-compatibility-r1/verified-task-bindings.json", + "sha256": "b3cbc9b2f4968cddb88ea9814a9d0da97bbf6921e7abe778a3dd16bec9d430d9", + "bytes": 4968 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/key39-finalization-current-r2/progress-receipt.json", + "sha256": "b83912f0a378db692ba0cb6eb42a5d46b0b10b08e0939fd85c8f9253861852dc", + "bytes": 1182 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/key39-finalization-current-r2/upstream-preparation.json", + "sha256": "541f5ffc7d4761b5e343cf35af7a9af3dfa5009707c075867dd3e191d6d01fc1", + "bytes": 2009 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/key39-finalization-current-r2/verification.json", + "sha256": "b396b22507031a366403be525d1d79892d82283414e7bd5a9365d70db85e5ac2", + "bytes": 8949 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/publish.py", + "sha256": "519c136bfad6d602e44ee35522df68dea2aa8cdda65f1de62c36a5e13c942051", + "bytes": 6521 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/fetch_public_inputs.py", + "sha256": "a3077118f2dd4366b4fc38d554822b72c116aab99d6e978c75ce7fc56816c516", + "bytes": 1246 + }, + { + "path": "docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/scope.json", + "sha256": "6d0b09dad0ffc9fb28bd2ebd200a668d41fe3f9ece56649689313f28887cf290", + "bytes": 1043 + } + ] + ], + "omitted_public_inputs": [ + "apps-chart-projection-r1/upstream/forgejo-v11.0.3/custom/conf/app.example.ini", + "apps-chart-projection-r1/upstream/gitea-12.5.0.tgz" + ], + "native_changes": false +} diff --git a/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/platform-progress.json b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/platform-progress.json new file mode 100644 index 00000000..7ec6d2fd --- /dev/null +++ b/docs/changes/netkingdom-target-2026-10-17/owner-followthrough-publication-r1/platform-progress.json @@ -0,0 +1,14 @@ +{ + "workplan_id": "43110f82-ef9f-5a46-a305-f0e287b7b226", + "id": "6c4ad530-bb71-41fe-bd6b-fc05db637676", + "topic_id": null, + "task_id": "afec2053-1995-506d-a112-cda1de552c1c", + "decision_id": null, + "event_type": "note", + "summary": "Published source d35c0f9d4b1c12684cfc334cd876ba0e96a13b88 and verified primary exact commit plus all four RPF-WP-0060 source UUID/status bindings. Exact reviewed broker type/producer validation enabled only for existing1.1; human-only catalog CCR43 correction done T02. T01 real authenticated admission/successor acknowledgment remains progress; T03/T04 todo.19 candidate tests and13 independent controls pass including preserved fabricated acceptance counterexample.65 existing owner workplans and unrelated staged brief/index edits preserved. No credentials, grants, policy/native changes. Evidence platform-current-source-integration-r1/.", + "detail": null, + "author": "codex", + "session_id": null, + "created_at": "2026-10-17T21:04:12.704154Z", + "workstream_id": "43110f82-ef9f-5a46-a305-f0e287b7b226" +}