Add concurrency caps, the two-pane web UI, AGENTS.md, and plan status
This commit is contained in:
@@ -113,6 +113,15 @@ CREATE TABLE inbox_responses (
|
||||
);
|
||||
|
||||
CREATE INDEX inbox_responses_item ON inbox_responses(item_id, created_at);
|
||||
`, `
|
||||
CREATE INDEX events_task ON events(task_id, seq);
|
||||
`, `
|
||||
CREATE TABLE turn_queue (
|
||||
session_id TEXT PRIMARY KEY REFERENCES agent_sessions(id),
|
||||
actor TEXT NOT NULL,
|
||||
text TEXT NOT NULL,
|
||||
created_at TEXT NOT NULL
|
||||
);
|
||||
`}
|
||||
|
||||
type Store struct {
|
||||
@@ -335,6 +344,21 @@ func (s *Store) EventsAfter(ctx context.Context, after int64, limit int) ([]api.
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return scanEvents(rows)
|
||||
}
|
||||
|
||||
func (s *Store) TaskEvents(ctx context.Context, taskID string, after int64, limit int) ([]api.Event, error) {
|
||||
rows, err := s.db.QueryContext(ctx, `
|
||||
SELECT seq, kind, project_id, task_id, agent_session_id, actor, payload, created_at
|
||||
FROM events WHERE task_id = ? AND seq > ? ORDER BY seq LIMIT ?
|
||||
`, taskID, after, limit)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return scanEvents(rows)
|
||||
}
|
||||
|
||||
func scanEvents(rows *sql.Rows) ([]api.Event, error) {
|
||||
defer rows.Close()
|
||||
|
||||
events := []api.Event{}
|
||||
|
||||
Reference in New Issue
Block a user