Skip to content

fix(chat): make waiting visible and keep conversations readable - #5309

Open
huangruiteng wants to merge 2 commits into
mainfrom
codex/app-live-query-recovery
Open

huangruiteng wants to merge 2 commits into
mainfrom
codex/app-live-query-recovery

Conversation

@huangruiteng

@huangruiteng huangruiteng commented Sep 29, 2026 •

Copy link
Copy Markdown
Collaborator

Goal And Delivered Outcome

A message could appear submitted while executor startup showed no reply or progress. The overview receipt also hid activity and turn controls available in the full conversation. This change shows a receipt before session preparation, then observed activity and elapsed time, with cancellation before dispatch and existing exact-turn controls after acceptance.

The shared manager/Goal conversation also preserves upward reading during streaming, provides a return-to-latest action, expands multiline drafts, and removes the suggestion strip from an established conversation. The existing App conversation RFC records the research and observable acceptance boundaries.

Intended base: main. Owner: the existing TypeScript conversation presentation and Chat transport; no new capability, provider, scheduler or backend decision owner.

Scope And Continuation

Complete within this presentation slice. It does not claim to cure provider startup timeouts, implement completion notifications, persist browser elapsed time across restarts, or complete delegated work. CLI/Lark behavior is unchanged because the affected path is the App/browser conversation renderer and session-preparation fetch.

A real read-only goal-wording request succeeded after repairing an installed CLI selection. An earlier live request still timed out before executor turn acknowledgement; sustained startup/recovery remains part of the existing App conversation acceptance, not certified by this UI change.

Validation

  • Tested revision: aee78800c54de658e77f58113d1f8b58132cbdb5
  • Run state: finished.
  • Input classes: synthetic, public_fixture, authorized_private_read_only.
Check kind Result Evidence / limitation
static passed TypeScript typecheck and python scripts/chat_bundle.py build; source/delivery verification.
integration passed Packaged conversation-startup: delayed connection, immediate receipt, cancellation without turn dispatch, retry and failure.
integration passed Packaged conversation-activity: incremental SSE, stable elapsed across views, quiet wait, steering/interruption races, mobile/keyboard and preserved reading position.
integration passed Packaged conversation-input: multiline draft growth, newline without submission, Goal/manager routing, explicit preview and retained drafts.
regression_parity passed Complete packaged workspace browser suite: all 25 scenarios on the final source, including Chat recovery, original-route returns, goal drafts and typed action forms. Synthetic provider boundaries and existing journey qualification gaps remain explicit.
real_backend passed Existing Codex Sol read-only conversation returned a goal-wording answer in 23 seconds through the packaged candidate. Installed App read back the stored result. No research execution was requested.
real_backend failed An earlier request on the prior installed executor timed out before turn acknowledgement. No claim of sustained timeout recovery.
static passed Risk-selected premerge: 16 checks, zero failures; exact-scope change-quality receipt passed.

Initial validation caught and corrected EOF whitespace, missing root TypeScript dependencies and a concurrent-edit guard. CI then exposed stale tests that used a suggestion button to infer turn completion after that button was removed from established conversations. The follow-up observes pending replies directly and opens configuration from the overview; the complete packaged browser suite now passes. The prior focused recovery evidence did not cover the final composer change and has been replaced above. Remote CI must rerun on the new head. Generated assets and live evidence remain outside Git.

Frontend / Visual Evidence

UI impact: changed. Synthetic screenshots are attached in the conversation: before startup receipt, after overview waiting, desktop conversation and narrow conversation. The before image uses the previously installed release renderer with a synthetic request; after images use the candidate packaged renderer and synthetic SSE.

Attention review: one observed activity line plus elapsed time; details expand on demand. Quiet waiting is explicit, not a fake percentage or changing phase. Controls remain scoped to the actual turn. Drafts grow within 120px, active conversations lose a redundant suggestion strip, and streaming no longer steals the reader's position.

Type of Change

  • Bug fix
  • Documentation update
  • Test update

LoopX Area

  • Public docs or presentation surface (dashboard)

Boundary Checklist

  • No private state, credentials, raw traces, internal links or machine paths in the diff or public evidence.
  • Shared-authority fixture impact: N/A; no authority-store or state-migration change.
  • Related refactor applied: one shared activity/control component replaces duplicated overview/full-conversation behavior; the backend remains authoritative for accepted-turn effects.
  • Every commit has DCO sign-off.

Signed-off-by: huangruiteng <14976749+huangruiteng@users.noreply.github.com>
@huangruiteng

Copy link
Copy Markdown
Collaborator Author

Visual acceptance — synthetic request and public fixtures only.

Before: the prior installed renderer shows the submitted request while startup has no assistant receipt.
After: candidate packaged overview shows actual activity, elapsed wait and exact-turn controls; the narrow conversation retains the same controls and a compact composer.

conversation-startup-before conversation-waiting-overview conversation-activity-mobile

Signed-off-by: huangruiteng <14976749+huangruiteng@users.noreply.github.com>

This branch has not been deployed

No deployments
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