Skip to content

fix: separate protocol freeze from registry lifecycle - #98

Merged
lipluscodex merged 2 commits into
mainfrom
97-separate-protocol-freeze-from-observation-registry
Aug 15, 2026
Merged

fix: separate protocol freeze from registry lifecycle#98
lipluscodex merged 2 commits into
mainfrom
97-separate-protocol-freeze-from-observation-registry

Conversation

@lipluscodex

Copy link
Copy Markdown
Member

Closes #97

real-task-feedback-shadow-v3でresult-free protocol freezeと将来のregistry lifecycleを分離しました。
snapshot付きexact verifierとrepository-only lifecycle auditを分け、同一frozen manifestでempty→packet/correction→one-time final aggregateを検証します。
v1/v2 artifactはbyte不変で保持し、Optional MCP CIへv3 probeを追加しました。

result-free protocol freezeと将来のregistry lifecycleをv3で分離した。

snapshot付きexact verifierとrepository-only lifecycle auditの責務を分け、placeholder-only transitionとtamperを固定testで検証する。v1/v2 artifactはbyte不変で保持する。
@lipluscodex lipluscodex linked an issue Aug 15, 2026 that may be closed by this pull request
@lipluscodex lipluscodex self-assigned this Aug 15, 2026
@lipluscodex

Copy link
Copy Markdown
Member Author

Self-review: changes requested.

[P1] The frozen CI surface does not audit the real registered output paths. Every audit_repository_lifecycle test call passes a temporary registered_root, and the CLI test also points --registered-root at a temporary directory. The workflow only runs that test module. A later observation PR can therefore add malformed files under artifacts/real-task-feedback-shadow-v3/ while CI continues to validate only synthetic temporary states. Wire the frozen test or CI to run the manifest audit against the repository's actual registered paths, with assertions that remain valid for empty, packet, correction, and final stages.

[P1] The snapshot-free audit does not enforce all batch invariants that are available from packet bytes. It binds aggregate config/search surface only to effective[0], and before the aggregate it does not require every effective packet to share the same snapshot hash, capture effective config, search surface, or strictly increasing capture time. A divergent later slot can pass repository audit even though v2 cumulative replay would reject it. Enforce these common-input/order invariants across the effective registry and add tamper coverage.

These are pre-observation v3 fixes. Keep v1/v2 byte-invariant and update the v3 frozen hashes before any real capture.

Self-review findings adjudication:

- ACCEPT [P1] 実registered output pathのauditを追加。
  理由: temporary rootだけの検証では、将来のobservation PRが実pathへ不正なartifactを追加してもCIが検出できないため。
  対応: repository rootのmanifest registered pathをempty / packets / finalの全stageで直接auditする固定testを追加した。

- ACCEPT [P1] snapshot-free batch invariantをeffective registry全体へ追加。
  理由: packet bytesだけで共通snapshot、capture config、search surface、slot順capture timeを検証でき、aggregate前のdivergenceもfail closedにすべきため。
  対応: 4 invariantをrepository auditで強制し、それぞれのtamper testとprotocol docsを追加した。

@lipluscodex lipluscodex left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Self-review: PASS

Acceptance criteria:

  • real-task-feedback-shadow-v3はv2と別のprotocol ID / registered pathを使用し、v1/v2 frozen artifactはremote main基準でbyte不変。
  • 同一frozen manifest/testでempty、packet/correction、one-time final aggregateを検証し、観測後のmanifest/test変更を要求しない。
  • snapshot必須exact replayとsnapshot-free repository lifecycle auditの責務を分離。
  • 実registered pathを毎回CIでauditし、canonical JSON、slot/correction chain、共通snapshot/config/search surface、strict capture time、one-time aggregate bindingをfail closedで検証。
  • placeholder-only fixture/tamper coverage、clean core 227件、Optional MCP 27件、demo/eval smoke、remote CI 2 jobがgreen。

Scope deviations: なし。Issue #95 / PR #96のquery、trace、snapshot、outcome、packetは移送・再利用していない。

Next step: auto modeのためmergeable stateを再確認し、squash merge後にIssue #89をv3へ明示移行して新しいeligible taskから観測を再開する。

@lipluscodex
lipluscodex merged commit d2b898b into main Aug 15, 2026
2 checks passed
@lipluscodex
lipluscodex deleted the 97-separate-protocol-freeze-from-observation-registry branch August 15, 2026 16:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug: separate protocol freeze from observation registry

1 participant