c48f0627cf
- 把 server-rs 与 apps/ai-game-creator-shell/src-tauri 两个 workspace 的 ts-rs 从 registry 固定到上游修复 commit fd8679ef20f866f747c046b30bd29c15e3d7a003(PR #491:已发布版 12.0.1 的 EnumAttr 不识别 deny_unknown_fields,只有 StructAttr 会静默忽略它),两个 Cargo.lock 同步改成 git 源 - 说明固定原因与退出条件:crates.io 最新仍是 12.0.1、GitHub 最新 tag 仍是 v12.0.0,等发布 > 12.0.1 后改回 registry 版本并删除 commit 固定 - 明确不使用 ts-rs 的 no-serde-warnings feature 消警:它会连同 deserialize_with 这类真实未支持的 serde 属性一起静默,掩盖 Rust 与 TS 绑定的漂移 - 保留 shared-contracts 的 Model3dMultiviewInputs enum 级 deny_unknown_fields(该属性一直由 serde 生效,告警只来自 ts-rs 的属性解析),注释改为写明不要为消警删属性、也不要改用 no-serde-warnings - 新增契约测试 tests/model3d_multiview_request_contract.rs:钉住 views/taskId 变体内部与请求体顶层拒绝未知字段,并覆盖 kind 与 camelCase 字段名解析 - 记录排障经验与决策:pitfalls.md 说明无 span 的告警不代表属性失效,decision-log.md 记录固定 commit、影响面与回退条件 - 验证:cargo check -p shared-contracts 与该 crate 的 cargo test 不再出现 deny_unknown_fields 告警且全绿;cargo test --locked -p shared-contracts model3d 加 prettier 后 packages/shared 的 model3d 绑定零 diff;AGC 的 cargo check --locked --bin genarrative-ai-game-creator-shell 不再出现该告警(AGC 侧仍保留 1 条既有的 deserialize_with 告警,与本改动无关);npm run check:encoding、npm run check:doc-index、git diff --check、cargo fmt --all --check 通过
106 lines
4.4 KiB
TOML
106 lines
4.4 KiB
TOML
[package]
|
|
name = "genarrative-ai-game-creator-shell"
|
|
version = "0.1.47"
|
|
edition = "2021"
|
|
publish = false
|
|
|
|
[features]
|
|
default = []
|
|
# 模板库假数据注入(仅本地页面压测/演示用):只有显式开启该 feature 才会编译并在读取清单后
|
|
# 把条目循环补齐成假数据;计数由 AGC_TEMPLATE_LIBRARY_SYNTHETIC_COUNT 控制(默认 1000)。
|
|
template-library-fixtures = []
|
|
cocos-editor = ["cocos-editor-bridge/process-discovery"]
|
|
cocos-editor-execute = ["cocos-editor", "cocos-editor-bridge/windows-bootstrap"]
|
|
cocos-editor-injection = ["cocos-editor-execute", "cocos-editor-bridge/windows-injection"]
|
|
|
|
[build-dependencies]
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
sha2 = "0.10"
|
|
shared-contracts = { path = "../../../server-rs/crates/shared-contracts", default-features = false }
|
|
tauri-build = { version = "2.6.2", features = [] }
|
|
|
|
[dependencies]
|
|
# 与 server-rs 同一口径:已发布的 ts-rs 12.0.1 解析不了 enum 级 `serde(deny_unknown_fields)`
|
|
# (见 agent/direct_codex_user_item/model.rs),上游修复 #491 未发版,故固定到该 commit;
|
|
# 等 crates.io 发布 > 12.0.1 后改回 registry 版本。不要改用 `no-serde-warnings` 关告警。
|
|
ts-rs = { git = "https://github.com/Aleph-Alpha/ts-rs", rev = "fd8679ef20f866f747c046b30bd29c15e3d7a003" }
|
|
typed_floats = { version = "1.0.7", features = ["serde"] }
|
|
nalgebra = { version = "0.35.0", features = ["serde-serialize"] }
|
|
agent-runtime-core = { path = "../../../server-rs/crates/agent-runtime-core" }
|
|
cocos-editor-bridge = { path = "../../../plugins/agc-cocos-editor/native/cocos-editor-bridge", default-features = false }
|
|
editor-adapter-api = { path = "../../../server-rs/crates/editor-adapter-api" }
|
|
base64 = "0.22"
|
|
axum = "0.8"
|
|
chromiumoxide = "0.9.1"
|
|
futures = "0.3"
|
|
getrandom = "0.3"
|
|
http = "1"
|
|
# `tga` / `tiff` / `hdr` 只服务资源画布的只读预览:引擎图像容器(Cocos 的
|
|
# .tga/.tif/.hdr 等)在浏览器里没有解码器,必须先在原生侧转码成 PNG 再送给前端。
|
|
# 刻意不开 `exr`:它要求 `exr ^1.74.0`,当前依赖源只能到 1.73,打不开就先让
|
|
# `.exr` 走「类型卡」而不是留一半解不出来的预览分支。
|
|
image = { version = "0.25", default-features = false, features = ["jpeg", "png", "webp", "tga", "tiff", "hdr"] }
|
|
jsonschema = { version = "0.49.3", default-features = false }
|
|
oxc_allocator = "0.143.0"
|
|
oxc_ast = "0.143.0"
|
|
oxc_ast_visit = "0.143.0"
|
|
oxc_parser = "0.143.0"
|
|
oxc_semantic = "0.143.0"
|
|
oxc_span = "0.143.0"
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
serde_yaml = "0.9"
|
|
schemars = "1.2.1"
|
|
sha2 = "0.10"
|
|
similar = "2.7"
|
|
platform-llm = { path = "../../../server-rs/crates/platform-llm" }
|
|
platform-agent = { path = "../../../server-rs/crates/platform-agent" }
|
|
portable-pty = "0.9"
|
|
reqwest = { version = "0.12", default-features = false, features = ["json", "multipart", "native-tls", "stream"] }
|
|
regex = "1"
|
|
shared-contracts = { path = "../../../server-rs/crates/shared-contracts", default-features = false }
|
|
tauri = { version = "2.11.2", features = [] }
|
|
tauri-plugin-dialog = "2.7.1"
|
|
tauri-plugin-http = { version = "2.5.9", default-features = false, features = ["charset", "cookies", "http2", "rustls-tls"] }
|
|
tauri-plugin-opener = "2"
|
|
tauri-plugin-updater = "2.11.0"
|
|
tempfile = "3"
|
|
toml = "0.8"
|
|
ttf-parser = "0.25.1"
|
|
tokio = { version = "1", features = ["io-util", "macros", "process", "rt-multi-thread", "signal", "sync", "time"] }
|
|
url = "2"
|
|
unicode-normalization = "0.1"
|
|
uuid = { version = "1", features = ["v4"] }
|
|
zip = { version = "2", default-features = false, features = ["deflate"] }
|
|
tauri-plugin-clipboard-manager = "2.3.2"
|
|
maud = "0.27.0"
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
|
libc = "0.2"
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
windows-sys = { version = "0.61", features = ["Wdk_Storage_FileSystem", "Win32_Foundation", "Win32_Storage_FileSystem", "Win32_System_Diagnostics_ToolHelp", "Win32_System_IO", "Win32_System_JobObjects", "Win32_System_Threading", "Win32_UI_WindowsAndMessaging"] }
|
|
|
|
[profile.dev]
|
|
opt-level = 0
|
|
debug = 1
|
|
codegen-units = 256
|
|
lto = "off"
|
|
incremental = true
|
|
|
|
# Runner 启动阶段会对当前 Debug 可执行文件计算 SHA-256。仅优化密码学依赖,
|
|
# 保持业务代码的 Debug 编译速度,同时避免整份 Debug 构建因未优化 hash 热点而阻塞启动。
|
|
[profile.dev.package.sha2]
|
|
opt-level = 3
|
|
|
|
[profile.dev.package.digest]
|
|
opt-level = 3
|
|
|
|
[profile.test]
|
|
opt-level = 0
|
|
debug = 1
|
|
codegen-units = 256
|
|
lto = "off"
|
|
incremental = false
|