Skip to content

[extension][Windows][Cursor/Antigravity] Long existing threads open as blank panel while short threads load normally #18931

Description

@huygiatrng

What version of the IDE extension are you using?

  • Cursor: openai.chatgpt-26.5417.40842-win32-x64
  • Antigravity: openai.chatgpt-26.417.40842-win32-x64

What subscription do you have?

Unknown

Which IDE are you using?

  • Cursor
  • Antigravity (VS Code fork)

What platform is your computer?

Microsoft Windows NT x64

What issue are you seeing?

The Codex IDE extension can list recent chat sessions correctly, but opening a longer existing local thread often leaves the panel blank.

Observed behavior:

  • The recent session list loads normally.
  • Short sessions with only a few turns open quickly.
  • Longer sessions reproduce a failure mode where:
    • the chat panel is empty,
    • Full access stays greyed out / stuck on loading,
    • the thread never becomes usable in the extension.

Important isolation detail:

  • The exact same thread opens quickly in the Codex desktop app on the same machine.
  • So the stored local session itself does not appear to be corrupt.
  • This looks extension-side or extension-host-side, not a bad .codex thread file.

In my setup this reproduces in both Cursor and Antigravity, but not in the Codex desktop app.

What steps can reproduce the bug?

  1. Install the Codex IDE extension in Cursor or Antigravity on Windows.
  2. Open the Codex extension sidebar/panel.
  3. Wait for recent local sessions to load.
  4. Open a short session with only a few turns.
  5. Observe that it loads normally.
  6. Open a much longer existing local session.
  7. Observe that the panel becomes blank and Full access stays stuck loading.
  8. Open the same thread in the Codex desktop app.
  9. Observe that the desktop app renders it quickly.

What is the expected behavior?

Long existing local threads should open in the IDE extension as reliably as they do in the Codex desktop app.

If a host feature is unsupported or a webview bridge is not ready yet, the extension should degrade gracefully instead of leaving the thread UI blank.

Additional information

This appears related to, but not identical to:

I inspected local logs and found two separate signals.

1. Proposed API / host compatibility problems in VS Code forks

Antigravity renderer logs report that the extension cannot use:

  • chatSessionsProvider
  • languageModelProxy

and explicitly suggest launching with:

--enable-proposed-api openai.chatgpt

Cursor logs are slightly different: they report that those proposals do not exist in the host.

So at least part of the failure is host compatibility, especially in VS Code forks.

2. Extension-side broadcast delivery appears brittle during thread replay

When opening an affected long thread, the extension logs fall into a bad IPC / webview state during thread replay.

Locally I observed failures in the sendBroadcast(...) path for events in this family:

  • thread-stream-state-changed
  • thread-read-state-changed
  • client-status-changed
  • thread-archived
  • thread-unarchived
  • thread-queued-followups-changed
  • query-cache-invalidate

In Cursor, once replay starts, the bridge can enter a not-connected failure mode and the thread UI stays blank.

Local workaround that restored usability

I was able to restore behavior locally with a runtime-only patch:

  1. Launch the editor with:
--enable-proposed-api openai.chatgpt
  1. In the installed extension bundle, change broadcast sends to fail soft:
  • if the target bridge/webview is missing, return instead of throwing;
  • if sendBroadcast(...) throws because the bridge is not connected, catch and log a warning instead of tearing down the UI state.

Conceptually:

if (!bridge) return;
try {
  await bridge.sendBroadcast(method, payload);
} catch (err) {
  logger.warning("Dropped broadcast", { method, err });
}

That workaround is obviously not a real upstream fix, but it strongly suggests the extension currently assumes the webview bridge is present and connected during long-thread replay, and that assumption is false in some hosts or replay timings.

Proposed fix direction

  • Handle unsupported proposed APIs gracefully in VS Code forks.
  • Do not throw from thread replay / broadcast paths when the webview bridge is missing or disconnected.
  • Consider buffering or skipping replay-only notifications until the webview has actually registered its handlers.
  • Add regression coverage for opening a long existing local thread in:
    • VS Code
    • Cursor / VS Code forks if supported

Activity

  1. added
    bugSomething isn't working
    extensionIssues related to the VS Code extension
    windows-osIssues related to Codex on Windows systems
    sessionIssues involving session (thread) management, resuming, forking, naming, archiving
    on Apr 22, 2026
  2. Brezn610 commented on Apr 24, 2026

    @Brezn610

    Hi @huygiatrng, I’m seeing a very similar issue in Cursor with the Codex IDE extension.

    In my case, short existing conversations usually load normally, but longer existing conversations intermittently open as a blank panel or stay stuck loading. My environment is WSL2/Linux + Cursor, so it is not exactly the same as your Windows setup, but the failure mode looks very close.

    I also see similar logs around missing broadcast handlers, plus a few additional signals:

    Codex chat session item provider not registered errorMessage="nt.chat.registerChatSessionItemProvider is not a function"
    
    [IpcClient] Received broadcast but no handler is configured method=query-cache-invalidate
    [IpcClient] Received broadcast but no handler is configured method=thread-stream-state-changed
    
    WARN codex_app_server::transport: dropping overload response for connection ConnectionId(0): outbound queue is full 
    

    I filed a separate issue here with logs and an uploaded feedback thread:

    #19434

    May I ask why you closed this issue as not planned? Did you find a workaround, or did the problem stop reproducing after an update?

  3. jeong87 commented on May 15, 2026

    @jeong87

    I can reproduce a very similar issue on Windows with Antigravity and a newer Codex extension build.

    Environment:

    • OS: Windows 11 Home x64
    • IDE: Antigravity
    • Antigravity version: 1.23.2 (Apr 16, 2026)
    • Codex extension: openai.chatgpt-26.422.62136-win32-x64
    • Codex CLI: codex-cli 0.126.0-alpha.8

    Observed:

    • Short local sessions usually open normally.
    • Longer existing local sessions intermittently open as a blank panel.
    • Developer: Reload Window sometimes restores the session UI; sometimes a full Antigravity restart is needed.
    • The local session JSONL files I checked parse successfully, so this does not look like simple session-file corruption.

    Sanitized local diagnostics:

    • state_5.sqlite integrity_check: ok
    • threads in state DB: 23
    • blank title count: 0
    • blank first_user_message count: 0
    • largest checked session JSONL files parse with bad_json=0
    • repeated log signals:
      • thread-stream-state-changed broadcasts with no configured handler
      • client-status-changed/query-cache-invalidate broadcasts with no configured handler
      • Codex chat session item provider not registered
      • chatSessionsProvider/languageModelProxy proposed API errors in Antigravity renderer logs
      • codex_app_server transport warnings: outbound queue is full

    Hypothesis:
    The failure seems to happen during long local thread replay or hydration in the extension/webview bridge. In Antigravity, proposed API availability and agent/session services appear to be inconsistent, and long replay amplifies the timing/backpressure issue.

    Potential fix direction:

    • Gracefully degrade when chatSessionsProvider/languageModelProxy are unavailable in VS Code forks.
    • Avoid throwing or blocking UI hydration when replay-only broadcasts arrive before webview handlers are registered.
    • Buffer, coalesce, or drop nonessential replay notifications until the bridge is ready.
    • Add backpressure handling for long local thread replay.
    • Normalize oversized title/first_user_message metadata before hydrating extension UI state.
    • Add regression coverage for opening long local threads in Windows extension hosts.

    I can provide additional sanitized diagnostics or test a maintainer-suggested build if useful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingextensionIssues related to the VS Code extensionsessionIssues involving session (thread) management, resuming, forking, naming, archivingwindows-osIssues related to Codex on Windows systems

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions