SIGN IN SIGN UP

fix(#93,#98): routingModelKey ReferenceError + workspace shell-redirect (v2.0.36)

#93 — every stream finish since v2.0.33 ReferenceError'd on
`routingModelKey`/`body` because shouldFallbackThinkingToText was
called from inside streamResponse / nonStreamResponse where neither
var was in scope. The success response went out fine but the trailing
error chunk surfaced as `upstream_error: routingModelKey is not
defined` on the client (zhangzhang-bit's #93 follow-up).

Fix: change shouldFallbackThinkingToText signature from `body` to a
precomputed `wantThinking` boolean. handleChatCompletions computes
it once via isThinkingRequested(body), threads it via deps to
streamResponse and as a trailing positional arg to nonStreamResponse.
Added a static-analysis regression test that asserts the signature
no longer destructures `body`.

#98 — `find <workspace> -type f` crashes with
"workspace: No such file or directory" because bash parses `<` as
input redirection. The v2.0.33 hint ("workspace path is hidden, use
relative paths") was too soft — strengthened to call out explicitly
that "<workspace>" is a redaction marker, not a path, and that shell
parses "<" as redirection.

All 5 preamble builders share the same constant so one edit covers
every dialect. Preamble length 138 -> 235 chars, under the 640
hard cap.

Tests: 400 -> 399 (-1: redundant body-shape test removed,
signature-shape regression added).
D
dwgx committed
f444e7ade4af4fecc813837ba4e20f750da1547d
Parent: b080bd9