657b92eb69
* fix: restore workspace deletion from settings * fix: validate workspace delete in service * fix: clarify workspace delete errors * fix: address workspace delete review feedback * fix: guard confirmed workspace delete before cascade * fix: simplify workspace delete cascade guard * fix: make confirmed workspace delete atomic * fix: preserve confirmed workspace delete side effects * fix: snapshot confirmed workspace cascade rows * fix: clarify confirmed workspace delete cleanup * fix: preserve office workspace deletion cleanup * fix: preserve workspace delete error mapping * fix: streamline workspace delete cascade * fix: harden workspace delete cleanup * fix: keep workspace delete failure logs * fix: fail workspace delete on missing session inventory --------- Co-authored-by: root <root@kandev.ts.net>
30 lines
1.3 KiB
Go
30 lines
1.3 KiB
Go
package sqlite
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/kandev/kandev/internal/task/repository/repoerrors"
|
|
)
|
|
|
|
// ErrTaskNotFound is returned by Repository methods (GetTask, UpdateTask,
|
|
// DeleteTask, UpdateTaskState, …) when no row matches the supplied id.
|
|
// Callers should classify via errors.Is rather than substring-matching the
|
|
// formatted message, which includes the task id and is therefore brittle.
|
|
var ErrTaskNotFound = errors.New("task not found")
|
|
|
|
// ErrWorkspaceNotFound is returned by Repository workspace methods when no row
|
|
// matches the supplied id.
|
|
var ErrWorkspaceNotFound = repoerrors.ErrWorkspaceNotFound
|
|
|
|
// ErrNoPrimarySession is returned by GetPrimarySessionByTaskID when the task
|
|
// has no primary session row. Callers should use errors.Is to distinguish this
|
|
// "not found" case from genuine backend/DB errors.
|
|
var ErrNoPrimarySession = errors.New("no primary session")
|
|
|
|
// ErrOfficeSessionRaceConflict is returned by CreateTaskSession when the
|
|
// insert violates the uniq_office_task_session partial unique index — i.e.
|
|
// two callers raced past their SELECT-then-INSERT for the same
|
|
// (task_id, agent_profile_id) pair. Callers should re-read and reuse the
|
|
// winning row rather than treating this as a hard failure.
|
|
var ErrOfficeSessionRaceConflict = errors.New("office task session race conflict")
|