feat: expose codex review sandbox search governance

This commit is contained in:
AI Bot
2026-06-03 12:03:36 +08:00
parent ca64a4c498
commit afeb352fe3
12 changed files with 148 additions and 7 deletions

View File

@@ -86,6 +86,12 @@ if (args[0] === "app-server" && args[1] === "generate-json-schema") {
{ properties: { method: { const: "marketplace/upgrade" } } },
{ properties: { method: { const: "experimentalFeature/list" } } },
{ properties: { method: { const: "experimentalFeature/enablement/set" } } },
{ properties: { method: { const: "review/start" } } },
{ properties: { method: { const: "windowsSandbox/readiness" } } },
{ properties: { method: { const: "windowsSandbox/setupStart" } } },
{ properties: { method: { const: "windowsSandbox/setupCompleted" } } },
{ properties: { method: { const: "fuzzyFileSearch/sessionUpdated" } } },
{ properties: { method: { const: "fuzzyFileSearch/sessionCompleted" } } },
{ properties: { method: { const: "skills/extraRoots/set" } } },
{ properties: { method: { const: "hooks/list" } } },
{ properties: { method: { const: "turn/interrupt" } } },
@@ -165,6 +171,10 @@ process.exit(2);
assert.equal(manifest.supports.marketplaceRemove, true);
assert.equal(manifest.supports.marketplaceUpgrade, true);
assert.equal(manifest.supports.experimentalFeatureEnablementSet, true);
assert.equal(manifest.supports.reviewStart, true);
assert.equal(manifest.supports.windowsSandboxReadiness, true);
assert.equal(manifest.supports.windowsSandboxSetupStart, true);
assert.equal(manifest.supports.fuzzyFileSearchEvents, true);
assert.deepEqual(manifest.methods, [
"account/chatgptAuthTokens/refresh",
"account/login/cancel",
@@ -193,6 +203,8 @@ process.exit(2);
"fs/unwatch",
"fs/watch",
"fs/writeFile",
"fuzzyFileSearch/sessionCompleted",
"fuzzyFileSearch/sessionUpdated",
"hooks/list",
"marketplace/add",
"marketplace/remove",
@@ -206,6 +218,7 @@ process.exit(2);
"plugin/share/updateTargets",
"plugin/skill/read",
"plugin/uninstall",
"review/start",
"skills/config/write",
"skills/extraRoots/set",
"thread/archive",
@@ -221,6 +234,9 @@ process.exit(2);
"thread/unsubscribe",
"turn/interrupt",
"turn/start",
"windowsSandbox/readiness",
"windowsSandbox/setupCompleted",
"windowsSandbox/setupStart",
]);
assert.match(
await readFile(path.join(outDir, "0.135.0-alpha.1", "app-server-help.txt"), "utf8"),

View File

@@ -229,6 +229,26 @@ test("device detail exposes Codex App Server discovered model and extension summ
userInitiatedOnly: true,
labels: ["实验列表", "启用设置"],
},
reviewGovernanceSummary: {
actionCount: 1,
reviewStartAvailable: true,
userInitiatedOnly: true,
labels: ["启动审查"],
},
windowsSandboxGovernanceSummary: {
actionCount: 3,
setupActionCount: 1,
readinessAvailable: true,
notificationAvailable: true,
userInitiatedOnly: true,
labels: ["准备检查", "启动设置", "设置完成"],
},
fuzzyFileSearchSummary: {
eventCount: 2,
completedEventAvailable: true,
notificationOnly: true,
labels: ["搜索更新", "搜索完成"],
},
},
},
};
@@ -256,6 +276,9 @@ test("device detail exposes Codex App Server discovered model and extension summ
assert.equal(cards.capabilities.items.codexExternalAgentGovernance, "迁移治理3 项 · 导入 1 项 · 检测可用");
assert.equal(cards.capabilities.items.codexMarketplaceGovernance, "市场治理3 项 · 写入 3 项 · 升级可用");
assert.equal(cards.capabilities.items.codexExperimentalFeatureGovernance, "实验特性治理2 项 · 写入 1 项 · 列表可用");
assert.equal(cards.capabilities.items.codexReviewGovernance, "审查治理1 项 · 审查可启动");
assert.equal(cards.capabilities.items.codexWindowsSandboxGovernance, "Windows 沙箱3 项 · 设置 1 项 · 准备检查可用");
assert.equal(cards.capabilities.items.codexFuzzyFileSearch, "文件搜索事件2 项 · 完成事件可用");
});
test("device detail exposes folder and project conflict skeleton from workspace policy", async () => {

View File

@@ -189,6 +189,26 @@ test("codex app-server discovery includes governance and MCP summaries without l
userInitiatedOnly: true,
labels: ["实验列表", "启用设置"],
});
assert.deepEqual(metadata.reviewGovernanceSummary, {
actionCount: 1,
reviewStartAvailable: true,
userInitiatedOnly: true,
labels: ["启动审查"],
});
assert.deepEqual(metadata.windowsSandboxGovernanceSummary, {
actionCount: 3,
setupActionCount: 1,
readinessAvailable: true,
notificationAvailable: true,
userInitiatedOnly: true,
labels: ["准备检查", "启动设置", "设置完成"],
});
assert.deepEqual(metadata.fuzzyFileSearchSummary, {
eventCount: 2,
completedEventAvailable: true,
notificationOnly: true,
labels: ["搜索更新", "搜索完成"],
});
const serialized = JSON.stringify(metadata);
assert.equal(serialized.includes("sk-secret-should-not-leak"), false);