Make every question blocking and drop inbox priority

This commit is contained in:
Ian Gulliver
2026-10-16 08:35:49 -07:00
parent 1427814014
commit 78cca2fcbe
25 changed files with 268 additions and 322 deletions
+7 -20
View File
@@ -11,17 +11,6 @@ import (
"g.fc.run/misc/byre/internal/api"
)
var priorities = []api.InboxItemPriority{api.Blocked, api.Gate, api.ReviewPriority, api.Fyi}
func priorityRank(p api.InboxItemPriority) int {
for i, q := range priorities {
if q == p {
return i
}
}
panic("unknown inbox priority " + string(p))
}
func DeliverableResponse(t api.InboxResponseType) bool {
switch t {
case api.Option, api.Other:
@@ -38,10 +27,10 @@ func (s *Store) CreateInboxItem(ctx context.Context, item api.InboxItem) error {
}
_, err = tx.ExecContext(ctx, `
INSERT INTO inbox_items (id, project_id, task_id, agent_session_id, thread_id, kind, priority, blocking, payload, state, created_at)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
`, item.Id, item.ProjectId, item.TaskId, item.AgentSessionId, item.ThreadId, string(item.Kind), priorityRank(item.Priority),
item.Blocking, string(payload), string(item.State), formatTime(item.CreatedAt))
INSERT INTO inbox_items (id, project_id, task_id, agent_session_id, thread_id, kind, payload, state, created_at)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
`, item.Id, item.ProjectId, item.TaskId, item.AgentSessionId, item.ThreadId, string(item.Kind),
string(payload), string(item.State), formatTime(item.CreatedAt))
if err != nil {
return err
}
@@ -218,7 +207,7 @@ func (s *Store) AwaitingHuman(ctx context.Context, sessionID string) (int, error
n := 0
err := s.db.QueryRowContext(ctx, `
SELECT COUNT(*) FROM inbox_items i
WHERE i.agent_session_id = ? AND i.kind = ? AND i.blocking AND i.state = ?
WHERE i.agent_session_id = ? AND i.kind = ? AND i.state = ?
AND NOT EXISTS (SELECT 1 FROM inbox_responses r WHERE r.item_id = i.id AND r.type IN (?, ?))
`, sessionID, string(api.Question), string(api.Open),
string(api.Option), string(api.Other)).Scan(&n)
@@ -293,7 +282,6 @@ type querier interface {
func getItem(ctx context.Context, q querier, id string) (api.InboxItem, error) {
item := api.InboxItem{}
kind := ""
priority := 0
payload := ""
state := ""
createdAt := ""
@@ -301,17 +289,16 @@ func getItem(ctx context.Context, q querier, id string) (api.InboxItem, error) {
resolvedAt := sql.NullString{}
err := q.QueryRowContext(ctx, `
SELECT id, project_id, task_id, agent_session_id, thread_id, kind, priority, blocking, payload, state,
SELECT id, project_id, task_id, agent_session_id, thread_id, kind, payload, state,
created_at, resolved_by, resolved_at
FROM inbox_items WHERE id = ?
`, id).Scan(&item.Id, &item.ProjectId, &item.TaskId, &item.AgentSessionId, &item.ThreadId, &kind, &priority, &item.Blocking,
`, id).Scan(&item.Id, &item.ProjectId, &item.TaskId, &item.AgentSessionId, &item.ThreadId, &kind,
&payload, &state, &createdAt, &resolvedBy, &resolvedAt)
if err != nil {
return item, err
}
item.Kind = api.InboxItemKind(kind)
item.Priority = priorities[priority]
item.State = api.InboxState(state)
err = json.Unmarshal([]byte(payload), &item.Payload)
if err != nil {