Skip to content

feat(mobile): add read-only project file browser - #54

Merged
snhsish merged 4 commits into
mainfrom
feat/mobile-file-browser
Aug 22, 2026
Merged

feat(mobile): add read-only project file browser#54
snhsish merged 4 commits into
mainfrom
feat/mobile-file-browser

Conversation

@snhsish

@snhsish snhsish commented Aug 22, 2026

Copy link
Copy Markdown
Owner

Browse project files and folders from mobile via the opencode file APIs proxied through the existing tunnel.

  • Directory listing with breadcrumb navigation and git status badges
  • Fuzzy file search via /find/file with debounce
  • Syntax-highlighted file viewer with binary detection and truncation
  • 30s client-side cache for listings and statuses, invalidated on refresh
  • Browse files entry in session header menu; long-press a modified file to open it in the viewer

Browse project files and folders from mobile via the opencode
file APIs proxied through the existing tunnel.

- Directory listing with breadcrumb navigation and git status badges
- Fuzzy file search via /find/file with debounce
- Syntax-highlighted file viewer with binary detection and truncation
- 30s client-side cache for listings and statuses, invalidated on refresh
- Browse files entry in session header menu; long-press a modified file
  to open it in the viewer
opencode's GET /file returns 400 without a path param, so the
browser failed to list the project root. Also accept both record
and array shapes from /file/status.
sanitizeUrlPath stripped everything after '?' so requests like
GET /file?path=. reached opencode without their params, causing
400 'Missing key path' schema rejections. This also silently
broke message pagination and file search. Keep the query string
while retaining path sanitization (traversal and '@' checks).
@snhsish
snhsish merged commit 6580af3 into main Aug 22, 2026
4 checks passed
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