mirror of
https://github.com/stablyai/orca.git
synced 2026-09-22 16:02:32 +00:00
* fix(agents): recognize OpenCode native OC | tab titles OpenCode's native OSC titles use `OC | <task>` without an `opencode` token, so title classifiers left tabs as Claude/unknown. Map the native marker (optional mux prefix) to OpenCode identity in both title classifiers, exclude it from isClaudeAgent, and cover lookalikes plus stale Claude launch reclaim. Builds on and supersedes #8590 (credit @gatsby74). Fixes #8478. * fix(agents): drop renderer import from #8478 shared repro tsconfig.node includes src/shared tests; importing agent-status pulled renderer modules outside the node project and failed typecheck. Assert opencode identity via shared title classifiers only (OpenCode TUI sets "OpenCode" and `OC | ${title}`). * fix(runtime): fill browser cert failure map in mobile snapshot fixtures Main's #9104 reads browserCertificateFailuresByPageId in buildMobileBrowserTab but left partial AppState test helpers without the field, breaking PR Checks merge commits. Default the map in fixtures and use optional chaining so partial state cannot throw.
15 lines
743 B
TypeScript
15 lines
743 B
TypeScript
// Why: OpenCode abbreviates native OSC session titles as `OC | <task>` (no
|
|
// agent-name token). Optional single-token multiplexer prefix covers SSH/tmux
|
|
// frames like `tmux | OC | …`. Case-sensitive `OC` avoids ordinary lowercase
|
|
// "oc" lookalikes; require non-whitespace after the marker so bare `OC |` is not
|
|
// identity. Used for both display-title preservation and tab-agent identity.
|
|
const OPENCODE_NATIVE_TITLE_RE = /^(?:[^|\s]+ \| )?OC\s*\|\s*\S/u
|
|
|
|
export function isOpenCodeNativeTitle(title: string | null | undefined): boolean {
|
|
return OPENCODE_NATIVE_TITLE_RE.test(title?.trim() ?? '')
|
|
}
|
|
|
|
export function isMeaningfulOpenCodeTerminalTitle(title: string | null | undefined): boolean {
|
|
return isOpenCodeNativeTitle(title)
|
|
}
|