Problem
When config.json cannot be read or parsed, the workspace list comes back empty with no error. WorkspaceService.list and listByArchivedStatus read the defaults view that a failed load returns, so they answer []. The renderer's initial load uses the subscribeMetadata snapshot, which calls listByArchivedStatus. It accepts the empty snapshot as a success, clears its metadata map, sets loadError to null, and the projects sidebar shows no workspaces.
#5757 (PR #5777) fixes the same cause for workspace.getInfo, edits, sends and resumes. The list path was left out because it is the startup flow, and changing it needs its own renderer handling.
Expected
Found by Codex review on #5777.
Refs #5757
Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high • Cost: $37.09
Problem
When
config.jsoncannot be read or parsed, the workspace list comes back empty with no error.WorkspaceService.listandlistByArchivedStatusread the defaults view that a failed load returns, so they answer[]. The renderer's initial load uses thesubscribeMetadatasnapshot, which callslistByArchivedStatus. It accepts the empty snapshot as a success, clears its metadata map, setsloadErrorto null, and the projects sidebar shows no workspaces.#5757 (PR #5777) fixes the same cause for
workspace.getInfo, edits, sends and resumes. The list path was left out because it is the startup flow, and changing it needs its own renderer handling.Expected
Config.getConfigLoadError(), added in 🤖 fix: report an unreadable config.json instead of null getInfo and corrupt-file errors #5777) instead of an empty list.Found by Codex review on #5777.
Refs #5757
Generated with
xum• Model:anthropic:claude-opus-5-5• Thinking:high• Cost:$37.09