feat: improve workspace file tree loading

This commit is contained in:
Carlos Florêncio
2026-02-03 14:17:58 +00:00
parent 2d0985599a
commit 7c7ff2d016
5 changed files with 149 additions and 18 deletions
+3
View File
@@ -190,6 +190,9 @@ export type TaskSessionAgentctlPayload = {
session_id: string;
agent_execution_id?: string;
error_message?: string;
worktree_id?: string;
worktree_path?: string;
worktree_branch?: string;
};
export type FileInfo = {
+31
View File
@@ -109,6 +109,37 @@ export function registerTaskSessionHandlers(store: StoreApi<AppState>): WsHandle
agentExecutionId: payload.agent_execution_id,
updatedAt: message.timestamp,
});
const existingSession = store.getState().taskSessions.items[payload.session_id];
if (!existingSession) {
return;
}
const sessionUpdate: Record<string, unknown> = {};
if (payload.worktree_id) sessionUpdate.worktree_id = payload.worktree_id;
if (payload.worktree_path) sessionUpdate.worktree_path = payload.worktree_path;
if (payload.worktree_branch) sessionUpdate.worktree_branch = payload.worktree_branch;
if (Object.keys(sessionUpdate).length > 0) {
store.getState().setTaskSession({
...existingSession,
...sessionUpdate,
});
}
if (payload.worktree_id) {
store.getState().setWorktree({
id: payload.worktree_id,
sessionId: payload.session_id,
repositoryId: existingSession.repository_id ?? undefined,
path: payload.worktree_path ?? existingSession.worktree_path ?? undefined,
branch: payload.worktree_branch ?? existingSession.worktree_branch ?? undefined,
});
const existing = store.getState().sessionWorktreesBySessionId.itemsBySessionId[payload.session_id] ?? [];
if (!existing.includes(payload.worktree_id)) {
store.getState().setSessionWorktrees(payload.session_id, [...existing, payload.worktree_id]);
}
}
},
'session.agentctl_error': (message) => {
const payload = message.payload;