Repository navigation
[BLOCKER R10-B10] 元dispatch入力・正常異常State/ZIPの原本結合を完成 #488
Description
2026-11-01 AUTO v2.5 解決: Chat/Work内で完成可能な狭義実装は完了(COMPLETED_SCOPED、17 original E2E受入ではない)。
現行必要なsource-bound 17ローカルID・事前wire journal・CAS source結合をbuild PR#496/#497/#499(main8e391d46)で保護マージ・テスト。16 local adapterもsource-boundに移行。古い未保存wireは復元不可として#501へ。現17原本CAS/readbackの実成功は#490/#491に残す。
自動更新の新正本は #311 AUTO v2.5 と #501留意点。歴史本文の未達チェックは未実証当時の記録として維持し、正式85/94は未変更。PUBLISH_DENY/runtimeEnabled=false・必須CI・旧schedule・保護設定の緩和なし。
2026-11-01 完成優先の実行順序:P0/先行実装→適格イベントで最終検証
今すぐ進める: build PR#497のsource-bound deterministic local IDを中央17-dispatch callerへ接続し、17ローカルadapterへ展開。PR#496のPREWRITE wire journal、真正central source/17 original Run/ZIP/State joinを新しい非公開要求で実行する。
イベント成立時だけ行う: 過去に保存されなかった実dispatch入力は復元を偽装せずUNRECOVERABLE_INPUT_BINDINGとして固定。適格な新要求発生時にoriginal入力を保存し本件の未充足を解消。
運用: イベント不在のGET監査・成功Run再実行は繰り返さない。残余はEVENT_GATEDで保持し、発火時に本Issueの手順と受入条件を利用する。コード完成と正式受入は別。PUBLISH_DENY/runtimeEnabled=false・必須CI・旧schedule・元の受入条件を変更しない。
子タスクID: R10-B10
分類・対象枝番: VERIFY_EXISTING + CONDITIONAL_IMPLEMENT / R10-02・W10-B
親: #311、関連親 #75。受入契約v2.1+ metadata/issue311-remaining-work-v22.json v2.2を優先し、現在の正式 85/94 PASS・9 PENDING は変更しない。各子タスクのコード完成/fixture PASSとoriginal live合格を区別。
共通条件: 既存成功Run rerun禁止、偽入力/任意失敗/未認可公開禁止、PUBLISH_DENY / runtimeEnabled=false・必須App15368・保護main維持。ソース変更は保護PR→必須CI→期待HEADマージ→original postmerge→実原本検証→#311/#75更新。
現在の阻害条件
既存正常2 cycle×17、異常4×17とorafce実SKIPPED/timeoutの証拠は部分的にある。元dispatch入力と子Run/status/State/最後の成功地点が完全には繋がらない。実行前SKIPPEDで存在しないZIPを仮造できない。
再現可能な実施手順
- 既存受入済み原本(正常 report SHA615d32b8493ee292daea971d456d08fc74ff9b309690762ff05cd9c97f089688 / negative report SHAfa1464b9e4fb9234f66a279e6e6360f610b5a933e37483c1a3b70c9f14c10910、skip Run41014360341、timeout41015468625、親41014241399/41015355922)をリスト化して再利用。
- 元operator/App dispatch payload(認証済み保存済みreceipt/実ログ)→requestId/cycle/17targets/HEAD/attempt→子original→実際に存在するZIPのSHA256/本当の不在→State revision/reason/lastSuccessfulStage/resumeを結合。
- 原本回収不能なら UNRECOVERABLE_INPUT_BINDING を明記して元Run再実行しない。新たな限定非公開負例が必要なら、必ずdispatch入力原本の保存を先に実装し新authorizationを取得。
受入条件(すべて満たした時のみ)
- 正常2×17のoriginal実ZIP/SHAとStateがrequest・targetに正確に一致
- 異常4×17、skip/timeoutの元dispatch inputの真正byte sourceとreason/lastSuccess/resumeが一致
- 存在しないZIPは独立確認済み「不在」であり、偽ZIP/時間近接の結合をしない
- 別読取者が固定receipt+Stateから同じ判定を再現
- 回収不能なら未受入のまま新規限定原本用の固定保存ゲートを定義
停止・再開条件
既存資料を再試験せず認証済みGETで出典を固定。欠落する資料は推測しない。
報告要件: 根拠の原本 URL・PR/Run/HEAD・必要なState blob/SHA256・判定区分を示す。正式9未受入枝番のチェックを自動変更しない。
2026-10-31 単一ユーザー移行(今回の明示指示を適用)
本節は上記の任意の「別human intent」「第二人間」「追加Work操作」条件を置き換える。ShutenOishi本人の一回のChat要求を、認証済みGitHub操作で固定する。同じrequestIdの許可scope内のPREPARE・Issue調停・Draft候補・native CI・検証・記録は追加human要求なしで進める。実際のGitHub actor/author/merged_by/Runは独立GETし、Botを人間と呼ばない。
実行可能工程: immutable request(対象・scope・requestId・source SHA・expected HEAD・expiry・replay key)→hostile試験→保護PR→必須App15368 CI→期待HEAD保護マージ→original postmerge→必要な実ZIP/State独立GET。既存成功Runを再実行しない。
受入条件: 上記原本が同じ要求へ結合し、無権限・scope外・改ざん・期限切れ・replayをfail closed。追加の人間操作なしで許可範囲が完走した場合のみ本機能の完了。正式85/94は変更しない。
原本証跡: PR/HEAD、真正author/merged_by/actor、Run/attempt1、request blob、必要なZIP実SHA256/CRC/署名/Attestation、State revision、独立readback URLを記録。
外部条件: GitHub自身の実在する保護/承認規則、サービスquota、真正upstream、特定候補のPUBLISHのみ。有限timeout/retry・単発write/不明応答GET-only・最小権限は維持する。任意件数上限は理由と適用箇所を監査し、無条件に無制限化しない。
再開条件: 具体的な未成立の外部事実、または未実装adapter/検証工程を示す。不在監査だけを反復しない。
非公開統合試験は実在するupstream tag/full commitを使い、隔離資源・実GitHub API・実workflowで行う。新stableの偽造は不可。CONTROLLED_INTEGRATIONと将来真正stableのPUBLIC_E2Eを別判定し、正式契約の判定変更は保護PRのマージ・postmerge後に適用する。旧scheduleは代替受入まで維持。
R10は実policyと実承認状態を確認し、存在しないPREPARE承認不足を捏造しない。policyが承認を要求しない場合は「不足なし」を原本付きで記録し、任意の第二人間待ちを作らず、適用判定の契約改訂へ進む。実在する不足時のみBLOCKED_APPROVALを実証する。
本要求は非公開実装・契約変更の認可。PUBLISH_DENY/runtimeEnabled=falseを維持。正式公開は実在する特定候補への本人一回の明示PUBLISHと全既存公開ゲートが必要。
Activity
ShutenOishi commentedon Oct 31, 2026
2026-11-01 JST — R10-B10 元dispatch byte capture を保護実装・マージ(live原本未受入)
e4076c183ea43383e8c913934dc8ac37e5e66993→ 保護maineb1ee92cf1892af9a2eb6014596e6f89b7a9f2bc、expected HEAD squash merge済。必須resolver App15368 SUCCESS、hostile original 41254433345 SUCCESS、Validate original 41254433373 SUCCESS。original postmerge 41254511993 push/attempt1/exact protected main SUCCESS。r10-original-dispatch-input/<target>.jsonへfsync保存。既存の単発POSTに同じpayload objectを渡し、新しい独立artifactissue311-r10-original-dispatch-prewrite-inputsへ保存する。送信前receiptはwriteAckEstablished=false/originalChildEstablished=false/publicationAuthorized=falseを固定。tests/test-issue311-r10-dispatch-input-journal.pyは実送信JSONバイト一致、SHA256、replay防止、改ざん拒否、秘密鍵非混入を検証し、保護CIでPASS。ShutenOishi commentedon Nov 1, 2026
2026-11-01 JST — #488 live 原本結合の追加阻害点(前進条件を固定)
保護マージ済 build PR#496 → protected main
eb1ee92cf1892af9a2eb6014596e6f89b7a9f2bc。original postmerge 41254511993 PASS。新規実dispatch直前のJSON wire/Base64/SHA256保存機構は導入済。ただし過去の欠落元入力を復元したわけではない。本日ソースGETで確認した未実装境界:中央
scripts/issue311-coordinator-fleet-local-prepare.pyの中央REQUEST_IDはsource原本から動的取得するが、17個のLOCAL_IDSは2026-10-30固定値。少なくとも orafce のscripts/issue311-app-local-prepare.pyはrequest_id == r-20261030-r06coordlocalpilot01を固定で要求する。新しい独立した17対象要求でrequest IDの再利用を避けながら全17 originalを通すため、fresh local requestId →中央source/expiry/replayKey → target App attempt1 の受入経路を17対象について整合させる必要がある。古い固定IDの再利用を「新しい一回限りの認可」とみなさない。完了に必要な次の具体的工程:まずorafce単体pilotでユーザー由来の新しいprotected immutable中央要求→新規localIdをfail closedで導出→source HEAD/ZIP / scoped App source permission/単発POST→受入original ZIPを記録→revoke401/鍵なし別Runner readback。これが通れば17対象に最小展開し、同一requestIdに元dispatch保存バイトとState/ZIPを結合。保護PR・必須CI・postmerge必須。成功Run41014241399等の再実行、期限切れIDの再利用、不在payloadの人工復元は禁止。
本コメントは未実装境界の明確化であり、live #488/R10受入は未成立、正式85/94維持。
ShutenOishi commentedon Nov 1, 2026
2026-11-01 JST — R10-B10 replay-safe local ID primitive protected integration (NOT live-dispatch acceptance)
df9cb604758cae26a2f6cec74bd944566bbacdebwas protected squash-merged to main257883ca91347126e2a77d14b17e961f6d75f771.scripts/issue311-r10-replay-safe-id.py: deterministic domain-separated SHA256 ID derived from immutable central request, source original Run, source HEAD/ZIP SHA256, exact target repository and exact target protected main; all 17 IDs distinct, identical source cannot obtain a new ID through replay. Wrong source/target/hash, noncanonical run ID, extra fields and old fixed IDs fail closed. New offline hostile and nonpublishing CI in PR.ShutenOishi commentedon Nov 1, 2026
2026-11-01 JST — R10 fresh local ID orafce pilot in protected PR, Windows CI pending
1557766e5e6a86f9c596d88f9cec67507457ba5aadds the receiving side of the existing build PR#497 canonical domain-separated SHA256 local ID. Exact original central requestId, sourceRunId, source HEAD, source ZIP SHA256, target repopgextwin/orafceand protected target main are bound into local ID. Existing 7-field workflow_dispatch schema unchanged; App Bot identity, original attempt1, local exact HEAD and original central ZIP authentication stay mandatory. Old fixed R06 pilot ID is allowed only with its original central request and cannot be used as an alias for future source.r-20261030-r06preparecoord001, now forbidden for a fixed legacy ID (not a production failure). Updated that fixture and added new source-bound observer test. Latest-head App policy original 41281753966 SUCCESS. Latest HEAD required Windows 41281753952 PENDING, so PR#90 must stay unmerged until latest-head PG14–18 and App15368 Summary SUCCESS; never waive the failed previous HEAD.ShutenOishi commentedon Nov 1, 2026
2026-11-01 P0実行指定:#311の完成優先計画 #311 (comment)
次は中央coordinator現存の17固定
LOCAL_IDSを実source-bound digest(build PR#497)へ変更し、PR#90で完了したorafce local verifierと残り16 targetを同一スキーマにする。新しい保護requestでdispatch wire bodyをPOST前にジャーナル固定し、17 original Run/receipt、App CAS/readbackまで同一cycleで結合する。過去の失われたdispatch入力は推測せずUNRECOVERABLE_INPUT_BINDING、元成功Run再実行なし。ShutenOishi commentedon Nov 1, 2026
2026-11-01 PR#90 postmergeの原本実証完了(実ZIP再取得・SHA256/CRC)
計画v2.4: #311 (comment)
1557766e5e6a86f9c596d88f9cec67507457ba5a、5 Windows PG14–18+required Summary+App policy SUCCESS。期待HEADの保護squash merge後orafce/main=36883efe6496c8f05919784568c8ed80c41cc3f0。2fafba3ed0f6a8e2f5d881a6e3ebbeafe1ff79a83b5d1b93c441761cff320c853308330352d5a7bd1d5327984c99e7e5035bd57ade216953277d6ae80c7c3c8f5b05c05d0baaf1880357e9e2b7b5c897b693012c3ea1fb37401af9bca4850fbb2a550637c06aa9b9217322e7072bdf2c4084f5f301f16aca026e294eb01a7e91ffcf06d4b1913a04bbd169d5c35dba34e54704913c7f98087f56bca0bad0c8eeIssue 311 App-bot original local PREPARERun https://github.com/pgextwin/orafce/actions/runs/41284260328 も SUCCESS。これは17端末の新規PREPARE/E2E完了の代用ではない。判定: R10新local replay-safe verifierのprotected code/postmerge検証済み。ただしcentral coordinator→17 local derived IDs→実State CAS・鍵なしreadbackは未完、正式85/94 PASS、子2/15のまま。PUBLISH_DENY/runtimeEnabled=false。受入の水増しなし。
ShutenOishi commentedon Nov 1, 2026
P0 implementation checkpoint 2026-11-01: build branch
issue311-r10-source-bound-fleet-20261101at9f503d710697301d538a394060f95f4ff1bf17c9replaces static 17 local request IDs with SHA256-derived IDs from exact central request/source Run/source HEAD/original ZIP/target main SHA. Prewrite dispatch journal and hostile tests updated. Independent authenticated GET confirms branch HEAD. Protected PR creation was blocked by tool safety check; no CI/merge/new live original is claimed. Next immediately actionable: permitted protected PR, required CI, merge; migrate 16 current fixed-ID local adapters (all 16 source files verified still legacy), then 1 fresh nonpublic protected central request/17 receipts/App CAS/keyless readback. Until these actually succeed, B10 stays OPEN, 85/94 and 2/15 unchanged. Event-gated real provider/new stable/approval/publication do not block implementation work.