fix(app): prevent terminal recovery loops (#25710)
This commit is contained in:
parent
9f708e748a
commit
a366128a93
5 changed files with 122 additions and 27 deletions
|
|
@ -480,15 +480,21 @@ export const Terminal = (props: TerminalProps) => {
|
|||
})
|
||||
|
||||
const connectToken = async () => {
|
||||
const result = await client.pty.connectToken(
|
||||
{ ptyID: id },
|
||||
{
|
||||
throwOnError: false,
|
||||
headers: { "x-opencode-ticket": "1" },
|
||||
},
|
||||
)
|
||||
const result = await client.pty
|
||||
.connectToken(
|
||||
{ ptyID: id },
|
||||
{
|
||||
throwOnError: false,
|
||||
headers: { "x-opencode-ticket": "1" },
|
||||
},
|
||||
)
|
||||
.catch((err: unknown) => {
|
||||
if (err instanceof Error && err.message.includes("Request is not supported")) return
|
||||
throw err
|
||||
})
|
||||
if (!result) return
|
||||
if (result.response.status === 200 && result.data?.ticket) return result.data.ticket
|
||||
if ((result.response.status === 404 || result.response.status === 405) && password) return
|
||||
if (result.response.status === 404 || result.response.status === 405) return
|
||||
if (result.response.status === 403)
|
||||
throw new Error("PTY connect ticket rejected by origin or CSRF checks. Check the server CORS config.")
|
||||
throw new Error(`PTY connect ticket failed with ${result.response.status}`)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue