summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/context
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-12-31 14:04:44 -0600
committerAdam <[email protected]>2025-12-31 14:04:44 -0600
commitd4a2652eda926dbfa03878ef3e46e55ef53517ca (patch)
tree6aa0d1e3d21a41210cdcebf6ee3d4e1f87f2110d /packages/app/src/context
parent7a4bfbe56d0115996dd37ccf9d73f95716571ecf (diff)
downloadopencode-d4a2652eda926dbfa03878ef3e46e55ef53517ca.tar.gz
opencode-d4a2652eda926dbfa03878ef3e46e55ef53517ca.zip
feat(desktop): better affordance for auto-accept
Diffstat (limited to 'packages/app/src/context')
-rw-r--r--packages/app/src/context/permission.tsx14
1 files changed, 13 insertions, 1 deletions
diff --git a/packages/app/src/context/permission.tsx b/packages/app/src/context/permission.tsx
index d82a8392c..a0ad1ee05 100644
--- a/packages/app/src/context/permission.tsx
+++ b/packages/app/src/context/permission.tsx
@@ -1,9 +1,11 @@
-import { onCleanup } from "solid-js"
+import { createMemo, onCleanup } from "solid-js"
import { createStore } from "solid-js/store"
import { createSimpleContext } from "@opencode-ai/ui/context"
import type { Permission } from "@opencode-ai/sdk/v2/client"
import { persisted } from "@/utils/persist"
import { useGlobalSDK } from "@/context/global-sdk"
+import { useGlobalSync } from "./global-sync"
+import { useParams } from "@solidjs/router"
type PermissionRespondFn = (input: {
sessionID: string
@@ -21,7 +23,16 @@ function shouldAutoAccept(perm: Permission) {
export const { use: usePermission, provider: PermissionProvider } = createSimpleContext({
name: "Permission",
init: () => {
+ const params = useParams()
const globalSDK = useGlobalSDK()
+ const globalSync = useGlobalSync()
+
+ const permissionsEnabled = createMemo(() => {
+ if (!params.dir) return false
+ const [store] = globalSync.child(params.dir)
+ return store.config.permission !== undefined
+ })
+
const [store, setStore, _, ready] = persisted(
"permission.v3",
createStore({
@@ -106,6 +117,7 @@ export const { use: usePermission, provider: PermissionProvider } = createSimple
disableAutoAccept(sessionID: string) {
disable(sessionID)
},
+ permissionsEnabled,
}
},
})