fix: encode non-ASCII directory paths in HTTP headers (#7145)

Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
jwaterwater
2026-01-07 20:46:17 +08:00
committed by GitHub
parent 9cce0cf4f4
commit 2d52a461a0
2 changed files with 9 additions and 2 deletions

View File

@@ -246,7 +246,12 @@ export namespace Server {
},
)
.use(async (c, next) => {
const directory = c.req.query("directory") || c.req.header("x-opencode-directory") || process.cwd()
let directory = c.req.query("directory") || c.req.header("x-opencode-directory") || process.cwd()
try {
directory = decodeURIComponent(directory)
} catch {
// fallback to original value
}
return Instance.provide({
directory,
init: InstanceBootstrap,

View File

@@ -19,9 +19,11 @@ export function createOpencodeClient(config?: Config & { directory?: string }) {
}
if (config?.directory) {
const isNonASCII = /[^\x00-\x7F]/.test(config.directory)
const encodedDirectory = isNonASCII ? encodeURIComponent(config.directory) : config.directory
config.headers = {
...config.headers,
"x-opencode-directory": config.directory,
"x-opencode-directory": encodedDirectory,
}
}