Happy review
This commit is contained in:
@@ -10,18 +10,25 @@ import (
|
||||
"g.fc.run/misc/byre/internal/api"
|
||||
)
|
||||
|
||||
const reviewColumns = `id, task_id, snapshot_n, agent_session_id, vendor, model, state, result, error, created_at, finished_at`
|
||||
const reviewColumns = `id, task_id, snapshot_n, coalesce(agent_session_id, ''), vendor, model, state, result, error, created_at, finished_at`
|
||||
|
||||
func (s *Store) CreateReview(ctx context.Context, r api.Review) error {
|
||||
finishedAt := ""
|
||||
if r.FinishedAt != nil {
|
||||
finishedAt = formatTime(*r.FinishedAt)
|
||||
}
|
||||
return s.write(ctx, func(tx *sql.Tx, emit emitFunc) error {
|
||||
_, err := tx.ExecContext(ctx, `
|
||||
INSERT INTO reviews (id, task_id, snapshot_n, agent_session_id, vendor, model, state, created_at)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
||||
`, r.Id, r.TaskId, r.SnapshotN, r.AgentSessionId, r.Vendor, r.Model, string(r.State), formatTime(r.CreatedAt))
|
||||
INSERT INTO reviews (id, task_id, snapshot_n, agent_session_id, vendor, model, state, created_at, finished_at)
|
||||
VALUES (?, ?, ?, nullif(?, ''), ?, ?, ?, ?, ?)
|
||||
`, r.Id, r.TaskId, r.SnapshotN, r.AgentSessionId, r.Vendor, r.Model, string(r.State), formatTime(r.CreatedAt), finishedAt)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return emitReview(ctx, tx, emit, "review.started", r.Id)
|
||||
if r.State == api.ReviewStateRunning {
|
||||
return emitReview(ctx, tx, emit, "review.started", r.Id)
|
||||
}
|
||||
return emitReview(ctx, tx, emit, "review.finished", r.Id)
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -321,6 +321,25 @@ DROP TABLE vapid_keys;
|
||||
`}, {"delete-report-inbox-items", `
|
||||
DELETE FROM inbox_responses WHERE item_id IN (SELECT id FROM inbox_items WHERE kind = 'report');
|
||||
DELETE FROM inbox_items WHERE kind = 'report';
|
||||
`}, {"allow-sessionless-reviews", `
|
||||
CREATE TABLE reviews_new (
|
||||
id TEXT PRIMARY KEY,
|
||||
task_id TEXT NOT NULL REFERENCES tasks(id),
|
||||
snapshot_n INTEGER NOT NULL,
|
||||
agent_session_id TEXT REFERENCES agent_sessions(id),
|
||||
vendor TEXT NOT NULL,
|
||||
model TEXT NOT NULL,
|
||||
state TEXT NOT NULL,
|
||||
result TEXT NOT NULL DEFAULT '',
|
||||
error TEXT NOT NULL DEFAULT '',
|
||||
created_at TEXT NOT NULL,
|
||||
finished_at TEXT NOT NULL DEFAULT '',
|
||||
UNIQUE (task_id, snapshot_n)
|
||||
);
|
||||
INSERT INTO reviews_new SELECT * FROM reviews;
|
||||
DROP TABLE reviews;
|
||||
ALTER TABLE reviews_new RENAME TO reviews;
|
||||
CREATE UNIQUE INDEX reviews_session ON reviews(agent_session_id);
|
||||
`}}
|
||||
|
||||
const (
|
||||
|
||||
Reference in New Issue
Block a user