feat(web): conversation management — search, rename, delete, archive (#121)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful

- Add search/filter input to sidebar that filters conversations by title
- Add rename via double-click or context menu (right-click), confirmed with Enter or blur
- Add delete with inline confirmation dialog in context menu
- Add archive/unarchive via context menu with collapsible archived section
- Add auto-title: generates conversation title from first message content
- Show relative timestamps (e.g. "2h ago", "Yesterday") instead of raw dates
- Extend Conversation type with `archived` boolean field
- Add `archived` column + index to conversations DB schema (migration 0001)
- Extend UpdateConversationDto with optional `archived` field

Fixes #121

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-15 13:19:38 -05:00
parent 8633823257
commit be45345850
7 changed files with 2228 additions and 25 deletions

View File

@@ -1,4 +1,12 @@
import { IsIn, IsObject, IsOptional, IsString, IsUUID, MaxLength } from 'class-validator';
import {
IsBoolean,
IsIn,
IsObject,
IsOptional,
IsString,
IsUUID,
MaxLength,
} from 'class-validator';
export class CreateConversationDto {
@IsOptional()
@@ -20,6 +28,10 @@ export class UpdateConversationDto {
@IsOptional()
@IsUUID()
projectId?: string | null;
@IsOptional()
@IsBoolean()
archived?: boolean;
}
export class SendMessageDto {