修复 Godot 项目提交后的 CI 门禁
Project CI / Repository checks (push) Successful in 1m8s
Project CI / Frontend tests (push) Successful in 2m59s
Project CI / Backend tests (push) Successful in 4m0s
Project CI / Native shell tests (push) Successful in 13m41s

移除根 H5 包中冗余的 Tauri HTTP 依赖并同步锁文件
修正客户端错误边界测试的 import 顺序
固定两项后台 Runtime 恢复测试使用 Provider 模式
补充 AGC 原生 HTTP 依赖归属约束
This commit is contained in:
2026-08-11 14:34:42 +08:00
parent 755bf80858
commit aa5c857060
6 changed files with 4 additions and 36 deletions
@@ -2286,6 +2286,7 @@ async fn project_supervisor_mixed_run_status_recovery_reuses_partial_isolated_cl
#[tokio::test]
async fn project_supervisor_resume_rechecks_delegate_policy_after_delivery_reservation() {
let _config_guard = write_test_local_config("{}".to_string());
let root = unique_project_path();
init_local_game_project_at(&root, "project-1", "项目总控委派恢复策略测试")
.expect("project init");
@@ -3311,6 +3311,7 @@ fn supervisor_background_task_persists_one_public_start_status_before_execution(
#[test]
fn accepted_supervisor_preparing_task_recovers_to_runnable_queue() {
let _config_guard = write_test_local_config("{}".to_string());
let root = unique_project_path();
init_local_game_project_at(&root, "project-1", "Supervisor 启动确认恢复测试")
.expect("project init");
@@ -1,7 +1,7 @@
/** @vitest-environment jsdom */
import { createElement } from 'react';
import { fireEvent, render, screen } from '@testing-library/react';
import { createElement } from 'react';
import { afterEach, describe, expect, it, vi } from 'vitest';
import { ClientRuntimeErrorBoundary } from '../src/app/AuthenticatedClient';
@@ -6923,7 +6923,7 @@
## 2026-08-10 AGC 普通 release 固定连接 dev API
- 决策:普通 AGC Tauri release 的平台认证与客户端 API 固定访问 `https://dev.genarrative.world/api/*`;本地 `npm run agc` 继续使用 Vite `/api` 代理,普通网页构建继续使用同源相对路径,game-chat release 继续绕过平台登录。
- 传输边界:dev 公网入口不接受 Tauri WebView 的跨域 OPTIONS 预检,因此 release 使用 `tauri-plugin-http` 原生 transport。插件 capability 与前端 URL 解析双重限制为 `https://dev.genarrative.world/api/*`,不为 WebView CSP 增加远程 `connect-src`,也不开放任意 HTTP(S) 目标。
- 传输边界:dev 公网入口不接受 Tauri WebView 的跨域 OPTIONS 预检,因此 release 使用 `tauri-plugin-http` 原生 transport。插件的 npm 依赖只归属 AGC 子包及其 lockfile,根 H5 package 与根 lockfile 不得引入任何 Tauri guest 依赖。插件 capability 与前端 URL 解析双重限制为 `https://dev.genarrative.world/api/*`,不为 WebView CSP 增加远程 `connect-src`,也不开放任意 HTTP(S) 目标。
- 会话边界:插件默认 Cookie Store 持久化 refresh Cookie;访问 Token 继续保存在现有客户端存储并通过 Authorization header 发送,不把 Token、Cookie 或登录正文写入日志、配置文件或仓库。
## 2026-08-10 AGC monorepo 构建强制复用单一 React runtime
-33
View File
@@ -12,7 +12,6 @@
"@lexical/react": "^0.47.0",
"@lexical/utils": "^0.47.0",
"@tailwindcss/vite": "^4.1.14",
"@tauri-apps/plugin-http": "^2.5.9",
"@vitejs/plugin-react": "^5.0.4",
"dotenv": "^17.2.3",
"expo": "^56.0.12",
@@ -6978,16 +6977,6 @@
"vite": "^5.2.0 || ^6 || ^7 || ^8"
}
},
"node_modules/@tauri-apps/api": {
"version": "2.11.1",
"resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.11.1.tgz",
"integrity": "sha512-M2FPuYND2m+wh5hfW9ZpSdxMPdEJovPBWwoHJmwUpysTYNHaOkVFN419m/K0LIgjb/7KU2vBgsUepJWugQCvAA==",
"license": "Apache-2.0 OR MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/tauri"
}
},
"node_modules/@tauri-apps/cli": {
"version": "2.11.2",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.11.2.tgz",
@@ -7205,15 +7194,6 @@
"node": ">= 10"
}
},
"node_modules/@tauri-apps/plugin-http": {
"version": "2.5.9",
"resolved": "https://registry.npmjs.org/@tauri-apps/plugin-http/-/plugin-http-2.5.9.tgz",
"integrity": "sha512-lCiY0+vs4HvIUSvZrBs8TC3TiCB0MOPRmiUjTq4prW7SlcJE2jdLeT6KBsJrT9Tlplufl7W1pY6SFAO3gCWxDA==",
"license": "MIT OR Apache-2.0",
"dependencies": {
"@tauri-apps/api": "^2.11.0"
}
},
"node_modules/@testing-library/dom": {
"version": "10.4.1",
"resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz",
@@ -25587,11 +25567,6 @@
"tailwindcss": "4.2.2"
}
},
"@tauri-apps/api": {
"version": "2.11.1",
"resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.11.1.tgz",
"integrity": "sha512-M2FPuYND2m+wh5hfW9ZpSdxMPdEJovPBWwoHJmwUpysTYNHaOkVFN419m/K0LIgjb/7KU2vBgsUepJWugQCvAA=="
},
"@tauri-apps/cli": {
"version": "2.11.2",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.11.2.tgz",
@@ -25688,14 +25663,6 @@
"dev": true,
"optional": true
},
"@tauri-apps/plugin-http": {
"version": "2.5.9",
"resolved": "https://registry.npmjs.org/@tauri-apps/plugin-http/-/plugin-http-2.5.9.tgz",
"integrity": "sha512-lCiY0+vs4HvIUSvZrBs8TC3TiCB0MOPRmiUjTq4prW7SlcJE2jdLeT6KBsJrT9Tlplufl7W1pY6SFAO3gCWxDA==",
"requires": {
"@tauri-apps/api": "^2.11.0"
}
},
"@testing-library/dom": {
"version": "10.4.1",
"resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz",
-1
View File
@@ -173,7 +173,6 @@
"@lexical/react": "^0.47.0",
"@lexical/utils": "^0.47.0",
"@tailwindcss/vite": "^4.1.14",
"@tauri-apps/plugin-http": "^2.5.9",
"@vitejs/plugin-react": "^5.0.4",
"dotenv": "^17.2.3",
"expo": "^56.0.12",