serve: add cwd flag and non-git root fallback #1
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.
Why
When running
opencode servein containerized multi-repo workspaces (e.g. /work/src), the workspace root often is not a Git repo. In that case the server falls back to/as the worktree, which breaks permissions/config discovery and file ops.What
--cwdtoopencode serveand pass it through as the server default directory.--cwdas the root/worktree fallback when no Git root is found (so non-git roots behave like a real workspace).createOpencodeServer({ cwd })to pass the flag through.Notes
directoryquery param /x-opencode-directoryheader still overrides the default.serve/webtochdir, but does not change non-git worktree fallback behavior. This PR adds explicit non-git root/worktree handling when--cwdis provided.Test Plan
opencode serve --cwd /work/srcin a non-git workspace and confirm file ops/permissions resolve under /work/src.