Added
- Remote Chrome + remote browser service:
oracle servelaunches Chrome with host/token defaults for cross-machine runs, requires the host profile to be signed in, and supports reusing an existing Chrome via--remote-chrome <host:port>(IPv6 with[host]:port), including remote attachment uploads and clearer validation errors. - Linux browser support: Chrome/Chromium/Edge runs now work on Linux (including snap-installed Chromium) with cookie sync picking up the snap profile paths. See docs/linux.md for paths and display guidance.
- Browser engine can target Chromium/Edge by pairing
--browser-chrome-pathwith the new--browser-cookie-path(also configurable viabrowser.chromePath/browser.chromeCookiePath). See docs/chromium-forks.md for OS-specific paths and setup steps. - Markdown bundles render better in the CLI and ChatGPT: each attached file now appears as
### File: <path>followed by a fenced code block (language inferred), across API bundles, browser bundles (including inline mode), and render/dry-run output; ANSI highlighting still applies on rich TTYs. --render-plainforces plain markdown output (no ANSI/highlighting) even in a rich TTY; takes precedence when combined with--render/--render-markdown.--write-output <path>saves just the final assistant message to disk (adds.<model>per file for multi-model runs), with safe path guards and non-fatal write failures.- Browser engine:
--chatgpt-url(alias--browser-url) andbrowser.chatgptUrlconfig let you target specific ChatGPT workspace/folder URLs while keeping API--base-urlseparate. - Multi-model API runner orchestrates multiple API models in one command and aggregates usage/cost; browser engine stays single-model.
- GPT-5.1 Pro API support (new default) and
gpt-5-proalias for earlier Pro rollout; GPT-5.1 Codex (API-only) now works end-to-end with high reasoning and auto-forces the API engine. GPT-5.1 Codex Max isn’t available via API yet; the CLI rejects that model until OpenAI ships it. - Duplicate prompt guard remains active: Oracle blocks a second run when the exact prompt is already running.
Changed
- Cookie sync covers Chrome, Chromium, Edge, Brave, and Vivaldi profiles; targets chatgpt.com, chat.openai.com, and atlas.openai.com. Windows browser automation is still partial—prefer API or clipboard fallback there.
- Reject prompts shorter than 20 characters with a friendly hint for pro-tier models (
gpt-5.1-pro) only (prevents accidental costly runs while leaving cheaper models unblocked). Override via ORACLE_MIN_PROMPT_CHARS for automated environments. - Browser engine default timeout bumped from 15m (900s) to 20m (1200s) so long GPT-5.x Pro responses don’t get cut off; CLI docs/help text now reflect the new ceiling.
- Duration flags such as
--browser-timeout/--browser-input-timeoutnow accept chained units (1h2m10s,3m10s, etc.) plush,m,s, ormssuffixes, matching the formats we already log. - GPT-5.1 Pro and GPT-5 Pro API runs now default to a 60-minute timeout (was 20m) and the “zombie” detector waits the same hour before marking sessions as
error; CLI messaging/docs updated accordingly so a single “auto” limit covers both behaviors. - Browser-to-API coercion now happens automatically for GPT-5.1 Codex and Gemini (with a console hint) instead of failing when
--engine browseris set. - Multi-model output is easier to scan: aggregate header/summary, deduped per-model headings, and on-demand OSC progress when replaying combined logs.
--write-outputadds stricter path safety, rejecting unsafe destinations while keeping writes non-fatal to avoid breaking runs.- Session slugs now trim individual words to 10 characters to keep auto-generated IDs readable when prompts include very long tokens.
- CLI:
--modeis now a silent alias for--enginefor backward compatibility with older docs/scripts; prefer--engine. - CLI guardrail: if a session with the same prompt is already running, new runs abort with guidance to reattach unless
--forceis provided (prevents unintended duplicate API/browser runs).
Fixed
- Browser assistant capture is more resilient: markdown cleanup no longer drops real answers and prompt-echo recovery keeps the assistant text intact.
- Browser cookie sync on Windows now copies the profile DB into a named temp directory with the expected
Cookiesfilename sochrome-cookies-securecan read it reliably during browser fallbacks. - Streaming runs in
--render-plainmode now send chunks directly to stdout and keep the log sink newline-aligned, preventing missing or double-printed output in TTY and background runs. - CLI output is consistent again: final answers always print to stdout (even when a log sink is active) and inline runs once more echo the assistant text to stdout.