Skip to content

[P0][CHAT UPDATE] 1回の「pgextwinを更新して」→全拡張更新処理(公開版維持) #311

Open
11 of 15 issues completed

Description

@ShutenOishi

【最新運用指示】「pgextwinを更新して」=適格な正式公開まで承認(2026-11-02)

所有者の単一Chat指示 「pgextwinを更新して」 は、登録済み17拡張の真正な更新候補について、保護PR・必須CI・マージから、条件が成立する正式Release・Catalog保護マージ・Website JA/EN公開実証まで実施する承認を含む。再度「公開して」と求めず、Chatで実行できる工程を完遂。更新がなければ NO_UPDATE 正常終了。特定拡張の指示ならその範囲に限定。

この所有者の意図は個別の署名・真正GitHub schedule/PR・独立Publisher・最小権限App・create-only tag・Attestation・公開ハッシュの技術ゲートを代替せず、既存の fail-closed 公開認可を迂回しない。Workへの引き継ぎは Approve and run 等、Chat接続では実行できない実際のGitHub GUI操作のみ。追加の二人目humanや形式的公開再承認を作らない。

正本手順: docs/chat-first-publication.md(保護 PR#516 マージ)。これは以下に残る「一般的な更新しては公開許可ではない」という以前の優先順位を、所有者の明示意思の範囲で上書きする。ただし PUBLISH_DENY/runtimeEnabled=false の旧非公開経路や既存技術・運用安全ゲートは維持。

【現行最優先】2026-11-02 完成・公開優先の実行順序(本節が旧優先順位を上書き)

実績: 公開済み正式Release 17/17、Catalog 17/17、Website JA/EN(既存公開物を再利用)完了。証拠: #311 公開完成監査、Catalog PR#181、Website公開監査Run41319356967。新stableの自動Release完了を示すものではない。

P0 → P1 → P2 → P3 の作業バックログ

  1. P0 公開の維持と実不具合修復 — 既存17のRelease/Catalog/Website/ダウンロードを最優先で保つ。公開事故・既存安全ゲート失敗時のみ直ちに修復。公開完成済みの作業を繰り返さない。
  2. P0「pgextwinを更新して」で起動できる更新導線を保つ — 本#311と#75。通常Chatの単一依頼から真正upstream差分の確認→非公開候補→共有Windows CI→既存安全ゲート→適格であれば正規公開・Catalog/Website同期まで自律的に可能な工程を完遂。差分なしはNO_UPDATE正常終端。特定ReleaseのPUBLISH認可が現行ポリシーで別途必要なら省略・偽装しない。形式的追加human/Work往復は作らない。
  3. P0 実在する更新候補 — plpgsql_check#78(2.10.16候補、現公開2.10.15)。候補検証から始める。hypopg 1.4.4は既存ReleaseとCatalog同期完了。
  4. P1 すべての拡張機能の共通化+新拡張/新機能追加 — #510。17 repo成功実装を再利用、schema/adapter + shared workflow/契約で18番目以降も追加しやすくする。大規模一斉書換より1系統pilot。
  5. P2 公開後の運用強化 — #484(旧新Writer fence)、#485(有限回復)、#486(scheduleの機能別安全な代替)、#487(受入済みscheduleだけ保護撤去)、#112(オフライン配布/CLI)。公開版を未完成扱いしない。旧scheduleは代替安全成立まで消さない。
  6. P3 未来の偶発事象・任意の追加試験 — #501。自然障害や新stableの発生待ちだけの監査は繰り返さない。実発生時のみ必要な検証を追加。

共通の実行原則

  • 完璧より完成。毎回「今回利用可能になったもの」を完成単位で閉じる。証跡だけを作る再実行や未発生の事故待ちはしない。
  • 成功Run再実行禁止。既存成功証跡を最大再利用。Chat+既存GitHub Actions/Appで進め、WorkはChatで不可能な管理GUIのみ。
  • 公式文書に加え、pgxman buildkit、PGXN/Trunk、PostGIS Windowsビルドなどのコミュニティ成功例も調べ、Windows/MSVCに適した最小実装を採用する。
  • 保護・署名・Attestation・SHA256・最小権限・有限回復・PUBLISH認可の既存必須条件は維持。PUBLISH_DENY/runtimeEnabled=falseは既存非公開経路に適用し、一般的な「更新して」を無条件の公開許可と解釈しない。
  • 旧正式台帳85/94とAUTO 6 completed / 5 out-of-scope / 4 active は、計測時点の歴史的判定として保持。公開済み17/17と混同しない。

オープンPR(2026-11-02 認証済み検索で15件)分類

次の動作: 最優先は実在するplpgsql_check#78の候補経路確認と、#311の1指示更新導線を維持しながら#510の共通化を開始。旧Writer/cron総撤去をこのための前提にしない。

現行決定: 自動更新受入 v2.5(2026-11-01、単一ユーザー+Chat/Workで完結)

優先順位: 本節は #311/#75 の「自動更新の完成範囲・子タスク分類」について過去の v2.1〜v2.4 の将来事象待ちを上書きする。従来の正式94枝番の歴史台帳と既存のセキュリティ・公開許可は変更しない。

実行済み: build PR#499 protected merge main 8e391d46、16 repo source-bound local adaptersの認証GET、build PR#500 最新App15368 resolver SUCCESS後の保護squash merge main 530fd07631097c3a927034f30c57c7fefea92781。後者の元要求が45分 wall-clock deadline をマージ前に超過し watchdog Run 41296729562 はQUARANTINED/FAIL、中央Run41296729404のscan jobはSUCCESS。17完成とは数えない。これをコード/期限設計改善の実作業とし、旧Run rerunを禁止する。

2026-11-01 最終実証: protected PR#506 / 中央original Run41303544119 / 17 App original Run41303603386 / CAS・独立readback Run41303787995。実State issue311-state/checkpoints/request-lifecycle/r-20261101-r06appauto41303603386.json blob 5a30f9fe7e9a71dbcbe65a286e6d906113252669、revision2、17×SUCCESS、NO_UPDATE、publisherAuthorized=false。#490/#491 COMPLETED_SCOPED / AUTO 6完了・5対象外・4 ACTIVE。個別の検証証跡。旧Run再実行なし。正式歴史台帳85/94維持。

現行:単一ユーザー実行契約 v2.3

追跡子タスク2/15完了(#479 controlled integration、#480)、正式85/94 PASS・9 PENDING。 今回の最終原本・20repo監査・引継ぎを現行の入口とする。
build PR#494、orafce PR#77/#78を保護マージ、必須CI・original postmerge・必要な実ZIP独立照合PASS。build/main c5f87c89f13e32aeb5f7a10814db71909aa40509、orafce/main f9324f2a5600cc6f96dbd0ec5c320c64c0ebda91。
一回のユーザー指示をimmutable要求へ固定し、同じsource Run41214457502からIssue/Draft/native CIの3工程が追加人間・Work操作なしで真正NO_CHANGE終端。非空Writer・17対象最終E2E・実公開は未受入。15件は#311のネイティブSub-issues登録済み。
旧「別human intent」は廃止。全20repoのmainに追加の人間レビュー必須条件なし(設定変更ゼロ)。契約v2.3。PUBLISH_DENY/runtimeEnabled=false、旧schedule維持。

現在の阻害条件:追跡用子Issue(2026-10-31 JST / 15件)

本表を現在の作業の入口とする。 未受入9枝番を15個の実行可能な阻害条件に分解した追跡用Issue。各リンク先に「現状/手順/全部必要なPASS条件/停止・再開条件」を固定。チェックは子タスクの完了であり、正式94枝番の受入判定とは別。正式歴史台帳 85/94 PASS・9 PENDING / AUTO: 6 completed・5 retired・4 active、#311/#75 OPEN。

R11(9件)

依存の順序: #480→(#479の真正upstream固定・隔離統合を併行)→(#481・#482→#483) → (#484・#485) → #486→#487。R10は #488→#489→#490、R12はR10/R11正式前提が揃ってから #491。公開R09は別の具体的PUBLISH条件 #492→#493。親R09/R10/R11/R12チェックは各子枝番とv2.1の親ゲートを全件独立PASSした後のみ更新。

安全ゲート: 真正upstream/単一ユーザー要求/正式PUBLISHは異なる外部条件であり、Issue作成自体は承認ではない。旧scheduleは代替受入後のみ撤去。過去成功Run再実行・偽stable/intent/未認可Release/Tag/Catalog/Websiteは禁止、runtimeEnabled=false / PUBLISH_DENY を保持。各Issueの受入原本は保護PR→必須CI→postmerge→実SHA256/State readback→両親Issueへ記録。これはGitHub本文チェックリストによる関連Issue管理であり、GitHubネイティブSub-issuesは今回管理UIで登録し、認証済みGETで15件を確認。

現行の実行入口(2026-10-31 JST): 85/94 PASS・9 PENDING。残作業は末尾「残9件の実行契約v2.2」および 7作業の実行手順 を使用する。本文中の旧「次の実行」は履歴であり、受入済みR04/R05をやり直す指示ではない。未変更の不在監査を反復せず、具体的な未実装工程へ進む。

確定方針(2026-10-29 JST)

親Issue: #75。Chatから一度、対象・目的・承認範囲を指定した実行要求を登録し、その要求を終端状態まで自律実行する。
GitHub cron、ChatGPTの定期タスク、外部cron、常時外部サーバを必須としない。GitHub ActionsはCI・Windowsビルド・OIDC署名・監査に利用し、認証された要求と工程完了イベントで動かす。
以前のM01〜M13/T01〜T05の計画は履歴扱い。本本文のR01〜R12を唯一の実行チェックリストとし、毎時ChatGPTタスク・補助cron追加・外部タイマー導入案は撤回する。旧計画の未実施を完了扱いにしない。

スコープと終端

  • 一回の要求が調査する対象集合・取得時点・新stable候補を固定。将来の新バージョンを無期限に監視しない。
  • 要求種別は少なくとも AUDIT_ONLY / PREPARE / PUBLISH_ELIGIBLE を分離。起動の許可と公開許可は別。今回の実装/移行作業自体は実Release指示ではない。
  • 各対象に SUCCESS / NO_UPDATE / FAILED / BLOCKED_APPROVAL / QUARANTINED、全体に終端要約を残す。失敗や安全停止を成功へ読み替えない。対象の一部失敗も最終報告に明示。
  • 正常経路は追加Chat・手動dispatch不要。安全な有限retryと永続checkpointにより自動継続する。権限不足、GitHub全面障害、曖昧な公開応答などは無制限retryせず終端化。解除後の明示的再開も同一要求を使い、成功済み工程をやり直さない。

再利用する証拠

#75 #6472293647 の旧X01/X02保護マージ/postmerge、13/17原本受付、Fleet40688819922原本SHA256は歴史証拠として保全。最新状態を認証済みGETし、変更のない証拠は再利用する。旧4件のschedule発生や旧17/17を待つことを本移行の着手条件にしない。
旧source-kind/eventが新経路の合格証明になったとは主張しない。新17/17受付は新契約として独立実証する。

目標フロー

Chatで限定要求登録 → protected-main受信入口 → requestId固定・永続記録 → 中央scan/原本検証 → 対象ごとの候補/CI/原本/署名/独立監査 → 承認範囲と全公開ゲートが成立した場合のみPublisher → 公開原本検証 → Catalog保護変更 → CLI/feed/EN・JA確認 → 終端記録。
起動受付HTTP、PR作成、Workflow成功表示のみでは工程完了としない。

受入計画改訂 v2:再現可能な障害試験を正本とする(2026-10-30 JST)

ユーザー指示による将来の受入判定基準の明確化。 R01〜R12の親子依存、既存枝番・チェック状態・歴史証跡は変更しない。従来コメント等にある「自然に未配送だった workflow_run.completed」「偶発的に発生したGitHub provider HTTP429/503・通信障害・書込応答喪失の新たな独立実原本を得るまでR05-03/R06-06-03は受入不可」という自然発生の待機条件を撤廃する。旧記録は歴史として保存し、成功を偽らない。自然障害を観測した場合は追加証跡にできるが、観測できないこと自体をBLOCKEDとしない。既存の必須安全ゲートや公開認可は絶対に撤廃しない。

R05-03 / R06-06-03 の更新後の合格条件

  1. 本物の17拡張無人連鎖(正常系): 認証済みChatの1回の限定要求→最新HEAD必須CI→保護マージ→本物のprotected-main push原本→中央PREPARE原本→専用App actorによる17件の本物のローカルPREPARE起動→各original Run/attempt/17 receipt ZIP・実バイトSHA256・同一request/cycle/exact protected main照合→App CAS revision2でNO_UPDATE17または検証済みの安全停止→別Runner・Appキーなしの独立readback、まで追加Chat/手動dispatch/cronなしで結合・終端する。既存の正当な原本は証明範囲が一致する限り再利用し、足りない鎖の部分だけ新しい非公開要求で試す。workflow_run多段抑止などの実制約を理由に偽eventへ置換しない。
  2. イベント欠落の決定的な検証: 承認済みの非公開試験で完了通知を意図的に配送しない/consumerを動かさない条件を作り、独立push起動の有限watchdogが真正なsource・子Run/ZIPと期限をGET照合し、既存正常成功を上書きせず17対象のFAILED/QUARANTINED等の永続終端に到達することを実証する。自然の未配送発生自体は必須ではない。制御した欠落を自然障害と記録しない。
  3. 通信障害の決定的な検証: GETの429/502/503/504・一時通信障害を制御注入し、最大3回のGET限定再読取・恒久401/403/404/409/422即時拒否・継続障害時fail-closedを負例CIで確認。実GitHub Contents CASについては制御したPUT ACK喪失→原本GETで一致確定またはUNKNOWNを安全隔離、実409競合→勝者1・再PUTなし・敗者安全拒否、同一token失効401と独立readbackを既存の真正原本で照合する。自然のHTTP429/503/ネットワーク断は必須ではない。fake HTTPを本物のprovider障害と称さない。公開POSTの不確定結果は別途Publisherのwrite boundary受入条件として維持し、ここで安全性を推定しない。
  4. 安全否定・回復: forged request/actor/App/ref、source-kind/central cycle混同、古いZIP、期限切れ、replay、対象漏れ、改ざん、failure/skip/timeout、同時CAS競合、late eventを明確にDENY/隔離。Stateの17対象集合、固定head SHA、blob revision、publisherAuthorized=false、writeOutcomeUnknown=false、元の成功state不変を鍵なしの独立原本GETで確認する。再送禁止のwriteを安易に有限retryへ変更しない。
  5. 完了判定: 1〜4の必須部分が「同じ実運用経路」で本物のGitHub原本(Run・job・ZIP・SHA256・App CAS・別ジョブGET)から証明でき、保護PR・必須CI・original postmergeがSUCCESSなら、R05-03/R06-06-03の該当項目を証拠に応じて受入する。純offline模擬のみを無人E2Eの代わりにしない。特定の自然事故の発生待ち・無期限watch・成功原本rerunは受入条件にしない。未達があれば具体的な不足工程を示し、未受入を維持する。

後続の工程と禁止事項

  • 優先1: 既存成功・制御故障・App CAS・独立readbackの原本を上記1〜5へ対応付け、不足する「実17件の自動起動・正常/安全終端」だけを最小限補完。新しい自然障害の発生待ちをしない。
  • 優先2: R04/R05/R06親の依存ゲートを個別確認し、成立項目だけ[x]へ。R07 (pilot→17拡張) → R08 (新契約OIDC署名・二重Sigstore・Publisherの別安全審査) → R09 (Catalog/CLI/Website) → R10 (再現可能な故障・回復・最終報告) → R11 (代替受入後のcron廃止) → R12 (#75利用手順・最終受入)へ段階的に進む。R10-01も「自然事故そのものの発生」ではなく「注入可能な故障・有限fail-closed」で判定する。
  • 常時不変: runtimeEnabled=false / PUBLISH_DENY、既存branch protection/必須CI、元の17/17原本・SHA256・OIDC/Sigstore・App単一repo最小権限・同一token revoke401・Publisher/Catalogの公開条件を維持。成功Run再実行、偽schedule、cron追加、既存資格情報転用、保護迂回、未認可Releaseを禁止。
  • 変更履歴: このv2は検証基準の将来変更であり、旧失敗・限定実証を改竄・削除・即時[x]扱いしない。該当ゲートの受入時に更新版基準とRun/PR/SHA証拠を[P0][CHAT UPDATE] 1回の「pgextwinを更新して」→全拡張更新処理(公開版維持) #311/#75に記録する。

受入契約 v2.1:R枝番のPASS/FAIL・証拠・停止条件(2026-10-30 JST)

この節は直前の「受入計画改訂v2」を測定・判定可能にした規範である。R01〜R12と既存の子孫枝番は不変で、歴史原本・チェック状態を変更しない。既存文と判定方法が異なる場合は、自然事故の観測待ちを不要とするv2および本v2.1の再現可能な判定方法を今後の判定に適用する。ただし安全ゲートと実原本要求を緩和しない。

0. 共通の判定規則と必要証拠

判定 必要条件
PASS 当該枝番の全必須条件に対応する独立に照合可能な実原本が存在し、不正・欠落・失効・再実行・公開越権がない。変更を伴うものは最新PR HEADの必須CI、保護マージ、original postmergeを確認。
LIMITED_PASS コード/単体/負例/一部repoなど限定範囲のみ証明。子タスクの限定受入に使えても親や17/17 E2Eへは自動加算しない。
FAIL 範囲・資格・SHA・run/attempt・期限・署名/来歴・内容・readback等の必須照合が不一致。実行失敗をSUCCESSに読み替えない。
BLOCKED / PENDING 必要な権限、正式認可、適格な新stable、または検証原本が未成立。未成立の枝番は [ ] を維持し、再開条件を明示。自然故障の発生待ちだけではBLOCKEDにしない。

原本証拠は最低限 repository / protected main SHA / requestId / central cycleId / mode / target allowlist(17) / source-kind / actor/App identity / workflow path / runId / attempt(原則1) / job conclusion / artifactId / ZIP実バイトSHA256 / provider digest(存在時) / CAS state branch・path・Git blob SHA / revision / target statuses / terminal / expiry / eventTransport / writer token revoke401 / 独立reader Run・readback / required CI・PR HEAD・merge SHA・postmerge Run をその事象に該当する範囲で記録する。全証拠を単に同じ文字列へ転記せず、GitHub Actions・Contents・PRを別経路から認証済みGETで照合する。実ZIPバイトは取得可能な実際のActions実行環境で検証し、provider digestの自己申告のみを独立実バイト確認と称さない。

対象集合・成功判定: 対象は固定された17のallowlist。新方式の1つの正常サイクルについて、保護mainを固定し、17 distinct repo、17 unique original child Run/attempt、17 local receipt ZIPの実バイトSHA256、17件のrequest/central cycle/source-kind/refの一致を確認する。全子が真正NO_UPDATEなら永続stateは NO_UPDATE / 17×SUCCESS としてよい。実際に失敗・skip・timeout/欠落があれば FAILED/QUARANTINED などの安全終端とし、正常成功にしない。対象漏れ、他cycle混入、署名/ZIP不明はDENY。元の成功stateは不変。1つのRUNがあらゆる正常・故障シナリオを同時に証明する必要はないが、正常17子の一気通貫無人連鎖を、別々の古い成功の寄せ集めだけで代替しない。

1. 最優先:R05-03 / R06-06-03 の受入シナリオ

ID / 判定枝番 実行条件(操作可能) PASSを裏付ける観測結果
A:R05-03 + R06-06-03 正常無人E2E 1回限りの認証済み非公開要求を保護PRで登録→latest-head required CI→保護merge。以降Chat/手動dispatch/cronなし。 真正main push→中央PREPARE→承認済み専用App actorによる17 repoの実ローカルPREPARE起動(本物のdispatch/child run)→17 original receipt ZIP実SHA256→同一cycle検証→有限App CAS terminal(正常なら17/17 NO_UPDATE)→別Runner・Appキーなしの原本GET readback。すべてrun/attempt/head/requestを結合。1段/2段以上の本物のイベント境界を確認。
B:R05-03 イベント欠落・有限回復 非公開の制御されたconsumer不在・completion配送抑止・子SKIPPED/timeout等、元の真のsource runを残した再現シナリオ。 独立push起点の期限付きwatchdogが本物のsource/子原本を有限GETで確かめ、期限または確定失敗の後に17対象をFAILED/QUARANTINEDへCAS終端化。鍵なし別Runでrevision/blob/17対象/失効を照合。遅延event/replayでNO_UPDATEへ反転しない。
C:R06-06-03 通信・CAS境界 非公開の制御429/502/503/504/transport failure、実CAS HTTP409、実App PUT後の制御ACK喪失を既存の固定原本または新規必要最小の試験で再現。 GETだけ最大3 attempts。401/403/404/409/422など恒久HTTPは自動再試行しない。CAS PUTは盲再送しない。ACK喪失時に原本GETの同一バイト/Blob SHA一致なら限定確定、それ以外はUNKNOWN/QUARANTINED。競合の勝者と敗者を独立GET確認。tokenをrevokeし同token GET401、Appキーなし別Runが整合確認。
D:R05-03 + R06-06-03 敵対的入力 偽actor/App、偽source-kind、旧central/異なるcycle、ZIP改ざん/欠落、期限切れ、17対象入替、古いHEAD、replay、遅延completion、公開フラグ混入を負例試験。 すべてDENYまたは安全隔離、既存NO_UPDATE17/QUARANTINED17の原本不変、公開操作ゼロ。元の別cycleの既存terminalを今回の成功証拠として流用しない。

枝番別の最小合格線: R05-03=PASS はAの中央→17本物のlocal起動と自動集約、Bの有限停止、およびDの偽起動拒否を同じ実行経路の証拠で示すこと。R06-06-03=PASS はAの17原本/ZIP/SHA256・CAS・独立readbackに加えCおよびDの安全境界を証明すること。元の単一orafce pilot・mockだけでは不可。Aが未達なら両者とも [ ]。Aの新規原本は必要最小1回限りとし、旧成功Runはrerunしない。故障シナリオB/C/Dは既存の証拠が一致する場合再利用し、再試験を要求しない。自然発生のイベント未配送/HTTP429/503/ネットワーク断の観測は一切必須でない。故障注入を自然事故と表示してはならない。

2. R04〜R12 親・後続枝番の完了ゲート

枝番 すべて成立すればPASS(不足があれば未受入)
R04 版付き固定要求・17対象別の状態と期限、lease・CAS・別要求候補競合、同一要求重複/late event拒否、runner停止からの有限再開を真正Contents原本で証明。成功工程を再実行せず、不確定公開writeは決して無断再試行せず安全隔離。子R04-01/02の限定証拠は再利用可だが、公開Writerとの境界はR08と分離。
R05 R05-01/02の限定成功とR05-03のA/B/D PASS、2段以上の本物のイベント境界、17対象の自動集約、明示的な有限期限・安全終端。cronや追加Chatを隠れた前提にしない。
R06 R06-01〜05の既存17原本・共通caller・中央/子SHA・replay拒否に加え、R06-06-03のA/C/D PASS。保護main固定・真のApp identity・17 local originalを再照合。親R04/R05の実依存が未達なら親R06も未受入。
R07-01 新要求契約の1拡張pilotを本物のoriginal Windows PG14〜18・required Summary、中央cycle/local receipt、最新HEAD保護merge/postmerge、SHA256とreplay拒否で受入。旧pilotは同一契約でない限り流用不可。
R07-02 残3拡張を同じ新要求契約・必須CI・保護merge・original postmergeで順次受入。既存の成功を単に再実行しない。
R07-03 / 親R07 他13拡張も新契約に移行、合計17/17 distinct original local Run/ZIP実SHA256、exact main、同一中央cycle、独立replay拒否。R07-01/02/03がPASSした後に親PASS。
R08-01 新方式の正当OIDC発行元・workflow SHA・request/Run/commitとの原本署名結合と、別々の独立Sigstore監査2系統で実バイト一致・不正署名DENY。legacy署名の成功だけで新方式PASSにしない。
R08-02 / 親R08 Publisher admissionは実App/actorを分離し、不正候補/未承認scope/PG14〜18欠落/SPDX/Grype不備/replay/曖昧な公開writeをfail-closed。非公開状態ではPUBLISH_DENY、公開POSTしない。署名とPublisher両子PASS後に親PASS。Releaseは別の正式認可条件を守る。
R09-01 承認前の非公開連結として、同一証拠キーを持つCatalog提案→最新HEAD必須CI/保護PR→CLI/feed→EN/JAを検証し、未公開を実公開と称さない。
R09-02 / 親R09 将来の適格な新stableかつ全Publisher/公開認可条件成立後のみ実Release E2E:公開実バイト・SHA256/署名/Attestation・Catalog・CLI/feed・EN/JAの独立照合。条件未成立ならR09-02はPENDINGで親R09を完了扱いしない。未認可公開で試験しない。
R10-01 v2.1のB/C/Dと、期限切れ・改ざん・多重要求・子失敗/skip/timeout・署名/PG/SBOM不備・権限失効・公開書込不明の再現可能な負例をfail-closed判定。自然障害の観測は不要。
R10-02 / 親R10 正常NO_UPDATE/失敗/隔離/承認待ちの全対象終端と理由・run/attempt・artifact SHA・CAS blob/revision・再開地点を永続集約し、別Runner認証済みGETで再読取。GitHub全面障害中の通知成功は保証せず、復旧時に再照合可能な原本を残す。R10-01/02両PASSで親PASS。
R11-01 先に代替の対象workflowの非公開正常・失敗経路を受入後、build/17repo/catalog/websiteの移行対象schedule依存を保護PRで廃止。CIのpush/PR triggerを削除しない。各対象のschedule残存/依存ゼロをGET照合。
R11-02 / 親R11 旧in-progress/queued runとの二重Writer拒否、失効・有限再開、運用手順を実原本で確認。新cron・外部常駐・ChatGPT定期タスクを増やさない。R11-01/02両PASSで親PASS。
R12-01 #75の旧X/A/D/E/F公開ゲートと新版のrequest/署名/Publisher/Catalog契約を対応付け、未成立項目を明示し、対応するドキュメント変更を保護マージ。
R12-02 / 親R12 1回のChat指示から17対象非公開処理の実終端まで、実行者入力例・承認範囲・限界・成果・再開方法を証拠付きで説明。R12-01/02 PASSかつR07〜11の前提成立後に親PASS。#75は全公開ゲート成立前に閉じない。

3. 受入記録の書式と不可逆ゲート

各 [ ]→[x] の変更時、#311に以下を必ず1件の監査可能な記録として残し、親#75に要約する。

Acceptance: <R枝番>  Result: PASS | LIMITED_PASS | FAIL | PENDING
Criteria: <v2.1のA/B/C/Dまたは親のゲート>
Scope: <repo数、requestId、normal/fault-injected、非公開/実公開>
Original: <runId/attempt/workflow path/main SHA/actor/日時>
Bytes: <artifactId/実ZIP SHA256/provider digest(別記)>
State: <branch/path/blob SHA/revision/terminal/17 target statuses/キーなし別reader>
Safety: <replay DENY、token revoke401、PUBLISH_DENY、権限/期限/公開可否>
PR/CI: <最新HEAD/required CI/negative CI/merge SHA/original postmerge>
Excluded: <自然障害未観測、offline限定、未認可公開など証明しない事項>
Next: <未成立依存または次の枝番>

チェック更新の条件: 上の原本への実リンク・認証済み照合が揃うまで [ ] のまま。実験成功やCI成功だけでAまたは公開E2EをPASSにしない。過去の失敗・SKIPPED・中間CIの履歴、旧版受入契約、既存正当なZIP/Stateは上書きしない。独立第三者レビューを新たに必須化しないが、既存のbranch protection・required CI・認可条件は厳守する。元の公開権限とは異なる非公開PREPARE証明をPublisher/Release認可へ昇格させない。全面GitHub障害、認可欠落、未解決公開POSTの応答不明時は安全停止+復旧地点を報告し、成功を断言しない。

実行タスク

  • R01 最新状態・全依存の棚卸し(Chat、最初)
    [P0][PUBLISH PATH] Chat更新・適格な正式Release→Catalog/Website連結(既存安全ゲート維持) #75/#311と最新コメント、build/17拡張/catalog/websiteのWorkflow、script/schema/policy/test/docs、既存PR、実行中run、App・必須CIの取得可能な証拠を認証済みGET。
    完了: immutable SHA/ファイル/旧cron・schedule条件/新入口/既存成功証跡/変更要否の移行表。canary、native recovery、PostgreSQL watch、feed、Website smoke等も網羅し、#112との担当境界を明記。管理権限でしか読めない項目はUNKNOWN。

  • R02 起動経路の非公開実証(R01)
    通常Chatの既存接続で可能な専用要求ファイルPR→最新head必須CI→保護merge→push入口を第一候補にする。直接dispatchは本当に利用可能で安全境界を満たす場合のみ代替。Issue/commentを公開の万能特権コマンド入口にしない。
    完了: 本物の接続操作から実Workflowが起動した非公開receipt、実actor/App、PR/merge/head/run/attemptの照合、イベント抑止の実測。単に「動くはず」で先へ進まない。保護mergeの検証方法が不明ならPASSにしない。署名機能/新資格情報の存在を仮定しない。

  • R03 版付き要求・承認・証拠契約のADR(R01,R02)
    requestId、要求者、承認範囲、mode、対象allowlist、各固定SHA、失効/期限、最大実行量、resume、実GitHub actor/Appと来歴を定義。Chatによる人間の事前承認操作を、各回の人間手動実行とは偽装しない。eventは実値を記録。user入力だけでactorやsourceKindを信用しない。
    完了: 旧schedule依存の受付を単にeventのOR条件で広げず、別の認証済みrequest経路として契約化。原本ZIP由来種別と起動由来を分離。既存human-only merge/Publisher条件との対応、必要なポリシー変更、新規App/権限が必要かを明記。未承認の権限拡張や既存Appの転用は禁止。

  • R04 永続状態・重複防止・再開の実装(R03) — v2.1親ゲートPASS:既存R04-01/02の17-target App CAS・lease・競合・不確定応答・有限復旧の実原本と新正常App CAS/独立readbackを照合。監査証跡 #6521649490。公開POST境界はR08の別ゲート。
    request/対象/工程別state、入力hash、run/attempt、artifact ID/digest、結果、処理済み鍵を永続化。CAS/lease/競合制御、同一要求の多重イベント、同じ候補を選ぶ別要求の競合を制御する。Issue本文やartifactの改変可能な自己申告だけを信頼根にしない。
    完了: 並行起動/途中停止/再開で成功済みbuild・署名・Releaseを再実行しない。公開POST応答不明は一意な照合またはQUARANTINED。リース期限切れが公開writeの無条件retryを許可しない。状態保存に必要な権限と信頼範囲が明確。

  • R05 完了イベントで進むCoordinator(R02〜R04) — v2.1親ゲートPASS:R05-01/02既存有限異常終端・R05-03新真正中央→17 App子→自動State terminalと本物の2段workflow_run境界。原本 #6521649490。
    needs/workflow_call、push、workflow_run等を適切に組み合わせ、中央scan成功の原本receipt検証後だけ次工程を起動。17repoは有界並列とし、待機/timeout/429/5xx/失敗を有限に処理。GITHUB_TOKENのイベント抑止とworkflow_run多段連鎖制限を実証し、長いworkflow_run鎖やユーザーの再度のChatを正常経路に要求しない。既存の権限で不可能なら必要最小限の変更を具体化し、無断導入しない。
    完了: 少なくとも2段以上の実非公開連鎖と最終集約が、最初の1指示以降無操作で成立。信頼されたmain側制御と未信頼PR成果物を分離。子失敗/skipでも安全に最終集約する。runnerの最大時間/停止後にも状態を失わず、イベント欠落時の検出・終端化経路を定義。cronや常駐Chatを隠れた依存にしない。

  • R06 中央scanとローカルpreflightの移行(R03〜R05) — v2.1親ゲートPASS:R06-01〜05の17実原本/SHA/replay限定既存証拠とR06-06-03の新真正17 App ZIP/CAS/readback、親R04/R05充足を照合。原本 #6521649490。
    fleet-upstream-watch.yml、operator-update-auto.yml、verify-scheduled-fleet-candidate.py等を新要求契約に対応。最新mainを取得してscan原本と17対象のSHAを結合。現在の鮮度制限は維持し、期限切れ時は古いscanを許可せず必要な新scanを別の証拠として作成する。入力が変わらない成功工程の無意味な再実行は禁止。
    完了: 中央原本ZIP実SHA256→ローカルexact main→同一request/cycleの非公開receiptを独立検証。metadata-only、GET replayを原本とする置換、古い/部分/失敗scanはDENY。共通コードpinはimmutable。

  • R07 1拡張pilot→17拡張展開(R06) — 新v2.1同一中央cycleに結び付く17/17の真正App子原本+全17 SHA固定保護merge/postmerge Windows PG14〜18/必須Summary原本・独立CAS/replay DENY。過去Windows原本はSHA一致の範囲でのみ再利用。証跡。
    最新状態で対象を決め、旧未完了orafceを第一候補に非公開pilot。次に旧残り3件、既存13件を保護PRで段階移行。同じWorkflow内の候補作成・再署名を不用意に走らせない。必要な変更CIと新方式の初回検証は、過去成功の調査目的rerunとは区別する。
    完了: 新方式17/17の原本receipt、local run/attempt/protected main、中央紐付け、実SHA256、独立replay DENYと各保護PR/必須CI/postmerge。旧13/17を新17/17へ流用しない。

  • R08 署名・独立二重監査・Publisherの移行(R08-01/R08-02 v2.1非公開PASS、根拠 #6525877146 / #6526531530。Release認可はR09-02で別途確認)
    requalify-merged-candidate-signed.yml、署名intent、dual audit/join、publisher-candidate-intake.yml、admission、receipt issuer、write boundary、17 local opt-inのschedule前提を全て見直す。OIDC/Sigstore証明の実event/workflow SHA/issuer/対象とoriginal bytesを再結合する。
    完了: 正当な新方式の署名非公開proofと独立2監査PASS。要求が認証済みでも候補不正ならDENY、no-candidate/AUDIT_ONLYではWriter起動不可。既存create-only、PG全行、SPDX/Grype、分離されたPublisher資格情報、同一live token revoke/401の契約を維持。人間merge限定とbot mergeを勝手に等価扱いしない。実公開ゲート成立前はPUBLISH_DENY。

  • R09 Catalog・CLI/feed・Websiteまで連結(R05,R08)
    実公開済みの同一新Releaseの原本を検証してからCatalog限定PR/最新head必須CI/保護merge→feed/CLI→EN・JA確認へ進む。既存自動mergeが使えると仮定せず、App/actor/権限を実証。未公開候補で実公開E2Eを装わない。
    完了: 1要求から追加Chat/手動dispatchなしで後続工程が進む非公開機能検証。実ReleaseのE2Eは適格な将来の新stable時だけ実施。旧HypoPG等の未受入Releaseを移行を理由に受入/再発行しない。

  • R10 否定・障害・回復・最終報告の受入(R04〜R09)
    偽要求/許可外repo・ref・actor・App、期限切れ、replay、多重要求、改ざんZIP/署名/SBOM、欠落PG行、中央失敗、子失敗/skip、停止/timeout、イベント欠落、429/5xx、dispatch/公開応答不明、権限失効を試験。
    完了: 自動復旧可能な一時障害は有限retry、その他はFAILED/BLOCKED_APPROVAL/QUARANTINEDで理由・最後の証跡・再開地点を確定。成功とNO_UPDATEもIssueへrequestId付きで集約。Writerを無条件retryしない。大規模障害で最終通知不能の場合に備え、復旧後に照合できる原本と状態を残し、無条件の完了保証を主張しない。

  • R11 cron廃止と補助処理の扱い(R07〜R10)
    build/17拡張/catalog/websiteの対象on.schedule、metadataのscheduleUtc/releasePolicy表現、ドキュメントを保護PRで整合。代替受入前の一括停止はしない。既存queued/in-progress旧runと二重Writerを制御。
    canary/定期監査は、その要求に必要な工程として組み込み、将来の定期監視は本方式の対象外と明記。監視を残すために密かにcronを復活させない。既存push/PR CIを消さない。
    完了: 対象全repoでGitHub cron・ChatGPT定期タスク・外部cronの依存ゼロ。停止/一要求の再開/失効/回復手順を実証。未承認の新App/Secret/課金・権限拡張なし。

  • R12 #75受入契約と利用手順の更新(R07〜R11)
    旧A02/A03/A04、X02、署名/Publisher/Catalogのschedule条件を新版要求契約の証拠へ対応付け、保護変更。旧13/17・旧未成立4件の歴史を保全。X03〜X05は対応する新17/17等が成立後、D/E/Fは全公開ゲート成立後のみ。
    完了: 一度のChat指示から、非公開17対象の処理がSUCCESS/NO_UPDATE/明確な停止の終端に至る実原本証跡。対話Chatを開き続けなくても正常継続する。実公開E2E未成立なら別途pending、#75は全受入前にcloseしない。指示例・承認範囲・最終結果・再開方法を記載。

旧実行案(履歴:現行の次工程は末尾v2.2)

R01〜R03受入済み(根拠: #6473821604)。R04のChat接続CAS/leaseサブ証明とR05の17repo非公開GET/終端サブ証明(#6475528265)を再利用し、まずActions側の承認済み永続Writer/lease・cross-run回復、および既存権限内のWindows連携を実証する。R04/R05の全体は未受入、R06〜R12は前提成立後に安全に進む。成功工程は再実行しない。
通常Chatは調査/実装/保護PR/最新head CI/安全なmerge/postmerge/証跡更新を自律継続。GUI限定の設定が本当に必要な場合のみ、対象URL・操作・禁止事項・検証・完成条件を絞ったWork引継ぎを作る。未実装機能や利用不能なconnector操作を利用可能と断定しない。

引き継ぎプロンプト

pgextwin/build #311(本本文R01〜R12を正本)と親#75を認証済みGitHub GETから自律継続。確定方針は「Chatから1回の限定要求→GitHub Actionsの完了イベントと永続状態で終端まで自動継続」。GitHub cron・ChatGPT定期タスク・外部cronは不要、毎時T計画と補助cron案は撤回済み。R01の現状/依存棚卸しとR02の保護要求PR→merge→pushによる最小非公開実起動証明から着手し、R03の認証/承認/証拠契約、R04/R05の永続状態/Coordinatorへ進む。実主体、イベント抑止、workflow_run多段制限、actor/App、保護・最新head必須CIを実証し、入口操作だけで公開を許可しない。旧X01/X02保護merge/postmerge、13/17 receiptとFleet40688819922原本SHA256は再利用・歴史保全。旧残り4 schedule待ちは着手条件にせず、新方式17/17を別途証明。原本ZIP実SHA256・Sigstore/OIDC・PG全行・SPDX/Grype・replay DENY・create-only・同一live token revoke/401・PUBLISH_DENYを維持。成功工程調査rerun、偽schedule、無断のactor/権限拡張、既存Release再発行は禁止。移行自体は実Release指示ではない。対象と承認範囲を固定し、追加ChatなしでSUCCESS/NO_UPDATEまたは明確な安全停止まで集約。X03〜X05は新版の対応前提成立後、D/E/Fは全公開ゲート成立後のみ。必要な保護PR/CI/安全なmerge/postmergeまで可能な範囲で完遂し、原本証跡を両Issueへ記録、末尾に短縮引継ぎを出力。

子タスク枝番台帳(R系統・正本)

2026-10-29 JST 追加。既存の R01〜R12親タスク・依存関係・安全ゲート・チェック状態は変更しない。以後、作業単位には R06-01、孫タスクには R06-02-01 のような不変枝番を付ける。枝番はissue番号/PR番号と独立し、項目削除・番号再利用・完了偽装をしない。細目が増えた場合は次の未使用番号を付与し、変更が必要なら変更履歴をコメントする。親は子の必要条件がすべて成立した後にのみ [x] とする。

判定: [x]=原本で受入済、[ ]=未受入(部分的な成功やPRマージだけでチェックしない)。枝番台帳は本Issue本文の実行チェックリストに従属し、旧M/T/X scheduleを復活させない。

R04 永続状態

  • R04-01 認可済みActions Writer/Appと永続CAS・lease・複数要求競合・別Runner復旧の既存実証を再利用(履歴証跡は本Issueコメント参照)

  • R04-02 17-target App stateの停止・期限切れ・曖昧PUTを、独立した実原本/有限CAS永続終端で限定受入(R04-02-01〜05各[x])。この受入は公開Writerの曖昧Release POSTを許可・証明しない;全体R04およびPublisher/write boundaryの安全ゲートは別途維持。

    • R04-02-01 期限切れ17-target失敗原本 r-20261029-r05unified17a01 のApp CAS終端化:PR#376/377保護マージ・required/postmerge SUCCESS。実push Run40857417779 attempt1 SUCCESS; Artifact12889149014 actual ZIP SHA256 1ca4eaf10c0bcb05517c8aecc5b63f6346d66a751451fbc550475f8478e5161f; 専用App state blob 7bbe2fcc579bafa6501494fc44f3f75e4c69cb5d revision2、17/17 QUARANTINED、publisher=false。原本ZIP/状態bytes/strict same-token revoke401 gate独立照合PASS。元Run40807366784 failure attempt1、成功a02 blob d2d52d28は不変。これは明示的回復のsubproofで、自然イベント欠落/全障害の自動復旧完了ではない。
  • R04-02-02 認証済み原本の非成功Run結論(failure/cancelled/timed_out/skipped/neutral/stale/action_required/startup_failure)を期限切れ・17対象固定のQUARANTINEDに限定するコード/負例CIサブ証明:PR#378 HEAD 9a34bdd18c2282c228e5693faa763cc8b78c45a1、required App15368 resolver Run40859824340 SUCCESS、保護マージmain eb1b8248976c7e8e30b288d867b8078edf35f450、original push postmerge Run40859958729 attempt1 SUCCESS。original successful run/状態は未変更。skipped/timeoutの新しい実Run・App CAS終端の受入ではない。

  • R04-02-03 新しい実original要求を用いた17対象のskip/timeout/欠落/制御した曖昧PUT、有限App CAS永続終端・原本再読取・成功state不変の限定受入。独立原本:制御event欠落 R05-02-01(source40864238327/watchdog40864238556、FAILED17)、実GitHub SKIPPED R05-02-02(source40865462445/watchdog40865462429、QUARANTINED17)、実Actions timeout R05-02-03-01(source40871823120/watchdog40871823091、QUARANTINED17)、制御した本物のApp PUT ACK喪失 R04-02-05(source40870127973/watchdog40870127972、sourceの RECONCILED_BY_ORIGINAL_GET、FAILED17)。すべてrequest-only保護マージ、latest-head必須CI、同一original source一度限り、17対象・original ZIP/SHA256・App state blob/revision確認、publication=false、cronなし。歴史a01 blob7bbe2fcc…/a02 blobd2d52d28…不変。制御した障害試験でありGitHub自然のイベント欠落/HTTP429・503実障害や公開POSTの実証ではない。

  • R04-02-04 App CASのHTTP成功応答欠落/破損/不一致を原本GETバイト照合のみで確定・拒否するコード/負例CIサブ証明:build PR#380 HEAD bb418ad、required App15368 resolver Run40862824892 SUCCESS、期待HEAD保護マージ main 936048a、original push postmerge Run40863067693 attempt1 resolver SUCCESS。17対象期限切れQUARANTINED状態の曖昧200レスポンス/不正SHA/応答喪失をoffline確認。実App曖昧PUT輸送障害の新規originalではない。

  • R04-02-05 本物の専用App CAS PUT後の応答だけを制御喪失→原本GETにより17対象stateを無再送で一致確定する限定実受入。コードPR#385 HEADef497473、required App15368 resolver40866005759 SUCCESS→保護マージmain78fd800a5e7d94bd52202ecd8ff04f66e42ffae5→original postmerge40866264150 attempt1 resolver SUCCESS。期限切れ未マージPR#386を安全更新(旧HEAD/旧期限で実行せず)し、新HEAD 528123a615b2feb985448683a97b8d49d89aa11d required App15368 resolver40869969167 SUCCESS→期待HEAD保護マージmain c5a4fcb8080c69be70fc5baab3f20ff03ca990d9→postmerge40870127940 attempt1 SUCCESS。真のpush元source Run40870127973 attempt1 SUCCESS、17/17 remote protected exact-main GET、original ZIP Artifact12896016117実バイト独立SHA256 d6c10f008690d53991d19bbfeac94cf7878642ee3ab3d42d0c6d3ec072925563、request raw SHA256 377ca17b04079d3b306228794c7c2be02b03521a260d6dfb58d19e00f2597d12、実source receiptの2件のApp PUT persistence ORIGINAL_GET_VERIFIED→RECONCILED_BY_ORIGINAL_GET。元source再実行・2回目PUT再送なし。独立push watchdog Run40870127972 attempt1 SUCCESS、観測original ZIP Artifact12895832385独立SHA256 5f529e419cb120e2d1e2300e10ba16a46e119fdfa3a969c145b546fceb97a770、原本のdeadline 2026-10-29T12:10:46Z・sourceCompleted=true・bridgeCount0・MISSING_VERIFIED。専用App CAS original state rev2 Git blob 36110e2b148f211a0ff94c38fd318b224b730b82、17/17 FAILED・BOUNDED_WATCHDOG、publisher=false、writeOutcomeUnknown=false;実watchdog log R05_WATCHDOG_DURABLE FAILED ORIGINAL_GET_VERIFIED。既存a01/a02 state blobs不変。制御したACK応答欠落でありGitHubの自然なネットワーク障害の発生証明ではない。R04-02-03と親R04全体は実timeout等の未受入条件が残る。

R05 イベントCoordinator

  • R05-01 実Windows/17対象イベント連鎖と有限watchdogの既存部分実証を再利用

  • R05-02 17対象の欠落・実skip・実timeout・期限切れ・実17-source後のHTTP429/503制御faultを、cronなし/無制限retryなしの有限独立watchdog+App CAS終端で限定受入(R05-02-01/02/03と孫-01/02/03全[x])。自然なGitHub provider 429/503や配送障害は未観測のため、全体R05/R06の統合受入や万能な終端保証を意味しない。

    • R05-02-01 制御されたworkflow_run受信先不在・実17対象の有限自動終端を原本受入。code PR#381 HEAD1b0a5092、required App15368 resolver40863716781 SUCCESS→保護マージ5e924d16→original postmerge40863860437 SUCCESS。要求のみPR#382 HEAD504b4c62、required resolver40864073916 SUCCESS→保護マージfa83254fbc47736da14d959cc0d170a875c6f799→original source Run40864238327 attempt1 SUCCESS、実17 protected-main GET。独立実ZIP Artifact12893455362 SHA256 f2dbaafd1803a4536e134d99e60d9fd79d83daeb581997d2e53eed3b87a62d3b/元request raw SHA256 872ca8f731ba62382dcf38eb992f0ab7233362fad9f74b3619d755741934bfd8。独立main-push watchdog Run40864238556 attempt1 SUCCESS、原本Artifact12892574691 SHA256 3495d0dcb6e25c9fd96bd2d6f4c55af3597583953c177072169a6afd8039357b、原本の完了source=true・下流bridgeCount=0・MISSING_VERIFIED・期限2026-10-29T11:24:55Z。専用App CAS original readback State revision2、blob 4fe65fdb0eae89704e652189b34cec5124eab111、17/17 FAILED、BOUNDED_WATCHDOG、publisher=false、writeOutcomeUnknown=false。watchdog原本log R05_WATCHDOG_DURABLE FAILED ORIGINAL_GET_VERIFIED、token revoke/401 step SUCCESS。成功a02/旧失敗a01 blob不変。これは意図的にsubscriberを置かなかった制御試験のPASSであり自然のGitHubイベント消失ではない。R05-02親はskip/timeoutなど残により [ ]。

    • R05-02-02 実GitHub Actions SKIPPED子ジョブと17対象finite watchdog/App CAS QUARANTINEDの原本受入。code PR#383 HEAD1d6b6bdc App15368 resolver40864859520 SUCCESS→保護マージmain1fe07af1ee2fb89df3be8fd83726e8909f6fbff9→original postmerge40865010681 SUCCESS。新規要求のみPR#384 HEADfaa86a4b required resolver40865285654 SUCCESS→保護マージ3943938a6ce5722b5ab6656119aca492860320df。genuine original source Run40865462445 attempt1 overall SUCCESS、実元ジョブ2件 SUCCESS + SKIPPED (job123418994347 / 123419214269)、17/17 protected-main GET、original Artifact12892694040 独立ZIP SHA256 2fdbaadd26e37e1a90bb736a0badfd05d74bb2cbfc6203d8f5bb8421762cb18a、request raw SHA256 33c7375f33b9b2b099d3a477d56c6a8721151c253e7df55e64b75df541b7dceb。original watchdog Run40865462429 attempt1 SUCCESS、Artifact12894240907 独立ZIP SHA256 63fe418b1bc83552c327b72a6a8b6035d7e4f6de4dc071c435c1a9bc34adcb44、期限2026-10-29T11:32:13Z、完了source=false(SKIPPEDを成功とみなさない)/bridgeCount0。専用App original state GET revision2 Git blob 9e93d9d93794fb4046f93116a50fd51cac4603b7、17/17 QUARANTINED、eventTransport BOUNDED_WATCHDOG、publisher=false、writeOutcomeUnknown=false。原本log R05_WATCHDOG_DURABLE QUARANTINED ORIGINAL_GET_VERIFIED と STATE_WRITER_REVOKE_401_BOUNDED_OBSERVED 2。過去a01/a02成功/失敗blob不変。これは本物の子Job skipを含む制御負例であり自然のGithub全体障害を再現していない。R05親は実timeout/429/5xx等未完了。

    • R05-02-03 実Actions timeout+認証済み17-sourceの後続REST429/503制御faultによる有限終端を、実App CAS/原本ZIPで限定受入(子-01〜03全[x])。429/503はsynthetic fault injectionであり自然なprovider障害を再現したとは主張しない。

    • R05-02-03-01 実GitHub Actions子ジョブtimeout/CANCELLED→原本ZIP検証→独立finite watchdog→17/17 QUARANTINED App CAS受入。コードPR#387 HEADcb06ef3c、required App15368 resolver40870888082 SUCCESS→保護マージ9365f097→postmerge40871063084 SUCCESS。要求のみPR#388 HEADef7fd601、required resolver40871654291 SUCCESS→期待HEAD保護マージ 258b46d3861d7991b145b1ea21d2a8971c0e9548→postmerge40871823105 SUCCESS。source Run40871823120 attempt1 conclusion CANCELLED:元ジョブ123440519257 SUCCESS、子123440701171 CANCELLED(実時刻12:16:16〜12:17:46 UTC、90秒、指定timeout-minutes:1)。元Artifact12896456656 独立取得実ZIP SHA256 29cd6f34aaf35a2244ba32378889c601fc623f20ecf75d46df6473dcdb3ba63b、17/17 protected SHA・original raw request SHA256 319150271a17c9869d0893c161210cfd7d091471ab10ae137c1f58163a31846b。独立watchdog Run40871823091 attempt1 SUCCESS、Artifact12896064432 ZIP SHA256 8ba7d8e047a11e26f5c9f58c7ba4656a89117889ff83a3506451075468e5f85b、deadline2026-10-29T12:23:11Z、sourceCompleted=false、MISSING_VERIFIED/bridge0、log R05_WATCHDOG_DURABLE QUARANTINED ORIGINAL_GET_VERIFIED。専用App state Git blob 8e913dfd528e07fee02c98b4be43ebbb3476c44b rev2 17/17 QUARANTINED、publisher=false・writeOutcomeUnknown=false;a01/a02不変。natural GitHub provider timeoutではなく本物の制御Actions job timeoutの証明。

    • R05-02-03-02 HTTP429/503時のUNKNOWN→17 QUARANTINEDをoffline負例CIのみ受入。PR#389 HEAD1c15d8ec App15368 required resolver40872475808 SUCCESS、保護マージmain05327e9448bf96b57ab06d629e7b616b87c47a21、original postmerge40872684836 SUCCESS。GitHub 429/503自然障害/実Appの新規失敗Runの証明ではない。

    • R05-02-03-03 本物の17対象source+原本ZIP照合後にだけ後続RESTの429/503を制御注入し、期限到達時17/17 QUARANTINEDをApp CASへ永続受入(自然のGitHub provider HTTP 429/503発生ではない)。コードPR#390 HEAD858d8df1、App15368 required resolver40873003852 SUCCESS→保護マージmain16045df2e3f30f20db2a51d8c589b5c8ff313e5a→original postmerge40873232010 SUCCESS。要求のみPR#391 HEAD51abd043、required resolver40873517904 SUCCESS→期待HEAD保護マージmain ec25556b0267413a474f36c98275f94839659774→original postmerge40873687943 SUCCESS。真のmain-push source Run40873687917 attempt1 SUCCESS、全17 remote protected GET、original Artifact12897316766 実ZIP SHA256 fb9824dbacbde739b1518c398f5485eaf5ab4da2e3df482ed1d2c41cfa0c2171、request raw SHA256 9d5951de1218dfb63eddc1e94eaaa4acecad6e389f703496c6c414d46870dd05、original App state revision1 source-bound後にだけwatchdog Run40873687930 attempt1でCONTROLLED_POST_AUTH_REST_FAULT_INJECTION 429と503を原本ログ記録。期限2026-10-29T12:36:52ZにUNKNOWN/sourceCompleted=null、watchdog Artifact12897597370 元ZIP SHA256 63b784f58135104b6c0003c8ddeb53114c78a83407ccdf47ff757abea4b90d33。専用build-only App CAS original GET Git blob fca8ccc523464a0642e21a11f4b9d79b0b626c4c rev2、17/17 QUARANTINED、BOUNDED_WATCHDOG、publication=false、writeOutcomeUnknown=false;原本log R05_WATCHDOG_DURABLE QUARANTINED ORIGINAL_GET_VERIFIED。元successful a02/failed a01 Git blobs不変、同じoriginal successful Run rerunなし。429/503は実GitHub API応答ではなく、認証済み原本取得後のread-only境界に注入した例外。

  • R05-03 v2.1 A/B/D PASS:新規1回の認証済み保護要求PR#453→required CI→merge→真正中央41048039208→専用App 17子/17 ZIP実SHA256検証41048135275→自動State CAS/別Runner鍵なしreadback41048436029→独立有限watchdog41048039041(17/17 NO_UPDATE、revision2/blob b8fbc509fd2db8d1f64cc52e4c8f0cb9e4b94167)。B/D既存制御SKIPPED/timeout/consumer欠落/期限/偽actor/旧ZIP/replay DENYを照合。完全な原本と除外範囲は監査 #6521649490。旧時点の記載(手動17 PR依存)は歴史証跡: 既存R05要件の未完部分:中央要求完了から17repoの実ローカル処理をGitHub側だけで起動・集約・終端する無人Coordinator。現状はChat作成の17要求PRと別集約要求に依存。build専用state App/Publisher/Catalogを転用しない。R06-06-01の棚卸し、-02の専用起動主体承認と実identity、-03の実新actor/event・17子・有限復旧を照合して受入する。新たな公開許可や追加第三者レビュー条件ではない。

R06 新PREPAREと17ローカルreceipt

  • R06-01 17/17共通ローカルPREPARE検証器の初期保護PR・原本postmerge受入(新要求/receipt受入ではない)
  • R06-02 17/17固定caller SHA=ff551bd2ea20da869e644691090b5ee7c82553ba の最新HEAD必須CI・保護マージ・原本postmerge受入。下記17個の孫タスクをすべてPASSで完了
    • R06-02-01 orafce PR#45:MERGED; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40844537993, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
    • R06-02-02 pg_bigm PR#62:MERGED; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40845831293, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
    • R06-02-03 pg_cron PR#57:MERGED; PR required PG14〜18+Summary+nonpublishing policy SUCCESS; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40850379189, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
    • R06-02-04 pg_hint_plan PR#57:MERGED; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40845840722, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
    • R06-02-05 pgaudit PR#53:MERGED; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40845850408, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
    • R06-02-06 set_user PR#53:MERGED; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40846149957, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
    • R06-02-07 pg_repack PR#53:MERGED; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40845860799, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
    • R06-02-08 pg_ivm PR#59:MERGED; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40846065929, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
    • R06-02-09 pg_qualstats PR#56:MERGED; PR required PG14〜18+Summary+nonpublishing policy SUCCESS; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40850388517, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
    • R06-02-10 plpgsql_check PR#87:MERGED; PR required PG14〜18+Summary+nonpublishing policy SUCCESS; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40850401523, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
    • R06-02-11 hypopg PR#50:MERGED; PR required PG14〜18+Summary+nonpublishing policy SUCCESS; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40850411849, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
    • R06-02-12 wal2json PR#44:MERGED; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40846164762, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
    • R06-02-13 pg_partman PR#48:MERGED; PR required PG14〜18+Summary+nonpublishing policy SUCCESS; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40850422229, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
    • R06-02-14 pg_stat_monitor PR#41:MERGED; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40846075938, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
    • R06-02-15 pgtap PR#60:MERGED; PR required PG14〜18+Summary+nonpublishing policy SUCCESS; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40850432207, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
    • R06-02-16 pg_variables PR#54:MERGED; PR required PG14〜18+Summary+nonpublishing policy SUCCESS; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40850441772, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
    • R06-02-17 pg_store_plans PR#55:MERGED; PR required PG14〜18+Summary+nonpublishing policy SUCCESS; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40850452717, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
  • R06-03 17 protected main固定の新しい中央PREPARE原本Run/Artifact ZIPと独立SHA256検証(旧SUCCESSの再実行はしない) — Run40852118886 attempt1 push SUCCESS; Artifact12886559374; SHA256 b81a14c98b7fcc403970b7bde40028799a99938bef595a8ea1400154b35e5262; ZIP独立実バイト検証・17/17 exact protected main・SCANNED/NO_UPDATE PASS(2026-10-29)
  • R06-04 17件の実ローカルrequestId/source-kind/receipt ZIP/中央紐付け/各SHA256を受入 — 17/17 original local receipt ZIP実SHA256/中央紐付け/NO_UPDATE、独立offline replay DENY、期待HEAD保護マージとoriginal postmerge PG14〜18/required Summary PASS(2026-10-29)。
    • R06-04-01 orafce PR#46:MERGED; original local Run40853307036/Artifact12888845517, actual ZIP SHA256 05393e7d4ca40b94934e76a0a71ccf56c1b933be2679711e72b299c667ad5305, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40853307952 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
    • R06-04-02 pg_bigm PR#63:MERGED; original local Run40854618563/Artifact12887374773, actual ZIP SHA256 268909e0b914219f250a804891cc92f9268be2e6bbaac3f7c73f61b2d9a97b00, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40854619098 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
    • R06-04-03 pg_cron PR#58:MERGED; original local Run40854626698/Artifact12888223120, actual ZIP SHA256 82caa21bac1fd12ed44e7468da5231d587201410f2017a5b0f486f18f9947114, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40854627110 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
    • R06-04-04 pg_hint_plan PR#58:MERGED; original local Run40854637934/Artifact12888159757, actual ZIP SHA256 268f6395560bf8b80f2da158d3d1edfd739ef4689a1119f6d03ca3116d147bc7, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40854638371 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
    • R06-04-05 pgaudit PR#54:MERGED; original local Run40854645855/Artifact12889216202, actual ZIP SHA256 27750a9ef768e1d6f11de8df229119db0336e08e82848c8e0c1fc4b36b9680fb, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40854646638 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
    • R06-04-06 set_user PR#54:MERGED; original local Run40855984718/Artifact12889151935, actual ZIP SHA256 d865d28dce2b2595276d741e4f04831aa934e4bb90c9d1fdcbcae67c4c74d509, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40855985201 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
    • R06-04-07 pg_repack PR#54:MERGED; original local Run40855509781/Artifact12888798377, actual ZIP SHA256 938747a26ce6d9b1c4cd041f160292f96c669ba50ce245780951e90ce0266945, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40855510195 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
    • R06-04-08 pg_ivm PR#60:MERGED; original local Run40856624189/Artifact12889494437, actual ZIP SHA256 7bd73059ab0c32412d70a1353bd0f30f4ab6d7802c8ca50730d8c20e27a8e67f, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40856624565 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
    • R06-04-09 pg_qualstats PR#57:MERGED; original local Run40854812315/Artifact12889510344, actual ZIP SHA256 5271a01202694dc1a374e6f0526c38dc9831acddbdd7ddf27aebb0d69a700e14, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40854813080 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
    • R06-04-10 plpgsql_check PR#88:MERGED; original local Run40854823238/Artifact12889230848, actual ZIP SHA256 ebd24c28c57d0c92b1681373f045424ec6f37e3ef84e0c83326d585bcc1cf2f9, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40854823760 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
    • R06-04-11 hypopg PR#51:MERGED; original local Run40854834223/Artifact12889051752, actual ZIP SHA256 07ec7f3d66ecb6682fbed60f8d8fb7d8b3dd32a147f5c56204b6dff843a6d931, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40854835036 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
    • R06-04-12 wal2json PR#45:MERGED; original local Run40854961778/Artifact12888513836, actual ZIP SHA256 e766ba33d3adb158b1653062d239e46be24e66206277184cdf93aa574a7c98cd, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40854962578 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
    • R06-04-13 pg_partman PR#49:MERGED; original local Run40855694918/Artifact12888814184, actual ZIP SHA256 030f0150d6c8d47e9fe97165c8e95fd15c3eb48b02bbc1f2105d3ddc52150c6a, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40855695309 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
    • R06-04-14 pg_stat_monitor PR#42:MERGED; original local Run40856220934/Artifact12889266715, actual ZIP SHA256 fea718c53ae96d3532080756fe5857645a1069716c3db2de402ff73ffd41aeee, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40856222002 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
    • R06-04-15 pgtap PR#61:MERGED; original local Run40856234746/Artifact12890240759, actual ZIP SHA256 2c4893cac86816c24bd41576e43f95d3688d19efbcb692741b51beb79b6f4be8, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40856235304 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
    • R06-04-16 pg_variables PR#55:MERGED; original local Run40855522031/Artifact12888688475, actual ZIP SHA256 3a4030ca9b15f283ccd490fb51cad58e911a58c8d6866cf2c64c3f62bce22a3f, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40855522576 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
    • R06-04-17 pg_store_plans PR#56:MERGED; original local Run40855996875/Artifact12889182408, actual ZIP SHA256 ce3f5dd109cbafc9b2a1eb7815698c5fdeefab17dbbdf163076df9558979922d, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40855997491 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
  • R06-05 replay・古い中央ZIP・不正actor/ref・改ざん・欠落・期限切れの拒否と有限異常終端。非公開制御試験の統合受入:2026-10-30 JST #6510888487。全体R05の無人17repo起動やPublisher/Sigstoreの受入ではない。
    • R06-05-01 ローカルPREPAREの不正期限/失効・13h未来TTL・変更HEAD・不正actor/ref/attempt2/schedule・公開grant・未保護mainをGitHub GET前に拒否するoffline hostile CIサブ証明(実異常Runではない):build PR#379 HEAD 5227f2abb8715c8ddd7e75eec5897da74d3fe755 required App15368 resolver Run40860733497 attempt1 SUCCESS、期待HEAD保護マージmain 6ca51ddf29ab59e4c1bf4d805d1a3570779344d9、original push postmerge Run40860886110 attempt1 SUCCESS。17/17成功原本再実行なし。

    • R06-05-02 中央ZIP改ざん/欠落・期限切れ・durable replay・実17対象failed/skipped/timeout/missing-eventの原本に基づく有限終端を非公開制御試験として統合受入(子-01/-02全成立、#6510888487)。

      • R06-05-02-01 中央PREPARE original ZIP実取得+17 protected local main GET+制御した改ざん/欠落/期限切れDENY+別Run App CAS durable replayの限定実受入。コード PR#392/fix(R06-05-02): preserve failed listener and recover original durable state in new Runs #394/fix(R06-05-02): authenticate actual publisherAuthorized in recovery terminal #397 は最新HEAD required App15368 resolver→保護マージ→original postmerge SUCCESS。元1回限り要求 PR#393 source Run40876766677 attempt1 SUCCESS、原本Artifact12898616478 provider ZIP SHA256 da80f876c76725feaa8d8e7448089ee319f06fd83c0e27ecf110910af88188da、中央 original Run40852118886/Artifact12886559374 ZIP SHA256 b81a14c98b7fcc403970b7bde40028799a99938bef595a8ea1400154b35e5262、17/17実GitHub protected main GET、memory-only改ざん/欠落/expired-clock DENY、初期専用App blob 609e887293ea3dd3d0a9eb3457ad828f543d9b2d rev1 17 PENDINGを独立再読取。旧original listener Run40876850679 FAILURE(original receiptの publisherAuthorized と検証器の誤った publicationAuthorized の不一致)を原本失敗として保存。修正前h01 source Run40877898560 SUCCESS/terminal40877937626 FAILUREも履歴保持、成功Run再実行なし。修正済みPR#397 HEAD8f426a34 required resolver40878211773 SUCCESS→保護main99e75928→original postmerge40878389140 SUCCESS。別の実保護要求PR#399 HEAD0d9ce681 App15368 resolver40878625420 SUCCESS→保護マージmain2dd7d7d3→postmerge40878790464 SUCCESS。新h02 original recovery source Run40878790479 attempt1 SUCCESS/Artifact12898558364 original ZIP provider SHA256 9b01401a59c74e3fbcecd1469be10b267517d8d1b56c786bb6e9b732e0134249;独立workflow_run terminal Run40878828641 attempt1 SUCCESS/Artifact12898988268 provider ZIP SHA256 432b74bf18049e1fdd095e4860cfe3b02656e2e836345dc59175325cc5451eb6。App original GET Git blob 0ae3fb0aa9824fb704600d19fa51afcc309b763f rev2、17/17 QUARANTINED、original sourceRun40876766677不変、completionRun40878828641、replay=DENY_NO_SECOND_PUT、publisherAuthorized=false/writeOutcomeUnknown=false、same-token revoke401 gate、ORIGINAL_GET_VERIFIED PASS。これは真の中央ZIP実バイト+実17 repo SHAの制御負例とApp durable replayであり、17ローカルWindows子Runの敵対的完了をこの同一cycleへ紐付けた証明ではなく、Publisher/Release、自然GitHub API429/503の証明ではない。
      • R06-05-02-02 同一中央cycleの実17ローカル子原本・真のfailure/skip/step-timeout・制御completion欠落/実期限・独立有限App CAS終端/再読取・source-kind/replay拒否を非公開統合受入。根拠#6510888487、中央original40962984014、独立集約source40970909757/watchdog+別読取40970910085。自然GitHub障害・全体R05の無人起動・Publisherの証明には流用しない。
        • R06-05-02-02-01 同一中央cycle子Run照合ポリシーのコード・必須CI限定サブ証明(実17異常Runではない):非公開PR#402 HEAD 6d380a0e6db83f823013d326359b7a96f2cedfd9、App15368 resolver original Run40881478162 attempt1 SUCCESS、最新HEAD保護squash merge main 06330b5b9f2eeaefa7683c62f83557f8cf6f6e7a、original push postmerge Run40881659519 attempt1 SUCCESS。17 distinct source-bound child、central original run/request/artifact/SHA256、local protected parentとsource-kind、failed/skipped/timed_out独立watchdog、missing-event期限後durable CAS readback、attempt2/replay/公開権限負例の判定関数・CI試験のみ。原本子RunのZIP/実障害/生CAS readbackは未実施、R06-05-02-02をPASSにしない。
        • R06-05-02-02-02 同一中央cycleの実17 original Runと16 actual receipt ZIP+実skipのartifact不在、真のfailure/1分step timeout、制御missing completion、専用App CAS永続終端を独立照合し受入。17/17保護merge・17/17 original Windows attempt1 PG14〜18/Summary計102ジョブSUCCESS。新規anom07のみで成立し、旧anom05/06原本の成功・失敗・未完履歴は保全。下位-01〜03全成立、詳細#6510888487。
          • R06-05-02-02-02-01 実原本取得・有限独立watchdog・専用App CAS・別ジョブreadbackの実装/CI限定受入。PR#408/fix(r06): verify the authentic original PREPARE publication flag #409/fix(r06): verify the deployed original shared caller step names #411/fix(r06): bind the original verifier job to its immutable workflow command #412、各最新HEAD必須App15368 resolver→期待HEAD保護merge→original postmerge SUCCESS。最終コード4cf0043a、postmerge40967133247 SUCCESS。原本scan権限flagとApp状態flagを分離し、全17原本Workflowの固定コマンド/env/ff551bd2完全SHAから実検証step名を結合。hostile7件・既存policy9件・17 real定義の照合成功。コード単独をlive受入とはしない。
          • R06-05-02-02-02-02 新規anom07中央原本+同一cycle17ローカル原本と16ZIPの独立SHA256・真のfailure/skip/timeout・各Windows original postmergeを照合。中央PR#410/Run40962984014/Artifact12935853174 SHA256 15040c5aac00282255417ff9b5668b02b4a236e3e36db1b0ebb1428515821a70、全17保護PRと102 original Windows必須Job成功、実skip1件はartifact無し。全原本Run/HEAD/Artifact/実SHA256一覧#6510888487。期限切れanom06や旧成功Runは再実行しない。
          • R06-05-02-02-02-03 同じanom07の制御completion欠落・実期限切れ・独立有限App CAS revision2と別Appキーなしjobの原本再読取・durable replay/source-kind拒否を照合。PR#413→protected main c4a7992、source40970909757/watchdog+別読取40970910085 attempt1全SUCCESS。原本3ZIP/実SHA256、rev1 Git blob74027bf1→rev2 93ffecb3606b93f2098181779a037dfa42974eff、13 NO_UPDATE/4 QUARANTINED、BOUNDED_WATCHDOG、publisher=false/writeOutcomeUnknown=false、厳格same-token401 gate成功。Root別取得で全バイト・入力・Git blob・遷移・readback・無追加PUTを再照合。自然GitHubイベント消失やSigstore署名の証明ではない。
    • R06-05-03 中央PREPARE成功原本ZIPの実バイトから独立した改ざん・欠落・attempt2負例を検証する限定offlineサブ証明。元中央Run40852118886 attempt1 SUCCESS、Artifact12886559374 (非失効) を新たに取得し、ZIP実バイトSHA256 b81a14c98b7fcc403970b7bde40028799a99938bef595a8ea1400154b35e5262 がprovider digestと一致。ZIP 1エントリ issue311-r06-prepare-original-scan.json、元request r-20261029-r06prepare17pin03、targetMainSha17/17、result SCANNED。原本コピーのdeflateメンバー1bit変更→provider SHA不一致かつ解凍/CRC例外、17対象1件削除→16/17およびprovider SHA不一致、ZIP余剰エントリ追加→one-entry contract/provider SHA不一致、JSON sourceRunAttempt=2→attempt1制約DENY。全試験ローカルメモリ内でoriginal raw bytesから負例を生成、GitHub原本は変更・rerunなし。実GitHubローカルworkflowでの敵対的失敗・App CAS durable replayやR06-05-02全体の受入ではない。

  • R06-06 v2.1 R04/R05/R06依存ゲートPASS:既存R06-06-01/02 + 新17 App真正A/C/D、状態の限定公開拒否・独立読取を照合。監査 #6521649490。以下は受入前時点の歴史記載: R04/R05/R06全体の依存ゲート照合と実証記録。2026-10-30 JST: LIVE_APP_IDENTITY_PINNED / NO_DISPATCH / 実運用未受入。private App5534389・選択17repo install176718417・main限定専用Env25744043853/Secret存在・旧キー削除を確認。実App原本 Run40982434701でbot ID350058024・単一repo token/同一token失効401を認証、PR#415/#416保護マージ。R06-06: approved coordinator App ID + guarded original bot identity proof (no dispatch) #415 postmerge resolver FAILUREは免除せず#416で負例テスト修正、新原本postmerge Run40982739872 SUCCESS。中央scanはまだ17repoを自動起動せず、R06-05統合成功を無人Coordinatorへ読み替えない。runtimeEnabled=false・新R05-03未受入。
    • R06-06-01 実原本17統合後の依存棚卸し:R04/R05既存限定証明・R06-05実統合を照合し、中央完了→17repo無人起動と実App actor認可が未実装と確認。#6510888487およびdocs/issue311-r06-dependency-gate.md。これはゲート調査完了でありゲート全成立ではない。
    • R06-06-02 専用非公開起動主体の明示承認・実設定・実identity固定 限定PASS(認証・固定のみ)。private App5534389/install176718417/選択17repo/Actions write+Metadata read、main限定Env25744043853/Secret存在、使用キー5098216のみ・旧5097717削除。実GitHub App認証pilot original Run40982434701 attempt1 (head f9c4e16)でbot pgextwin-issue311-prepare-coord[bot] ID350058024、単一orafce限定token、同一token revoke401、0 dispatch、Artifact12945252561の原本ログ/receipt成功。PR#415 HEADd2e4fee2 必須App15368 resolver40982313054 SUCCESS→保護マージf9c4e161。元postmerge40982434665 FAILUREは保持し、テスト修復/ID固定PR#416 HEAD2817c255 必須resolver40982633549 SUCCESS→期待HEAD保護マージ main4c702df7→新original postmerge40982739872 SUCCESS。runtimeEnabled=false、実workflow_dispatchと無人17子はR06-06-03へ保留。既存資格情報転用・Publisher権限追加・公開なし。
    • R06-06-03 v2.1 A/C/D PASS:新17 original bot child ZIP実バイトSHA256・同一cycle・App CAS revision2 NO_UPDATE17・別Runner鍵なしreadback、既存GET-only最大3/制御ACK喪失無再PUT/独立2Runner実409/失効401、偽actor・replay・改ざんDENYを照合。新PR#453・中央41048039208・fleet41048135275・CAS41048436029・watch41048039041、原本/17 SHA/旧証拠監査 #6521649490。以下は単一repo pilot時点の歴史記載: 実App actor単一repo pilot限定SUCCESS、全17repo無人Coordinatorは未受入。orafce PR#51 protected HEADbd07d533必須Windows PG14〜18/Summary40983190505 SUCCESS→protected merge b2c57bf4a8842c1225a7794213904b363de99a23→original postmerge40983869309 PG14〜18/Summary SUCCESS。build PR#417 HEAD ea31dcb required resolver40983759279 SUCCESS→protected merge eed92a3→postmerge40983911272 SUCCESS。実起動要求PR#418 HEAD71509c9d resolver40984021669 SUCCESS→protected merge main 51ab1666a5464e36ffa0efef7157ad0e033d59be→独立 original postmerge40984579762 SUCCESS。中央一回限りのApp original Run40984579817 SUCCESS/Artifact12945509081(provider ZIP digest SHA256:1eb92811600f2f41e91ddad44f9765a80f4668203d737dc94e6646e29379534c):GitHub実POST workflow_dispatch HTTP204→orafce実App bot actor ID350058024 original Run40984596152 SUCCESS/Artifact12946536474(provider ZIP digest SHA256:b1bc0895014a04b7a0a565b2c7a3cdc8cb09260c7a2af01b07da2b259a959ee2)、単一repo token DELETE→同一token GET401を確認。単一repo読取専用 actor 証明であり、本物のローカルPREPARE起動・17子要求/receipt・中央期限/有限CAS・無人17集約は未実施。独立実ZIP SHA256は未実施(上記はGitHub provider digest)。runtimeEnabled=false/公開なし、R05-03未受入。

R07〜R12 展開・公開前ゲート

  • R07-01 1拡張pilotの新契約受入 — orafce PR#54保護main=be51cf1f、required PR original Windows41015475372とpostmerge Windows41016092201 PG14〜18+Summary SUCCESS、同一新中央cycle App子41048281023/ZIP実SHA256/CAS readback。旧単一repo pilotを新契約と誤認しない。証跡。
  • R07-02 旧残3件への段階展開 — pg_ivm / plpgsql_check / pg_hint_planの各最新HEAD required Windows PG14〜18+Summary、保護merge/exact-main original postmerge、今回新同一cycle real App receipt/SHA256/独立replay DENYを照合。証跡。
  • R07-03 既存13件への展開と17/17実receipt・replay DENY — 他13 repoのlatest-head CI/保護merge/exact-main postmerge Windows PG14〜18+Summaryと新中央cycle 17 distinct original/ZIP実SHA256・CAS rev2/鍵なし読取/独立replay DENYを照合。17件原本表。
  • R08-01 新方式OIDC署名と独立Sigstore監査2系統 — v2.1真正App-OIDC/独立Sigstore2系統+17原本ZIP実SHA256+独立CAS/readback PASS。受入監査 #6525877146。PublisherはR08-02別ゲート。
  • R08-02 Publisher admission、App/actor隔離、fail-closed、PUBLISH_DENYを保持した非公開受入 — 真正Publisher App JWT隔離原本/実ZIP SHA256・CRC/PG14〜18+SPDX/Grype既存独立監査の固定照合/非公開拒否PASS。根拠 #6526531530。実Release未認可。
  • R09-01 Catalog/CLI/feed/EN・JAまでの非公開連結の受入(v2.1 PASS/非公開限定。Catalog build(deps): bump actions/create-github-app-token from 3.2.0 to 3.3.0 #180/fix: safely recover failed Wave3 first-candidate Windows runs #179 保護マージ・原本postmerge/公開feed NOOP、Website Step 23: align all nine extensions on manually reviewed SHA-pinned candidate queue #45 非公開EN・JA HTTP、根拠 comment #6534563345。R09-02/親R09には加算しない)
  • R09-02 適格な将来新stableかつ正式認可済みの場合に限る実Release E2E(それまではPENDING)
  • R10-01 期限切れ/改ざん/重複/子失敗/イベント欠落・429/5xx等の負例 — v2.1制御負例・本番Publisher書込境界の非公開fail-closedテスト受入。監査 #6535116211
  • R10-02 永続最終集約・結果報告・復旧地点の検証
  • R11-01 各repoの対象cron依存を適切な代替受入後に廃止
  • R11-02 復旧・失効・旧Run競合・導入手順の照合
  • R12-01 親#75の受入契約/公開ゲートと新版証拠の対応表 — 親#75旧公開ゲート→新版v2.1対応表・運用手順をPR#469保護マージ/postmerge受入。監査 #6535116211
  • R12-02 1回Chat要求から17対象の非公開終端・運用手順と必要証跡を受入

制約: 成功Run再実行なし、GitHub/ChatGPT/外部cron追加なし、資格情報転用・偽scheduleなし、PUBLISH_DENY迂回・未認可公開なし。公開やReleaseの承認はこの台帳登録に含まれない。

残9件の実行契約 v2.2(2026-10-31 JST)

ユーザーの「タスクの明確化・再現可能な手順・受入条件を計画したうえで実施する」という指示により、未受入9チェックを 7作業 に分解した。既存v2.1の実原本要求、安全ゲート、94枝番、過去証跡は維持する。85/94 PASS・9 PENDING、加算0。本節やコードテストだけで親子チェックを更新しない。

正本:

作業 対象 実施と受入の境界
W10-A R10-02 共通 record_approval_block と決定的テスト。request/HEAD/source/対象/policy/期限・理由/最終成功/再開点を結合。純関数は呼出元の事実を認証しない。コード試験をlive承認不足・実CASへ読み替えない。
W10-B R10-02 既存正常/異常原本を再利用し、orafceの実dispatch入力とskip/timeoutを結合。実行前停止に存在しない子ZIPは認証済み不在として記録し、入力結合不足を推測で埋めない。回収不能なら次の新限定負例より先に入力receipt保存を実装。
W10-C R10-02 実在する既存policy/適格要求に対する認証GET adapter→専用App単発CAS→失効401→別Runner鍵なしGET→実ZIP SHA。適格要求なしを1回記録したらW11-Aへ進み、人工の承認不足を作らない。
W11-A R11-01 各scheduleの検出/候補作成/署名再評価/照合/回復を個別に列挙し、orafceから代替の非公開正常/異常originalを受入後、その対象だけ撤去。PREPARE NO_UPDATEを全機能代替と称さない。
W11-B R11-02 旧/新の実書込namespaceと原本コードSHAを対応付け、共有Writerは真正event・隔離資源・実コードで制御競合/実409/PUT1回/失効/有限再開を証明。実際に非共有なら認証済みallowlist/namespace非交差を証明し該当ペアのみN/A。一般CASや旧Run不在を共有Writer競合証明にしない。
W12-A R12-02 R10/R11前提成立後、1要求→真正17対象→有限終端→独立読取。入力例・範囲・成果・理由・最終成功・安全再開を実原本と結合。親R12の依存も別途照合。
W09-A R09-02 将来適格stable+特定候補への正式PUBLISH成立時のみ実公開E2E。試験Release/tag禁止。

反復停止規則: policy/要求/原本/実装に変更がない場合、単なる不在監査の新PRは作らない。外部条件待ちは具体的な再開条件を1回残して独立した実装へ進む。既存成功Runのrerun、新cron/Chat定期タスク/外部worker、偽event、Secret転用、保護緩和、未認可公開は禁止。runtimeEnabled=false / PUBLISH_DENY、Website Draft#45未マージ、#311/#75 OPENを維持する。

Activity

  1. changed the title [-]Replace GitHub cron with authenticated external orchestration across 17 extensions[/-] [+]Replace GitHub cron with hourly ChatGPT Task initiation and authenticated orchestration[/+] on Oct 28, 2026
  2. changed the title [-]Replace GitHub cron with hourly ChatGPT Task initiation and authenticated orchestration[/-] [+]One Chat request to completion: event-driven orchestration without cron or recurring tasks[/+] on Oct 28, 2026
  3. ShutenOishi commented on Oct 28, 2026

    @ShutenOishi
    ContributorAuthor

    2026-10-29 JST — R01 authenticated fleet inventory and R02 original event proof (NONPUBLISHING; recovery pending)

    Canonical contract: #311 R01–R12, parent #75 #6473214580. Old M/T and all recurring-Chat/extra-cron options are withdrawn, not completed. This checkpoint uses new authenticated GitHub GET; no previous successful CI was rerun.

    R01 inventory (GET snapshot)

    • Central protected pgextwin/build/main started d8904ebc377e33034b71108d42de940d6b6c9979; after R02 protected PR test(issue311): R02 protected-main push entry canary (nonpublishing) #312 it is d9a09ae962b077c4142599daebc6b57746bccf27. Central 23 Workflow files include fleet-upstream-watch.yml (blob f09fad0e50d9b12e6d77486636b62dd1fec9c99b), operator-update-auto.yml (0c44b25652b2ac87e76d18e8cd1081fff6879f2e), publisher-candidate-intake.yml (a8b65a32659fc04a58f130bcb5c4cf16bdedc55d), native PR recovery, signed requalification, PostgreSQL watch, fleet-status, canary, and existing validation/postmerge. metadata/automation-fleet.json blob 69918265dabb86b11a9406533cbe0ce495137b94 still models scheduleUtc and automatic-signed-schedule. Do NOT treat this old sourceKind as new request authority.
    • 17/17 current local main protected=true, exact SHAs:
      pg_bigm=713a76b8650f61097b5d5a55f15cd7f2ebcb4ec0;
      pg_cron=a36e180a3922e070cde03642ec9fcc40e171567e;
      pg_hint_plan=40e68cc8177a3d0707ac87f346e3d88c3247769c;
      pgaudit=f53e97d7c4a51c089f8bdc7b33f3ae005f516b29;
      set_user=4f02f925e7bc0534af421441c1b2fb1ecd755846;
      pg_repack=b9da885a4ef132b5f3d5af448fb09e5bfe56e6a7;
      pg_ivm=6e3904af78cccbd67ce84eef183ceda9f4eef553;
      pg_qualstats=fa31026f041070c821d317041b8f973ccd0a794d;
      plpgsql_check=b75d9c90f2c349788b21a7f47d59ca31f3c8ebdd;
      orafce=e96941dd3ec09f88011feb1165a3f6f83231460f;
      hypopg=6c6ddfb7b62dd220fdea4004e5e5f6a0a054f271;
      wal2json=51850b29b4eca4cc85ac648342d490605557a2ff;
      pg_partman=4e3be24b9b2523cc6b1979d61f6be912be6d3e31;
      pg_stat_monitor=97f1f41054bed4a3900e0ae924d04cbe5b2f08e4;
      pgtap=c536e9d90760eea88f7c42ba4b675e05a0d0fcf8;
      pg_variables=0662ed8757e2f0c821a0a300c6f98df9374d8a8c;
      pg_store_plans=7d3d4a1b099fb5d408de4f50ee72b4e49854734b.
      Each local update-watch.yml is still schedule + push + workflow_run, with genuine :30 hourly cron; hypopg additionally :41. All 17 promote.yml use workflow_dispatch only. Per-repo workflow source blob SHAs independently GET-ed. No active in-progress run or open PR in 17 local repos at this snapshot.
    • catalog/main=dc8390fd816aa7bf0bf3b541e822b1320a47846e, protected=true, 14 workflows, including catalog-drift-readonly.yml (schedule/push), sync-verified-release.yml (schedule/manual), App-scoped opt-in proposal, CLI/feed/canary, and issue112-p1-fleet-readonly.yml (schedule/push); 5 Dependabot PRs open; no in-progress runs.
    • website/main=2eb3bd618f230cea424b99dac5148ca72d923cd7, protected=true; pages-smoke.yml has workflow_call, push, workflow_dispatch, repository_dispatch, schedule; 1 Dependabot PR open; no in-progress run.
    • build had only Dependabot build(deps): bump actions/create-github-app-token from 3.2.0 to 3.3.0 #180 and build(deps): bump actions/setup-python from 6.3.0 to 7.1.0 #309 open prior to R02. Authenticated user login is ShutenOishi. Required build PR check is the App 15368 resolver job. Effective admin-level branch protection/required-check configuration GET returned 403 Resource not accessible by integration, so enforcement details remain UNKNOWN beyond the observed protected=true, latest-head CI and GitHub-accepted expected-head PR merge. No assumed App/Secret/permissions change.
    • [P2][OPTIONAL FEATURE] オンライン/オフライン配布CLI・バンドル共通基盤 #112 is independent historical offline bundle + online/offline CLI work; do not conflate its 70-source proof or weekly Catalog audit with [P0][CHAT UPDATE] 1回の「pgextwinを更新して」→全拡張更新処理(公開版維持) #311 coordinator acceptance or rerun [P2][OPTIONAL FEATURE] オンライン/オフライン配布CLI・バンドル共通基盤 #112 historical source jobs. No new release or public-publish authorization here.
    • Historical X01/X02 merges/postmerge, 13/17 old typed receipt ZIP PASS and Fleet40688819922 original ZIP hash remain preserved per [P0][PUBLISH PATH] Chat更新・適格な正式Release→Catalog/Website連結(既存安全ゲート維持) #75 #6472293647. Old four true-schedule deficits are NOT R01/R02/R03 blockers; new 17/17 is a fresh R07 gate.

    R02 actual connector → protected main → push evidence

    • Chat connector wrote branch issue311/r02-protected-push-probe, dedicated strictly AUDIT_ONLY fixture and read-only .github/workflows/issue311-r02-nonpublishing-proof.yml (contents:read, no signing/write/dispatch/Release).
    • PR #312, HEAD 030bdb81b3e811bb6902e22db09ebfa318a2ad12, original required App15368 resolver Run 40717715045 completed/success. Expected-HEAD protected merge succeeded; main merge SHA d9a09ae962b077c4142599daebc6b57746bccf27, merged_by ShutenOishi.
    • Genuine R02 Run40717966364, event=push, attempt=1, actor/triggering_actor=ShutenOishi, main SHA exact. The real original job log printed NONPUBLISHING_ORIGINAL_PUSH_OBSERVED, sender/pusher=ShutenOishi, request-byte SHA256 5d4fa8d958e66e0e794cc71657acae8222e836e2eb22b1250a92b64cb95b4027. This independently demonstrates connector-mediated merge push is not suppressed like a GITHUB_TOKEN-origin push.
    • However original Run40717966364 final FAILURE: upload-artifact skipped the dot-prefixed .issue311-r02-receipt.json by default. Do not upgrade this failed run to success. Build postmerge validation Run40717966641 completed SUCCESS.
    • Protected correction PR #313, HEAD 96fee41c05b2d8246395b6799b5c8aad0e966f4c, changes receipt to a nonhidden filename and uses a new immutable request issue311-r02-20261029-02, avoiding a fake replay/rerun. This is pending its original exact-head required CI and safe merge. No old successful run is rerun.

    Still unproven

    R02 original uploaded receipt / corrected postmerge run; R03 request/approval ADR; R04 durable CAS/lease/idempotence; R05 two-stage autonomous event continuation and missing-event terminal; R06–R12 new mode admission including original SHA256, signed identity, PG rows, SPDX/Grype, independent replay deny. workflow_run depth and GITHUB_TOKEN event-suppression require design and negative proof, NOT long-chain assumptions. PUBLISH_DENY unchanged; no Release/tag/secret/policy/cron/permission/actor expansion, real publish, Catalog change, or Work/ChatGPT cron.

    Next: verify #313 latest-head App15368 CI, merge with expected HEAD if clean, GET new original push run/jobs/artifact/log and final postmerge CI. Then R03 ADR minimal protected PR; progress and evidence remain on #311 and #75.

  4. ShutenOishi commented on Oct 28, 2026

    @ShutenOishi
    ContributorAuthor

    2026-10-29 00:4x JST — R02 protected-push original receipt independently verified (NONPUBLISHING)

    Latest canonical plan is #311 R01–R12, not the withdrawn hourly schedule plan. New authenticated GitHub GET found protected build/main=24085fa17eb9e14be5ccb8f66b5c61039e8f54ae (merge PR #313, head 96fee41c05b2d8246395b6799b5c8aad0e966f4c). PR-head validation Run 40718173252 SUCCESS; postmerge validation Run 40718397814 SUCCESS, attempt1. Prior #312 probe Run40717966364 failed only at the hidden artifact upload; do not rewrite that failed run as PASS.

    New original successful R02 proof: push Run40718397824, event=push, attempt1, exact protected main SHA, original job 122922259639 SUCCESS. Original raw job log reports NONPUBLISHING_ORIGINAL_PUSH_OBSERVED, actor/triggeringActor/sender/pusher=ShutenOishi, before SHA d9a09ae962b077c4142599daebc6b57746bccf27, after SHA 24085fa17eb9e14be5ccb8f66b5c61039e8f54ae, requestId issue311-r02-20261029-02, mode=AUDIT_ONLY, publishAuthorized=false, permissionModel contents:read. Original receipt artifact 12829007351 (issue311-r02-original-push-receipt) downloaded; independently hashed original 559-byte ZIP SHA256 4452a10173d9769955bcfebc7c06d6ebde3dde65479685fd2af32346b7a9d1d1, matching authenticated GitHub artifact digest exactly. ZIP contains only issue311-r02-receipt.json; member SHA256 c73a39975139e93f633769be7d835409a69cb01ffe13e8449e391c33a1457bc9. Parsed receipt binds event/run/attempt/main SHA/requestId and publishAuthorized=false.

    Scope: R02 protected-main push-to-nonpublishing receipt is observed; this alone does not establish R02's full event-suppression/actor policy or R03–R12, and is NOT release authorization. Old X02 13/17 is historical only; new 17/17 remains unproven. No reruns, dispatch, cron/policy/App/Secret changes, or Release. PUBLISH_DENY maintained.

    Next: Verify R02 event suppression and credential/actor boundary against actual original runs, then R03 versioned request/approval/evidence ADR and R04/R05 durable coordinator. Avoid re-running the now-successful Run40718397824/40718397814.

  5. ShutenOishi commented on Oct 28, 2026

    @ShutenOishi
    ContributorAuthor

    2026-10-29 JST — R01 inventory, R02 original event/ZIP proof, R03 protected ADR, R04/R05 nonpublishing foundation + genuine two-stage terminal (NO RELEASE)

    Authenticated GitHub GET + original connector operations and independent actual ZIP SHA256. This updates #6473458864. Issue #311 R01–R12 remains canonical; #75 #6473214580 direction stands. Old M/T, extra-cron and recurring-Chat alternatives remain withdrawn, not marked complete. No real Release, tag, Catalog publication, publisher credential, secret, effective actor policy or protection change.

    Protected PR / exact-head / original required CI / postmerge ledger

    Gate PR / HEAD Original required PR CI (App15368 resolver) Protected merge commit Main-push CI
    R02 first actual push signal #312, 030bdb81b3e811bb6902e22db09ebfa318a2ad12 40717715045 SUCCESS d9a09ae962b077c4142599daebc6b57746bccf27 40717966641 SUCCESS
    R02 original artifact repair #313, 96fee41c05b2d8246395b6799b5c8aad0e966f4c 40718173252 SUCCESS 24085fa17eb9e14be5ccb8f66b5c61039e8f54ae 40718397814 SUCCESS
    R03 versioned declarative contract #314, 75e6ac3319a1f03e4abb839ab53bd76e3a0fde1b 40719220820 SUCCESS d4e4ac7973809d19bd7030b5f9789e50f06433dc 40719448707 SUCCESS
    R04 pure state & R05 needs proof #315, 887e9d213dd7078bf1b4cea402dc9520a92fdfa8 40720097575 SUCCESS e555ba09917efcd55cda96c804fccbb4c6b043f2 40720418395 SUCCESS

    All four PRs used expected_head_sha protected merges, returned merged=true, live main GET protected=true, and merged_by=ShutenOishi. All original successful CI are reused, never rerun. The GitHub integration's admin-level GET of the actual branch protection required-status configuration returns 403, so effective rule detail remains UNKNOWN, not independently asserted PASS. Actual App15368 exact-HEAD PR CI and GitHub-accepted protected merge are observed.

    R02 true single-push canary

    • First genuine main push Run40717966364 event=push, actor/sender/pusher/triggeringActor ShutenOishi, exact original main HEAD. The job independently verified request raw SHA256, but final result is FAILURE because actions/upload-artifact excludes dot-prefixed file by default. Preserve original FAILURE; no rerun or synthetic proof.
    • New request/isolated correction via fix(issue311): complete original R02 push receipt after hidden-artifact failure #313: Run40718397824 completed/success, original push, attempt1. Original Artifact 12829007351 (issue311-r02-original-push-receipt) ZIP 559 bytes, GitHub metadata SHA256 = actual independently downloaded ZIP SHA256 4452a10173d9769955bcfebc7c06d6ebde3dde65479685fd2af32346b7a9d1d1. Inside original ZIP issue311-r02-receipt.json: requestId issue311-r02-20261029-02, request raw SHA256 a14ae8fddb2b7f21bb1ae3b73e8757f07f861f3675350c7676f842dc92f6f84a, headSha=24085fa17eb9e14be5ccb8f66b5c61039e8f54ae, original beforeSha=d9a09ae962b077c4142599daebc6b57746bccf27, actor/sender/pusher/triggeringActor ShutenOishi, publishAuthorized=false. R02 minimum one genuine connector merge → push proof PASS. Does NOT prove GITHUB_TOKEN-generated secondary events or privileged publishing.

    R03 actual merged contract

    Protected main now contains docs/adr-0311-event-driven-request-v1.md, schema/issue311-execution-request-v1.schema.json, scripts/issue311-request-contract.py, tests/test-issue311-request-contract.py and required CI invocation. A bounded request declaration v1 fixes targets/SHA, request ID, max attempts/operations/walltime, expiry, AUDIT_ONLY/PREPARE/PUBLISH_ELIGIBLE, and grants; rejects duplicate keys, unknown repos/refs, invalid SHA, extra fields, stale/expired/oversized requests, unauthorized publish declarations and mismatch in approval. Every schema-valid request is INERT and returns actorAuthenticated=false, publicationAuthorized=false. Authenticated GitHub actor/PR merge, original bytes, effective branch rules and required CI must be proved separately; no production listener or privileged new sourceKind is active. R03 design/schema/tests are accepted, live adoption pending R04/R05 and later migration.

    R04 pure state transition completed, durable state still unproven

    PR #315 protected merged scripts/issue311-state-core.py, tests/test-issue311-state-core.py and CI. In-process/pure/offline tests cover revision CAS, exact duplicate replay idempotence, mismatched same-key conflict, immutable stage input on retry, finite attempts/operation budget, terminal per-target SUCCESS/NO_UPDATE/FAILED/BLOCKED_APPROVAL/QUARANTINED, and no blind retry on unknown privileged write result (QUARANTINED). It writes no GitHub state, has persistenceAccepted=false and no Writer privilege. R04 overall PENDING: choose an approved durable protected checkpoint CAS/lease writer and independently verify its permission scope, concurrency and restart. Neither Issue text nor Actions artifact alone is a trusted CAS ledger; no undocumented App/Secret/permission expansion.

    R05 independently observed two-stage one-shot chain + terminal (single-run proof, not full coordinator)

    • test(issue311): R04 CAS state-core and R05 one-push two-stage nonpublishing proof #315 introduced strictly bounded AUDIT_ONLY file .github/execution-requests/r-20261029-r05nonpublishing001.json with fixed orafce/main=e96941dd3ec09f88011feb1165a3f6f83231460f, prior central SHA/blob, 16-hour expiry and publishAuthorized=false. A path-limited push Workflow .github/workflows/issue311-r05-nonpublishing-needs.yml has contents:read only, no cron, workflow_dispatch, workflow_run chain, OIDC, Publisher/Catalog credential or GitHub write. Workflow logic: admit authenticates real push/current SHA/schema/byte hash → stage2 needs:admit independently rehashes exact immutable request bytes → aggregate needs:[admit,stage2] if:always() records explicit terminal NO_UPDATE/FAILED.
    • Genuine original Run40720418388, event=push, attempt1, actor ShutenOishi, merged main e555ba09917efcd55cda96c804fccbb4c6b043f2: all THREE jobs completed/success; run completed/success. This required no additional Chat invocation or manual dispatch after the one protected request merge.
    • Downloaded original three ZIPs separately and computed real ZIP SHA256; all MATCH authenticated GitHub metadata:
      • Stage1 original Artifact 12829987276, 410 bytes, d5978e0b96d8fc5fa56d4c633a43351ebd63b163528628f03b8eb4b7297c9eb6.
      • Stage2 original Artifact 12828949285, 349 bytes, 5dfb6cd54c1276485cddf6cd38c6db31103ed94ad5352b255f7bce4884c8ce86.
      • Terminal original Artifact 12829883183, 471 bytes, f025c81eb8f08b6cb7856b3075af3284d9b427851e3f964ef52e00ebe06cabb6.
    • Three original inner JSONs bind identical rawSha256=7a8761dd458aeb88c20d13ff5ac8e92aa5f07dd5b89e6b0c395cffa6d5aad75f and headSha=e555ba09917efcd55cda96c804fccbb4c6b043f2 for stage1/stage2. Final receipt requestId=r-20261029-r05nonpublishing001, runId=40720418388, runAttempt=1, stage1=success, stage2=success, terminal=NO_UPDATE, statePersistenceAccepted=false, publishAuthorized=false. A real two-step needs + always terminal inside ONE trusted Workflow is proven; full R05 PENDING cross-repo Windows jobs, durable checkpoints/restart, independent event transport and missing-event terminal detection.

    Scope and forward conditions

    • R01 authenticated source/repo/cron coverage DONE (effective admin branch settings UNKNOWN). R02 original nonpublishing signal PASS. R03 declarative ADR/schema/negative CI PASS. R04 pure core PASS but durable CAS/lease PENDING. R05 nonpublishing two-stage needs pilot PASS but full coordinator PENDING. R06–R12 NOT ACCEPTED. No new R07 17/17 receipts, signer/sourceKind acceptance, Publisher or Release gate acceptance.
    • Original historical X01/X02 protected success, old 13/17 accepted raw receipts, Fleet40688819922 original ZIP SHA256 remain preserved and reused; old four schedules are no longer prerequisites to migration. No original verified receipt in a new sourceKind is claimed from the R02/R05 audit-only artifacts.
    • Existing PUBLISH_DENY, PG14–18, original ZIP actual SHA256, OIDC/Sigstore dual independent audit, SPDX/Grype, replay DENY, create-only, publisher token same-live revoke/HTTP401, policy/actor/protection untouched. Never claim unsigned audit-only artifacts constitute a new Release or Catalog admission.
    • Existing pgextwin hourly ChatGPT automation id 6ad9d3b661948191932974b4b3716e49 was privately checked and is already is_enabled=false. It was NOT restarted; other unrelated automations untouched. The old GitHub on.schedule triggers still exist until R11 safely migrates after new controls are proven; no cron additions.
    • Next concrete step: R04 trusted durable CAS/lease/checkpoint writer and identity/permissions proof (admin GET 403 leaves UNKNOWN); R05 cross-repo bounded actor/App event handshake and failure terminal with no long workflow_run chains or implicit GITHUB_TOKEN triggering. Then R06 local preflight per new request; pilot orafce and new 17/17 proof R07, independent OIDC/Sigstore/Publisher R08, Catalog/CLI/Website R09–R12 only under each existing gate. [P2][OPTIONAL FEATURE] オンライン/オフライン配布CLI・バンドル共通基盤 #112 offline bundle/CLI trust is independent and must not be overwritten/overcounted.

    Stopping boundary: No authorized durable state writer/lease or original cross-repo execution trigger has yet been established without extra privileges. Consequently R04/R05 full acceptance and any publication/Catalog changes are not authorized. Protected main and historical release assets are intact, all four PRs merged and all latest-head/postmerge CI success, no required follow-up to replay earlier success.

  6. ShutenOishi commented on Oct 28, 2026

    @ShutenOishi
    ContributorAuthor

    2026-10-29 JST — R04 live connector CAS + protected adapter, R05 genuine 17-repository read-only fanout (NO RELEASE)

    Canonical #311 R01–R12 unchanged; prior #6473821604 retained. New authenticated GitHub GET and original-run byte verification; no old successful CI rerun, new cron, ChatGPT task, Secret/App/protection/publisher permission, tag, Release or Catalog write. Old 13/17 receipt and Fleet40688819922 remain historical, not counted as new R07 admission.

    R04 — durable CAS observed only for authenticated Chat connector, NOT yet Actions writer

    • Isolated test branch issue311/r04-isolated-state-probe-20261029, original checkpoint commit c44b3266c88b31bee8ec03b90f5cdb800cd76d4e; revision 0→1 persisted at commit 26eda155458ccff9e9d4a0a64328e6dce793ce18, blob 91df0cf8cb41c9a456d4acb4793cbdc8780fff2d. A second update using the stale original blob 2e1c01eede7116677034b6636d50df5e93e3e5d6 was rejected HTTP 409 CONFLICT, followed by independent read confirming revision 1 unchanged. This is one real GitHub Contents CAS proof, not trust in Issue text or artifact.
    • Protected PR #316 HEAD dc31efc1206fd73dbb7391bfd7d01628ab058214: inert fixed issue311-state Contents CAS adapter, bounded READONLY lease generations, owner/expiry, stale conflict and timeout-after-commit/unknown outcome DENY, hostile tests. Original App15368 resolver PR CI40731759262 SUCCESS; expected-head protected merge fda9e1b2a5b243851eb77a7280c1712855013f49; original postmerge 40731971328 SUCCESS.
    • Adapter remains INERT: no Actions contents:write scope granted, no production trusted state branch/writer/lease installed, no crash/resume across runner demonstrated. GitHub admin branch protection effective rules remain UNKNOWN (403). R04 full acceptance PENDING, and no Writer credential is inferred from Chat connector success.

    R05 — genuinely launched one-shot 17-way authenticated read-only fleet

    • All 17 local main refs independently re-GET-ed: exact #6473458864 listed SHA still matches, protected=true on every repo. This is a point-in-time immutable snapshot, not assumed future head.
    • Protected PR #317 HEAD 02fe10aac762c896d1ab40a3a0e17d240dae23d4: new AUDIT_ONLY immutable declaration r-20261029-r05readonly17b, strict original protected-main push+actor ShutenOishi, source/registered roster of all 17, read-only Actions GITHUB_TOKEN, at most 4 parallel GET jobs, fail-fast:false, always() final aggregator, failed/skip/missing/duplicate negative tests. No dispatch, cross-repo write, Windows CI, signing or publication path.
    • Original required App15368 resolver PR CI40732216656 SUCCESS. Expected-head protected merge 53fa1ce02f2f87a88bedc7502ff9324a697769a6, live main protected=true; original postmerge 40732395943 SUCCESS.
    • Genuine original Run40732396047: event=push, original attempt 1, actor ShutenOishi, exact merged main SHA, 1 admit + 17 actual matrix jobs all SUCCESS + 1 always terminal SUCCESS, no second Chat/dispatch/cron. Original admit job122971871467 logged request raw SHA256 73a930a3951a471e2a975ac92ffe3e4d16f5a4ca953a6c6c359ed1812613aac7; original aggregator job122972379328 logged all 17 statuses success, terminal NO_UPDATE, publishAuthorized=false, persistenceAccepted=false.
    • Independently downloaded all 18 ORIGINAL ZIP files (17 target receipts + terminal); computed SHA256 over actual outer ZIP bytes and compared with authenticated GitHub artifact metadata: 18/18 MATCH. Each ZIP had one parsed JSON, proper requestId, runId=40732396047, runAttempt=1, all 17 exact protected remote SHAs and success, terminal 17/17 NO_UPDATE, no publish permission.
    • Original terminal artifact 12836031017, 445 bytes, outer ZIP SHA256 1811738e70ae62a1ef8b30cbbd8d3abfb9d29ba1794e9d466d77084b8907ec11, matching GitHub sha256: digest. Other 17 artifact IDs/digests remain independently retrievable on Run40732396047; NO new scheduled preflight/sourceKind receipt was claimed.

    Remaining admission boundaries / next exact work

    • R04: independently authorize/test a trusted Actions durable CAS writer and branch/credential trust; real lease contention, stale-run resume and unknown write reconciliation without privilege widening. The isolated Chat CAS is a safe capability probe only; publisher token must never be repurposed.
    • R05: 17 authenticated remote GETs PASS but real remote Workflow/Windows initiation, persisted cross-run checkpoint, missing-event timeout and failure terminal proof PENDING. Explore central single-run reusable matrix/needs as alternative to cross-repo dispatch; no long workflow_run chains or GITHUB_TOKEN event assumptions.
    • R06→R12 stay gated: new original central scan ZIP + exact local sourceKind/17 raw preflight receipts, orafce pilot, independent OIDC/Sigstore dual audits, guarded Publisher/Catalog/feed/Website. PUBLISH_DENY, create-only and live token revocation/401 unaffected. No publication approval implied. [P0][PUBLISH PATH] Chat更新・適格な正式Release→Catalog/Website連結(既存安全ゲート維持) #75 remains OPEN; [P2][OPTIONAL FEATURE] オンライン/オフライン配布CLI・バンドル共通基盤 #112 offline CLI separate.

    This checkpoint is new measured R04 partial + R05 bounded read-only subproof, not R04/R05 full PASS.

  7. ShutenOishi commented on Oct 28, 2026

    @ShutenOishi
    ContributorAuthor

    2026-10-29 JST — R04 recovery hardening + original Windows R05 controlled-negative acceptance (NO RELEASE)

    Authenticated current build/main = a0cf784edf3cea11df9d925a605a78177c46f9c8, protected=true. This ledger extends #6475528265; it does not revise R01–R03 or the already accepted R05 17/17 remote GET evidence. #311 R04/R05 remain PARTIAL, R06–R12 unaccepted.

    Protected exact-head implementation and original CI

    PR Scope Required App15368 original resolver protected expected-head merge postmerge
    #318 Read-only R04 ambiguous lease reconciliation; Windows R05 two-target negative fixture 40771670177 SUCCESS 9942a056ea293c0b120d45a557c4f6c8348ab692 40771820388 SUCCESS
    #319 Correct immutable Git blob byte read across Windows CRLF and cross-host ZIP bearer redirect 40772124088 SUCCESS a0cf784edf3cea11df9d925a605a78177c46f9c8 40772260647 SUCCESS

    Both PRs merged to protected main with exact expected HEAD after actual original App15368 required CI. No successful workflow reruns.

    R04 specific progress and still missing

    • scripts/issue311-state-github.py now offers an independently READ-ONLY reconciliation of an ambiguous lease PUT using an authoritative GET: exact current intended state => COMMITTED; old unchanged => UNRESOLVED (no retry entitlement); changed state => CONFLICT; GET error => UnknownWriteOutcome/QUARANTINE. Real adapter remains INERT. Hostile tests added and required CI PASS.
    • The isolated Chat connector CAS proof and previous HTTP409 remain accepted as previously recorded; they are not Actions credential scope.
    • New authenticated GET refs/heads/issue311-state was 404. No production state branch/approved Actions Writer exists; branch-admin effective rules remain UNKNOWN (prior 403). No Actions contents:write, token, App, Secret, unprotected branch workaround or permission widening added. R04 full Actions Writer / protected CAS / lease across runs / crash resume NOT accepted.

    R05 genuine original Windows NEGATIVE, failures preserved

    • Original Run40771820478, request r-20261029-r05winnegative01, real push/attempt1, ended FAILURE. Windows checkout worktree line-ending transformation made raw request SHA256 differ from immutable Git bytes, both Windows child jobs safely rejected. Initial aggregator hit HTTP401 on cross-host ZIP redirect with inherited bearer. These are preserved as original failures; NOT rerun, waived or called controlled acceptance.
    • Protected fix fix(issue311): preserve immutable request bytes on Windows and safe artifact redirect (NO RELEASE) #319 introduced new immutable request r-20261029-r05winnegative02; the Windows runner hashes git show HEAD:<path> immutable blob bytes (with HEAD == actual GITHUB_SHA), and artifact download strips GitHub Authorization on cross-host redirect. Regression tests now cover both defects.
    • New genuine Run40772260487: exact protected main a0cf784e..., event=push, attempt1, actor ShutenOishi. Original admit SUCCESS; actual windows-latest job pgextwin/orafce SUCCESS after exact protected main GET e96941dd3ec09f88011feb1165a3f6f83231460f; actual Windows pgextwin/pg_ivm GET 6e3904af78cccbd67ce84eef183ceda9f4eef553 independently verified remoteVerified=true before an intentionally injected child FAILURE. always() aggregator independently fetched original ZIPs, hashed the actual outer bytes and returned terminal FAILED, controlledNegativeProved=true, persistenceAccepted=false, publishAuthorized=false. Run overall FAILURE by design; never represent it as workflow success. Original request SHA256: 2be265ce6f2e93ed0593fbe90725025719d65bd50a306a073df265287f60ac27.
    • Independently re-downloaded all 3/3 original ZIPs through authenticated GitHub artifact access and calculated actual outer SHA256, matching artifact metadata and the original aggregator ledger:
      • orafce Artifact 12853566086, 417-byte ZIP SHA256 5431ba01f72bd10da1303b9ca3b377d62bd3178eef243ea3e6b3ae8336c9b7f9;
      • pg_ivm Artifact 12852248618, 505-byte ZIP SHA256 814c5696e8e6c6b5c4950688de30ea09676965323108cfc57a2932132666dc76;
      • terminal Artifact 12853446033, 525-byte ZIP SHA256 1c09f10f79d87565922d619b07b25600f7b556aa4b4c4e3fa827aef70d5b4888.
        Each original ZIP had exactly one parsed JSON bound to requestId/runId/attempt and proper true Windows evidence; terminal contains exact original child ZIP hashes and controlledNegativeProved=true.

    Boundaries and next

    R05 real two-repository Windows GET and actual controlled failure/skip-safe terminal are a NEW SUBPROOF, NOT R05 end-to-end. No remote Windows Workflow dispatch, build/signing, cross-run persisted checkpoint, missing-event timeout recovery or original R06/R07 new-mode 17/17 typed admission. Current local windows.yml (at least orafce/pg_ivm) is NOT workflow_call; central direct cross-repo reuse is not yet a proven ready-made replacement for authorized remote build initiation.

    Next: (1) independently establish an approved narrow Actions state Writer and protected CAS ref, or exact BLOCKED_APPROVAL contract if permission unavailable; test real lease contention/unknown-write read reconciliation across stopped runs; (2) implement least-authority, bounded Windows workflow initiation, durable final assembly, missing-event/timeout/429/5xx failure terminal; (3) R06 new central scan and R07 1→17 authentic typed receipts only after matching prerequisites. Old 13/17 and R05 17 READONLY GET do not count toward R07. No cron/ChatGPT scheduled tasks, dispatch, unpublished credentials, PUBLISH_DENY bypass, tag/Release, Catalog write or successful CI rerun. #311/#75 remain OPEN.

  8. ShutenOishi commented on Oct 28, 2026

    @ShutenOishi
    ContributorAuthor

    2026-10-29 JST — authenticated continuation: explicit R04/R05 BLOCKED_APPROVAL boundary (NO RELEASE)

    Continuation of #6481164173; no successful stage rerun. Latest authenticated GET confirms protected build/main a0cf784edf3cea11df9d925a605a78177c46f9c8; production git/ref/heads/issue311-state returns 404; branches/main/protection returns 403 Resource not accessible by integration. Open central PRs are unrelated dependency PRs #309/#180; no existing R04 writer implementation PR was found.

    Terminal of this continuation, not completion of #311

    BLOCKED_APPROVAL / R04_ACTIONS_STATE_WRITER_NOT_ESTABLISHED. This is an evidence/authority stop, not a GitHub automatic approval rejection. No new execution request was admitted, no runtime terminal checkpoint exists, and this Issue comment is NOT a CAS root. R01–R03 remain DONE, R04/R05 PARTIAL, R06–R12 NOT ACCEPTED. Prior original Run40772260487 remains FAILURE by design, with previously accepted original 3/3 ZIP hashes; no redownload or rerun was needed.

    Current protected ADR docs/adr-0311-event-driven-request-v1.md requires an independently authorized durable writer and verified protected state-ref trust; it explicitly says to report BLOCKED_APPROVAL when that cannot be established under existing authority. Current state adapter is inert; existing R05 jobs grant contents:read, not an Actions state writer. Chat connector Contents write does not establish an Actions token capability. The instruction to continue approved writer work does not identify an existing approved credential/protected-ref policy and does not override the explicit prohibition on unauthorized privilege expansion.

    Concrete minimum unblock contract (proposal only; NOTHING granted)

    1. Designate the already-approved state-writer identity and authoritative policy/approval evidence, including exact repository/ref scope. If none exists, separately approve its establishment. Do not reuse Publisher/Catalog credentials or export the Chat connector credential.
    2. Establish pgextwin/build:refs/heads/issue311-state as the independently trusted checkpoint root, with effective rules/actor restrictions independently evidenced. Required data scope: checkpoints/<validated-requestId>.json; approved immutable protected-main writer code only. GitHub contents permission is repository-level: claiming it is natively path-scoped would be false. A plain unprotected branch plus concurrency group is not an acceptable substitute; a writer needing a protection bypass requires an explicit, separately reviewed decision.
    3. Minimum requested runtime operations are authenticated checkpoint GET and SHA-CAS create/update on that designated state root, finite lifetime/lease, durable receipt and quarantine on ambiguous response. No general workflow/Release/tag/Catalog write. Production request admission remains disabled until identity/rule evidence is independently verified.
    4. Administrative verification, if needed, is limited to https://github.com/pgextwin/build/settings/rules and https://github.com/pgextwin/build/settings/branches plus the designated writer's approved settings. Capture effective ref rules and actor/credential capability without exposing keys/tokens. Do not relax main/required CI, add cron, grant Publisher authority, or silently install an App/Secret. Existing connector cannot verify the administration endpoint (403); no browser/admin change was attempted.

    Exact resume and acceptance sequence

    After the above authority/trust evidence exists: implement a fixed-scope nonpublishing writer through a protected PR; verify original App15368 resolver on latest exact HEAD; protected expected-head merge and original postmerge. Use a NEW bounded proof request, preserving successful earlier evidence. Demonstrate two actual Actions owners contending for the same checkpoint (stale CAS fails), stop/restart across separate original runs, lease expiry with generation/fencing checks, independent ambiguous-write GET reconciliation, and reuse of successful stage receipts. Expired lease never permits retry of an uncertain privileged write. Until these pass, persistenceAccepted stays false.

    Only then R05: original orafce .github/workflows/windows.yml currently supports pull_request/push/workflow_dispatch, not workflow_call (blob 790bba7df9e48bb290597dfa4a02aa0ddec9e685). Do not pretend GET starts its Windows Workflow or assume central GITHUB_TOKEN can trigger remote CI. Select an approved existing initiation transport or introduce a separately reviewed nonpublishing reusable interface; pin immutable source and bind request/main/run/attempt. Define bounded queue/event deadline, finite 429/5xx read retries, failed/skipped child final aggregation, and persist FAILED/QUARANTINED with resume pointer for absent event or uncertain initiation. Whole-run cancellation needs a separately proven already-authorized recovery event; an always() job alone cannot guarantee it. No manual dispatch, long workflow_run chain, cron or periodic Chat fallback.

    No implementation PR/CI was created merely to repeat an already-proven read-only subproof or install an unauthorized writer. PUBLISH_DENY, original evidence, existing releases, all public gates and #112 ownership remain unchanged. #311/#75 stay OPEN.

  9. ShutenOishi commented on Oct 28, 2026

    @ShutenOishi
    ContributorAuthor

    2026-10-29 JST — authenticated state-root / existing Writer authority recheck (NO RELEASE)

    Continuation of #6481514824 and parent #6481519344. New authenticated GitHub GET, not a CI rerun.

    Evidence Current observation
    git/ref/heads/main, branches/main a0cf784edf3cea11df9d925a605a78177c46f9c8; protected=true; branch response exposes required resolver App15368, enforcement everyone
    git/ref/heads/issue311-state 404 Not Found
    branches/issue311-state/protection 403 Resource not accessible by integration; effective state-root protection/actor authority UNKNOWN
    rulesets?includes_parents=true successful GET returned []; this does not prove classic protection or authorize a writer
    Open PRs only unrelated #309 and #180; no state Writer implementation/authorization PR
    #311 comments / #75 comments since prior checkpoint no newer approval evidence observed before this record
    Exact-main recursive tree + all 27 workflow sources no workflow references issue311-state; #311 R02/R05 workflows retain contents:read. Existing contents:write jobs concern candidate/promotion; Publisher/Catalog credential references are purpose-specific and are NOT state Writer authority
    State adapter blob 76ffba94b84e64aee2d1f2cb33da7930f90af771, still dependency-injected/inert; no new runtime credential or protected-ref trust evidence

    BLOCKED_APPROVAL / R04_ACTIONS_STATE_WRITER_NOT_ESTABLISHED remains. Existing connector App permission metadata is not proof of an approved Actions checkpoint writer. No protected state root, designated existing approved runtime Writer identity/scope, or independent effective actor-policy evidence was established. This is an authority/evidence stop, not an automatic approval rejection. No production request admitted; this comment is not a durable runtime checkpoint.

    R01–R03 DONE; R04/R05 PARTIAL; R06–R12 NOT ACCEPTED. Previous successful receipts and accepted original ZIP hashes are reused; original Run40772260487 remains FAILURE by design. No successful CI rerun, implementation PR, workflow execution, state-ref creation, permission expansion, credential reuse, cron/recurring Chat, Release/tag/Catalog write or PUBLISH_DENY bypass.

    Resume only when authoritative evidence identifies the approved Writer and exact repo/ref scope plus effective protected state-ref actor rules and runtime capability (without exposing credentials). Then protected PR → exact-head App15368 required CI → expected-head merge → original postmerge → real Actions CAS contention/lease/fencing/stopped-run recovery and ambiguity reconciliation. Only after R04 acceptance proceed to approved real Windows workflow transport, bounded missing-event terminal and R06–R12. Both Issues remain OPEN.

  10. ShutenOishi commented on Oct 28, 2026

    @ShutenOishi
    ContributorAuthor

    2026-10-29 JST — R04 Writer承認対象 v1(提案のみ/未付与/NO RELEASE)

    照合と現在位置

    認証済みGETでmain=a0cf784edf3cea11df9d925a605a78177c46f9c8を再確認。#311/#75の取得したコメントと、build内のWriter関連Issue検索から、既存の承認済みActions state Writerを特定できなかった。既存ADR blob 7135cd0585642c35c41f43089549bfca86c77b8d は独立Writerの信頼・権限判断を要求する。前回Work UIのClassic main単独ルール/Installed Apps(Connector、Publisher)は歴史観測として再利用し、今回の新UI監査とは扱わない。

    R01–R03 DONE、R04/R05 PARTIAL、R06–R12未受入。以下は承認可能な設定案であり、承認済みWriterの実証ではない。設定・App・Secret・refは未作成。

    承認対象A:指定済みbuild state refを維持する最小App案

    項目 提案する具体値
    専用主体 organization所有の新規GitHub App、希望名 pgextwin-state-writer(名称可用性未確認)。App ID、installation ID、bot user IDは作成後の実値を採取・固定。既存Publisher/Catalog/Connectorを転用しない
    installation selected repositories = pgextwin/build 1件のみ
    App permissions Repository Contents: read/write、Metadata: read(必須)。Actions/Workflows/Pull requests/Issues/Administration/organization permissionsを追加しない。Webhook受信・外部常駐サービスなし
    データroot pgextwin/build:refs/heads/issue311-state。アプリケーション上の許可パスは checkpoints/<validated-requestId>.json、必要な競合鍵は同じレコードに集約。複数ファイルの同時原子更新をContents API単体に仮定しない
    bootstrap 承認後に管理者が1回、workflowを含まないseed commitとrefを作成し、commit/tree SHAとactorを記録。最終保護の有効化・照合前はruntime admission停止。bootstrapの臨時例外は除去
    資格情報 新規Environment issue311-state-writer に専用App private keyを隔離。IDは非秘密変数、秘密鍵はEnvironment secretのみ。repo/org共用Secret・既存資格情報・長寿命PATは使わない
    Environment Selected branchesのbranch main のみ(tag許可なし)。新規の毎回手動承認は設けず、保護mainで承認済みのコードを信頼境界とする。Environmentはworkflow単位の隔離ではなく、そのEnvironmentを参照できるmainコード全体が信頼範囲となる
    実行 protected mainの固定workflow/scriptのみ。PR/forkコード・未検証artifactを実行しない。mint jobを最小化し、installation tokenをbuild/署名/Publisher/Windows子jobへ渡さない。checkoutへのcredential永続化なし
    token 発行時にrepositoryをbuildに明示限定、permissionsをContents writeに明示限定。GitHub標準installation tokenは最大約1時間であり、任意の短いTTLを設定できるとは主張しない。writer jobは10分上限、終了時失効を試み、同一tokenの401確認を記録。強制停止時は即失効を保証せず標準期限までの残存リスクを記録

    state refの実効ルール案(追加の限定bypass判断を含む)

    1. Active ruleset issue311-state-actor、対象は正確に refs/heads/issue311-state のみ。Restrict creations / Restrict updatesを設定。bypassは上記新Appのみ・Always allow。runtime CASの直接更新のための明示的な例外で、mainや他のrefには適用しない。
    2. 別Active ruleset issue311-state-integrity、同じexact ref。Restrict deletions / Block force pushes、bypassなし。actor rulesetの例外でこの別rulesetまで回避できるとは扱わない。
    3. mainのClassic保護・resolver/App15368・既存全保護は維持。新Appにmain bypassを付けない。管理者が設定を変更可能なことは残存管理権限として明記。
    4. 設定後に親を含むルールとactor ID・effective ref評価を独立採取。正当Appのfast-forward checkpoint CASを正例、既存の許可された非Writer試験主体のstate更新拒否を否定例として実測する。削除/force否定試験は本番台帳を破壊しない方法を別途審査し、設定表示だけで実測PASSにしない。

    必ず承認判断に含める残存リスク

    Contents writeはrepoレベルであり、ref/path/API操作別にネイティブ限定できない。buildのRelease/tagや他ブランチ操作のAPI能力も含まれる。 上記のルール・固定コード・Environmentはstateの信頼を制限するが、漏えいしたtokenからbuildのRelease API能力を消す仕組みではない。PUBLISH_DENYは運用とコードの禁止であり、API能力の不存在ではない。この残存能力を受け入れない場合は案Aを承認せず、専用state repositoryにinstallationを隔離する別案を設計し、root変更のADRを別途審査する。拡張17repo・Catalog・Websiteへのinstallationは案Aに含まない。

    Work実施範囲と完了条件

    承認後のみ、専用App登録・build限定installation・上記2 ruleset・専用Environmentを設定する。秘密鍵の生成・入力は安全な資格情報フロー/必要ならユーザー操作で扱い、Chat・Issue・ログ・artifactに秘密値を出さない。実ID、installation対象一覧、permission一覧、Environment branch policy、ruleset ID/対象/例外/有効状態、seed SHAを非秘密証跡として保存する。想定外の課金・追加権限・main保護変更が必要なら停止する。今回これらの設定操作は未実施。

    承認後の順番(承認だけでR04 PASSにしない)

    設定・主体・scopeの証跡成立 → 固定scope Writerの保護実装PR → 最新exact HEADのApp15368必須CI → expected-head保護merge → original postmerge → 新規の有界非公開proof要求で実Actions CAS競合・stale拒否、lease期限/fencing、別run停止復旧、曖昧writeの独立GET照合、成功済みreceipt再利用を証明。read-only retry最大3回、job上限10分、lease120秒を初期設計値としてコード審査し、期限切れを特権writeの無条件retry許可にしない。異なる要求間の候補競合を1 checkpoint単位に閉じられない場合は、原子的なglobal index/transaction設計を先に審査する。

    R04受入後のみR05実Windows transport・有界イベント欠落終端へ進む。always()だけでwhole-run取消復旧を保証しない。R06–R12は依存成立後。成功工程の調査rerun、cron/定期Chat、Release/tag/Catalog操作なし、PUBLISH_DENY維持。

    承認文(未承認)

    「R04 Writer承認対象A v1を承認する。専用Appのbuild限定Contents writeに含まれるrepoレベルの残存能力、state exact-refのactor rulesetに限るApp bypass、専用main限定Environmentの信頼範囲を理解した上で、記載した設定と非公開受入実証を許可する。公開操作・Publisher/Catalog転用は許可しない。」

    根拠となるGitHub公式仕様:

  11. ShutenOishi commented on Oct 28, 2026

    @ShutenOishi
    ContributorAuthor

    2026-10-29 JST — 承認案A v1のユーザー承認受領/共通化方針(NO RELEASE)

    ユーザーが本Chatで「全体を共通化しつつ承認案Aを承認」と明示。対象は #6482026029 の案A v1。後続の貼付引継ぎ内の「未承認」は以前の状態記述であり、この新しい承認で更新する。build限定Contents writeの残存API能力、state exact-ref限定App例外、main限定Environment信頼範囲を含む案Aへの承認として記録する。承認は実主体作成・実認証・R04受入とは別。

    共通化はbuild中央のstate adapter/厳格schema/CAS・lease・fencing/曖昧write照合/receipt契約とテストを共有する方針。17拡張ごとに資格情報やWriter実装を複製せず、承認された固定中央コードへ集約する。『全体を共通化』はinstallationを17repo/Catalog/Websiteへ拡大する承認ではない。候補横断競合はrequest別ファイルの個別CASだけで安全と断定せず、global indexの同一commit/ref transaction等の原子性を実装前に審査する。

    新規認証済みGETでmain=a0cf784edf3cea11df9d925a605a78177c46f9c8を確認。Workで組織所有App一覧を新規確認:catalog-dispatcher、catalog-proposer、classic-protection-audit、publisher。state-writerは一覧になし。New GitHub App操作で https://github.com/organizations/pgextwin/settings/apps/new に到達したが、GitHub sudo再認証が必要。安全なbrowserAuth経由でユーザーがGitHub Mobileを選択し、現在端末側承認待ち。認証情報・秘密値は取得していない。

    今回この記録時点ではApp登録、installation、Secret、Environment、ruleset、state-ref作成は未実施。次は再認証成立を新規画面で検証し、案Aの設定を具体化して実施する。ブラウザーが実行時確認を要求するsecurity-sensitive変更は、その最終操作の具体的内容で扱う。秘密鍵入力等がユーザー操作必須なら、他の実施可能な準備を完了して最小限の引継ぎにする。

    R01–R03 DONE、R04/R05 PARTIAL、R06–R12未受入。停止理由は承認未受領から『SETUP_PENDING / GitHub sudo device verification』へ進展したが、R04実行ゲートは未解除。成功工程再実行・cron/定期Chat・公開操作なし。PUBLISH_DENY維持。主体/scope/実効ルール証跡成立後のみ保護PR→exact-head App15368必須CI→保護merge→original postmerge→R04実Actions証明→R05→R06〜R12。

  12. ShutenOishi commented on Oct 28, 2026

    @ShutenOishi
    ContributorAuthor

    2026-10-29 JST — GitHub sudo再認証成功をWorkのCreate GitHub App画面で確認。新規Appフォームをpgextwin-state-writer、Homepage=#311、Contents read/write + mandatory Metadata read、Webhook inactive、Only this account=pgextwinで入力済み。その他permissionは追加せず、未送信。App/installation/Secret/Environment/ruleset/refは未作成。案Aの承認は受領済みだが、ブラウザーのsecurity-sensitive access変更に対する実行時確認規則に従い、Create/installation/build限定権限付与/state exact-ref限定例外の最終実行確認待ち。これは自動承認レビュー拒否でも案A承認の撤回でもない。共通実装は中央集約、build以外のinstallationなし。R04/R05 PARTIAL、PUBLISH_DENY維持。

  13. ShutenOishi commented on Oct 28, 2026

    @ShutenOishi
    ContributorAuthor

    2026-10-29 JST — 承認案Aの実設定開始:App登録・main限定Environment作成成功(NO RELEASE)

    ユーザーの『まとめて送信して』という実行時確認を受領し、Workから登録を送信。GitHubはRegistration successfulを表示。

    • organization-owned App: pgextwin-state-writer、App ID 5517840、Client ID Iv23liW538PyWUAlkZ8M(公開識別子)。設定 https://github.com/organizations/pgextwin/settings/apps/pgextwin-state-writer
    • 登録フォームはContents read/write + mandatory Metadata readのみ、Webhook inactive、Only this account=pgextwin。既存Publisher/Catalog/Connector資格情報転用なし。
    • Environment issue311-state-writer, ID 25626604517 作成成功。Selected branches and tags、branch main の1件、0 tags。GitHubの保存成功表示を確認。Required reviewers/wait timerなし。既定のadministrator environment bypassは表示上ON(main branch policyの不存在と混同しない。secret投入前に最終設定照合)。Secret/variablesは0。
    • Environment URL: https://github.com/pgextwin/build/settings/environments/25626604517/edit

    新規App画面は『private key生成がinstallation前に必要』と表示。Key pairs画面は0/You have no key pairs。鍵生成・入力はブラウザーの認証資格情報変更に対する本人操作必須規則に従ってユーザー操作に引継ぐ。秘密鍵を生成・読取・保存・公開していない。鍵画面 https://github.com/organizations/pgextwin/settings/apps/pgextwin-state-writer/key_pairs

    未成立: installation ID/build限定selected-repo実証、bot ID、秘密鍵Environment格納、state ref bootstrap、actor/integrity ruleset、runtime token/実CAS/lease/停止復旧。App登録成功をruntime認証・R04受入に読み替えない。

    次: 本人が鍵を安全に生成し、専用Environment secret STATE_WRITER_PRIVATE_KEYへ入力(Chat/Issueへ貼らない)。既存鍵転用・OAuth client secret追加不要。その後buildのみinstallation→実ID/scope→state exact-ref 2 ruleset/seed→証跡成立後保護PR/最新head App15368必須CI/安全merge/original postmerge→R04実証→R05→R06〜R12。

    R01–R03 DONE、R04/R05 PARTIAL、PUBLISH_DENY維持。コード/成功CI再実行/cron/公開操作/main保護変更なし。共通化は中央実装、build以外へのinstallation拡張なし。

  14. ShutenOishi commented on Oct 28, 2026

    @ShutenOishi
    ContributorAuthor

    2026-10-29 JST — 専用Writer installation成立、GUI停止で保護設定は未成立(NO RELEASE)

    ユーザーの秘密鍵登録完了報告を受け、新規reloadで存在だけ確認。秘密値は表示・編集・取得していない。

    成立した非秘密設定証跡

    • App pgextwin-state-writer ID 5517840、鍵ペア1件。UI key ID5079882、fingerprint SHA256:2pQ6iHiHWnKcLxEyvtrgQHtE3HD2T2kaqQCGqGi55lc=、added by ShutenOishi。fingerprintは公開鍵識別用で秘密鍵ではない。
    • build Environment issue311-state-writer ID25626604517に STATE_WRITER_PRIVATE_KEY のsecret名を確認。値の正しさ・App鍵との一致はruntime未検証。branch main 1件/tag0、reviewer/waitなし、admin environment bypass ONを再確認。
    • 専用Appをpgextwinへinstallation成功。GitHubの成功表示と設定ページで Only select repositories / Selected 1 repository / pgextwin/build (repo ID1405931353) を確認。Metadata read、code read/writeのみ表示。
    • installation ID176347451。設定URL https://github.com/organizations/pgextwin/settings/installations/176347451
    • 他repo、Publisher/Catalog/Connector資格情報、main保護には変更なし。共通化は中央Writer実装、installation範囲はbuildのみ。

    今回の具体的な阻害

    次に https://github.com/pgextwin/build/settings/rules を開くブラウザー呼出しが300秒timeout。規定のbrowser-troubleshooting文書を読む復旧呼出しも300秒timeoutとなり、現在browser runtimeが利用不能。GitHubのbot検知・認証失敗・自動承認レビュー拒否と断定しない。新規ルールフォームの入力/保存操作はしていない。成功画面の画像保存もこの停止により未取得(AXによる成功観測は上記)。ユーザーに案A承認や鍵登録の再実施を求めない。

    ブラウザー停止後に独立した認証済みAPI GETで:

    • main a0cf784
    • rulesets?includes_parents=true []
    • git/ref/heads/issue311-state 404
      を再確認。したがって保護state root信頼・runtime token・R04実CASを成立扱いにしない。

    再開時の残作業(承認済み案Aを維持)

    1. GUI再利用可能時、既存App/installation/secret名/main限定Environmentの非秘密状態を照合。Appや鍵を重複生成しない。非秘密のApp ID/installation IDを固定設定へ結合。
    2. workflowを含まないstate seed commit/refを承認済みbootstrapとして作成し、actor/commit/tree SHA保存。信頼根の固定前はruntime admission無効。
    3. Active issue311-state-actor: exact include refs/heads/issue311-state、rules creation, update、bypass actor Integration 5517840 / always(installation IDと取り違えない)。main等へ拡張しない。
    4. 別Active issue311-state-integrity: exact同ref、rules deletion, non_fast_forward、bypass空。actor用例外がintegrityを迂回しないことを検証。
    5. 親を含むeffective rule/ID/actor例外を独立取得。App bot ID、実トークンscope、鍵一致はruntime実証が必要。設定表示だけを実認証正例にしない。
    6. 前提成立後のみ共通Writerの保護実装PR→最新exact head App15368必須CI→安全merge→original postmerge→新規有界非公開proofで実Actions CAS競合/stale拒否、lease120秒/fencing、停止別run復旧、曖昧write独立GET照合、同token revoke/401、成功receipt再利用。複数request候補競合を単一global ledger/transactionで原子的に扱う設計を審査する。成功工程rerun禁止。
    7. R04全体受入後にR05実Windows workflow transportとイベント欠落終端、以後R06〜R12。

    今回全工程完了ではない。 R01–R03 DONE、R04/R05 PARTIAL、R06–R12未受入。現停止はSETUP_PENDING / BROWSER_RUNTIME_TIMEOUT。PUBLISH_DENY維持、実装PR/CI/dispatch/cron/Release/tag/Catalog writeなし。#311/#75 OPEN。

  15. ShutenOishi commented on Oct 28, 2026

    @ShutenOishi
    ContributorAuthor

    2026-10-29 JST — GUI復旧/state seedとexact-ref二重保護成立/非Writer拒否実測(NO RELEASE)

    前回#6482728149から継続。ブラウザーJS接続をresetして既存Chromeタブを再取得したところGUI復旧。App/installation/鍵は重複作成していない。ユーザー承認案A・設定一括送信確認の範囲内で以下を実施。

    Bootstrap(runtime無効)

    • state ref: refs/heads/issue311-state
    • seed commit 0d0a8ed
    • seed tree bb48b8c49f191ddd1b8a87325fb53535a2c87100
    • parent protected-main a0cf784(main自体は更新していない)
    • treeはREADME.mdとcheckpoints/bootstrap.jsonのみ。workflow/実行コードなし。bootstrapにApp5517840、installation176347451、runtimeAdmission=false/publishAuthorized=falseを固定。
    • bootstrap操作は既存Chat接続を用いた承認済み1回限りの初期化であり、Actions Writerの実認証正例ではない。credentialを取得/転用していない。

    保存済みActiveルールを認証済みGETで独立照合

    ID/name exact include rules bypass
    26084063 issue311-state-actor refs/heads/issue311-state(excludeなし) creation, update Integration 5517840 / always の1件のみ
    26084017 issue311-state-integrity refs/heads/issue311-state(excludeなし) deletion, non_fast_forward 空

    両rulesetともcurrent_user_can_bypass=never。mainの既存Classic保護・resolver/App15368は変更していない。rulesets?includes_parents=trueにはこの2件を確認。
    個別原本GET:
    https://api.github.com/repos/pgextwin/build/rulesets/26084063
    https://api.github.com/repos/pgextwin/build/rulesets/26084017

    effective rules専用 /rules/branches/issue311-state はconnectorの許可URL外(HTTP400 INVALID_ARGUMENT)で取得不可。これを空ルールと扱わない。個別ルールのexact対象と実否定試験を証拠とし、専用Appの正例はまだ別途必要。

    実否定試験(非Writer)

    seedと同じtreeの子commit 3e4de92 を作成し、既存Chat接続からstate refにexpected seed SHA付き・force=falseのfast-forward更新を1回試行。
    GitHub GraphQL UNPROCESSABLEで Cannot update this protected ref と拒否。
    独立GETでrefはseed 0d0a8ed のまま。再試行/例外追加なし。非Writerによる更新拒否の実測が成立。削除/forceは実操作していない(設定証拠のみ)。

    次の実装境界

    App主体/installation scopeとstate-ref設定・非Writer拒否まで進展した。専用Appの鍵一致・mint token・書込正例・revoke/401・CAS/lease・停止復旧はNOT_PROVEN。R04全体をPASSにしない。
    次は既存state adapterを調査して、App5517840/installation176347451/seedとルールIDを固定した非公開のruntime proofと共通Writer実装を準備。実装保護PR→exact-head App15368必須CI→安全merge→original postmergeから、承認済み固定mainコードで初めて鍵一致/実token正例を検証する。proof requestの運用state保存権限と公開Publisher権限を分け、AUDIT_ONLYから汎用候補/公開Writerを起動しない。lease期限切れは未知writeの再試行許可ではない。複数要求の候補競合はglobal ledgerの原子的CAS設計を先に確定。

    R04受入後のみR05実Windows連携・イベント欠落終端→R06〜R12。R01–R03 DONE、R04/R05 PARTIAL維持。PUBLISH_DENY、原本、成功工程再実行禁止、cron/定期Chat禁止、build限定installation維持。#311/#75 OPEN。

  16. 199 remaining items

  17. ShutenOishi commented on Nov 2, 2026

    @ShutenOishi
    ContributorAuthor

    2026-11-02 Chat update continuation: genuine UPDATE_PRESENT handling fixed, fresh one-shot source

    • original PR#511 17 protected source scan 41370519208 SUCCESS, genuine 17 App child original 41370589063 SUCCESS, but downstream CAS 41370838703 FAIL_CLOSED: R06_APP_CAS_DENY unaccepted 17-App local terminal child. Real upstream version hypopg 1.4.5 yields lawful UPDATE_PRESENT_NOT_AUTHORIZED outcome, which coordinator accepted but terminal CAS incorrectly required all 17 NO_UPDATE. Finite original watchdog 41370519124 independently wrote durable QUARANTINED revision2 state and revoked same token HTTP401. Old failed run/state are IMMUTABLE and not replayed.
    • Fix PR#512 protected merge new main b8463adc1e623ab852d0816ae489adfd69ed5ae1, App15368 mandatory resolver 41371311269 SUCCESS, source-bound original child result strict matching NO_UPDATE/UPDATE_PRESENT_NOT_AUTHORIZED; if updates detected store nonpublishing SUCCESS (not fake NO_UPDATE), retain detected repo list and independent keyless reader exact binding, all publisher grants false, hostile tests incl spoofing successful.
    • First post-fix new request PR#513 protected merge 9778fbd9c96f932ac6d73fe93d9df4d0eb690325 with App15368 CI 41371516220 SUCCESS, but new request targets had an unwanted diagnostic protected field; original scan 41371642735 strictly schema FAILED and 17 App never dispatched. Failed one-shot remains preserved; no retry/rerun or forged evidence.
    • Corrected NEW immutable request r-20261102-r06preparechatupdate03 in PR#514, targets exact schema {repo,mainSha} for each 17 independently verified protected heads; source main 9778fbd9c96f932ac6d73fe93d9df4d0eb690325. App15368 CI 41371797210 SUCCESS, protected squash merge new main 3593a5d75a21bdd47e84b76a162b6f6ed18c6b0c. New genuine central scan 41371898195 SUCCESS, postmerge Validate 41371898175 SUCCESS. Authentic 17-child 41371947491 and independent guarded watchdog 41371898178 IN_PROGRESS at this comment, subsequent CAS/readback not yet verified. Never count as signed Release or full completed acceptance until actual terminal proof.
    • Actual public signed official pgextwin releases remain at existing 17/17 version; hypopg#57 native PR action_required and plpgsql_check#78 manual signed publication remain distinct candidate-specific release gates. Both source-specific issues updated; never bypass App15368, PUBLISH_DENY, runtimeEnabled=false, signature/Attestation, previous quarantine or removed schedule gates.

    Next: inspect actual completion 41371947491 then new CAS workflow_run and original independent separate Runner readback. If CAS fail, record exact failure and do not claim readback. Formal Release separate.

  18. ShutenOishi commented on Nov 2, 2026

    @ShutenOishi
    ContributorAuthor

    2026-11-02 JST — pgextwin Chat update: NEW 17-extension PREPARE + genuine independent CAS/keyless readback VERIFIED (no formal release).

    New one-shot request r-20261102-r06preparechatupdate03, build PR#514 protected + App15368 required CI Run41371797210 SUCCESS; merged protected main 3593a5d. Real update-present status handling fix PR#512 protected+CI success. No safety policy changes.

    Genuine central original 17-source scan Run41371898195 SUCCESS original ZIP artifact13110195239 sha256:923f37ff30dde687fcd4798ff6f1c51248b2ceb48ff0f24ac21cf7cdccf8b09f.

    Genuine scoped App 17 local original child verify Run41371947491 SUCCESS, 17 original ZIP receipts verified, source artifact13109328296 sha256:9314bf5b1e70bb4bcd285bb1bda8bd5ad4589f26950705a9bdc95c6f20d53b4e.

    Genuine State Writer CAS terminal Run41372172432 SUCCESS with exact log: ISSUE311_APP_CAS_TERMINAL {publisherAuthorized:false,reason:'',result:'UPDATE_PRESENT_17_APP_CAS_DURABLE_READBACK_PENDING',targetCount:17}. Proof artifact13110185842 sha256:a9dc335d234d8278429fff25b3ad40cfc01e0684f17f9fbe5cad89e6b30a0f63.

    Independent separate key-free Runner in same Run41372172432 SUCCESS, exact log: ISSUE311_APP_CAS_INDEPENDENT_READBACK ORIGINAL_17_GET_CAS_READBACK_DENIAL_PASS; output artifact13110280531 sha256:e35e2f9fcd7dec4231fb1819ee473d96d51dc0ff289fdc5ad4bbaad34461b092. App token revocation/replay DENY gates preserved. Protected postmerge Validate Run41371898175 SUCCESS. Finite independent watchdog Run41371898178 is IN_PROGRESS when this evidence was captured; never claim its success before terminal check.

    Prior authentic request r-20261102-r06preparechatupdate01: scan/17 local source succeeded but CAS rejected real update-present, watchdog quarantined real failed state; never replay it. Following request02 had malformed target key and was strictly schema-rejected; no App originals dispatched. Genuine fresh request03 fixed both; no past successful Runs rerun.

    Critical distinction: this COMPLETES NONPUBLISHING 17 PREPARE/State CAS/key-free readback, NOT a new signed formal Release. Public release 17/17 unchanged; historical formal 85/94 unchanged. hypopg 1.4.5 candidate PR pgextwin/hypopg#57 remains draft, original required native pull_request Run41326133217 action_required, only dispatch Run41326131241 passed. plpgsql_check 2.10.16 is merged in main but formal manual-only signed Release/PUBLISH gate not yet satisfied; public v2.10.15-windows.1. No unsafe merge/publish, old schedule retirement, branch protection waiver, or publication grant.

    NEXT: native GitHub UI approve-and-run of hypopg PR#57 existing PR head if authorized, wait required CI, then protected merge/signed candidate and official Publisher under policy. For plpgsql_check check candidate-specific original signed promotion input and operator-specific PUBLISH authorization; no generic Chat PREPARE substitution. Independently verify new published assets after legit Release.

  19. ShutenOishi commented on Nov 2, 2026

    @ShutenOishi
    ContributorAuthor

    2026-11-02 Work-minimization audit: connected Chat GitHub actions can create branch/file/PR, mark Draft ready, review actual CI, protected expected-head merge, issue/evidence; connector does NOT expose approve workflow run or workflow_dispatch. Hypopg#57 marked READY_FOR_REVIEW by Chat; only PR Run41326133217 remains action_required as human GitHub UI gate. Existing central fleet + both local configs/release-promotion.json are releasePolicy=automatic-signed-schedule, so old manual-only promote.yml must NOT be blindly triggered by Work: legacy fleet-promotion-gate requires central/local manual-only and exact successful workflow_dispatch candidate run. plpgsql_check 2.10.16 head c83e03b... PR native CI Run40243414614 SUCCESS but only candidate workflow_dispatch 40227911216 FAILED on older head b3138e...; manual promote inputs not eligible. Prefer existing signed-schedule Publisher path after its valid evidence and gates, not a Work manual RELEASE bypass. Hypopg approval is the narrow only Work UI task today. No publication made, release safety unchanged; public versions still hypopg 1.4.4, plpgsql_check 2.10.15. Reference #501 for optional watchdog issue, not blocking signed-release work.

  20. ShutenOishi commented on Nov 2, 2026

    @ShutenOishi
    ContributorAuthor

    hypopg PR #57 — 指定Runの実行承認(2026-11-02 JST)

    依頼範囲はGitHub Actionsの実行承認と同一Run結果の記録のみ。

    • PR: chore: candidate hypopg 1.4.5 hypopg#57 (hypopg 1.4.5、Draft解除済み)
    • Run: https://github.com/pgextwin/hypopg/actions/runs/41326133217 (Windows CI/CD / windows.yml)
    • PR HEADおよびRun head_sha: a30dd0ccbc790c76079c5d4cc287c0ad42097003。期待HEADとの完全一致を認証済みGETで確認。
    • GitHub正規画面で「Status Action required」「This workflow is awaiting approval from a maintainer in Truthful compiler provenance for SQL-only extension packages #57」と「Approve and run」を確認。
    • 2026-11-02 11:43 JST、同画面の Approve and run のみ実施。承認待ちが解除され、同一Run IDのattempt 2がqueued → in_progressへ移行。GitHub画面では「Re-run triggered」と表示されるが、Re-run all jobsボタンやrerun APIは使用していない。承認前attempt 1はsuccessではなくaction_required。
    • 最終結果: 同一Run ID 41326133217 / attempt 2 = completed / SUCCESS(2026-11-02 11:48:55 JST、認証済みGETで確認)。HEADは期待値から不変。別Runの成功は代用していない。
    同一Runのジョブ Job ID 結果
    windows / Resolve extension and PostgreSQL matrix 125066053102 SUCCESS
    windows / PostgreSQL 15 / Windows x64 125066112517 SUCCESS
    windows / PostgreSQL 18 / Windows x64 125066112557 SUCCESS
    windows / PostgreSQL 17 / Windows x64 125066112562 SUCCESS
    windows / PostgreSQL 16 / Windows x64 125066112564 SUCCESS
    windows / PostgreSQL 14 / Windows x64 125066112621 SUCCESS
    Windows required summary 125067572400 SUCCESS
    Verify candidate Windows matrix and immutable artifacts 125067573342 SKIPPED

    候補成果物レポートのSKIPPEDをSUCCESSや成果物検証済みとは扱わない。今回の範囲では公開ZIP照合・署名公開・保護マージの判定は実施していない。

    通常Chatへの引き継ぎ: このコメントを正本として、最新のPR HEAD・必須チェック・既存公開認可条件を確認し、以降の保護マージ/postmerge/署名公開/公開ZIP照合を別工程で継続する。成功済みの本Runを再実行しない。

    ブランチ保護・必須CI・権限設定の変更なし。実装変更・PRマージ・Release・Catalog・Website変更なし。現行automatic-signed-scheduleを維持し、旧manual-only promote.ymlは起動していない。

  21. ShutenOishi commented on Nov 2, 2026

    @ShutenOishi
    ContributorAuthor

    hypopg 1.4.5 — 承認済み真正PR CIから保護マージ(2026-11-02 JST)

    Work承認の正本: #311 コメント 6567816099。

    • 対象: hypopg PR #57、bot-owned 1ファイル更新 (config/extension.json)、上流正式タグ1.4.5固定SHA 9ab5c4fd3701b14ca3c996da360bba9fa5e9b970。
    • 期待/実HEAD: a30dd0ccbc790c76079c5d4cc287c0ad42097003、真正 pull_request Run 41326133217 attempt2 SUCCESS、PG14–18各成功・required summary SUCCESS、candidate_report=SKIPPED(成功と誤認せず)。
    • 既存の同HEAD workflow_dispatch Run 41326131241 PG14–18 + candidate-audit SUCCESS。これを真正PR CIの代替にはしていない。
    • 原本PR HEAD lease付きで保護 squash MERGED、GitHubが merged_by=ShutenOishi を確認、現在の保護 hypopg/main=cea2745bb201b894da2eb3730771589e675e75fd。
    • 新しいmainの独立 postmerge Windows CI Run 41388390468 と、postmerge署名候補 Run 41388390506 はマージによって自動起動。現時点は実行中、SUCCESSは未主張。
    • 中央 automatic-signed-schedule + local automatic-signed-schedule、中央 UNATTENDED と専用Publisher ENFORCE 維持。既存の自動署名原本、別Runner監査、独立署名確認、正式Publisherを待ち、正式Release/公開ZIP/Signature/Attestation/Catalog/Websiteは未完了。旧 manual-only promoteは起動せず。
    • 成功済みRun再実行なし、保護・CI・権限緩和なし。別の古いCIの成功を正式受入に代用せず。

    次は自動postmergeの実結果を確認し、成功した真正署名原本だけを現行中央scheduled Publisherへ連結。正式Release生成後にRelease資産・SHA256/署名・Catalog/Websiteの公開証跡を独立GETで確認する。

  22. ShutenOishi commented on Nov 2, 2026

    @ShutenOishi
    ContributorAuthor

    hypopg 1.4.5 — postmerge・署名原本確認/正式Publisher未実行(2026-11-02 JST)

    正本: 前回監査 #311 コメント6569055540。最新の認証済みGitHub GET、Runジョブ/ログ、Release、Catalog、保護設定を確認。成功Runの再実行、Workflow dispatch、Publisher代行、保護設定変更、未認可Releaseはしていない。

    1. 今回成立した証跡(更新1.4.5 / PG14〜18)

    • hypopg PR#57 は期待HEAD a30dd0ccbc790c76079c5d4cc287c0ad42097003 から保護squashマージ済み。現 hypopg/main=cea2745bb201b894da2eb3730771589e675e75fd、保護維持。
    • 真正PR Run41326133217 attempt2 SUCCESSを既存原本として再利用(candidate_report=SKIPPEDはそのまま)。
    • postmerge Run41388390468 attempt1 は push/main・期待main SHAに一致し SUCCESS。PG14,15,16,17,18の5 Windows build/install/functional smoke/package/SPDX/Grypeが全成功、Windows required summary SUCCESS。postmerge通常Artifacts 5件を確認。候補専用jobのSKIPPEDは成功に置き換えない。
    • 真正署名候補 Run41388390506 attempt1 は同一main SHAの push 原本、SUCCESS。PG14〜18のWindows実ビルド・機能スモーク、Build Provenance Attestation/SBOM Attestationの生成と検証、署名候補Artifacts 5件が成功。元監査Job 125097830702 は VERIFIED_REAL_SIGNED_CANDIDATE_BUILD_ONLY; PUBLISH DENY、独立再検証Job 125098047994 は再取得した原本に対し INDEPENDENT_SIGSTORE_SECOND_OPINION_MATCH; PUBLISH DENY。署名候補ZIP/SPDX/Grypeの実バイト・Sigstore・Run/attempt突合はこの別Jobの検証成功証跡であり、正式Release資産のハッシュではない。
    • config/extension.json は upstream version/ref=1.4.5、上流固定commit=9ab5c4fd3701b14ca3c996da360bba9fa5e9b970、PG14〜18。

    2. 独立Publisherの現状(未成立)

    • 中央 build/main=3593a5d75a21bdd47e84b76a162b6f6ed18c6b0c は保護状態。中央Fleet・release-promotionおよびhypopg local release-promotionは全て automatic-signed-schedule。中央 UNATTENDED/既定DENY、専用Publisher App境界 ENFORCE を変更せず。
    • 最後に確認できた実 schedule Publisher Run41378368707 は 2026-11-02 02:33:30Z 起動。ログでは staticPublisherReady=true だが、当時は署名候補原本より前で NO_ORIGINAL_SIGNED_PUSH_ON_CURRENT_MAIN:17、has_candidates=0、独立実バイト検証/正式Publisherジョブは SKIPPED。これは正常なDENYで、1.4.5への出版実行や認可の証跡ではない。
    • 署名原本の独立監査完了は 2026-11-02 04:40:12Z。これ以降に起動した真正scheduled 独立Publisher は確認範囲の中央Run一覧に無く、1.4.5に対する独立 Publisher/Sigstore再照合、create-only Release認可・実行は 未確認/未完了。
    • 正式 v1.4.5-windows.1 Release/tagは現GitHub GETで存在せず、最新公開は v1.4.4-windows.1 (2026-10-26 20:34:56Z)、PG14〜18公開ZIP5件。したがって 1.4.5公開資産のSHA256/署名/Attestation照合は未実施。候補ArtifactsのSHA256を公開ZIPの検証結果に流用しない。
    • 現 catalog/main=edb355a78558aa0e848861de04ba6dd406117b18 の extensions/hypopg.json は upstream=1.4.4 / releaseTag=v1.4.4-windows.1。Website main=2eb3bd618f230cea424b99dac5148ca72d923cd7 は公開Catalogを参照。1.4.5 Catalog/Website更新未完了。既存1.4.4公開維持。

    3. 完了条件・次の最短工程(安全ゲート維持)

    1. 新しい真正 schedule event の独立中央 .github/workflows/publisher-candidate-intake.yml Runを認証済みGETで特定。1.4.5 signed original Run41388390506 attempt1・保護main・原本監査2系統・fresh ZIP/SPDX/Grype/Sigstore・タグ提案を、新しいRun自身の独立Runnerで確認。古いPublisher Runのsuccessを代用しない。
    2. 現行 automatic-signed-schedule と独立 scoped Publisher App のlive gateを満たしたcreate-only正式Release の成功原本を確認。未成立なら DENY 維持。手動only経路で迂回しない。
    3. その実際に公開された v1.4.5-windows.1 のPG14〜18 ZIP5件+SPDX/Grype+SHA256SUMSとAttestationをGitHub Release GET・実バイトSHA256・真正Sigstoreから独立検証。
    4. 実公開物に対応するCatalog hypopg一件PRの必須CI→保護マージ、その後Website JA/EN公開読み取り・実ダウンロードを確認して [P0][CHAT UPDATE] 1回の「pgextwinを更新して」→全拡張更新処理(公開版維持) #311 追記。無条件にCatalog/Websiteのversionを先上げしない。

    判定: PR保護マージ ✅ / main postmerge PG14〜18 ✅ / 候補の真正署名・独立監査 ✅ / 現行独立Publisherによる正式Release ❌未成立 / 公開SHA256・署名・Attestation ❌未実施 / Catalog・Website 1.4.5 ❌未反映。正式受入85/94など歴史台帳は変更なし。

  23. ShutenOishi commented on Nov 2, 2026

    @ShutenOishi
    ContributorAuthor

    hypopg 1.4.5 — owner release approval, scheduled Publisher catch-up protected change (2026-11-02 JST)

    Owner explicitly approved the minimum necessary processing through formal publication in Chat, subject to all existing hard gates. Signed original and earlier audit details: #311 comment6573532538.

    Actual changes made this turn

    1. build PR #515 only changes .github/workflows/publisher-candidate-intake.yml's genuine schedule from 15 * * * * to 15,30,45 * * * * to offer 3 genuine scheduling windows per hour. This does not add workflow_dispatch, force reruns, generate fake schedules or change any Publisher runtime admission, Sigstore verification, dedicated App/environment, create-only tag gate, local/central promotion policy or branch protection.
    2. Exact PR HEAD a80445c8328a6d56e5e3e79991ea74875f59793c; native PR validation Run41422680959 SUCCESS. Protected squash MERGED to build/main=2a4470d6e141ab772ddb7d293929a99448e7dad2. postmerge validation Run41422890519 SUCCESS.
    3. The automatic push Publisher read-only Run41422890678 at new central main completed SUCCESS. Actual authenticated intake logs: NO_ORIGINAL_SIGNED_PUSH_ON_CURRENT_MAIN:16, SIGNED_RUN_FOUND_REVERIFICATION_REQUIRED:1 (hypopg 1.4.5); READ_ONLY_ORIGINAL_SIGNED_SOURCE_RECHECK=1. Its independent Fresh independent ZIP/SPDX/Grype/Sigstore GET for signed original (hypopg) job SUCCESS. The push event appropriately SKIPPED all scheduled-only Publisher/Release jobs.
    4. Original signed source hypopg Run41388390506 attempt1 and original postmerge Run41388390468, each SUCCESS, never rerun.

    Release completion criterion still pending

    As of this authenticated snapshot, no later genuine schedule Publisher run has completed for the signed source. Latest public hypopg Release is still v1.4.4-windows.1; there is no v1.4.5-windows.1 official Release or published PG14–18 ZIPs. Therefore public ZIP SHA256 and public attestations remain NOT VERIFIED, and Catalog extensions/hypopg.json and Website remain on 1.4.4. Do not pre-update Catalog or claim formal PUBLISH.

    Resume directly at first genuine scheduled central Publisher Run on build/main=2a4470d6e141ab772ddb7d293929a99448e7dad2: observe source Run41388390506 attempt1, fresh same-run independent ZIP/SPDX/Grype/Sigstore, original scheduled admission and scoped App/create-only Release. If eligible, verify new public Release bytes/SHA256/attestations, then one-record Catalog PR with native required CI/protected merge and Website JA/EN public readback. Any failed authorizing gate must stay DENY. Once public complete, restore hourly cadence in a separate protected change to reduce recurrent automation usage.

    Status: protected schedule-catchup change COMPLETED; real pre-Publisher separate-source recheck COMPLETED; formal 1.4.5 Release/Catalog/Website NOT COMPLETE.

  24. ShutenOishi commented on Nov 2, 2026

    @ShutenOishi
    ContributorAuthor

    2026-11-02 — 「pgextwinを更新して」=公開までの一指示承認、17拡張共通の現行運用契約を保護反映

    所有者の今回の明示意思(今後のChat運用)

    「pgextwinを更新して」だけで、実在する真正stableの対象候補を保護PR→必須Windows CI→保護マージ→正規署名→独立Publisher正式Release→公開資産検証→Catalog→Website JA/ENまで承認した意味と扱う。ユーザーへ途中で「公開して」と再確認しない。無指定は登録済み17件、指定があればその対象のみ。更新差分が無ければNO_UPDATE。候補ごとに独立して利用可能な状態まで完了させる。

    安全境界: Chat自然言語の承認はGitHub runtime PUBLISH receiptそのものではない。真正scheduled event、固定SHA、原本Run/attempt、別Runner Sigstore、SPDX/Grype/Attestation、専用Publisher App、create-only、失効、Catalog/Websiteのゲートを維持。WorkはChat接続ができないGitHub Approve and run 等のGUI操作に限定。既存ガードを弱めず、無理なworkaroundsで公開成功扱いしない。

    今回実施・検証

    • build PR#516: 現行17件・一指示の公開承認を docs/chat-first-publication.md に実体化し README_ja.md から参照。旧14件manual-onlyの説明を履歴化。workflow、コード、release/Publisher policy、権限、ゲートは変更なし。
    • 正確なPR HEAD 670a396d9e2fd326504bd1b531ebec1f34548cee、真正native PR Run41427002636 SUCCESS → 保護squash MERGED、build/main=c5840c033d13a251522553ebc11fc488a8357f4d → original postmerge Run41427189204 SUCCESS。文書のmain readbackと #311先頭更新を確認。
    • #75へも現行承認を監査記録。文書と#311先頭が正本。

    hypopg 1.4.5 の現在の公開状態

    • PR#57/main cea2745bb201b894da2eb3730771589e675e75fd、main postmerge Run41388390468、signed original Run41388390506 attempt1、PG14〜18・元と独立したSigstore証拠はSUCCESS(既存成功を再実行せず)。
    • 新中央main直前の Publisher push Run41422890678 は登録17のうち hypopg 一件を SIGNED_RUN_FOUND_REVERIFICATION_REQUIRED で発見、独立ZIP/SPDX/Grype/Sigstore検証ジョブ SUCCESS。しかし push event なので正式Publisherジョブは正規にSKIPPED。
    • 19:16 JST 時点のGitHub認証済みGETで、候補署名後の真正 central scheduled Publisher Runは未確認。既存唯一の直近scheduled Publisher Run41378368707は候補署名前でhas_candidates=0。公開正式Releaseはまだ v1.4.4-windows.1、Catalog extensions/hypopg.jsonも 1.4.4、Websiteも公開Catalogを参照。1.4.5公開・公開ZIP SHA256・公開Attestation・Catalog/Websiteは未完了。
    • 前ターンの build PR#515 はPublisher真正scheduleを毎時 :15/:30/:45 に増やして保護マージ済み。追加の成功Run再実行や偽schedule発火はしない。

    次の一手: 最初の genuine schedule Publisher Runで原本Run41388390506と中央live条件・専用Appによる正式1.4.5 Releaseを確認し、出た時点で公開5 ZIP/SHA256/署名/Attestation独立照合→Catalog保護PR/CI/マージ→Website JA/EN実証→本Issue更新。GitHub scheduleが継続欠落している場合はActions GUIの有効状態/スケジュールを確認し、保護・署名ゲートを緩めず修復。Workは必要なGUIに限定。

  25. ShutenOishi commented on Nov 2, 2026

    @ShutenOishi
    ContributorAuthor

    2026-11-02 20:52 JST — one-command authorized update, exact blocker and GUI repair boundary

    Owner instruction: pgextwinを更新して carries consent through eligible Release, signed asset verification, Catalog and Website, per current runbook. No additional publication-consent dialog is required. Do NOT treat Chat consent as a substitute for independently authenticated Publisher gates.

    Fresh authoritative status

    • pgextwin/build/main=c5840c033d13a251522553ebc11fc488a8357f4d protected. PR #515 already increased genuine Publisher schedule to 15,30,45 * * * *; PR #516 documented single-command authorization. PR/main CI success; do not rerun.
    • Latest existing central scheduled Publisher Run41378368707 was created 2026-11-02 02:33:30Z, before original hypopg signed candidate. No later event=schedule Run of .github/workflows/publisher-candidate-intake.yml exists in the authenticated central Actions-run inventory as of this check. In contrast, genuine central upstream scan Run41439951772 at 11:50:31Z completed SUCCESS: this is a workflow-specific scheduling/registration issue rather than proof all schedules are down. The exact cause (disabled vs missed scheduler events/other) is NOT established.
    • The safe push Publisher Run41422890678 detected hypopg as the 1/17 signed candidate and completed the independent real ZIP/SPDX/Grype/Sigstore job SUCCESS; scheduled-only formal Publisher correctly SKIPPED.
    • hypopg protected main=cea2745bb201b894da2eb3730771589e675e75fd; postmerge Run41388390468 SUCCESS and original signed Run41388390506 attempt1 SUCCESS. Latest public Release v1.4.4-windows.1 (NOT 1.4.5); Catalog extensions/hypopg.json still 1.4.4; Website still references public Catalog. Thus 1.4.5 Release and public ZIP/SHA256/Attestation/Catalog/Website are NOT COMPLETE.
    • Other source check: plpgsql_check protected current manifest is already upstream 2.10.16 at pinned SHA 9a5c0ec4babebd5eb8e0db104c54f7ddb43fcc07; latest formally published version and Catalog are 2.10.15, but no same-current-main original signed update-watch.yml push Run (only schedule and unrelated Windows CI). Do not falsely claim its newer Release.

    Minimum next action — GitHub UI (Work only if necessary)

    Check https://github.com/pgextwin/build/actions/workflows/publisher-candidate-intake.yml in the official GitHub UI:

    1. Confirm workflow is enabled; if the official UI offers Enable workflow, enable only this existing workflow. Check that main has on.schedule: 15,30,45 * * * * and inspect Actions workflow state. Do not weaken branch protection/Environment/Apps, reveal Secrets, dispatch a fake schedule, publish a manual replacement, or rerun successful Runs.
    2. If workflow was already enabled, document that fact: repeated no-op cron edits are not a substitute for a real GitHub scheduler. Follow GitHub's documented schedule-actor/re-registration and relevant status investigation, preserving original event trust boundaries; use GitHub Support only after available safe registration/GUI repair attempts.
    3. Once an authentic new schedule Publisher Run appears, continue in Chat: exact signed-source verification and scoped automatic Release; then public five PG ZIP/SHA256/Attestations, Catalog one-record protected PR/CI/merge, Website JA/EN public readback; update this Issue.

    This is a real external event/GUI blocker, not an excuse to downgrade acceptance or represent already-published 1.4.4 as a new 1.4.5 publication.

  26. ShutenOishi commented on Nov 2, 2026

    @ShutenOishi
    ContributorAuthor

    2026-11-02 JST — Publisher schedule registration repair attempt

    • Owner requested official GitHub Actions UI repair of .github/workflows/publisher-candidate-intake.yml, preserving all publication and security gates.
    • Before the action, the workflow was enabled (the official workflow menu offered Disable workflow). Its latest genuine schedule was Run 41378368707, created 2026-11-02 02:33:30 UTC, before hypopg 1.4.5 signed source. The subsequent Run 41422890678 was a push, not a schedule.
    • Immediately before repair, authenticated GitHub GET for build Actions runs showed 0 in_progress, 0 queued, 0 waiting, 0 requested. No running Publisher was canceled.
    • In the official Actions UI, disabled only this workflow, confirmed GitHub displayed This workflow was disabled manually, then clicked Enable workflow. GitHub displayed Workflow enabled successfully around 2026-11-02 12:01 UTC / 21:01 JST.
    • Protected build/main=c5840c033d13a251522553ebc11fc488a8357f4d; the workflow on main contains cron: '15,30,45 * * * *'. No code or policy was changed.
    • hypopg signed original Run 41388390506 is event=push, attempt=1, completed/success, with source SHA cea2745bb201b894da2eb3730771589e675e75fd; it was not rerun.
    • Pending: a new authentic event=schedule run after re-enablement, its independent verification and formal Publisher outcome. Re-enablement is a repair attempt, not proof that GitHub scheduling has recovered. Public latest was still v1.4.4-windows.1 at this check; do not represent 1.4.5 as released.
    • No fake schedule or manual replacement; branch protection, mandatory CI, Environment, App, secrets, signature and Attestation settings remain untouched.

    21:20 JST observation: The first configured :15 window after re-enablement has passed; authenticated GET still shows no new Publisher schedule run. GitHub may delay scheduled events, so recovery remains unproven. The next configured window is :30.

    21:35 JST observation: Both configured :15 and :30 windows after re-enablement have passed. Authenticated GET still shows no newer Publisher event=schedule Run; the latest is the earlier Run 41378368707. No build-repository scheduled runs created after 12:00 UTC were present in the first 100 scheduled runs at this check, including the separate fleet scanner configured for :00/:07. This does not establish the cause: GitHub may delay/drop scheduled events and may show aggregate status as healthy while an individual schedule is late. See GitHub scheduled-event troubleshooting. Do not describe the re-enable as proven recovery.

    Fleet commonality: #510 comment 6577118182 records source-bound GET of all 17 protected mains: all 17 use this same central Publisher and have enabled=true / automatic-signed-schedule local release opt-in. Actual workflow differences and four supplemental nonpublishing requalification paths are recorded there; those differences were not changed. Avoid moving hypopg main solely for cosmetic uniformity, because its current signed original is bound to that SHA.

    Outstanding: new genuine scheduled Publisher Run ID; its same-run independent hypopg proof and Publisher result; real Release/asset/Sigstore/attestations and Catalog/Website after eligible publication. At this check latest public hypopg release is still v1.4.4-windows.1. Continue at the next real schedule; do not fabricate an event or rerun successful Runs.

  27. ShutenOishi commented on Nov 2, 2026

    @ShutenOishi
    ContributorAuthor

    2026-11-02 JST — owner-requested on-demand update, stop depending on cron

    Owner correction: pgextwinを更新して should start work at the user's chosen time. It is acceptable to use the official GitHub UI through Work if the available Chat connection cannot issue a workflow dispatch. Do not wait for a cron event to begin or finish the requested update. This instruction replaces the previous assumption that the Publisher must await a new schedule; it does not permit forging event=schedule, rerunning successful Runs, relaxing branch protection/required CI, changing App/Secret/Environment, or treating an unverified Release as published.

    Current findings:

    • The actual current central Publisher admits only genuine schedule: its selector, live issuer, typed receipt, formal Publisher and Catalog's independent provenance verifier all check that event. Its workflow has no workflow_dispatch. Merely pressing a button cannot satisfy the existing gate.
    • A genuine GitHub workflow_dispatch is a separate authenticated event. A protected, explicitly designed owner-dispatch path can retain source main/push Run 41388390506 attempt 1 and fresh independent signed-byte/SBOM/Grype checks, current protected branches, isolated Publisher App scope, tag create-only and revocation. It must record and verify the real event/owner identity rather than pretend it was a schedule.
    • The available GitHub connector here has no workflow-dispatch operation. Where necessary, Work can use GitHub's official Actions UI; do not claim that ordinary Chat can dispatch until an actual capability is verified.
    • The upstream fleet scan and per-extension candidate preflight also contain genuine-schedule dependencies; removing only Publisher cron would not make the full update flow on-demand. Catalog sync already has manual dispatch, but its current automatic signed provenance verifier assumes a central scheduled Publisher.
    • Do not disable or delete still-needed schedules until a safe on-demand replacement covers the same function and has passed required CI and a real end-to-end run. Plan the removal after that proof, rather than adding more cron entries.

    At 21:46 JST, latest hypopg public release remains v1.4.4-windows.1; no later scheduled central Publisher Run than 41378368707 is shown. The existing signed original remains unchanged.

  28. ShutenOishi commented on Nov 2, 2026

    @ShutenOishi
    ContributorAuthor

    2026-11-02 22:4x JST — owner-on-demand signed Publisher protected deployment (Chat)

    Owner request: pgextwinを更新して explicitly approves eligible formal Release, Catalog and Website, but never bypasses independent security gates.

    Implemented and deployed

    • Protected build PR #517 squash-merged at 88a907dac1466afa758080efbb0faf67ec74a1cc (expected PR HEAD 46d732a3b39b1443037f5a50240749a086d661c3; original PR CI Run 41451415713 SUCCESS).
    • Protected build/main readback matches 88a907dac1466afa758080efbb0faf67ec74a1cc. Original postmerge Validate Run 41455274945 = push/SUCCESS. Original postmerge Publisher intake Run 41455274691 = push/SUCCESS, independent hypopg signed source recheck; as push this is intentionally NONPUBLISHING.
    • Central Publisher cron removed, replaced by first-class owner-origin workflow_dispatch, one registered repository per invocation, default dry_run=true; production requires genuine ShutenOishi actor/triggering_actor and numeric ID, protected metadata/owner-dispatch-publication.json, authentic original signed main/push Run, source-byte Sigstore/SPDX/Grype and Publisher App/Environment/create-only. Existing security restrictions retained. Catalog PR #182 merged distinct owner-dispatch provenance verification.
    • Existing downstream scan and local update-watch schedule flows still exist; their removal requires independently proven replacements. No fake schedule, successful-run rerun, weakening of safety policy, or premature Release.

    Latest eligible candidate and external UI boundary

    • pgextwin/hypopg protected main cea2745bb201b894da2eb3730771589e675e75fd; exact genuine signed main/push Run 41388390506 attempt 1 is successful, independently verified. Public latest still v1.4.4-windows.1, not 1.4.5.
    • The Chat GitHub connection exposes no workflow-dispatch POST action. Next allowed action is owner via official GitHub Actions UI (Work if used) on publisher-candidate-intake.yml: choose branch main, target_repository=pgextwin/hypopg, dry_run=false, click Run workflow exactly once, obtain new genuine event=workflow_dispatch Run ID, preserve gates. Never rerun previous success or modify App/Secrets/Environment/protection.
    • After authentic dispatch: Chat validates Publisher result / public five PG14-18 ZIPs+SHA256/SPDX/Grype/Attestations, performs Catalog protected PR/CI/merge and Website JA/EN public readback. Only mark published after independent verification.
    • plpgsql_check is also 2.10.16 on protected main with Windows CI and genuine scheduled requalification signed dual-audit Run 41409112431, but the current central source admission requires a separate original signed update-watch push on current protected main; do not misclassify scheduled requalification as push. Public latest remains 2.10.15. Address this path separately through a genuine safe on-demand signed-source mechanism.

    Completion boundary: Shared owner-dispatch code+postmerge PASS; formal hypopg 1.4.5 publication still awaits genuine owner UI dispatch, not a cron schedule. Historical acceptance 85/94 unchanged.

  29. added a commit that references this issue on Nov 2, 2026
  30. ShutenOishi commented on Nov 2, 2026

    @ShutenOishi
    ContributorAuthor

    /pgextwin publish pgextwin/hypopg

  31. ShutenOishi commented on Nov 2, 2026

    @ShutenOishi
    ContributorAuthor

    /pgextwin publish pgextwin/hypopg

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