feat(workspace): clear prune_warning_at on SetWorktreeActive/Idle

This commit is contained in:
2026-05-05 16:45:25 +08:00
parent e768adb3ff
commit ba1d657973
4 changed files with 208 additions and 21 deletions
+26 -10
View File
@@ -15,7 +15,7 @@ const createWorktree = `-- name: CreateWorktree :one
INSERT INTO workspace_worktrees (
id, workspace_id, branch, path, status, active_holder, acquired_at
) VALUES ($1,$2,$3,$4,$5,$6,$7)
RETURNING id, workspace_id, branch, path, status, active_holder, acquired_at, last_used_at, created_at
RETURNING id, workspace_id, branch, path, status, active_holder, acquired_at, last_used_at, created_at, prune_warning_at
`
type CreateWorktreeParams struct {
@@ -49,6 +49,7 @@ func (q *Queries) CreateWorktree(ctx context.Context, arg CreateWorktreeParams)
&i.AcquiredAt,
&i.LastUsedAt,
&i.CreatedAt,
&i.PruneWarningAt,
)
return i, err
}
@@ -63,7 +64,7 @@ func (q *Queries) DeleteWorktree(ctx context.Context, id pgtype.UUID) error {
}
const getWorktreeByBranchForUpdate = `-- name: GetWorktreeByBranchForUpdate :one
SELECT id, workspace_id, branch, path, status, active_holder, acquired_at, last_used_at, created_at FROM workspace_worktrees
SELECT id, workspace_id, branch, path, status, active_holder, acquired_at, last_used_at, created_at, prune_warning_at FROM workspace_worktrees
WHERE workspace_id = $1 AND branch = $2
FOR UPDATE
`
@@ -86,12 +87,13 @@ func (q *Queries) GetWorktreeByBranchForUpdate(ctx context.Context, arg GetWorkt
&i.AcquiredAt,
&i.LastUsedAt,
&i.CreatedAt,
&i.PruneWarningAt,
)
return i, err
}
const getWorktreeByID = `-- name: GetWorktreeByID :one
SELECT id, workspace_id, branch, path, status, active_holder, acquired_at, last_used_at, created_at FROM workspace_worktrees WHERE id = $1
SELECT id, workspace_id, branch, path, status, active_holder, acquired_at, last_used_at, created_at, prune_warning_at FROM workspace_worktrees WHERE id = $1
`
func (q *Queries) GetWorktreeByID(ctx context.Context, id pgtype.UUID) (WorkspaceWorktree, error) {
@@ -107,12 +109,13 @@ func (q *Queries) GetWorktreeByID(ctx context.Context, id pgtype.UUID) (Workspac
&i.AcquiredAt,
&i.LastUsedAt,
&i.CreatedAt,
&i.PruneWarningAt,
)
return i, err
}
const getWorktreeByIDForUpdate = `-- name: GetWorktreeByIDForUpdate :one
SELECT id, workspace_id, branch, path, status, active_holder, acquired_at, last_used_at, created_at FROM workspace_worktrees WHERE id = $1
SELECT id, workspace_id, branch, path, status, active_holder, acquired_at, last_used_at, created_at, prune_warning_at FROM workspace_worktrees WHERE id = $1
FOR UPDATE
`
@@ -129,12 +132,13 @@ func (q *Queries) GetWorktreeByIDForUpdate(ctx context.Context, id pgtype.UUID)
&i.AcquiredAt,
&i.LastUsedAt,
&i.CreatedAt,
&i.PruneWarningAt,
)
return i, err
}
const listWorktreesByWorkspace = `-- name: ListWorktreesByWorkspace :many
SELECT id, workspace_id, branch, path, status, active_holder, acquired_at, last_used_at, created_at FROM workspace_worktrees
SELECT id, workspace_id, branch, path, status, active_holder, acquired_at, last_used_at, created_at, prune_warning_at FROM workspace_worktrees
WHERE workspace_id = $1
ORDER BY created_at DESC
`
@@ -158,6 +162,7 @@ func (q *Queries) ListWorktreesByWorkspace(ctx context.Context, workspaceID pgty
&i.AcquiredAt,
&i.LastUsedAt,
&i.CreatedAt,
&i.PruneWarningAt,
); err != nil {
return nil, err
}
@@ -171,9 +176,13 @@ func (q *Queries) ListWorktreesByWorkspace(ctx context.Context, workspaceID pgty
const setWorktreeActive = `-- name: SetWorktreeActive :one
UPDATE workspace_worktrees
SET status = 'active', active_holder = $2, acquired_at = now(), last_used_at = now()
SET status = 'active',
active_holder = $2,
acquired_at = now(),
last_used_at = now(),
prune_warning_at = NULL
WHERE id = $1
RETURNING id, workspace_id, branch, path, status, active_holder, acquired_at, last_used_at, created_at
RETURNING id, workspace_id, branch, path, status, active_holder, acquired_at, last_used_at, created_at, prune_warning_at
`
type SetWorktreeActiveParams struct {
@@ -194,15 +203,20 @@ func (q *Queries) SetWorktreeActive(ctx context.Context, arg SetWorktreeActivePa
&i.AcquiredAt,
&i.LastUsedAt,
&i.CreatedAt,
&i.PruneWarningAt,
)
return i, err
}
const setWorktreeIdle = `-- name: SetWorktreeIdle :one
UPDATE workspace_worktrees
SET status = 'idle', active_holder = NULL, acquired_at = NULL, last_used_at = now()
SET status = 'idle',
active_holder = NULL,
acquired_at = NULL,
last_used_at = now(),
prune_warning_at = NULL
WHERE id = $1
RETURNING id, workspace_id, branch, path, status, active_holder, acquired_at, last_used_at, created_at
RETURNING id, workspace_id, branch, path, status, active_holder, acquired_at, last_used_at, created_at, prune_warning_at
`
func (q *Queries) SetWorktreeIdle(ctx context.Context, id pgtype.UUID) (WorkspaceWorktree, error) {
@@ -218,6 +232,7 @@ func (q *Queries) SetWorktreeIdle(ctx context.Context, id pgtype.UUID) (Workspac
&i.AcquiredAt,
&i.LastUsedAt,
&i.CreatedAt,
&i.PruneWarningAt,
)
return i, err
}
@@ -226,7 +241,7 @@ const setWorktreePruning = `-- name: SetWorktreePruning :one
UPDATE workspace_worktrees
SET status = 'pruning', last_used_at = now()
WHERE id = $1
RETURNING id, workspace_id, branch, path, status, active_holder, acquired_at, last_used_at, created_at
RETURNING id, workspace_id, branch, path, status, active_holder, acquired_at, last_used_at, created_at, prune_warning_at
`
func (q *Queries) SetWorktreePruning(ctx context.Context, id pgtype.UUID) (WorkspaceWorktree, error) {
@@ -242,6 +257,7 @@ func (q *Queries) SetWorktreePruning(ctx context.Context, id pgtype.UUID) (Works
&i.AcquiredAt,
&i.LastUsedAt,
&i.CreatedAt,
&i.PruneWarningAt,
)
return i, err
}