fix(discord): require explicit native approval enablement

This commit is contained in:
Vincent Koc
2026-04-23 11:50:41 -07:00
parent 527d7211e0
commit b201589ae1
2 changed files with 18 additions and 8 deletions

View File

@@ -15,6 +15,16 @@ const NATIVE_APPROVAL_CFG = {
ownerAllowFrom: ["discord:555555555"],
},
} as const;
const NATIVE_DELIVERY_CFG = {
...NATIVE_APPROVAL_CFG,
channels: {
discord: {
execApprovals: {
enabled: true,
},
},
},
} as const;
function writeStore(store: Record<string, unknown>) {
fs.writeFileSync(STORE_PATH, `${JSON.stringify(store, null, 2)}\n`, "utf8");
@@ -115,7 +125,7 @@ describe("createDiscordNativeApprovalAdapter", () => {
const adapter = createDiscordNativeApprovalAdapter();
const target = await adapter.native?.resolveOriginTarget?.({
cfg: NATIVE_APPROVAL_CFG as never,
cfg: NATIVE_DELIVERY_CFG as never,
accountId: "main",
approvalKind: "plugin",
request: {
@@ -139,7 +149,7 @@ describe("createDiscordNativeApprovalAdapter", () => {
const adapter = createDiscordNativeApprovalAdapter();
const target = await adapter.native?.resolveOriginTarget?.({
cfg: NATIVE_APPROVAL_CFG as never,
cfg: NATIVE_DELIVERY_CFG as never,
accountId: "main",
approvalKind: "plugin",
request: {
@@ -175,7 +185,7 @@ describe("createDiscordNativeApprovalAdapter", () => {
const adapter = createDiscordNativeApprovalAdapter();
const target = await adapter.native?.resolveOriginTarget?.({
cfg: {
...NATIVE_APPROVAL_CFG,
...NATIVE_DELIVERY_CFG,
session: { store: STORE_PATH },
} as never,
accountId: "main",
@@ -202,7 +212,7 @@ describe("createDiscordNativeApprovalAdapter", () => {
const adapter = createDiscordNativeApprovalAdapter();
const target = await adapter.native?.resolveOriginTarget?.({
cfg: NATIVE_APPROVAL_CFG as never,
cfg: NATIVE_DELIVERY_CFG as never,
accountId: "main",
approvalKind: "plugin",
request: {
@@ -227,7 +237,7 @@ describe("createDiscordNativeApprovalAdapter", () => {
const adapter = createDiscordNativeApprovalAdapter();
const target = await adapter.native?.resolveOriginTarget?.({
cfg: NATIVE_APPROVAL_CFG as never,
cfg: NATIVE_DELIVERY_CFG as never,
accountId: "main",
approvalKind: "plugin",
request: {
@@ -249,7 +259,7 @@ describe("createDiscordNativeApprovalAdapter", () => {
const adapter = createDiscordNativeApprovalAdapter();
const target = await adapter.native?.resolveOriginTarget?.({
cfg: NATIVE_APPROVAL_CFG as never,
cfg: NATIVE_DELIVERY_CFG as never,
accountId: "main",
approvalKind: "plugin",
request: {
@@ -275,7 +285,7 @@ describe("createDiscordNativeApprovalAdapter", () => {
const adapter = createDiscordNativeApprovalAdapter();
const target = await adapter.native?.resolveOriginTarget?.({
cfg: NATIVE_APPROVAL_CFG as never,
cfg: NATIVE_DELIVERY_CFG as never,
accountId: "main",
approvalKind: "plugin",
request: {

View File

@@ -180,7 +180,7 @@ export function createDiscordApprovalCapability(configOverride?: DiscordExecAppr
accountId && accountId !== "default"
? `channels.discord.accounts.${accountId}`
: "channels.discord";
return `Approve it from the Web UI or terminal UI for now. Discord supports native exec approvals for this account. Configure \`${prefix}.execApprovals.approvers\` or \`commands.ownerAllowFrom\`; leave \`${prefix}.execApprovals.enabled\` unset/\`auto\` or set it to \`true\`.`;
return `Approve it from the Web UI or terminal UI for now. Discord supports native exec approvals for this account. Configure \`${prefix}.execApprovals.approvers\` or \`commands.ownerAllowFrom\`; set \`${prefix}.execApprovals.enabled\` to \`auto\` or \`true\`.`;
},
listAccountIds: listDiscordAccountIds,
hasApprovers: ({ cfg, accountId }) =>