Skip to content

feat: add remote folder browsing for web sessions#489

Merged
BunsDev merged 7 commits intoOpenKnots:mainfrom
fuller-stack-dev:feat/remote-server-files
Apr 24, 2026
Merged

feat: add remote folder browsing for web sessions#489
BunsDev merged 7 commits intoOpenKnots:mainfrom
fuller-stack-dev:feat/remote-server-files

Conversation

@fuller-stack-dev
Copy link
Copy Markdown
Contributor

Summary

  • add a remote folder picker for web sessions so users can browse and select folders on the machine running OK Code, including remote setups like Tailscale
  • wire the new picker into add-project, home, and clone flows, with shallow server-side directory listing support to keep browsing fast
  • harden Codex/provider session lifecycle handling and fix the stop button behavior so interrupted or pre-turn sends clear more reliably instead of leaving the composer stuck

Testing

  • bun fmt
  • bun lint
  • bun typecheck

fuller-stack-dev and others added 6 commits April 19, 2026 00:30
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.
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 21, 2026

@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.

@github-actions github-actions Bot added size:XL vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Apr 21, 2026
@BunsDev BunsDev requested a review from Copilot April 22, 2026 03:11
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

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 shallow directory 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.

Comment thread apps/web/src/components/Sidebar.tsx Outdated
Comment thread apps/server/src/provider/Layers/ProviderHealth.ts Outdated
Comment thread apps/server/src/workspaceEntries.ts Outdated
Comment thread apps/web/src/components/onboarding/useOnboardingState.ts
Comment thread apps/web/src/lib/remoteFolderPicker.ts Outdated
@github-actions github-actions Bot added size:XXL and removed size:XL labels Apr 22, 2026
@BunsDev BunsDev merged commit 2473ca7 into OpenKnots:main Apr 24, 2026
5 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants