feat: add remote folder browsing for web sessions#489
Merged
BunsDev merged 7 commits intoOpenKnots:mainfrom Apr 24, 2026
Merged
feat: add remote folder browsing for web sessions#489BunsDev merged 7 commits intoOpenKnots:mainfrom
BunsDev merged 7 commits intoOpenKnots:mainfrom
Conversation
Support picking server-side workspaces from remote web sessions and recover more cleanly when Codex turn startup, steering, or interruption state goes stale.
Support picking server-side workspaces from remote web sessions and recover more cleanly when Codex turn startup, steering, or interruption state goes stale.
Keep the remote workspace branch focused on folder browsing and provider hardening so it can be tested and reviewed independently.
|
@fuller-stack-dev is attempting to deploy a commit to the 0xBuns Team on Vercel. A member of the Team first needs to authorize it. |
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a web-only “remote folder picker” for selecting server-side folders (useful for remote/Tailscale web sessions), extends directory listing with a shallow mode for faster browsing, and hardens provider/session lifecycle handling (including better stop/cancel behavior).
Changes:
- Add a remote folder browsing dialog and integrate it into add-project, home empty state, and clone flows.
- Add
shallowdirectory listing support end-to-end (contracts → server implementation → web react-query). - Improve provider session lifecycle handling (turn start failure recovery, stale interrupt cleanup) and update stop/cancel UX.
Reviewed changes
Copilot reviewed 19 out of 20 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/contracts/src/project.ts | Extends list-directory input with optional shallow flag. |
| bun.lock | Lockfile metadata updates (configVersion + integrity hashes). |
| apps/web/src/lib/remoteFolderPicker.ts | New helpers for determining web “localness” and path join/relative logic. |
| apps/web/src/lib/projectReactQuery.ts | Includes shallow in queryKey and request payload for listDirectory. |
| apps/web/src/components/onboarding/useOnboardingState.ts | Changes onboarding open-state initialization logic. |
| apps/web/src/components/home/ChatHomeEmptyState.tsx | Adds remote folder picker path for creating/opening projects from web sessions. |
| apps/web/src/components/Sidebar.tsx | Wires remote folder picker into add-project flow and tweaks workspace toggle behavior. |
| apps/web/src/components/RemoteFolderPickerDialog.tsx | New dialog UI for shallow browsing of server folders. |
| apps/web/src/components/CloneRepositoryDialog.tsx | Adds remote folder picker option for selecting clone destination in web sessions. |
| apps/web/src/components/ChatView.tsx | Improves interrupt/cancel send behavior and stop button labeling. |
| apps/server/src/workspaceEntries.ts | Implements shallow directory listing with workspace-root escape protection. |
| apps/server/src/provider/Layers/ProviderHealth.ts | Adds a Codex app-server thread/start probe for cases where auth status is unauthenticated. |
| apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts | Refines activeTurnId lifecycle handling across provider events. |
| apps/server/src/orchestration/Layers/ProviderCommandReactor.ts | Clears stuck sessions after turn-start failures; clears stale active turns on interrupt when no live turn exists. |
| apps/server/src/orchestration/Layers/ProviderCommandReactor.test.ts | Adds coverage for stuck-start cleanup + stale-interrupt cleanup. |
| apps/server/src/orchestration/Layers/ProjectionPipeline.ts | Deletes pending turn-start projection rows when provider turn start fails. |
| apps/server/src/orchestration/Layers/ProjectionPipeline.test.ts | Adds test ensuring pending turn-start rows are cleared on provider start failure activity. |
| apps/server/src/codexAppServerManager.ts | Improves process teardown (process groups on Unix; SIGKILL) and treats thread-resume timeouts as recoverable. |
| apps/server/src/codexAppServerManager.test.ts | Adds test for recoverable thread-resume timeout. |
| AGENTS.md | Adds guidance to rebuild/restart served app for endpoint-visible changes (Tailscale bundle). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Testing