Add thread rename support

This commit is contained in:
Codex
2026-05-21 09:31:47 +00:00
parent ad61f7eeed
commit bc866d1224
7 changed files with 197 additions and 4 deletions

View File

@@ -421,6 +421,18 @@ func (s *Store) TouchThread(ctx context.Context, codexThreadID string) error {
return err
}
func (s *Store) RenameThread(ctx context.Context, telegramUserID, id int64, title string) error {
_, err := s.db.ExecContext(ctx, `
UPDATE threads SET title = ?, updated_at = datetime('now')
WHERE telegram_user_id = ? AND id = ?`, title, telegramUserID, id)
return err
}
func (s *Store) RenameThreadByCodexID(ctx context.Context, codexThreadID, title string) error {
_, err := s.db.ExecContext(ctx, "UPDATE threads SET title = ?, updated_at = datetime('now') WHERE codex_thread_id = ?", title, codexThreadID)
return err
}
func (s *Store) UpsertPendingApproval(ctx context.Context, approval PendingApproval) (PendingApproval, error) {
_, err := s.db.ExecContext(ctx, `
INSERT INTO pending_approvals (

View File

@@ -120,6 +120,44 @@ func TestListThreadsPage(t *testing.T) {
}
}
func TestRenameThread(t *testing.T) {
ctx := context.Background()
st, err := Open(ctx, filepath.Join(t.TempDir(), "bot.db"))
if err != nil {
t.Fatal(err)
}
defer st.Close()
ws, err := st.AddWorkspace(ctx, t.TempDir(), "repo", true)
if err != nil {
t.Fatal(err)
}
thread, err := st.CreateThread(ctx, 42, "codex-thread", ws.ID, "old title")
if err != nil {
t.Fatal(err)
}
if err := st.RenameThread(ctx, 42, thread.ID, "new title"); err != nil {
t.Fatal(err)
}
thread, err = st.GetThreadByID(ctx, 42, thread.ID)
if err != nil {
t.Fatal(err)
}
if thread.Title != "new title" {
t.Fatalf("title = %q", thread.Title)
}
if err := st.RenameThreadByCodexID(ctx, "codex-thread", "codex title"); err != nil {
t.Fatal(err)
}
thread, err = st.GetThreadByID(ctx, 42, thread.ID)
if err != nil {
t.Fatal(err)
}
if thread.Title != "codex title" {
t.Fatalf("title = %q", thread.Title)
}
}
func TestValidateWorkspacePath(t *testing.T) {
if _, err := ValidateWorkspacePath("relative/path"); err == nil {
t.Fatal("relative path should be rejected")