Skip to content

bug: reproduce live MCP traces in feedback shadow packets #91

Description

@lipluscodex

目的

real-task-feedback-shadow-v1がlive MCP search packetをfrozen snapshot上で再現できない問題を修正し、serving retrievalとfeedback-policy shadowの軸を分離したsuperseding result-free protocolを追加する。

Issue #90で最初のeligible taskを開始したが、packet verificationがfail closedしたためslotは未作成である。このIssueは観測を再開せず、capture/replay contract、schema、MCP effective-config provenance、placeholder/runtime-shaped probeをresult-freeで固定する。

検証済み再現

同一snapshot sha256:fe24c71d64cab19b8183d1ee818eeeb93a67129c74b13d167f3816706f768be0、同一query、limit 5で次が成立した。

  • live MCP trace 7211a6c44622490d99ea5a7659aeceb9docs/sibling-normalization-controlled-evaluation.mdを返す。
  • serving-default retrieval configとcaptured time 1786757215.899823を同じsnapshotへ適用すると同nodeを再現する。
  • v1 verifierのconfirmed_r05_s1 configと固定now=1000.0ではcandidateが空になる。

主なconfig差:

  • serving: sparse_weight=0.55, dense_weight=0.45, seed_count=3, maximum_edge_weight=2.0
  • v1 shadow: sparse_weight=1.0, dense_weight=0.0, seed_count=1, maximum_edge_weight=3.0

v1 packetはeffective serving retrieval configとcaptured search timestampを保持せず、verificationはcaptureと異なるarm config / synthetic timeで再検索する。したがってvalid live traceがpacketとして検証不能になる。

修正契約

  • v1 frozen artifactをobserved結果として書き換えない。新しいschema/protocol versionでsupersedeし、Issue #89の観測再開前にresult-free freeze / mergeする。
  • packetはcapture時のeffective retrieval configをcanonical fieldまたは完全fingerprint付きartifactとして保持する。検索順位に影響する全fieldを含め、feedback-only fieldと分離する。
  • packetはcaptured search timestampを保持し、snapshot verificationはcapture config + captured timeでcandidate order、source identity、content hash、credited pathを再計算する。
  • MCP adapterまたはcapture surfaceは、Codexが推測せずeffective runtime config provenanceをpacketへ移せるmachine-readable contractを提供する。
  • shadow二armはcapture retrieval configを共通基底として使用し、比較対象のfeedback policy fieldだけを変える。
    • used_q3_s1: used-time, quorum 3, sibling 1.0
    • confirmed_r05_s1: confirmed-time, quorum 1, decay 0.5, sibling 1.0
  • armごとのeffective configとfingerprintをresultへ保存し、retrieval fieldがarm間で異なる場合はfail closedにする。
  • packet/registry + snapshotからのexact semantic replay、append-only/exclusive writer、determinism、idempotencyは維持する。

Result-free gate

  • modern timestamp、serving default dense/sparse mix、relation pathを持つruntime-shaped fixtureでMCP search -> packet capture -> snapshot verify -> two-arm replay -> exact result verifyを通す。
  • capture config、timestamp、candidate order、path、config fingerprintの一つを改変したpacket/resultを拒否する。
  • q3 cumulative evidence 1 -> 2 -> 3とconfirmed diminishing semanticsを、共通capture retrieval config上で維持する。
  • 実task URL、実source identity、Issue research: triage next NGR action with frozen relation evidence #90 outcome、observed packet/resultをfixtureや登録outputへ含めない。
  • full suite、optional MCP、demo/eval smoke、CIをgreenにする。

制約

  • Issue #90を別packetとして再利用しない。
  • Issue #89の12-task / 30-day / evidence sufficiency / final verdict gateを結果に応じて変更しない。protocol migrationだけを観測再開前に明示する。
  • serving default、local registration、remote deployment、既存eval: compare used and confirmed feedback policies #85 observed artifactを変更しない。
  • observed outputを生成しない。

想定変更箇所

  • src/neuron_graph_rag/ - superseding shadow packet / replay contract
  • src/neuron_graph_rag_mcp/ - effective retrieval config provenance
  • tools/ - superseding capture/replay/verifier CLI
  • tests/fixtures/ - result-free runtime-shaped schema/fixture/manifest
  • tests/ - live-config reproduction、tamper、cumulative policy tests
  • docs/ - superseding protocolとv1 limitation

Related

Metadata

Metadata

Assignees

Labels

bug動いていない、壊れているready本文が実装開始できる形まで収束している状態。ただし更新は継続可能review-pending実装完了後、review または次段階の判断待ち

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions