Keep queued messages visible across task switches
This commit is contained in:
@@ -63,7 +63,11 @@ func (m *Manager) Message(ctx context.Context, sessionID, actor, text, model str
|
||||
sess.Model = model
|
||||
}
|
||||
|
||||
err = m.store.AddTaskInput(ctx, store.TaskInput{TaskID: sess.TaskId, Actor: actor, Text: text, Images: images})
|
||||
task, err := m.store.GetTask(ctx, sess.TaskId)
|
||||
if err != nil {
|
||||
return api.AgentSession{}, err
|
||||
}
|
||||
err = m.store.AddTaskInput(ctx, store.TaskInput{TaskID: sess.TaskId, Actor: actor, Text: text, Images: images}, task.ProjectId, sess.Id)
|
||||
if err != nil {
|
||||
return api.AgentSession{}, err
|
||||
}
|
||||
|
||||
@@ -16,15 +16,22 @@ type TaskInput struct {
|
||||
CreatedAt time.Time
|
||||
}
|
||||
|
||||
func (s *Store) AddTaskInput(ctx context.Context, in TaskInput) error {
|
||||
func (s *Store) AddTaskInput(ctx context.Context, in TaskInput, projectID, sessionID string) error {
|
||||
images, err := json.Marshal(append([]string{}, in.Images...))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
payload := map[string]any{"text": in.Text}
|
||||
if len(in.Images) > 0 {
|
||||
payload["images"] = in.Images
|
||||
}
|
||||
return s.write(ctx, func(tx *sql.Tx, emit emitFunc) error {
|
||||
_, err := tx.ExecContext(ctx, `INSERT INTO task_inputs (task_id, actor, text, images, created_at) VALUES (?, ?, ?, ?, ?)`,
|
||||
in.TaskID, in.Actor, in.Text, string(images), now())
|
||||
return err
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return emit(sessionEvent("user.queued", projectID, in.TaskID, "", sessionID, in.Actor, payload))
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user