From b499ca3ce9696e023843a63f28b3f8890da83803 Mon Sep 17 00:00:00 2001 From: Marlon Marcello Date: Tue, 30 Jun 2026 16:55:55 -0700 Subject: [PATCH 1/4] fix: isolate metadata from project --- src/tui/pages/teamwork/project-tab.tsx | 32 ++++++++++++++++---------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/src/tui/pages/teamwork/project-tab.tsx b/src/tui/pages/teamwork/project-tab.tsx index 002262e..fcb0aa8 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 : "Unknown error"}.`, + ); + } + } else { + messages.push("No project ID set."); + } 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."); } From d8817d957a065b580e7b448e54e5c100d59636c9 Mon Sep 17 00:00:00 2001 From: Marlon Marcello Date: Tue, 30 Jun 2026 16:57:03 -0700 Subject: [PATCH 2/4] chore: changeset --- .changeset/funky-rooms-check.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/funky-rooms-check.md 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. From abb5ca8472bf3284089c4d957b0b742f9685a995 Mon Sep 17 00:00:00 2001 From: "Marlon U. Marcello" Date: Tue, 30 Jun 2026 17:03:37 -0700 Subject: [PATCH 3/4] fix: better error naming Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: Marlon U. Marcello --- src/tui/pages/teamwork/project-tab.tsx | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/tui/pages/teamwork/project-tab.tsx b/src/tui/pages/teamwork/project-tab.tsx index fcb0aa8..0e06cb9 100644 --- a/src/tui/pages/teamwork/project-tab.tsx +++ b/src/tui/pages/teamwork/project-tab.tsx @@ -107,13 +107,14 @@ export function ProjectTab() { : "Fetched Teamwork project metadata.", ); } catch (error) { - messages.push( - `Failed to load project metadata: ${error instanceof Error ? error.message : "Unknown error"}.`, - ); + } 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."); } - } else { - messages.push("No project ID set."); - } const results = await getPinnedTaskListTasks(config.project.teamwork.pinnedTaskLists); const nextPinnedTaskLists: PinnedTaskListState[] = results.map((r) => ({ From ee4cc3a5128620fe18abfb2d160040fab461b799 Mon Sep 17 00:00:00 2001 From: Marlon Marcello Date: Tue, 30 Jun 2026 17:06:01 -0700 Subject: [PATCH 4/4] fix: formatting --- src/tui/pages/teamwork/project-tab.tsx | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/tui/pages/teamwork/project-tab.tsx b/src/tui/pages/teamwork/project-tab.tsx index 0e06cb9..61faf19 100644 --- a/src/tui/pages/teamwork/project-tab.tsx +++ b/src/tui/pages/teamwork/project-tab.tsx @@ -107,14 +107,13 @@ export function ProjectTab() { : "Fetched Teamwork project metadata.", ); } catch (error) { - } 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."); + 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) => ({