You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Rebuilt the side-panel timeline around compact activity groups that combine reasoning and tool work without hiding execution evidence.
Hardened long-running Agent tasks with bounded steps, per-step and total timeouts, stream health checks, and explicit terminal failures.
Expanded builtin site skills from 8 to 27, organized into ticketing, shopping, social, video, travel, developer, and reference categories.
Added GPT-5.6 Sol, Terra, and Luna support across OpenAI-compatible and ChatGPT/Codex flows.
Decoupled task startup from page access: pure Q&A can begin on new-tab or restricted pages, then navigate to an operable page.
Added exportable session diagnostics so persisted Agent behavior can be inspected without reproducing the task.
Added
Activity groups with running, completed, failed, stopped, and recoverable-warning states; each group reports step count and elapsed duration.
Expandable activity details for every reasoning and tool step, including copyable raw tool input, output, and error evidence.
Activity auto-follow: opening a group jumps to the newest step, follows live additions, pauses when the user scrolls up, and resumes near the bottom.
One-line JSONL session export from Settings → Preferences → Diagnostics. Strings over 2,048 characters and screenshot data URLs are truncated to reviewable previews.
scripts/dump-session-events.ts for listing and exporting sessions from a CDP-reachable Taber instance, plus docs/debugging.md with event signatures and failure diagnosis.
Stream guards for malformed tool JSON, content after complete JSON, mismatched delimiters, oversized tool input, oversized step output, and degenerate whitespace runs.
A 180-second stream idle timeout, 5-minute per-step timeout, 30-minute task timeout, and explicit 20-step tool-loop ceiling.
Seven localized skill categories with per-skill and per-category enable controls; custom user/Agent skills remain a separate first-class group.
Nineteen new builtin skills for Tixbay, Damai, Ticketmaster, StubHub, Amazon, Taobao, JD, eBay, X, Xiaohongshu, Weibo, Zhihu, Instagram, YouTube, Bilibili, Douyin, TikTok, Booking.com, and Airbnb.
Chinese names and descriptions for all 27 builtin skills, while stored skill identifiers remain stable.
Prompt-based skill pre-matching: tasks can discover a site skill from a site name in the request before the first navigation.
GPT-5.6 Sol, Terra, and Luna presets with 1,050,000-token context windows; OpenRouter also includes openai/gpt-5.6-sol.
Weekly staleness checks for the cached models.dev catalog, refreshed in the background from provider settings.
ADR 0018 documenting task startup and recovery from non-operable target tabs.
Changed
Consecutive reasoning and tool events now render as one activity block; assistant text splits blocks and keeps the original event order.
Cancelled tasks render as stopped rather than looking active; recoverable tool results render as warnings instead of false success or fatal failure.
Live side-panel events insert by event ID and deduplicate; session snapshots also read Agent events by ID rather than wall-clock timestamps.
Quick actions use a stable Summarize, Skills, Research, Compare order instead of guessing intent from the current URL or page title.
The Skills panel groups builtins by category, exposes localized metadata, supports whole-group toggles, and keeps custom skills visible for discovery.
Matching skills are mandatory prior reading. Tasks that need at least four exploratory tool calls to discover a reusable route must save or update a skill before finishing.
Builtin skills seed before the side panel becomes ready, so the Skills panel is populated before the first Agent task creates an offscreen host.
Tasks lock any active tab that exists, including chrome://, edge://, and new-tab pages; page-access failures remain recoverable while missing or closed targets remain fatal.
Page tools operate on the locked target in the background without activating it on every call.
navigate.switchTab changes the task target without stealing focus; navigate.open target:"new" opens in the background unless active:true is requested.
Viewport screenshots temporarily activate the target because Chrome only captures the visible tab, then restore the prior tab only if the user did not switch during capture.
Navigation load timeouts return navigation.status:"timeout" with inspectable tab state. Superseded net::ERR_ABORTED navigations keep waiting for the replacement navigation.
Browser refs survive the immediately preceding routed snapshot and ordinary page mutations while marker, visibility, frame URL, tag, and fingerprint checks still reject changed targets.
Structured browser target parsing drops empty placeholder fields, prefers an explicit snapshot ref over echoed semantic fields, and lets semantic locators outrank placeholder coordinates.
getDocument and extractImage ignore irrelevant padded fields from model-generated tool input while preserving required-field and value validation.
Model lists sort newer numeric generations first, then provider priority; subscription model chips can expand from the preview to the full list.
Codex OAuth, model discovery, and inference identify as official codex_cli_rs client 0.144.1, including the inference version header required by gated models.
OpenAI and Codex requests ask for detailed reasoning summaries only on models that declare reasoning support; non-reasoning models receive no reasoning fields.
Side-panel icons now use the existing Lucide package throughout. The unused phosphor-svelte production dependency was removed.
Settings, provider onboarding, session history, composer, sources, files, toasts, and subscription cards share one motion and interaction system with reduced-motion fallback.
Session history positions the current item below its sticky action row and uses bidirectional view transitions for old, new, and rapidly switched sessions.
Fixed
Streaming text, reasoning, and tool-input deltas flush at 512 characters or within 300 ms, reducing IndexedDB transactions without waiting for another delta.
Buffered event types and IDs flush in sequence before lifecycle events, preserving the exact persisted and live event order.
Out-of-order runtime broadcasts no longer disappear, and duplicate broadcasts no longer create duplicate timeline parts.
Invalid model tool input now creates a persisted tool.failed event instead of leaving the activity permanently pending.
Active partial tool inputs receive failure events when a stream health guard stops generation.
A stream ending at the tool-loop limit now fails with a narrow-task retry message instead of reporting an empty or successful response.
Internal timeout aborts are distinguished from user cancellation and reported as execution timeouts.
Provider errors retain up to 600 characters of upstream response context after credential redaction, preserving messages such as “Model not found.”
Remote document fetches stop after 30 seconds and retain HTTP, CORS, timeout, or network reasons in recoverable results.
Page-access and screenshot failures retain the browser’s original reason alongside Browser Control guidance.
Explicit mismatched tabId values fail before browser access in getDocument, all extractImage sources including viewport, browser, browserRepl, debug-only debugger, and every non-switch navigation action.
The background broker and navigate controller enforce the same target boundary, so direct internal calls cannot bypass Agent runtime validation.
A user tab switch before or during viewport capture rejects the screenshot and never restores focus over the user’s newer selection.
Non-operable targets no longer trigger fatal task cancellation; only a closed or missing target ends the task, with no fallback to another active tab.
Navigation no longer activates the target for open, back, forward, reload, current-tab reads, debugger calls, or page-tool validation.
fs read trims accidental model output after a .md skill path instead of turning a valid skill lookup into a not-found error.
Session switching rejects stale async reads, so rapid History → New Session actions cannot be overwritten by an older request.
Stopped and completed activity groups no longer retain running beam or breathing effects.
Skill reads and writes use a distinct “site skill” label instead of appearing as generic file operations.
Side-panel runtime smoke now handles Chrome 150 API namespaces, CSS-transformed labels, icon-only controls, and short history lists without weakening user-facing assertions.
Security
Only navigate.switchTab, navigate.open target:"new", or explicit side-panel confirmation may retarget a task; all other cross-target IDs fail with a recovery instruction.
Starting from a restricted page does not widen host permissions or page access. Page tools fail explicitly until navigation reaches an allowed page.
Release builds still omit debugger and cookies permissions. Detailed reasoning uses provider summaries and does not expose raw chain-of-thought.