github steipete/oracle v0.5.0
0.5.0

latest releases: v0.23.0, v0.22.2, v0.22.1...
11 months ago

Added

  • Browser sessions now persist Chrome reattach hints (port/host/target/url) and log them inline; oracle session <id> can reconnect to a live tab, harvest the assistant turn, and mark the run completed even if the original controller died. Includes a reconnection helper and regression tests for runtime hint capture and reattach.
  • OpenRouter support: OPENROUTER_API_KEY auto-routes API runs (when provider keys are missing or the base URL points at OpenRouter), accepts arbitrary model ids (minimax/minimax-m2, z-ai/glm-4.6, etc.), mixes with built-in models in --models, passes attribution headers (OPENROUTER_REFERER/OPENROUTER_TITLE), and stores per-model logs with safe slugs.
  • pnpm test:browser runs a Chrome DevTools connectivity check plus headless browser smokes across GPT-5.1 / GPT-5.1-Pro / 5.1 Instant.
  • --browser-manual-login skips cookie copy, reuses a persistent automation profile (~/.oracle/browser-profile by default), and waits for manual ChatGPT login—handy on Windows where app-bound cookies can’t be decrypted; works as an opt-in on macOS/Linux too.
  • Manual-login browser sessions can reuse an already-running automation Chrome when remote debugging is enabled; point Oracle at it via --remote-chrome <host:port> to avoid relaunching/locks.
  • --browser-port (alias --browser-debug-port, env ORACLE_BROWSER_PORT) pins the DevTools port so WSL/Windows users can open a single firewall rule; includes a lightweight pnpm test:browser DevTools reachability check.

Changed

  • All API errors now surface as transport reason api-error with the raw message and are shown in status/render/TUI; verbose mode still prints transport details. Multi-model callback order test stabilized.
  • Default system prompt no longer asks models to announce when the search tool was used.
  • API now surfaces a clear error when gpt-5.1-pro isn’t available yet (suggests using gpt-5-pro).
  • Dependency refresh: openai 6.9.1, clipboardy 5, Vitest 4.0.13 (+ coverage), Biome 2.3.7, puppeteer-core 24.31.0, devtools-protocol 0.0.1548823; pinned zod-to-json-schema to 3.24.1 to stay compatible with zod 3.x.
  • Windows cookie reader now accepts any v** AES-GCM prefix (v10/v11/v20) to stay forward compatible.
  • On Windows, cookie sync is disabled by default and manual-login is forced; use inline cookies or --browser-manual-login (default) instead of profile-based cookie copy.

Fixed

  • CLI/TUI now print the intro banner only once; forced TUI launches (ORACLE_FORCE_TUI or no args in a TTY) no longer show duplicate 🧿 header lines.
  • TUI session list cleans up separators, removing the __disabled__ (Disabled) placeholder and (Disabled) tag on the header row.
  • oracle session --render no longer drops answers when the model filter is empty or per-model logs are missing (common for browser runs); stored session output is rendered again.
  • Browser uploads no longer time out in ChatGPT project workspaces: file input/send-button selectors are broader, upload completion falls back to attached files when buttons are missing, and we added tests to guard the new selectors.
  • Live tests now call out that gpt-5.1 must be reached via api.openai.com; OpenRouter’s Responses API endpoint doesn’t expose openai/gpt-5.1, so runs will fail there with model_not_found until they add it.
  • Browser reattach flow survives controller loss: the controller PID is persisted with the Chrome port/URL so oracle session <id> can reconnect, harvest the assistant turn, and mark the run completed even if the original process died.
  • Live multi-model smokes force first-party API bases and soft-skip HTML/transport errors (e.g., proxy 404 pages) so missing provider access doesn’t fail the suite.
  • Gemini live coverage confirmed with gemini-2.5-flash-lite after refreshing GEMINI_API_KEY; multi-model live now passes end-to-end when first-party keys are present.
  • Token usage formatter again emits two-decimal abbreviations for thousands (e.g., 4.25k) to match CLI output and tests.

Don't miss a new oracle release

NewReleases is sending notifications on new releases.