Skip to content

遠隔操作を明示 opt-in のビルド variant に分離する - #186

Merged
link1345 merged 5 commits into
mainfrom
feat/remote-build-variants
Nov 1, 2026
Merged

link1345 merged 5 commits into
mainfrom
feat/remote-build-variants

Conversation

@link1345

@link1345 link1345 commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator

変更

通常 Shipping の成果物から remote transport/dispatch を compile/link/package 段階で除外します。GUA_DISTRIBUTION_FLAVOR=shipping|development|qa|ai-player と GUA_ENABLE_REMOTE_AUTOMATION を native shared/Godot static 共通の gate に適用し、既定は Shipping/OFF。Development/Editor は明示 opt-in、QA は Debug 上限(Player へ制限可)、AI Player Shipping は Player 上限固定です。既存 bridge C ABI は失敗 stub を保持し、ローカル観測・記録 API を維持します。

native gua_copy_build_info_json / gua_runtime_copy_build_info_json、.NET GuaBuildInfo.GetJson / GuaRuntime.GetBuildInfoJson、Godot get_build_info_json、Unity の条件付きコンパイルと能力照合を追加。環境変数/API/reset/borrowed core/client factory から AI Player の上限を超えられず、入力は enqueue/consume 双方で認可します。Shipping の Godot addon/Unity IL から WebMCP 入口を除外します。

用途別 staging と manifest/hash 照合を必須にし、未知・混在・余分な native ファイルは拒否します。WebGL は実 Emscripten リンクの build-info と static archive hash を照合。Unity managed 依存は既存 Plugins の wildcard コピーから明示 binding+解決済み dependency closure に切り替えています。

契約と検証

必須動作 → 検出する違反 テストと assertion 実行証拠・範囲
Shipping に遠隔実体なし → WS target/参照/依存が残る verify-remote-build-graph.ps1:shared/embedded runtime.obj、生成 link graph、最終 DLL の socket 依存を検査 ローカル合格。stub symbol の存在を実体残存と混同しない
env/API で復活不可、AI Player 上限固定 → Debug setter/client/borrowed API で昇格 build_variant_tests.cpp:factory/env/reset/unscoped/Observe/Spatial と bridge 可否の正負 native 4構成+Development OFF 成功。最終 HEAD CI は下記
Player 入力権限と完了保持 → 失効後 consume/hold cleanup 漏れ、legacy poll が別 action の完了を消す 同テスト:enqueue/consume 両認可、release cleanup、set-value request-specific v3 を正しいIDで一度だけ取得 AI Player Release 成功
private event 情報を隠す → reset/status の件数/strict 結果が変わる 同テスト:private/public event exact-count と stale reset 比較 AI Player Release 成功
QA 正常、Player の QA command 不在 → 接続操作不可/clock を広告 Gua.BuildVariants:実 ClientWebSocket、host consume/completion、clock capability/実行の正負 ローカル4構成成功。通常 native 19/19、.NET 465/465 成功
最終 Godot 配布 → class/profile/bridge/resource が不一致 test-godot-remote-build.ps1:実 Release EXE+埋込みPCK(Shipping/QA/AI)、Development Editor/source ローカル成功。初期 GDE は縮小依存 profile、CI はフル profile
Unity compiled gate/配布照合 → remote IL や異なる native pair が残る 実 runtime source 3構成の PE metadata、test-unity-remote-build.ps1 の実 Player ビルド・実行 同じ最終 Editor guard で Shipping/Development/QA/AI の4 Player 成功。ABI/binding/guard 境界であり全 UI 反映経路とはしない
混入時 fail closed → QA DLL/GDE/WebMCP/改名 DLL を受理 test-remote-package-mixing.ps1 6件、test-unity-package-mixing.ps1 / test-unity-upm-mixing.ps1、実 Unity prebuild fault hash 更新を含む6件、改名 QA DLL を期待した理由で拒否。実 Editor でも Player 生成前に拒否。実 UPM 配置でも改名/再hashのQA runtimeをextra-file/compiled-identityの正しい境界で拒否
不正構成拒否 test-remote-build-config.ps1:Shipping+ON、QA/Player+OFF、旧WS迂回、未知variant 5件成功
Web/非Windows → native と異なる ceiling/失効動作 実 WebAssembly/Node に同じ variant acceptance、Linux/macOS native+staging 4 WASM、Linux/macOS の Shipping/AI Player は前 HEAD と最終 HEAD の CI で成功。browser/Unity WebGL Player の完了証明とはしない

