What's new

Changelog

Notes for every released build. Auto-updates ship the same content quietly in the app.

  1. v1.8.0

    What's Changed

    • feat(conversation-ui): deepen the element interface (pre-1.0.0 additions)
    • ci: gate release on CI passing
    • feat: one turn-persistence pipeline + thread persistence for hosts
    • chore: release conversation-ui-v1.0.0
    • docs: renderer migration spec (Vue 3 → SolidJS)
    • feat(prefs): rewrite the preferences window in SolidJS (renderer migration PR 1)
    • fix: fall back to the in-memory XLSX reader when the stream reader crashes
    • feat(search): rewrite the search window in SolidJS (renderer migration PR 2)
    • feat(playground): rewrite the tabular playground in SolidJS (renderer migration PR 2a)
    • chore: drop Vue from the toolchain (renderer migration PR 3)
    • feat(preview): every stream renders in the conversation surface (ADR 0002)
    • docs(research): asset delivery for the web runtime on a third-party site
    • docs(specs): sequenced PR plan for the web runtime + tabular agent packages
    • ci: per-PR checks + generic topological packages step (web packages PR 1)
    • feat(conversation-ui): public acceptDrop(dataTransfer) (web packages PR 2)
    • feat: extract @leopsidom/agent-core (web packages PR 3)
    • feat: extract @leopsidom/provider-agents (web packages PR 4)
    • fix: bundle @leopsidom/agent-core + provider-agents into the main process
    • feat: extract @leopsidom/tabular-agent (web packages PR 5)
    • fix(conversation-ui): auto-open workspace panel + fix CSV grid preview
    • docs(specs): amend web-packages plan — PR 6 blocked on shared contract layer
    • feat: extract @leopsidom/host-protocol (web packages PR 5.5)
    • fix: bundle ESM-only @leopsidom packages into the preload (fixes blank desktop UI)
    • feat: extract @leopsidom/agent-runtime-web (web packages PR 6)
    • feat: extract @leopsidom/conversation-host (web packages PR 7)
    • ci: generic @leopsidom publish pipeline (web packages PR 8)
    • refactor(host-protocol): make host-link generic over the contract (#280 PR 1)
    • fix: keep tabular chart source inspectable for plotly/altair
    • fix: restore tabular conversation from carousel over an open preview
    • refactor(host-protocol): split Runtime vs Desktop contract (#280 PR 2)
    • docs: refresh CLAUDE.md agent paths + fix stale conversation-ui dep range
    • fix: keep the preview WCV hidden while the recents carousel is open
    • ci: gate per-package typecheck+test to affected packages on PRs
    • refactor(conversation): extract bootConversation from the resident page
    • feat(conversation): open a live conversation in a stand-alone window
    • fix(tabular-agent): declare marked dependency (1.0.1)
    • feat(conversation-ui): make the workspace files panel resizable (1.2.0)
    • build: one-command dev — auto-build workspace package dist/ before run
    • fix(conversation): align composer to transcript, pin usage bar flush
    • fix(conversation): stop carousel restore from re-running the seeded query
    • fix(status-line): describe the navigated history surface, not the opener
    • fix(search): stop Recents/History churn during preview; pin preview to the chosen row
    • fix(carousel): keep the restored surface when a web/file card seeds its query
    • feat(ranking): auto-primary agent leads default-mode ranking
    • refactor(search): extract createAgentSearch, the third search-dispatch service
    • refactor(oauth): unify providers behind one OAuthProvider seam
    • refactor(sync): concentrate last-write-wins into one ConflictResolution seam
    • feat(tabular): local on-disk trace of LLM calls + query failures
    • feat(tabular): register each source as a named DuckDB view
    • refactor(data): split index.ts into per-entity query modules behind a barrel
    • fix(tabular): emit spec-valid JSON for Altair charts (no bare NaN)
    • feat(conversation): syntax-highlight code blocks (sql/python/js) with DuckDB dialect
    • docs(research): SQL AST validator choice for the agent access layer
    • fix(tabular): validate read-only SQL via DuckDB's own parser (AST), not regex
    • fix(tabular): recover from planner SQL syntax errors + reduce them at the source
    • docs(research): PGlite + drizzle multi-schema mechanics spike
    • docs(specs): prototype the agent access layer broker + ctx API surface (#317)
    • docs: agent access layer spec + ADRs 0003-0006 (#322)
    • feat(data): move the five entity tables to agent schemas
    • feat(data): ownership code catalog + provisioning registry tables
    • feat(lint): catalog-driven ESLint boundary rule for built-in agents
    • feat(main): allowlist SQL validator on libpg-query
    • feat(agents): channel broker + 23-channel re-homing
    • feat(agents): installed-agent DB lifecycle — db block, ctx.db, install/upgrade/uninstall
    • feat(agents): access-layer sync integration + preferences UI
    • docs(research): src/web consumer survey (map #345, ticket #346)
    • docs(specs): built-in vertical ownership spec + ADRs 0007/0008 (map #345)
    • feat(data): squash cutover — per-owner migration baselines on the registry rails (#355)
    • feat(agents): go vertical — colocation reference + EntityManager + SyncAdapter harvesting (#356)
    • feat(agents): snip vertical — colocation, second SyncAdapter, declared entities (#357)
    • Surface Open in New Window on the conversation action bar
    • Stop autofocusing the conversation composer when a stream turn settles.
    • feat(agents): tasks vertical — colocation + channel handlers (#358)
    • feat(agents): dashboard vertical — colocation + rows-kind entities, last bespoke manager deleted (#359)
    • feat(agents): history vertical + events capability — host writes inverted into subscribers (#360)
    • refactor(data): boundary closeout — one flipped rule, legacy arm retired (#361)
    • feat(agents): native @github search agent — repos, issues, PRs, code
    • docs(research): entity-channel transport serialization audit (#377)
    • docs(specs): type-machinery spike — typed agent-core channels + derived proxy surface (#378)
    • docs(research): agent-core consumer + publish impact audit (#379)
    • docs(specs): agent-owned typed contracts — locked design + sequenced plan (#381)
    • feat(agent-core): typed channel declarations — ch<Args,Res> contracts + NoInfer handlers (#386)
    • feat(agents): verticals declare contracts + generic channel binding — wire names retired behind shims (#387)
    • feat(agent-core): rows-entity protocol — defineEntity tier-2 conformance (#388)
    • feat(agents): preview:navigated host-owned + announcement channel — recordHistoryVisit retired (#389)
    • feat(host): native feature protocols — carousel-source + history-adjacency via protocolClient (#390)
    • feat(agents): SDK board vocabulary + command conversions — DashboardItem and action-menu methods retired (#391)
    • refactor(ipc): contracts closeout — HostChannelContract, entity aliases, shims deleted (#392)
    • fix(agents): export sync PushedRef types + clear spike lint warnings
    • refactor: remove dead code left by recent architectural cutovers
    • fix(history): collapse script-initiated same-origin URL rewrites in preview
    • feat(agents): @def typeahead via a first-class suggest() endpoint
    • refactor(conversation-ui): move chart harnesses into the package
    • fix(preview): render local video through a media viewer, fixing .mov download
    • refactor(auth): lift the OAuthProvider seam contract into agent-core
    • refactor(action-menu): extract the ⌘K overlay into its own ActionMenuOverlay store
    • feat(agent-core): unified manifest surface + net:{fromConfig} resolver → 1.3.0
    • refactor(preview): extract the PreviewTarget route resolver from previewSurface
    • refactor(agent-core): extract the shared agent sandbox (B1)
    • feat(agent-sdk): pin agent-core ^1.3.0 + surface new manifest types (A1)
    • feat(agent-sdk): astros build/pack CLI + programmatic exports (B2)
    • feat(agent-sdk): offline runAgent harness + astros verify (B3)
    • feat(app): net:{fromConfig} host resolution + enforcement (A3)
    • refactor(agent-config): lift the set-agent-config write router into a deep module
    • fix(ui): accessibility + token-consistency pass across launcher and preferences
    • feat(app): net:{fromConfig} inline consent + consent-copy rendering (A4)
    • feat(app): testConnection hook + "Test connection" button (C2)
    • docs(specs): DisplayOption frame prototype .d.ts (wayfinder #421)
    • docs(context): glossary entries for Channel, Command, Action
    • chore: de-stale the IPC structured-clone note (post Vue→Solid)
    • docs(specs): the DisplayOption frame — locked design + M1 train (wayfinder #427)
    • DisplayOption frame M1 · PR 1 — Gate: frame + interpreter + @clip (recents reshaping-only) (#432)
    • DisplayOption frame M1 · PR 2 — @snip conforms (#433)
    • DisplayOption frame M1 · PR 3 — @dashboard conforms (#434)
    • DisplayOption frame M1 · PR 4 — @tasks conforms, the invoke-channel showcase (#435)
    • DisplayOption frame M1 · PR 5 — Closeout (docs) (#436)
    • docs(specs): DisplayOption frame M2 prototype .d.ts (wayfinder #443)
    • docs(specs): DisplayOption frame M2 spec — the full collapse (wayfinder #449)
    • docs(context): Hint row glossary entry (wayfinder #445)
    • DisplayOption frame M2 · PR 1 — gate: SDK 2.1.0 + canonicalizer spine + the web fold
    • DisplayOption frame M2 · PR 2 — file + app fold; legacy-Recents removal completes
    • DisplayOption frame M2 · PR 3 — surfaces re-home; conversation absorbs stream
    • DisplayOption frame M2 · PR 4 — routing + inert fold; the manual-search fix
    • DisplayOption frame M2 · PR 5 — the text fold; kind dies
    • DisplayOption frame M2 · PR 6 — closeout + the in-app harness pass
    • test(e2e): repair the six specs main had broken (#467)
    • refactor(calc): fold complete() into evaluate() behind params.aiCompile
    • refactor(frame): kill run-callback — the host verb tier goes closure-free (#451)
    • docs(claude): ask about switching models before implementing
    • refactor(recents): extract RecentsCodec — one module owns the wire round-trip
    • AgentOAuthConnect — the OAuth twin of AgentConfigWrites
    • Make the #474 pins falsifiable + code-review fixes
    • refactor(renderer): PreviewPin — deliberate focus intent gets one owner
    • Close the three OAuth connect edges (#474)
    • One prefs-window prompt, not two hand-rolled correlations
    • refactor(renderer): PreviewOwner — the authority the preview surface follows gets one machine
    • feat(hotkeys): default the preview swap to Control+Tab
    • fix(preview): pick-anchor carousel web/file visit recording (#489)
    • fix(preview): suspend audio when navigating away from a playing media file (#488)
    • fix(preview): suspend media on same-surface navigation too (#488 sibling)
    • fix(preview): media/doc/sheet previews record as the file, not the viewer page (#487)
    • feat(tabular): prototype lazy-download seam for duckdb/pyodide runtimes
    • refactor(preview): gesture-site dispatch for carousel card / dashboard tile (#479)
    • refactor(installer): one origin-bound download + loader sanitize, pinned by 43 security tests (#496)
    • feat(preview): add a General preference to disable media autoplay
    • fix(preview): serialize back/forward walk so a burst steps through (#498)
    • refactor(preview): delete the dead benign-media loadURL carve-out
    • docs(claude): split implementation into core-coding + testing tasks, ask model per task
    • docs(claude): testing task covers unit + e2e and waits for core coding
    • refactor(search): extract SearchDispatch — what-to-search decision + Search-dispatch service ownership (#504)
    • refactor(installer): AgentInstaller — the choreography behind an InstallerHost seam (#496)
    • build(mac): drop unused duckdb-wasm dead weight from the asar (~30 MB)
    • fix(custom-agents): migrate asana + linear-agent off the removed subPath contract
    • Worktree tabular lazy runtime
    • refactor(main): LivePageView — one boot behind every live-page WCV
    • refactor(provider-agents): defineModelProvider — one factory behind the five assembly shells (#515)
    • refactor(renderer): CarouselPhysics — the recents deck's motion decisions get one pure module
    • fix(carousel): center card letterbox evenly and fill it opaque per-theme
    • docs(specs): agent-subnamespace — locked design + sequenced train
    • Sub-namespace train 1/6 — core dynamic-segment tier: a registered agent claims the dotted tail (#529)
    • feat(files): the dotted tail re-scopes the search to a folder (#531)
    • Sub-namespace train 2/6 — provider roots claim the dotted tail: day-0 models by path (#530)
    • Sub-namespace train 4/6 — renderer resolution parity + the scope commit gate (#532)
    • Sub-namespace train 5/6 — path completion rides suggest() (#533)
    • fix(prefs): restore the child-row indent in the agents table
    • Sub-namespace train 6/6 — Save as custom model + closeout (#534)
    • fix(action-menu): a re-summoned launcher never inherits an open ⌘K menu
    • docs(claude-md): PRs go up active, not draft
    • fix(preview): a self-rewritten URL is not a visit — anchor in-page history on user activation (#486)
    • docs(claude-md): fold the test-split rule into the model check
    • fix(recents): Tab on a recent row peeks in place instead of re-scoping the bar
    • fix(commands): Tab on a command row completes the typing instead of previewing
    • docs(research): how a result list re-queries after a mutation (wayfinder #553)
    • docs(research): inventory every producer-action → hidden-window path (#551)
    • docs(prototypes): the @tasks post-action end state, played out (#556)
    • docs(specs): post-action navigation — the locked design (#557)
    • feat(agent-core): invalidatesSearch — the declared fact + its AgentInfo mirror (#565)
    • fix(renderer): observe every producer invocation + preserve the broker code (#566)
    • feat(renderer): the fourth disposition — enterDisposition gains requery (#567)
    • feat(renderer): the success branch — re-query, scope, and post-action focus (#568)
    • feat(renderer): the failure branch — the app's first mutation error surface (#569)
    • Fix app launch failures
    • fix(agents): @tasks.done becomes a claimed tail, not a registered agent (#561)
    • feat(tasks): opt in to post-action navigation — the wired consumer (#570)
    • docs: post-action navigation closeout — the amendments, the glossary, the landed spec (#571)
    • docs(specs): search-input commit semantics — Tab commits, the scope survives (#540)
    • docs(marketing): social platform strategy for tech-explainer content
    • feat(renderer): the scope survives + the round-trip — reset becomes the pair, Tab-close restores (#540)
    • feat(renderer): Tab commits — the four-value table replaces the peek (#540)
    • feat(renderer): the scope rule — an open pick claims Enter, verbless scope rows chip (#540)
    • feat(renderer): no-focus for pure-hint lists — the restored suggest() lock (#540)
    • feat(renderer): the ghost chip — default mode's honest preview (#540)
    • docs: search-input commit closeout — the amendments, the glossary, the landed spec (#540)
    • feat(renderer): the ghost chip names the owning agent — provenance on result rows, fixed slot
    • feat(renderer): strict completions — exhaustive-set hints take initial focus again (#540)
    • Paint resolved @mentions in the accent ink; flatten references to inline links
    • feat(agents): open-urls verb — dashboard Enter opens all items in one browser window
    • feat(renderer): dashboard grid pagination — 6 live tiles per page, keyboard + pager
    • fix(main): detach dashboard tiles on dispose — no more ghosts over the dropdown
    • refactor(main): assert the one-visible-surface invariant in applyVisibility
    • feat(dashboard): read a dashboard as a list beside a live preview
    • feat(renderer): the grid flip — Ctrl+Shift+G tiles the list you are looking at
    • docs(research): frame-stream tile substrate verdict (#598)
    • prototype(dashboard-grid): wcv scroll bench — can live tiles move at 60fps? (#597)
    • prototype(dashboard-grid): mixed live/captured arm — what the phase latch costs (#611)
    • docs(research): occluded tiles stop streaming on Aura (#612)
    • docs(research): addendum to the Aura occlusion answer — a third escape, its price, and input forwarding (#612)
    • fix(files): honour never-index markers so a VM data root can't starve the walk
    • feat(files): fuzzy folder jump in @files path completion
    • feat(files): breadth-first walk fairness + surface index truncation (#622)
    • docs(research): a covered tile stays fully interactive (#616)
    • docs(research): run the Aura probe suite on real Windows (#620)
    • research(dashboard): measure the warm tier — screencast survives setVisible(false), resume is one frame
    • docs(specs): dashboard grid scroll — the consolidated design (#596)
    • feat(dashboard-grid): grid mode owns its window geometry — 384×400 tiles, variable columns
    • feat(dashboard-grid): park tiles under the DOM and stream frames into the grid
    • feat(dashboard-grid): pure scroll — delete the pager; native strip, settle contract, keyboard model (#643)
    • feat(dashboard-grid): the pool — streaming/warm rings, settle-gated spawns, warm-ceiling preference (#644)
    • feat(dashboard-grid): captures, staleness, and the ⌥-wheel into the tile (#645)
    • feat(dashboard-grid): click, wake, expand-promote, restore-before-reveal (#646)
    • feat(dashboard-grid): bounds at scale + the Live dashboard tiles preference — train closeout (#647)
    • fix(dashboard-grid): live tiles never painted — blob: was missing from the renderer CSP
    • fix(preview): stop the preview surface losing focus and advertising a non-Chrome build
    • fix(history): key URL uniqueness on a generated md5 so a long URL can't overflow the btree
    • chore(release): 1.8.0 + repair the first-ever core e2e run
  2. v1.7.0

    What's Changed

    • Reply @mention picker surfaces all stream models
    • Include leaf models in the @mention picker
    • Silence preview media when the launcher window is hidden
    • Add web search across AI-model agents
    • Add built-in @emoji search agent (Raycast-style picker)
    • feat(calc): symbol autocomplete + Enter-gated LLM NL→expression compile
    • Persist delegated sub-agent artifacts under the parent conversation workspace
    • tabular: surface result rows after the query; cover chart-code wait with a status
    • Add built-in @tasks agent: PGlite-backed day-to-day todo list
    • Add @media agent: planner-driven image/video/audio generation + local processing
    • Feat/media agent
    • Add client-side Pro gate: entitlements, agent/profile/install gates, upsell UX
    • Make the action-bar History (⌘L) hint clickable to open the carousel
    • Rank Open URL as the top option for explicitly typed URLs
    • Fix @media showing each generated image twice in the transcript
    • Report token usage and estimated cost for media generation
    • Inherit group-root settings in model sub-agent config resolution
    • Bridge evaluate agents into @astros research sources so calc is routable
    • Configure agent-skills conventions (issue tracker, triage labels, domain docs)
    • Declare AppConfig once in src/shared, derive the renderer view
    • Extract the window-state machine into a shared pure module
    • Extract display-option assembly and the primary-action decision
    • Move conversation wire builders into conversationThreads (conversation module 1/2)
    • Move the turn engine into useConversation behind an explicit TurnIO (conversation module 2/2)
    • Add the typed IPC contract; migrate the data cluster (preload seam 1/4)
    • Migrate files/apps and clipboard clusters to the typed IPC contract (preload seam 2/4)
    • Migrate config/preferences and conversations clusters to the IPC contract (preload seam 3/4)
    • Migrate the agent-dispatch cluster to the typed IPC contract (preload seam 4/4)
    • Put conversation persistence behind a ConversationStore seam (TurnIO deepening, PR 1)
    • Shrink the Conversation interface to intent verbs behind attach/detach (TurnIO deepening, PR 2)
    • Carve WindowManager out of main/index.ts behind pure geometry decisions (main-process deepening, PR 1)
    • Extract the user-configurable hotkeys into hotkeys.ts with a pure policy core (main-process deepening, PR 2)
    • Make the Enter/Tab keypress a declarative EnterPlan decision
    • Derive window.api's contract-backed surface from the IPC contract
    • Extract the auth stack from the dispatcher behind a ContextResolver seam
    • Deepen the agent-stream protocol into a transport-agnostic StreamPort
    • Split the registry into per-host agent assemblies
    • Extract tabular's host I/O behind a TabularHost seam (web-portable)
    • Extract HostLink: the IPC contract's client binding over an injectable endpoint
    • Web composition root: npm run build:web ships the launcher as a static site
    • src/data: one handler table for both hosts, durable conversations on web
    • Split window.api: PortableApi core + DesktopOnlyApi extension
    • Force web search off in programmatic LLM completions
    • Tabular on the web host: portable chart harnesses + web TabularHost
    • Re-land: web upload ingress (PR #209 missed main)
    • BYOK on web: in-renderer agent settings panel
    • Tabular playground: launcher-free BYOK surface at /playground.html
    • Conversation factory: instance-scoped state over an injected store
    • KeyClaim: one pure table for the keystroke claim cascade
    • WindowState exit effects as data; one dashboard-grid teardown
    • KeyPlan: keypress effects as data beneath the KeyClaim cascade
    • OptionAssembly: the dropdown's option list decided as a pure module
    • ShotStream: the single-shot stream lifecycle as a factory over injected IO
    • TabularPipeline: the tabular stream run as its own module
    • docs: conversation-UI package inventory (wayfinder #221)
    • docs: conversation-UI packaging landscape (wayfinder #222)
    • docs: conversation-UI build-ready spec (wayfinder #229)
    • feat: @leopsidom/conversation-ui — the conversation experience as a web component (spec §13 steps 1–2)
    • feat: playground cutover to (spec §12.2, PR 1)
    • feat: Electron cutover to (spec §12.3, PR 2)
    • chore: release v1.7.0
  3. v1.6.0

    What's Changed

    • Add Windows support for @files and @apps agents
    • Windows files apps icons prefs
    • Focus search input losing focus on preview issue
    • Fix attach to application on windows
    • Fix Notion OAuth connect: use system-browser loopback
    • Update search list in place instead of blanking while refining
    • Scope agent on Enter when picked in default mode
    • Fuzzy agent search over namespaces, aliases, and names
    • Fix sync after clear local db
    • Scoped agent search inside the # reference syntax
    • Consolidate conversation uri / display uri on preview pane
    • Conversation url consolidation
    • Add Light/Dark/System theme toggle
    • Fix mention agent in group chat
    • Remove redundant stream preview meta header
    • Fix attached-image handling in Astros agent (understand + transform)
    • Add focusPrevious action property to refocus prior app on hand-off
    • Fix database REPL input floating at top instead of bottom
    • Add grouped "Recents" section on first open
    • Unify primary-action dispatch through executeCommand
    • Unify clipboardText/copyText/snippetText into a single text field
    • fix snippet paste
    • support preview tabular file
    • fix ghost go links row on top of dropdown
    • Slack-style side-threads in AI conversations
    • Dev-only per-git-branch PGlite database isolation
    • Add "Add to Dashboard" action for files and URLs
    • Minor fixes on dashboard agent
    • Add tabular agent and surface token usage and costs for llm
    • fix eager search for go links
    • Generalize Astros delegation into capability-based routing + discovery
    • Fix altair chart styling
    • Have tabular handle large file
    • Stream tabular preview so large files no longer fail
    • improve federated search performance
    • Preference to include or exclude agents from federated search
    • Agent auth provider refactor
    • Phase 4 (client): collapse agent sync to one WireAgent entity
    • Wire google per service
    • Add in-app .docx preview via the WCV document viewer
    • Add profile management page
    • sync guard
    • Sync profile
    • Seed sync profile
    • move profiles to pglite table
    • Several improvements on status line
    • wire not connected to agent detail page
    • Track action-menu usage and frecency-sort the action menu
    • Add label to gen ai models and allow adding custom models
    • More agents taxonomy
    • Agents table consolidation
    • Add Anthropic Claude as a native AI model provider
    • Document: never push to the main branch
    • Show "Not connected" row on empty-query scoped model agents
    • Footer action rework
    • Retain recents by time window so earlier items stay searchable
    • Switch tabular agent visualization from Vega-Lite to D3.js
    • tabular: keep the attached file across reply-box follow-ups
    • Tabular d3 viz
    • Add a configure command to every agent
    • tabular: bounded SQL repair loop with accumulated failure context
    • Persist attachment references on saved conversation messages
    • Move go links, snippets, dashboards management into agent detail pages
    • adjust style for multiline input
    • Per-conversation artifact workspace for the tabular agent
    • Nest tabular workspace under userData/agentsData/
    • Per-conversation file explorer + hide redundant option list in agent chats
    • Remove dead command capability; add evaluate capability
    • Tabular agent: Python/JS chart rendering + chart UX fixes
    • Tabular: first-turn dataset overview + interactive data grids
    • Fix idle search bar height: shrink to 48px and stop persisting it
    • Remember window size and position per display
    • Tabular: CSV artifact twins + split-panel workspace file preview
    • Docs: require git branch --show-current before every commit
    • Fix tabular sheetfile links: render for all turns, bind handler on creation
    • Fix flicker: sheetfile/chart embeds revert to raw JSON during status phase
    • Refactor stream.ts: bind transcript click handlers at element creation
    • Tabular: multi-file analysis with join-key detection
  4. v1.5.2

    What's Changed

    • Consolidate license key into connect with astros.cx
  5. v1.5.1

    What's Changed

    • Astros global search and chat
    • Support image generation for astros
    • Restore conversations on restore
    • Support image generation in astros
    • Support text snippets
    • Add native agent for browsing history management
    • Tweak history search API to be usable in astros
  6. v1.5.0

    What's Changed

    • fix: find apps relocated to /System/Library/CoreServices/Applications
    • fix styles
    • move preview tool bar to action footer
    • Support referencing file or url in chat
    • Default search list empty query
    • refactor ai chat to use WCV architecture
    • Mention multiple agents in one conversation
    • Add infrasture for unit tests and playwright tests
    • Add native docusign agent
    • Fix hit enter key not focusing on agent bug
    • Fix lint issues
    • Command + delete to do all reset
    • Support loading many urls as grid
    • Fix more copy contents
    • Playwright test for navigation
    • Set up ci for playwright test
    • fzf style search for agent search
    • Rework files agent
    • add agents on top of search
    • Cut off irrelevant files
  7. v1.4.3

  8. v1.4.2

    What's Changed

    • Support multi profile in google
    • Support multi account sign in in webview
    • Support multi search mode
    • Support go links and agents installation sync
    • installable agents from marketplace
    • Support files to browser upload workflow
    • Support AI conversations
  9. v1.4.1

  10. v1.4.0

    What's Changed

    • Support custom agents installation
    • Freeze options ranking after user navigation
    • Record agent usage and use it for ranking
    • Add AGENTS.md with Cursor Cloud development instructions
    • Add reload button to URL preview toolbar
    • Preview toolbar: Chrome/Material-style navigation icons
    • refactor go links as agent
    • fix(preferences): allow highlight and copy in preferences window
    • Refactor preferences window layout (Agents + hotkeys)
    • Support file search sort by modified at
    • Support command K commands on focused items
    • Arrow up and down for navigation and support long press
    • Action menu to main process
    • Support unified preview browsing history
    • Wcv carousel refactor
    • Resize on moving across screens of different sizes
    • Ai stream preview use MCV
    • Add continuous view for carousel
    • Google drive and s3 agents
    • Google cloud storage agent and support install agent as sub agent of another agent