Improve performance of conversation (#692)

* Stream endpoint for execution processes (vibe-kanban c5144da6)

I want an endpoint that's similar to task stream in crates/server/src/routes/tasks.rs but contains execution processes.

The structure of the document should be:

```json
{
    "execution_processes": {
        [EXECUTION_PROCESS_ID]: {
            ... execution process fields
        }
    }
}
```

The endpoint should be at `/api/execution_processes/stream?task_attempt_id=...`

crates/server/src/routes/execution_processes.rs

* add virtualizedlist component

* WIP remove execution processes

* rebase syntax fix

* tmp fix lint

* lint

* VirtuosoMessageList

* cache

* event based hook

* historic

* handle failed historic

* running processes

* user message

* loading

* cleanup

* render user message

* style

* fmt

* better indication for setup/cleanup scripts

* fix ref issue

* virtuoso license

* fmt

* update loader

* loading

* fmt

* loading improvements

* copy as markdown styles

* spacing improvement

* flush all historic at once

* padding fix

* markdown copy sticky

* make user message editable

* edit message

* reset

* cleanup

* hook order

* remove dead code
This commit is contained in:
Louis Knight-Webb
2025-09-12 18:09:14 +01:00
committed by GitHub
parent bb410a14b2
commit 15dddacfe2
25 changed files with 1492 additions and 876 deletions

View File

@@ -256,7 +256,7 @@ export type EventPatch = { op: string, path: string, value: EventPatchInner, };
export type EventPatchInner = { db_op: string, record: RecordTypes, };
export type RecordTypes = { "type": "TASK", "data": Task } | { "type": "TASK_ATTEMPT", "data": TaskAttempt } | { "type": "EXECUTION_PROCESS", "data": ExecutionProcess } | { "type": "FOLLOW_UP_DRAFT", "data": FollowUpDraft } | { "type": "DELETED_TASK", "data": { rowid: bigint, project_id: string | null, task_id: string | null, } } | { "type": "DELETED_TASK_ATTEMPT", "data": { rowid: bigint, task_id: string | null, } } | { "type": "DELETED_EXECUTION_PROCESS", "data": { rowid: bigint, task_attempt_id: string | null, } } | { "type": "DELETED_FOLLOW_UP_DRAFT", "data": { rowid: bigint, task_attempt_id: string | null, } };
export type RecordTypes = { "type": "TASK", "data": Task } | { "type": "TASK_ATTEMPT", "data": TaskAttempt } | { "type": "EXECUTION_PROCESS", "data": ExecutionProcess } | { "type": "FOLLOW_UP_DRAFT", "data": FollowUpDraft } | { "type": "DELETED_TASK", "data": { rowid: bigint, project_id: string | null, task_id: string | null, } } | { "type": "DELETED_TASK_ATTEMPT", "data": { rowid: bigint, task_id: string | null, } } | { "type": "DELETED_EXECUTION_PROCESS", "data": { rowid: bigint, task_attempt_id: string | null, process_id: string | null, } } | { "type": "DELETED_FOLLOW_UP_DRAFT", "data": { rowid: bigint, task_attempt_id: string | null, } };
export type FollowUpDraft = { id: string, task_attempt_id: string, prompt: string, queued: boolean, sending: boolean, variant: string | null, image_ids: Array<string> | null, created_at: string, updated_at: string, version: bigint, };
@@ -268,7 +268,7 @@ export type NormalizedConversation = { entries: Array<NormalizedEntry>, session_
export type NormalizedEntry = { timestamp: string | null, entry_type: NormalizedEntryType, content: string, };
export type NormalizedEntryType = { "type": "user_message" } | { "type": "assistant_message" } | { "type": "tool_use", tool_name: string, action_type: ActionType, } | { "type": "system_message" } | { "type": "error_message" } | { "type": "thinking" };
export type NormalizedEntryType = { "type": "user_message" } | { "type": "assistant_message" } | { "type": "tool_use", tool_name: string, action_type: ActionType, } | { "type": "system_message" } | { "type": "error_message" } | { "type": "thinking" } | { "type": "loading" };
export type FileChange = { "action": "write", content: string, } | { "action": "delete" } | { "action": "rename", new_path: string, } | { "action": "edit",
/**