diff options
| author | Tommy D. Rossi <[email protected]> | 2026-04-12 00:14:30 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-04-11 17:14:30 -0500 |
| commit | d62ec7776ea90097dd292a5660c1db602fe0aa3e (patch) | |
| tree | 2ccb8f6a18d3f961ae0b8e14bc159c72633a4f62 /packages | |
| parent | cb1e5d9e41b451dbf44ee565d61c6bd426f9175a (diff) | |
| download | opencode-d62ec7776ea90097dd292a5660c1db602fe0aa3e.tar.gz opencode-d62ec7776ea90097dd292a5660c1db602fe0aa3e.zip | |
feat: allow session permission updates (#22070)
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/opencode/src/server/instance/session.ts | 8 | ||||
| -rw-r--r-- | packages/opencode/src/session/index.ts | 5 | ||||
| -rw-r--r-- | packages/sdk/js/src/v2/gen/sdk.gen.ts | 2 | ||||
| -rw-r--r-- | packages/sdk/js/src/v2/gen/types.gen.ts | 1 |
4 files changed, 16 insertions, 0 deletions
diff --git a/packages/opencode/src/server/instance/session.ts b/packages/opencode/src/server/instance/session.ts index a2a15d59e..016fb3ee1 100644 --- a/packages/opencode/src/server/instance/session.ts +++ b/packages/opencode/src/server/instance/session.ts @@ -273,6 +273,7 @@ export const SessionRoutes = lazy(() => "json", z.object({ title: z.string().optional(), + permission: Permission.Ruleset.optional(), time: z .object({ archived: z.number().optional(), @@ -283,10 +284,17 @@ export const SessionRoutes = lazy(() => async (c) => { const sessionID = c.req.valid("param").sessionID const updates = c.req.valid("json") + const current = await Session.get(sessionID) if (updates.title !== undefined) { await Session.setTitle({ sessionID, title: updates.title }) } + if (updates.permission !== undefined) { + await Session.setPermission({ + sessionID, + permission: Permission.merge(current.permission ?? [], updates.permission), + }) + } if (updates.time?.archived !== undefined) { await Session.setArchived({ sessionID, time: updates.time.archived }) } diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index d7bf99637..70deb95a4 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -708,6 +708,11 @@ export namespace Session { runPromise((svc) => svc.setArchived(input)), ) + export const setPermission = fn( + z.object({ sessionID: SessionID.zod, permission: Permission.Ruleset }), + (input) => runPromise((svc) => svc.setPermission(input)), + ) + export const setRevert = fn( z.object({ sessionID: SessionID.zod, revert: Info.shape.revert, summary: Info.shape.summary }), (input) => diff --git a/packages/sdk/js/src/v2/gen/sdk.gen.ts b/packages/sdk/js/src/v2/gen/sdk.gen.ts index d06a504d6..7fba60fce 100644 --- a/packages/sdk/js/src/v2/gen/sdk.gen.ts +++ b/packages/sdk/js/src/v2/gen/sdk.gen.ts @@ -1725,6 +1725,7 @@ export class Session2 extends HeyApiClient { directory?: string workspace?: string title?: string + permission?: PermissionRuleset time?: { archived?: number } @@ -1740,6 +1741,7 @@ export class Session2 extends HeyApiClient { { in: "query", key: "directory" }, { in: "query", key: "workspace" }, { in: "body", key: "title" }, + { in: "body", key: "permission" }, { in: "body", key: "time" }, ], }, diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts index de45b1599..f2b32a159 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -3266,6 +3266,7 @@ export type SessionGetResponse = SessionGetResponses[keyof SessionGetResponses] export type SessionUpdateData = { body?: { title?: string + permission?: PermissionRuleset time?: { archived?: number } |
