Skip to content

feat(web): complete rerun, reload recovery and workspace continuity - #643

Open
testikun wants to merge 9 commits into
openpi-dev:mainfrom
testikun:codex/web-continuity-followup
Open

testikun wants to merge 9 commits into
openpi-dev:mainfrom
testikun:codex/web-continuity-followup

Conversation

@testikun

@testikun testikun commented Oct 1, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

After the workbench improvements in #640, continuous use still loses context: editing an older request appends a new turn, reload loses the historical reading position, files lack complete organization/recovery actions, and the launcher only supports one terminal. Several General settings remain summaries rather than editable controls. Closes #641.

Value

Users can revise an earlier request without overwriting the original conversation, resume reading after reload, organize workspace files with recovery, and keep multiple independent terminals. The complete tool launcher and editable settings make the existing capabilities reachable during daily work.

Approach

  • Use Pi's native fork before the selected user entry, followed by the existing prompt-admission ledger. Preserve original content/images and provide return-to-original navigation; keep rejected or uncertain admission recoverable.
  • Recognize formatter-generated encoded Windows drive references during rerun without rewriting the reference or changing Host decoding/access authority.
  • Save bounded, exact-Session presentation bookmarks only. Requery Pi history and native resource owners on restore. Include bounded future context in native message windows so historical anchors are not clamped at an artificial page end.
  • Extend existing workspace mutation boundaries with rename/move, deduplicated multiselect, recoverable private ignored trash and hierarchical folder import. Preserve per-item facts, exact identities, native source write lanes and occupied-path rejection.
  • Give terminal tabs independent native PTYs and idempotent create keys, with rename, reconnect and exact close. The plus button opens the full five-item launcher.
  • Expose existing result-display and Pi terminal-footer fields through immediate presentation saves. Route capability/workflow choices through /openpi-setup. Reveal session row actions on hover/focus, while retaining the selected row's touch entry.
  • Keep the operator's latest pane width through save/refresh overlap until reload. Deferred workbar tab focus yields when the operator has already moved to another control.

Validation

  • bun run check: passed, including contracts, production build, formatting, lint and both TypeScript scopes.
  • bun run test: passed on Node 26.10.0 — Node 2137 passed / 8 platform skips; Vitest 1156 passed across 82 files. Node 24's earlier complete gate also passed.
  • Full production Chrome suite: 104/104 passed at the final freeze, including the corrected pane keyboard/pointer, deferred tool focus and native reload reading cases. Exact identity and keyboard assertions remain intact.
  • Isolated real gpt-6-luna at fd5d597: 2/2 native edited/regenerated turns completed with the same model; old future answers excluded and both original source versions unchanged. Normal native tools stayed enabled; no extra model calls were made for the later Windows-reference fix.
  • Source revision and sole Pi package source were verified in the isolated runtime. Final correction is frozen at 2387f7a; all 945 tracked input hashes remained identical before/after complete gates. Native filesystem/PTYS, Host admission, UI/store and mocked browser admission are recorded separately. Earlier failures and ablations remain in private evidence.
  • Final CI run 36905131424: all passed on this exact commit — Node 22/24/26, Windows process lifecycle/full-suite isolation and Linux Web E2E. Earlier runs exposed Node 26 fixture storage, encoded Windows references, reload synchronization and pane-save acknowledgment; fixes and expected-failure ablations remain separately recorded.

Impact

  • User-visible: native edit/rerun/regenerate, reload position recovery, file organization/recovery, multiple terminals, full launcher, editable settings and quieter session rows.
  • Model-visible: no new provider stack or tools; forked requests use Pi-native context and existing admission. Workspace side effects are retained when rerunning an earlier request.
  • Runtime/lifecycle: existing exact-Session ownership and cancellation remain authoritative; terminal close targets one owned PTY, and filesystem batches retain individual receipts.
  • Persisted data/config: bounded browser view metadata, private workspace recovery files and existing canonical presentation fields. Browser metadata does not establish native existence or archive state; defaults are unchanged.
  • Compatibility/risk: current main / Pi 0.99.1. Local native verification used macOS and Chrome; Safari, physical mobile keyboards, Windows ConPTY/ACL operations need native verification. The previously observed sixth browser-tab input boundary has a reproduced correction; Chromium's internal cause remains unknown. This is not a cross-product performance benchmark.

Reusable findings and remaining basic-function candidates are recorded in the research record; raw screenshots, competitor bundles, credentials and private Sessions stay outside Git.

@github-actions github-actions Bot added documentation Improvements or additions to documentation area:setup OpenPI setup, configuration, or setup documentation labels Oct 1, 2026

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

area:setup OpenPI setup, configuration, or setup documentation documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Web UX] complete rerun, reload recovery, file organization and multiple terminals

1 participant