規範: remote-build-variants。利用方法: 日本語ガイド。snapshot と実行経路別の証拠: 検証台帳。

状態・互換性・未検証範囲

Draft / HEAD 4a4debd735175df0e229c39aac33e9bf35c8db0b。独立監査は規定の2/2完了、計5指摘を修正し親が検証済み。追加監査や正式 Approve は行っていません。最終監査後の最小修正は改名 QA DLL の正負 fault と実 Editor/4 Player 再検証で確認しました。

UPM は host と一致する native pair を実際に再 probe し、manifest の hash を書き換えた QA 置換も拒否します。Shipping/Development の実 Windows/Linux/macOS arm64 配置で正負検証済み(全 macOS universal archive の実行とは区別)。他 RID は各 producer の実 probe と hash を照合します。

完了(03:19 UTC):最終 HEAD 4a4debd735175df0e229c39aac33e9bf35c8db0b の全32 check成功。variant CI 14/14、通常回帰 18/18。Windows/Linux/macOS の実エンジン・Godot Web、NuGet pack/外部consumer、混入試験まで完了。Windows通常回帰ログで native 19/19、.NET 465/465 を確認。

Unity は既存6000.5.3f1とローカルpackageのみで、native pairも最終HEADに揃えた4構成の実Player再ビルド・実行、resultのsourceCommit一致まで確認済み。ローカルnative/実WS/最終Godot consumerも同一HEAD4構成で成功。実証の最終集計は artifacts/remote-validation/head-4a4debd-{local,unity}-matrix.json、CI結果は同 *-ci-result.json。

最終 HEAD CI(成功):variant CI、通常回帰 CI。旧 HEAD 5a88970 の variant CI は14 jobすべて成功(Windows4構成+Development OFF、WASM4構成、Linux/macOS4構成、混入試験)。旧 HEAD b4c8d74 の variant CI は Windows フル GDE/実Godot consumer、4 Web static、混入試験を含め全成功。旧 HEAD の未完了 CI は停止し、最終 HEAD の結果とは区別します。

Unity 検証 Editor は既存 6000.5.3f1、既存 package source をローカル隔離 fixture へコピー。新しい Editor/未知 registry/外部不信データは使わず、資格情報・信頼・ネットワーク設定も変更していません。エンジン脆弱性が解決した証拠とは扱いません。Unity WebGL Player、各 browser variant、全 UI adapter の E2E は未完了です。初期のローカル native identity は構築時点ごとに異なります。最終再構築では4構成とも 4a4debd に揃え、artifacts/remote-validation/head-4a4debd-local-matrix.json と Unity player-head-4a4debd.log / result に保存しました。NuGet vulnerability feed に接続できないローカル NU1900 警告も audit 成功とは扱いません。

既存開発 preset は development/ON を明示して継続。配布には verified per-RID manifest を必須にし、unlabeled DLL fallback は拒否します。package ID は維持し、同じ ID/version の別 variant を同一 feed に公開しません。通常出荷向けには Shipping を選び、AI Player 用途を明示した配布だけ Player 制限の遠隔機能を含めます。

Gua Playtest PR #54・外部サンプル3本・既存 checkout は変更していません。merge/Ready/正式 Approve/release/公開配布は行いません。

@link1345
link1345 marked this pull request as ready for review November 1, 2026 03:49
@link1345
link1345 merged commit 2e12fb3 into main Nov 1, 2026
32 checks passed
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-01T03:51:22.342351Z 4a4debd Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant