Add Away mode and an agent fork tool

This commit is contained in:
Ian Gulliver
2026-10-19 21:40:24 -07:00
parent bb60b685ba
commit f6f2440635
22 changed files with 617 additions and 317 deletions
+8 -3
View File
@@ -17,7 +17,7 @@ func (s *Store) CreateSnapshot(ctx context.Context, snap api.Snapshot, projectID
if err != nil {
return err
}
if snap.Trigger != api.SnapshotTriggerAnswer {
if !CutPoint(snap.Trigger) {
_, err = tx.ExecContext(ctx, `UPDATE tasks SET ready = '' WHERE id = ?`, snap.TaskId)
if err != nil {
return err
@@ -68,8 +68,13 @@ func (s *Store) LastSnapshot(ctx context.Context, taskID string) (api.Snapshot,
return snap, err
}
func (s *Store) LastSnapshotNot(ctx context.Context, taskID string, trigger api.SnapshotTrigger) (api.Snapshot, error) {
snap, err := scanSnapshot(s.db.QueryRowContext(ctx, `SELECT `+snapshotColumns+` FROM snapshots WHERE task_id = ? AND trigger != ? ORDER BY n DESC LIMIT 1`, taskID, string(trigger)))
func CutPoint(trigger api.SnapshotTrigger) bool {
return trigger == api.SnapshotTriggerAnswer || trigger == api.SnapshotTriggerFork
}
func (s *Store) LastReviewable(ctx context.Context, taskID string) (api.Snapshot, error) {
snap, err := scanSnapshot(s.db.QueryRowContext(ctx, `SELECT `+snapshotColumns+` FROM snapshots WHERE task_id = ? AND trigger NOT IN (?, ?) ORDER BY n DESC LIMIT 1`,
taskID, string(api.SnapshotTriggerAnswer), string(api.SnapshotTriggerFork)))
if errors.Is(err, sql.ErrNoRows) {
return snap, ErrNotFound
}