refactor: replace focusedIndex with activeChildId

- Replace focusedIndex integer with activeChildId string in messages schema
- Add migration to convert existing data and drop focused_index column
- Add  hooks for providers.updatedAt and messageParts.lastUpdatedAt
- Add file size column to files table
- Update message navigation to use child ID-based lookup
- Simplify delete logic by removing focusedIndex math
- Fix file delete endpoint filename ([id[ -> [id])
This commit is contained in:
Zoe
2026-05-11 17:41:57 -05:00
parent 7a944afdb5
commit 103dedd9cc
16 changed files with 2106 additions and 1793 deletions
+3 -11
View File
@@ -22,20 +22,12 @@ export const buildFocusedMessageTree = (messages: Readonly<Message[]>): MessageE
let focusedMessageTree: MessageEntity[] = [];
for (const message of messages) {
if (message.focusedIndex) {
if (message.focusedIndex === 0) {
focusedMessageTree.push(message);
continue;
}
const activeChild = message.children[Math.min(Math.max(message.focusedIndex! - 1, 0), message.children.length - 1)]
if (message.activeChildId && message.children.length > 0) {
const activeChild = message.children.find(c => c?.id === message.activeChildId);
if (activeChild) {
focusedMessageTree.push(activeChild);
} else {
focusedMessageTree.push(message);
continue;
}
continue;
}
focusedMessageTree.push(message);