Skip to content

fix(web): handle missing room data instead of inventing it - #171

Merged
TheGreatAxios merged 4 commits into
cl-12110-remove-swallowed-errors-unchecked-casts-and-iifes-from-thefrom
cl-12110-handle-missing-room-data-instead-of-inventing-it
Nov 4, 2026
Merged

TheGreatAxios merged 4 commits into
cl-12110-remove-swallowed-errors-unchecked-casts-and-iifes-from-thefrom
cl-12110-handle-missing-room-data-instead-of-inventing-it

Conversation

@TheGreatAxios

Copy link
Copy Markdown
Contributor

Part of CL-12110: the invented fallbacks from the Findings document. Stacked on #167. The workspace split is the one CL-12096 will build on.

Changes

  • pages/workspace/index.tsx is split. StageWorkspace keeps the project read, the room query and the coordinator start (which must run while the room loads), and shows the room fault or skeleton until the room is ready. ReadyRoom receives a loaded RoomSnapshot, so none of its hooks see undefined and the snapshot?.… ?? []/{} fallbacks are gone. A loading room no longer looks like an empty project.
  • Agent activity stays undefined until it is read, and a failed read is toasted (wording in config.ts) instead of looking like nobody is working. Readers that depend on it skip their check while it is unknown.
  • App.tsx and collaborators.tsx look up a refusal sentence only when the response has a code.
  • An ask with no document no longer builds a sentence with an empty name; it uses its own wording.
  • A dispatch call whose input is still streaming has no arguments rather than {}.
  • LoadedDeliverable.versions is required, matching its only producer.

Verification

  • New tests: an unread room shows the loading line, not the conversation, and a loaded snapshot renders the room; a failed activity read stays unknown while an empty read is an empty set.
  • bun run lint, format:check, typecheck, test, pins:verify and vendor:verify pass.

@linear-code

linear-code Bot commented Nov 4, 2026

Copy link
Copy Markdown

CL-12110

@TheGreatAxios
TheGreatAxios marked this pull request as ready for review November 4, 2026 21:52
@corbits-triage

corbits-triage Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Triage: Pass

No changes needed from you. A maintainer will review this pull request.

Stacked on #167: only this pull request's own changes were checked.

@corbits-triage corbits-triage Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No defects reported.

@TheGreatAxios
TheGreatAxios merged commit 1cd2a0d into cl-12110-remove-swallowed-errors-unchecked-casts-and-iifes-from-the Nov 4, 2026
9 checks passed
TheGreatAxios added a commit that referenced this pull request Nov 4, 2026
* fix(web): handle missing room data instead of inventing it

* fix(web): start room reads early and keep unread decisions unknown

* fix(web): name an approval without concepts instead of defaulting

* fix(web): ask about a blank-named document by its tool
TheGreatAxios added a commit that referenced this pull request Nov 4, 2026
* fix(web): handle missing room data instead of inventing it

* fix(web): start room reads early and keep unread decisions unknown

* fix(web): name an approval without concepts instead of defaulting

* fix(web): ask about a blank-named document by its tool
TheGreatAxios added a commit that referenced this pull request Nov 4, 2026
#167)

* fix(web): surface swallowed errors and close the microphone on failure

* fix(web): keep courtesy reads and damaged imports from failing loudly

* refactor(web): name the invitation load instead of an IIFE

* fix(web): toast every failed copy of a project's failure detail

* fix(web): read approval-package decks with the slidedeck schema (#168)

* fix(web): read approval-package decks with the slidedeck schema

* fix(web): load approval slides lazily and keep packages readable

* fix(web): show a line when the slides fail to load, not a crash

* fix(web): handle missing room data instead of inventing it (#171)

* fix(web): handle missing room data instead of inventing it

* fix(web): start room reads early and keep unread decisions unknown

* fix(web): name an approval without concepts instead of defaulting

* fix(web): ask about a blank-named document by its tool

* refactor(web): replace promise chains and IIFEs with named functions

* fix(web): rethrow failures other than unreadable JSON or cache

* refactor(web): replace promise chains and an IIFE with named functions

* refactor(web): poll a subscription login with a query observer

* fix(web): treat an unreadable refusal body as one without a code

* fix(web): never hold the first paint on a failed cache restore

* fix(web): keep a login poll running offline and out of the cache

* refactor(web): share one version read between view and compare

* fix(web): check untrusted JSON and hub values against their schemas

* fix(web): check untrusted JSON and hub values against their schemas

* fix(web): treat an unreadable session as an error, not a sign-out

* fix(web): read a frame's missing text without inventing one

* fix: refuse unreadable custom models and unknown login URLs (#170)

* fix(client): read login base URLs from a map keyed by login plugin

* fix(web): refuse unreadable custom models instead of sending null
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant