feat(app): add workspace startup script to projects

This commit is contained in:
Adam
2026-01-22 07:41:20 -06:00
parent 287511c9b1
commit 16fad51b5e
9 changed files with 1379 additions and 300 deletions

View File

@@ -29,6 +29,11 @@ export namespace Project {
color: z.string().optional(),
})
.optional(),
commands: z
.object({
start: z.string().optional().describe("Startup script to run when creating a new workspace (worktree)"),
})
.optional(),
time: z.object({
created: z.number(),
updated: z.number(),
@@ -287,6 +292,7 @@ export namespace Project {
projectID: z.string(),
name: z.string().optional(),
icon: Info.shape.icon.optional(),
commands: Info.shape.commands.optional(),
}),
async (input) => {
const result = await Storage.update<Info>(["project", input.projectID], (draft) => {
@@ -299,6 +305,16 @@ export namespace Project {
if (input.icon.override !== undefined) draft.icon.override = input.icon.override || undefined
if (input.icon.color !== undefined) draft.icon.color = input.icon.color
}
if (input.commands?.start !== undefined) {
const start = input.commands.start || undefined
draft.commands = {
...(draft.commands ?? {}),
}
draft.commands.start = start
if (!draft.commands.start) draft.commands = undefined
}
draft.time.updated = Date.now()
})
GlobalBus.emit("event", {