fix(chat): hide raw permission metadata
Agent CI/CD / docker-image (push) Successful in 2m38s
Agent CI/CD / deploy-fallback-log (push) Has been skipped

This commit is contained in:
2026-06-08 20:12:08 +08:00
parent 60b9080c47
commit 8ed73b1da6
4 changed files with 20 additions and 6 deletions
+16 -2
View File
@@ -24,6 +24,7 @@ import {
isPermissionV2AskedEvent,
isPermissionV2RepliedEvent,
isQuestionAskedEvent,
isObjectRecord,
isQuestionRejectedEvent,
isQuestionRepliedEvent,
isQuestionV2AskedEvent,
@@ -84,6 +85,19 @@ type ProgressPayload = {
detail?: string;
};
const getPermissionTarget = (metadata: unknown) => {
if (!isObjectRecord(metadata)) {
return undefined;
}
for (const key of ["command", "path", "file", "filepath", "directory"]) {
const value = metadata[key];
if (typeof value === "string" && value.trim()) {
return value.trim();
}
}
return undefined;
};
const toRuntimeModel = (model?: SupportedModel) => {
if (!model) {
return undefined;
@@ -398,7 +412,7 @@ export const streamPromptResponse = async ({
request_id: event.properties.id,
permission: event.properties.permission,
patterns: event.properties.patterns,
metadata: event.properties.metadata,
target: getPermissionTarget(event.properties.metadata),
always: event.properties.always,
tool: event.properties.tool,
created_at: Date.now(),
@@ -443,7 +457,7 @@ export const streamPromptResponse = async ({
request_id: event.properties.id,
permission: event.properties.action,
patterns: event.properties.resources,
metadata: event.properties.metadata ?? {},
target: getPermissionTarget(event.properties.metadata),
always: event.properties.save ?? [],
tool: undefined,
created_at: Date.now(),
+1 -1
View File
@@ -8,7 +8,7 @@ export type PermissionRequestPayload = {
request_id: string;
permission: string;
patterns: string[];
metadata: Record<string, unknown>;
target?: string;
always: string[];
tool?: {
messageID: string;
+1 -1
View File
@@ -204,7 +204,7 @@ export const toFrontendPermission = (
sessionId: payload.session_id,
permission: payload.permission,
patterns: payload.patterns,
metadata: payload.metadata,
target: payload.target,
always: payload.always,
tool: payload.tool,
createdAt: payload.created_at,
+2 -2
View File
@@ -56,7 +56,7 @@ describe("streamPromptResponse", () => {
request_id: "perm-1",
permission: "bash",
patterns: ["rm *"],
metadata: { command: "rm tmp.txt" },
target: "rm tmp.txt",
always: ["rm *"],
} satisfies Partial<PermissionRequestPayload>);
});
@@ -157,7 +157,7 @@ describe("streamPromptResponse", () => {
request_id: "perm-v2-1",
permission: "external_directory",
patterns: ["/tmp"],
metadata: { path: "/tmp" },
target: "/tmp",
always: ["/tmp"],
} satisfies Partial<PermissionRequestPayload>);
});