Skip to content

fix(web): preserve running state for queued prompts - #364

Merged
tt-a1i merged 4 commits into
openpi-dev:mainfrom
seekskyworld:fix/issue-363-preserve-running-state
Sep 5, 2026
Merged

fix(web): preserve running state for queued prompts#364
tt-a1i merged 4 commits into
openpi-dev:mainfrom
seekskyworld:fix/issue-363-preserve-running-state

Conversation

@seekskyworld

Copy link
Copy Markdown
Contributor

Problem

Closes the state-regression slice of #363. When a follow-up prompt was accepted during an active turn, the Web UI unconditionally changed the status from running back to preparing.

Value

Long workflow/subagent turns retain an accurate running indicator while queued prompts wait for admission.

Approach

Centralize prompt-accepted state handling and preserve running when already established; only new work enters preparing, and settled prompts return to idle.

Validation

  • node --test --experimental-strip-types tests/web/app-render.test.ts
  • git diff --check

Impact

  • User-visible behavior: queued prompts no longer regress the status label.
  • Model-visible context/tools: none.
  • Runtime/lifecycle: presentation-only state correction.
  • Persisted config/data: none.
  • Compatibility/risk: no protocol changes.

Signed-off-by: seekskyworld <djh1813553759@gmail.com>

@tt-a1i tt-a1i left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

切片正确,但会被 #370 盖掉

已经 running 时保持 running、不从 UI 推断完成,这是对的。没有测试。#370 会改同一批行。请并进 #370(或 #384 的 store),不要单独合,否则后合的会把这份修掉。

tt-a1i added a commit to 6iKUN6/openpi that referenced this pull request Sep 5, 2026
prompt_accepted and the HTTP receipt were resetting an active turn
to preparing. Preserve running unless the command already settled,
matching the openpi-dev#364 live-phase rule without copying legacy app.js.
@tt-a1i
tt-a1i merged commit 40826f7 into openpi-dev:main Sep 5, 2026
4 checks passed
tt-a1i added a commit that referenced this pull request Sep 7, 2026
* docs(web): define React migration MVP

Record the frozen PR #352 behavior baseline, Pi-native ownership boundaries, selected frontend stack, static delivery contract, and validation matrix for the local migration experiment.

* docs(web): define development port conflict handling

Document default port fallback, strict explicit ports, fast startup diagnostics, and TUI error projection for the local React validation branch.

* feat(web): migrate workbench UI to React

- replace the imperative browser UI with typed React and Zustand projections
- add Vite HMR, production asset builds, and bounded port conflict handling
- cover the Web store, packaged host, responsive browser flows, and artifact drift in CI

* fix(packaging): stabilize Git source installs

- disable npm peer resolution for Pi-provided host packages
- guard the Git install contract and record the production smoke rationale

* fix(web): address React MVP review feedback

* fix(ci): provide Pi host peers to source smoke

* docs(web): record React MVP review validation

* fix(web): keep backend readiness deadline alive

Use an explicitly referenced timer for each readiness probe so Node 22 does not let the test process or launcher exit while the fetch is still pending. Clear the timer after every probe.

* docs(web): record Node 22 readiness validation

Advance the design evidence boundary to the readiness timer fix and record the focused Node 22 and Node 24 regression runs.

* docs(web): record green full test run

Replace the superseded load-sensitive test note with the successful Node 24 full-suite result observed after the readiness fix.

* fix(web): install shutdown handlers before ready output

Ensure the CLI cannot advertise a ready Web Host before its SIGINT and SIGTERM cleanup handlers are installed.

* docs(web): record CLI shutdown race validation

Advance the implementation boundary and distinguish focused CLI evidence from unrelated full-suite timing failures.

* fix(web): keep running phase for queued follow-up prompts

prompt_accepted and the HTTP receipt were resetting an active turn
to preparing. Preserve running unless the command already settled,
matching the #364 live-phase rule without copying legacy app.js.

---------

Co-authored-by: tt-a1i <tt-a1i@users.noreply.github.com>
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.

2 participants