Skip to content

[BLOCKER R10-B10] 元dispatch入力・正常異常State/ZIPの原本結合を完成 #488

Closed

Description

@ShutenOishi

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を仮造できない。

再現可能な実施手順

  1. 既存受入済み原本(正常 report SHA615d32b8493ee292daea971d456d08fc74ff9b309690762ff05cd9c97f089688 / negative report SHAfa1464b9e4fb9234f66a279e6e6360f610b5a933e37483c1a3b70c9f14c10910、skip Run41014360341、timeout41015468625、親41014241399/41015355922)をリスト化して再利用。
  2. 元operator/App dispatch payload(認証済み保存済みreceipt/実ログ)→requestId/cycle/17targets/HEAD/attempt→子original→実際に存在するZIPのSHA256/本当の不在→State revision/reason/lastSuccessfulStage/resumeを結合。
  3. 原本回収不能なら 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

  1. ShutenOishi commented on Oct 31, 2026

    @ShutenOishi
    ContributorAuthor

    2026-11-01 JST — R10-B10 元dispatch byte capture を保護実装・マージ(live原本未受入)

    • build 保護PR #496 latest head e4076c183ea43383e8c913934dc8ac37e5e66993 → 保護main eb1ee92cf1892af9a2eb6014596e6f89b7a9f2bc、expected HEAD squash merge済。必須resolver App15368 SUCCESS、hostile original 41254433345 SUCCESS、Validate original 41254433373 SUCCESS。original postmerge 41254511993 push/attempt1/exact protected main SUCCESS。
    • 改修内容:新しく正規に認可された実17対象 App dispatchに限り、各targetの本物の送信直前に7項目の入力、実App POSTのJSON文字列バイト(base64)、SHA256、中央Run/HEAD/原本ZIP参照を個別にr10-original-dispatch-input/<target>.jsonへfsync保存。既存の単発POSTに同じpayload objectを渡し、新しい独立artifact issue311-r10-original-dispatch-prewrite-inputsへ保存する。送信前receiptは writeAckEstablished=false / originalChildEstablished=false / publicationAuthorized=false を固定。
    • 新 hostile テスト tests/test-issue311-r10-dispatch-input-journal.py は実送信JSONバイト一致、SHA256、replay防止、改ざん拒否、秘密鍵非混入を検証し、保護CIでPASS。
    • 受入境界: 今回はlive App dispatchを再実行していない。既存の元Run 41014241399/41015355922 の過去に欠落したwire payloadは後から創作・回収できない。新しいsource input原本artifact / 実POST ACK / State CAS / ZIP 独立joinはまだ不存在。#488およびR10枝番正式受入は未受入のまま。次は新規の真正非公開原本が自然に発生したときに保存したbytes→App Run→17 ZIP/Stateを連結して独立検証。成功Run再実行、意図的障害偽装は行わない。
    • 安全条件:PUBLISH_DENY/runtimeEnabled=false・旧schedule・必須CI/保護設定維持、Secret・権限・正式公開変更なし。
  2. ShutenOishi commented on Nov 1, 2026

    @ShutenOishi
    ContributorAuthor

    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維持。

  3. ShutenOishi commented on Nov 1, 2026

    @ShutenOishi
    ContributorAuthor

    2026-11-01 JST — R10-B10 replay-safe local ID primitive protected integration (NOT live-dispatch acceptance)

    • build PR #497 head df9cb604758cae26a2f6cec74bd944566bbacdeb was protected squash-merged to main 257883ca91347126e2a77d14b17e961f6d75f771.
    • Required App15368 resolver and hostile Run 41272930601 / Run 41272930504 SUCCESS; postmerge original Validate 41273011862 and hostile 41273011955 SUCCESS, attempt1.
    • Added 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.
    • Boundary: this new helper is not yet wired into the 17 active local adapters or genuine App dispatch; existing 7-field original wire payload journal from PR#496 is unchanged. No new 17 original Run, State App CAS/revoke401/keyless readback, or live ZIP joined; R10-02 and [BLOCKER R10-B10] 元dispatch入力・正常異常State/ZIPの原本結合を完成 #488 remain PENDING. Do not equate deterministic ID with live authorization.
    • Next: pilot orafce source-gated ID verification and coordinator integration without altering old successes; then protected 17-adapter rollout, one genuine new request, prewrite wire journal→App original→17 State CAS/ZIP readback. No old Run rerun or synthetic dispatch input.
    • PUBLISH_DENY/runtimeEnabled=false, old schedule, required CI, branch protection and existing public artifacts unchanged.
  4. ShutenOishi commented on Nov 1, 2026

    @ShutenOishi
    ContributorAuthor

    2026-11-01 JST — R10 fresh local ID orafce pilot in protected PR, Windows CI pending

    • New orafce PR#90 latest HEAD 1557766e5e6a86f9c596d88f9cec67507457ba5a adds 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 repo pgextwin/orafce and 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.
    • Added local hostile negative tests and dispatch observation receipt tests. First PR HEAD App policy CI 41281711987 FAILED due to outdated offline fixture 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.
    • Follow-up after protected merge: original postmerge 5 actual Windows ZIPs, provider SHA256/CRC; central coordinator must derive and journal matching fresh ID, then other 16 original local adapters must independently support it before any new 17-target dispatch. Current change alone is not live App/State CAS evidence.
    • [BLOCKER R10-B10] 元dispatch入力・正常異常State/ZIPの原本結合を完成 #488 and formal R10-02 remain PENDING. Past missing dispatch input bytes cannot be recreated. No success Run reruns, fake source, privilege expansion, PUBLISH, legacy schedule removal, or weakening branch protection.
  5. ShutenOishi commented on Nov 1, 2026

    @ShutenOishi
    ContributorAuthor

    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再実行なし。

  6. ShutenOishi commented on Nov 1, 2026

    @ShutenOishi
    ContributorAuthor

    2026-11-01 PR#90 postmergeの原本実証完了(実ZIP再取得・SHA256/CRC)

    計画v2.4: #311 (comment)

    • orafce PR#90 latest original required App15368 CI: HEAD 1557766e5e6a86f9c596d88f9cec67507457ba5a、5 Windows PG14–18+required Summary+App policy SUCCESS。期待HEADの保護squash merge後 orafce/main=36883efe6496c8f05919784568c8ed80c41cc3f0。
    • 実original postmerge Run https://github.com/pgextwin/orafce/actions/runs/41284260392 (push, attempt1, SUCCESS) でPG14/15/16/17/18、resolver、required SummaryがすべてSUCCESS。
    • 実際に再取得した外側artifact ZIPとGitHub API側digestのSHA256が一致し、外側CRC及び内側package ZIP CRCも全件PASS。独立ローカル検証結果:
      • PG14 artifact 13074727285 2fafba3ed0f6a8e2f5d881a6e3ebbeafe1ff79a83b5d1b93c441761cff320c85
      • PG15 artifact 13074820493 3308330352d5a7bd1d5327984c99e7e5035bd57ade216953277d6ae80c7c3c8f
      • PG16 artifact 13074642944 5b05c05d0baaf1880357e9e2b7b5c897b693012c3ea1fb37401af9bca4850fbb
      • PG17 artifact 13074533821 2a550637c06aa9b9217322e7072bdf2c4084f5f301f16aca026e294eb01a7e91
      • PG18 artifact 13075005038 ffcf06d4b1913a04bbd169d5c35dba34e54704913c7f98087f56bca0bad0c8ee
    • 同じ新mainで自動発火したoriginal Issue 311 App-bot original local PREPARE Run 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。受入の水増しなし。

  7. ShutenOishi commented on Nov 1, 2026

    @ShutenOishi
    ContributorAuthor

    P0 implementation checkpoint 2026-11-01: build branch issue311-r10-source-bound-fleet-20261101 at 9f503d710697301d538a394060f95f4ff1bf17c9 replaces 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions