Skip to content

Build web v2 session workbench slice#101

Merged
roackb2 merged 1 commit into
mainfrom
codex/web-v2-mock-sessions
May 21, 2026
Merged

Build web v2 session workbench slice#101
roackb2 merged 1 commit into
mainfrom
codex/web-v2-mock-sessions

Conversation

@roackb2
Copy link
Copy Markdown
Owner

@roackb2 roackb2 commented May 21, 2026

Summary

  • wire web-v2 sidebar lists to control-plane sessions and heartbeat tasks
  • render selected session conversations with v2-owned markdown/message components
  • add the first visual-only composer with model and reasoning selectors
  • add the missing web-v2 /trpc dev proxy

Verification

  • yarn client:v2:build

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9278489080

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

setState((current) => ({ ...current, loading: true }));

async function load() {
const session = await trpc.controlPlane.session.query({ id });
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Handle rejected session queries to clear loading state

If trpc.controlPlane.session.query rejects (for example, transient network failure or server error), this effect never catches the exception, so loading remains true and the rejection is unhandled in the browser. Because setState({ session, loading: false }) is only reached on success, the session view can stay stuck in a perpetual loading state until a later successful fetch or remount.

Useful? React with 👍 / 👎.

let cancelled = false;

async function load() {
const state = await trpc.controlPlane.state.query();
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Catch sidebar state query failures in one-shot loader

This one-shot sidebar loader runs only once ([] deps), but it does not handle errors from trpc.controlPlane.state.query. When that request fails, the promise rejection is unhandled and sessions/tasks stay at their initial empty arrays with no retry path, which leaves the navigation lists blank for the remainder of the mount.

Useful? React with 👍 / 👎.

@roackb2 roackb2 force-pushed the codex/web-v2-mock-sessions branch from a5cd36b to f51cc7f Compare May 21, 2026 11:15
@roackb2 roackb2 force-pushed the codex/web-v2-mock-sessions branch from f51cc7f to 3b98c67 Compare May 21, 2026 11:24
@roackb2 roackb2 merged commit 3f7535f into main May 21, 2026
5 checks passed
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