diff --git a/.changeset/funky-rooms-check.md b/.changeset/funky-rooms-check.md new file mode 100644 index 0000000..e9f5711 --- /dev/null +++ b/.changeset/funky-rooms-check.md @@ -0,0 +1,5 @@ +--- +"wtc": patch +--- + +Fixes an issue where a call to metadata that would error would stop the TUI from continuing. diff --git a/src/tui/pages/teamwork/project-tab.tsx b/src/tui/pages/teamwork/project-tab.tsx index 002262e..61faf19 100644 --- a/src/tui/pages/teamwork/project-tab.tsx +++ b/src/tui/pages/teamwork/project-tab.tsx @@ -88,11 +88,6 @@ export function ProjectTab() { return; } - if (!projectId) { - setProjectMessage("Set teamwork.projectId in Settings to load Teamwork metadata."); - return; - } - if (authStatus === "missing") { setProjectMessage( "Teamwork auth not configured. Use Settings or `wtc config auth set` to add your API token.", @@ -100,8 +95,25 @@ export function ProjectTab() { return; } - const metadata = await getTeamworkProjectMetadata(projectId); - setProjectMetadata(metadata); + const messages: string[] = []; + + if (projectId) { + try { + const metadata = await getTeamworkProjectMetadata(projectId); + setProjectMetadata(metadata); + messages.push( + metadata.source === "cache" + ? "Using cached Teamwork project metadata." + : "Fetched Teamwork project metadata.", + ); + } catch (error) { + messages.push( + `Failed to load project metadata: ${error instanceof Error ? error.message : String(error)}`, + ); + } + } else { + messages.push("Set teamwork.projectId in Settings to load Teamwork metadata."); + } const results = await getPinnedTaskListTasks(config.project.teamwork.pinnedTaskLists); const nextPinnedTaskLists: PinnedTaskListState[] = results.map((r) => ({ @@ -113,11 +125,7 @@ export function ProjectTab() { setPinnedTaskLists(nextPinnedTaskLists); setSelectedTask(getNextPinnedTaskSelection(nextPinnedTaskLists, selectedTask(), 1)); - setProjectMessage( - metadata.source === "cache" - ? "Using cached Teamwork project metadata." - : "Fetched Teamwork project metadata.", - ); + setProjectMessage(messages.join(" ")); } catch (error) { setProjectMessage(error instanceof Error ? error.message : "Failed to load project context."); }