Releases: logancyang/obsidian-copilot
Release list
4.0.2
Copilot for Obsidian v4.0.2 🛠️
The second patch since the V4 launch. It lifts the 6,000 token ceiling that was cutting long answers short, unblocks local and keyless model servers, and stops Agent Mode from hanging on startup.
🛠️ Bug Fixes
- 🖥️ Agent Mode no longer hangs on "Loading agent models…". Agent binaries and shell wrappers that print colors or window titles to their output were corrupting the startup handshake, leaving the pane spinning forever. Those decorations are now stripped before Copilot reads the reply (#2876, #2909, #2914).
- 🔑 Reset Settings keeps your API keys. The confirmation dialog always promised your keys were safe, but confirming wiped them along with the providers and custom models that used them. Reset now restores preferences only (#2847).
- 📝 Long answers run to the end. Copilot no longer caps a response at 6,000 tokens, so the model writes until it is finished. The "Response Truncated" card that pointed at a Token Limit setting V4 had already removed is gone with it (#2813, #2910).
- 🔌 Local and keyless model servers just work. A Model ID field now sits at the top of the model list, so you can type an exact ID when a server offers no model discovery, and an API key is optional for custom OpenAI-compatible endpoints. LM Studio and oMLX setups that could not be saved now save (#2894, #2895, #2896).
- 💬 Quick Chat stops warning you about a retirement that is not happening. The "V3 Chat is retiring soon" line that many people read as "Quick Chat is going away" is gone, and so are the generic suggested prompts. An empty Quick Chat now makes one offer: switch to Copilot Agent Chat. The tab reads "Copilot (Quick Chat)" so the two chats are easy to tell apart (#2923).
- 🧹 Amazon Bedrock no longer offers models it cannot run. Bedrock could not be made to work in V4: no region field, no credential test, no model list, and a client that was never finished. It is removed from the provider list, along with any Bedrock rows and keys saved in your vault. Claude is still there through Anthropic directly (#2928, #2929, #2880).
- 🛡️ Under the hood. Dead V3 model-import code removed, a deprecated Obsidian API swapped out, and more regression coverage around agent startup.
📦 Install
Update Copilot from Obsidian → Community Plugins. On BRAT? 4.0.2 is mirrored to the preview repo, so BRAT picks it up too.
Report issues via Copilot settings → Advanced → Report an Issue.
4.0.1
Copilot for Obsidian v4.0.1 🛠️
The first patch since the V4 launch. It fixes the issues you reported in the first week of 4.0.0, from local model failures to vanished chat histories, and clears out more V3 leftovers.
✨ Enhancements
- 📊 See your plan limits. The usage meter now shows plan usage for all three agents, Claude Code, Codex, and opencode on Copilot models: how much you have used in each plan window and when it resets (#2852).
- 📁 Reuse a folder that already has notes as your Copilot folder. Copilot now allows it after a clear warning that Markdown already inside stays excluded from Copilot search (#2841, #2842).
- 🧹 V3 leftovers cleaned up. The legacy vault index has its off switch back (#2864), Quick Chat drops its old Projects mode (Agent Mode owns Projects now, #2865) and the defunct GitHub Copilot provider (#2861), and V3 Chat points the way to opencode (#2872).
- 🛡️ Under the hood. A large compliance and security pass for the Obsidian community review: device-local state moved to Obsidian's storage API, LangChain 1.x, dependency audit fixes, and a leaner stylesheet.
🛠️ Bug Fixes
- 🦙 Local models work in Quick Chat again. A CORS bug blocked Ollama entirely; that is fixed (#2810, #2854). The Enable CORS switch is also back in provider settings for OpenAI-compatible endpoints that need it (#2849).
- 🕘 Agent chats reopen with their conversation intact. Opening an opencode or Codex chat from Chat History showed an empty landing page even though the conversation had survived. The transcript now rebuilds, and the chat picks up where it left off (#2839).
- ⌨️ Escape behaves with Chinese, Japanese, and Korean input. Dismissing the IME candidate window no longer throws focus out of the chat composer into the note editor (#2816).
- 🤫 Quieter, more accurate status. Miyo chat search reports ready instead of "Not set up" when sync is idle (#2834, #2835).
📦 Install
Update Copilot from Obsidian → Community Plugins. On BRAT? 4.0.1 is mirrored to the preview repo, so BRAT picks it up too.
Report issues via Copilot settings → Advanced → Report an Issue.
GitHub release: https://github.com/logancyang/obsidian-copilot/releases/tag/4.0.1
4.0.0
Copilot v4.0.0 — The Official V4 Release 🎉
Copilot has been rewritten end to end. Instead of a single built-in assistant, frontier agents — Claude Code, Codex, and opencode — now run natively inside Obsidian: they plan, search your vault by meaning, use tools, and write results back to your notes in fluent Obsidian — wikilinks, canvases, Markdown.
Huge thanks to every Believer who ran the six preview builds since June and filed the reports that shaped this release. 🙏
✨ Highlights
🤖 Run Claude Code, Codex, and opencode inside Obsidian
Real agents tuned for your links and structure, working like they belong in your vault:
- Tabs, like a browser. Open a different agent in each tab and work several threads at once.
- Project Mode. Give an agent its own scoped project, with a per-project
AGENTS.mdthat steers how it behaves there. - Multi-agent collaboration (Plus). Mention
@claude @codex @opencodein one prompt and each agent works it in parallel, then Copilot combines their answers into one result. - One skill, every agent. Set up a skill once, then enable it for opencode, Claude Code, or Codex with a click.
Note: Agent Mode is desktop-only for now. On mobile, Copilot keeps working with the classic chat experience (now called Quick Chat).
🔑 Bring the subscription you already pay for
Copilot is free and open source — bring your own AI:
| You have | Copilot runs |
|---|---|
| Claude subscription | Claude Code |
| ChatGPT subscription | Codex |
| API keys or local models (OpenAI, Google, Ollama, LM Studio…) | opencode |
Prefer zero setup? The new Lite plan runs opencode on Copilot-hosted models with enterprise-grade privacy for $7.99/month.
🔍 Miyo — local semantic search and document understanding, free for everyone
Ask in half-remembered language and Copilot finds the note by meaning, powered by Miyo, our local indexing engine. Your index stays on your machine — and with Miyo as your Document Processor, PDFs and EPUBs are parsed locally too, so nothing leaves your computer.
🌐 Symposium — agent-first publishing (Plus and above)
Right-click any note and publish it as a clean webpage on Symposium, update it after edits, or withdraw it — all without leaving Obsidian. Or just tell your agent "publish this note": it builds the page and shows you a preview and a confirmation before anything goes public.
And a lot more from the preview cycle
Quick Ask inline panel (assign a hotkey — we recommend Ctrl/Cmd+K), redesigned Settings, per-agent default models, a context and cost meter in the composer, an in-app Report an Issue button, and built-in cross-agent skills like web search, PDF reading, YouTube transcripts, and X capture (Plus).
⚠️ Upgrading from V3 — read this first
V4 arrives as a normal plugin update. Your settings, custom prompts, and license carry over, and Copilot runs a one-time migration on first launch that ends with a summary of everything it did. A few things to know:
- Back up your vault before updating. The migration is automatic, but this is a major architectural change and a backup is cheap insurance.
- Your old chat is now "Quick Chat." Agent Mode is the new main view on desktop. The classic V3 chat is still here — open the command palette and run "New Copilot Quick Chat" — and it remains the chat experience on mobile. Quick Ask and vault QA keep working as before.
- One
copilotfolder for everything. Conversations, custom prompts, skills, memory, system prompts, and projects now live under a single parent folder (default:copilot, configurable in settings). Existing files are moved automatically; if you had customized any of those paths, a one-time notice lists the old and new locations. - API keys move to the Obsidian keychain. For security, keys are migrated out of
data.json, with a backup saved in your plugin folder. - Check your Plus license after updating. Some users find their license key cleared by the upgrade. If Plus features stop working, paste your key back into the Plus license field in Settings.
📦 Install
Update Copilot from Obsidian → Community Plugins. On the V4 preview via BRAT? Keep the beta repo — the official v4.0.0 is released there as well, so you'll get it through BRAT too.
Report issues on GitHub · Docs & plans · Privacy · Full changelog
3.3.3
Release v3.3.3
This patch brings a fresh Gemini model, squashes a nasty Copilot Plus freeze, and makes it much easier to verify your dev build is actually loaded in Obsidian. Thanks to @logancyang and @zeroliu for the quick turnaround!
- Gemini 3.5 Flash is now a built-in model — Google's latest generally-available Gemini model (
gemini-3.5-flash) is now available out of the box, enabled by default with Vision and Reasoning support. It replaces the oldgemini-3-flash-previewentry. Your existing default model (google/gemini-2.5-flashon OpenRouter) is unchanged. - Copilot Plus no longer freezes when you apply your license key — Multiple concurrent initializations were bouncing
chainTypeAtombetweenLLM_CHAINandCOPILOT_PLUS_CHAINindefinitely. Applying your key now fires a single clean rebuild. - New
npm run test:vaultcommand for developers — Builds and hot-reloads the plugin into your test vault, with a build timestamp stamped into the plugin name so you can confirm you're running the right build.
PRs included
- #2492 feat(models): add GA gemini-3.5-flash builtin @logancyang
- #2478 fix(chain): stop writing chainType back inside setChain (apply-Plus freeze) @zeroliu
- #2477 Add npm run test:vault for fast worktree-to-vault plugin reload @zeroliu
Generated by the release agent.
3.3.2
Release v3.3.2
This patch is all about stability and speed. Claude Opus 4.7+ now works correctly with adaptive thinking on both direct Anthropic and AWS Bedrock, project-mode file ingestion is fixed, Quick Ask no longer crashes on @-mention, and the plugin is 75 KB lighter thanks to a clean dependency deduplication.
- 🧠 Claude Opus 4.7+ adaptive thinking is fixed — Adding
claude-opus-4-7(or any Opus 4.7+) as a model and enabling reasoning used to return a 400 error because the plugin was sending the legacythinking.type=enabledshape, which Opus 4.7+ no longer accepts. It now correctly sendsthinking.type=adaptiveand requests a summarized display so the thinking block appears in chat. Both the direct Anthropic and AWS Bedrock code paths are fixed. (@logancyang) - 📂 Project-mode file ingestion is fixed — PDFs, images, audio files, and Office docs added to a project's source files were silently failing to upload because Obsidian's CORS-bypass path can't handle native
FormDatastreams. The upload path now usesrequestUrlwith a manually-constructed multipart body, matching how the rest of the plugin talks to Brevilabs. (@zeroliu) - 💬 Quick Ask no longer crashes on
@-mention — Opening the Quick Ask panel and typing@to mention a note was crashing with "useApp() called outside of AppContext.Provider". Fixed by wrapping the panel's React root in the sameAppContextthat the main chat view uses. (@zeroliu) - ⚡ 75 KB smaller bundle —
@langchain/communityis dropped (Jina embeddings now run against a hand-rolled Obsidian-native client), andopenaiis bumped to v6 to eliminate a duplicate copy of the SDK that was sneaking in alongside@langchain/openai. The plugin is now around 3.3 MB. (@zeroliu) - 🔴 Clearer error when a Bedrock model ID is missing its inference-profile prefix — If you configure a bare regional Bedrock model ID (e.g.
anthropic.claude-sonnet-4-6without aglobal.,us., etc. prefix), the error used to surface as raw JSON. It now shows a plain-English message pointing you to Settings → Models and listing the four valid prefix forms. (@logancyang) - 🧹 React state management cleanup — 56
setState-in-useEffectanti-patterns were replaced with idiomatic React patterns across 21 files. Side effects include: the token-count badge in chat now updates correctly after regeneration, chain/setting toggles in ChatInput no longer flash stale state, and the draggable quick-command modal no longer resets your resize when content grows. (@zeroliu)
More details in the changelog:
Improvements
- #2460 chore(deps): remove unused deps and dead code to shrink bundle @zeroliu
- #2463 chore(deps): drop @langchain/community + bump openai to v6 to dedupe SDKs @zeroliu
- #2467 chore(react): centralize React root creation via createPluginRoot helper @zeroliu
- #2469 Remove dead ChainFactory and chain validation helpers @zeroliu
- #2470 style(css): expand #ccc to 6-digit hex format for consistency @zeroliu
Bug Fixes
- #2399 fix(brevilabs): rewrite uploads via requestUrl multipart (W8/9) @zeroliu
- #2454 chore(lint): fix no-direct-set-state-in-use-effect violations @zeroliu
- #2466 fix(quick-ask): provide AppContext to overlay panel @zeroliu
- #2471 fix(anthropic+bedrock): adaptive thinking + summarized display for claude-opus-4-7+ @logancyang
- #2472 fix(bedrock): explain inference-profile requirement when AWS rejects on-demand model ID @logancyang
Generated by the release agent.
3.3.1
Copilot for Obsidian - Release v3.3.1 🔐
This release is all about keeping your API keys safe and your plugin running smoothly everywhere. API keys can now be stored in Obsidian's built-in Keychain so they never touch data.json, the encryption toggle is removed (it was more trouble than it was worth), and a wave of reliability fixes ensures chat works correctly on mobile, in popout windows, and with Plus mode. Underneath, @zeroliu landed nineteen back-to-back PRs of code-quality work — tightening ESLint, eliminating ~395 any types, swapping out unmaintained dependencies, and modernizing the React layer. Huge thanks to both @Emt-lin (Keychain) and @zeroliu (codebase hardening) for carrying this release. 🙌
⚠️ Requires Obsidian 1.11.4+. TheminAppVersionis bumped from 1.7.2 to 1.11.4 because the Keychain feature relies on Obsidian'sapp.secretStorageAPI, which only exists in 1.11.4 and later.
- 🔐 API keys now live in the Obsidian Keychain — Fresh installs automatically store all API keys in Obsidian's vault-scoped Keychain instead of
data.json. Existing users can opt in at any time via the new "API Key Storage" section in Advanced Settings. A guided migration wizard walks you through the move, and keys are stripped fromdata.jsonthe moment migration completes. Each device has its own Keychain, so re-entering keys on a new device is expected. (@Emt-lin)- The Advanced Settings panel shows your current storage mode and surfaces a clear warning if a synced vault arrives on a device whose Keychain is empty.
- A "Delete All Keys" option purges secrets from both the Keychain and
data.jsonin one go. - The Reset Settings button no longer touches API keys. Use "Delete All Keys" if you want them gone.
- 🚫 Encryption toggle removed in favor of the Keychain — With API keys moving to the Obsidian Keychain, the standalone "Enable Encryption" toggle is no longer needed and has been retired. It also didn't survive a sync to mobile cleanly, which caused intermittent chat failures for some users. Migrate to the Keychain for proper secret storage; existing encrypted blobs are still decrypted transparently on read so nothing breaks. (@logancyang)
- Mobile users whose vault contained desktop-encrypted keys now see a startup notice listing exactly which fields need to be re-entered.
- 📱 Image send on mobile is fixed — Sending images was broken for all mobile users since 3.3.0 due to a missing Buffer polyfill. Fixed. (@logancyang)
- ⌨️ Quick Command shortcuts and icons restored — The Cmd+Enter (Replace) and Cmd+Shift+Enter (Insert) shortcuts in the Quick Command result modal were broken if any global Obsidian hotkey was bound to Cmd+Enter. Fixed, and the inline shortcut glyphs are back too. (@zeroliu)
- 🧠 Plus mode: no more surprise getFileTree calls — When you have a note attached in context, the planner no longer fires a
getFileTreetool call before answering. (@logancyang) - 🏷️ Settings version chip and Reset button are visible again — Obsidian's own CSS was hiding them. Fixed. (@logancyang)
- 🛡️ Supply-chain attestations for release assets — Release artifacts are now cryptographically signed and published to Sigstore's transparency log. (@logancyang)
- 🧹 Major codebase hardening pass — @zeroliu landed a sustained ESLint and type-safety campaign across the repo: ~395
anytypes removed, dozens of type-aware rules turned on, unsafe assignments/returns/member-access/arguments locked down, floating promises explicitly handled, deprecated dependencies swapped, dead CSS removed, the globalappreference replaced with auseApp()hook, and a long tail of smaller wins. See the full PR list below.
More details in the changelog:
Improvements
- #2364 feat(keychain): migrate API key storage to Obsidian Keychain @Emt-lin
- #2431 ci(release): publish artifact attestations for release assets @logancyang
- #2448 refactor(react): replace global
appwith useApp() hook @zeroliu
Bug Fixes
- #2457 fix(plus): planner skips getFileTree when active note is attached @logancyang
- #2455 fix(keychain): empty-keychain banner, reset modal copy, lifecycle reset @logancyang
- #2446 fix(encryption): deprecate encryption toggle; fix mobile chat failure on desktop-encrypted keys @logancyang
- #2445 fix(settings): restore version chip + reset button hidden by Obsidian h1 CSS @logancyang
- #2443 fix(mobile): import Buffer from the polyfill so image send works on mobile @logancyang
- #2442 fix(quick-command): restore Cmd+Enter shortcut and shortcut hint icons @zeroliu
Code Quality (@zeroliu)
- #2453 chore(lint): fix no-array-index-key and other React lint warnings
- #2452 chore(eslint): enable no-explicit-any; fix ~395 violations
- #2451 chore(styles): drop dead CSS, reduce !important, fix duplicate selectors
- #2450 chore(lint): fix deprecation and template-literal lint warnings
- #2449 chore(icons): drop deprecated lucide Youtube icon; reuse Globe
- #2447 chore(deps): swap unmaintained/legacy deps per e18e module-replacements
- #2444 chore(types): tighten any types and fix langchain getType deprecation
- #2441 chore(eslint): enable no-unnecessary-type-assertion and no-misused-promises
- #2440 chore(eslint): enable @typescript-eslint/no-unsafe-argument and fix violations
- #2439 chore(eslint): enable @typescript-eslint/unbound-method
- #2438 chore(eslint): enable no-unsafe-member-access; fix 124 violations
- #2437 chore(eslint): enable @typescript-eslint/no-floating-promises
- #2436 chore(eslint): enable @typescript-eslint/no-unsafe-return
- #2435 chore(test): type test mocks to satisfy @typescript-eslint/no-unsafe-call
- #2434 chore(eslint): enable no-unsafe-assignment for tests
- #2433 chore(eslint): remove redundant non-TS rule overrides
- #2424 chore(lint): enable 4 type-aware quick-win rules and fix violations
Troubleshoot
- If models are missing, navigate to Copilot settings -> Models tab and click "Refresh Built-in Models".
- Please report any issue you see in the member channel!
Generated by the release agent.
3.3.0
Release v3.3.0
The headline of this release is a big one: your projects now live as notes in your vault, not buried in data.json. Update and your existing projects migrate automatically. Everything else in this release is quality and polish: a 1.8 MB bundle reduction, mobile support declared official, fresh built-in models, and a wave of reliability fixes for Korean/CJK input, Miyo, Ollama, popout windows, and more!
- 📁 Projects are now vault notes — Project configurations are migrated out of the plugin's
data.jsonand into your vault as regular markdown files. On first launch after the update, Copilot reads your existing projects and writes them to vault files automatically. You can see, edit, and version-control your project configs like any other note! Any projects that can't be migrated are backed up to anunsupported/subfolder so nothing is lost. (@Emt-lin) - 📱 Mobile support is now official — Copilot is no longer desktop-only in the plugin manifest. Chat, Vault QA, and Plus modes all work on Obsidian Mobile, and the plugin now properly declares
minAppVersion: 1.7.2so users on older Obsidian builds get a clear message rather than a cryptic runtime error. (@logancyang) - ⚡ Bundle shrinks by 1.8 MB — Cohere and Mistral models now route through OpenAI-compatible endpoints instead of their own SDKs, trimming the plugin from ~5 MB down to ~3.3 MB. Faster loads, especially on mobile! Note: if you had a custom
baseUrlsaved for a Cohere model, clear it in the model settings so Cohere falls back to the correct compatibility endpoint. (@logancyang) - 💡 Latest built-in models (May 2026) — Built-in model list updated: GPT-5.5, GPT-5.4-mini, Claude Opus 4.7, Gemini 3.1 Flash-Lite (now GA), and Grok 4.3 are all available out of the box. Click "Refresh Built-in Models" in settings if you don't see them yet. (@logancyang)
- 🔧 GitHub Copilot codex models use the Responses API — Codex-family models accessed through GitHub Copilot now correctly route to the
/responsesendpoint. Previously they were hitting/chat/completionsand failing with HTTP 400. (@Keryer) - ⌨️ Enter key delay fixed for Korean/CJK input — A 100ms timeout in the IME composition handler was making Enter feel sluggish when confirming Korean, Japanese, or Chinese input. Removed. (@octo-patch)
- 🗑️ Deleted files respect your trash preference — When Copilot deletes a chat history file, project file, system prompt, or custom command, it now uses Obsidian's trash setting (system trash / vault
.trash/ permanent) instead of always deleting permanently. Recoverable! (@zeroliu) - 🛤️ Miyo path fixes for cross-vault and remote setups — Two Miyo fixes ship together: vault-folder-prefixed paths are now sent to the related-notes endpoint (fixing cross-device disambiguation), and the vault folder-name prefix is stripped from indexed paths (fixing broken links in "List Indexed Files"). (@wenzhengjiang)
- 🌐 Ollama respects the CORS setting — Ollama requests now route through
safeFetchwhen "Enable CORS" is toggled, matching what every other OpenAI-compatible provider does. Fixes mobile (WKWebView) requests tohttp://Ollama hosts. (@zeroliu) - 🪟 Popout window reliability — Chat in a popout window now creates DOM nodes in the correct window. Typing into the chat input after dragging the leaf between windows works without reopening the view. Pills, typeahead menus, the Quick Ask overlay, and inline citation links all render correctly in popouts. (@zeroliu)
- 🧠 Think-section rendering fix — A bug where indented code blocks inside
<think>sections consumed the closing</div>tag and displayed it as literal text has been fixed. Affects models likegoogle/gemma-4-31b-itthat use indented bullet-point reasoning. (@trulyshelton)
More details in the changelog:
Improvements
- #2324 feat: migrate project storage from data.json to vault files @Emt-lin
- #2402 perf(deps): route Cohere & Mistral through OpenAI-compat (-1.8 MB bundle) @logancyang
- #2396 chore(models): bump built-in models to latest (May 2026) @logancyang
- #2425 chore(manifest): bump minAppVersion to 1.7.2 and declare mobile support @logancyang
- #2406 fix(popout): document ownership and selection listener fixes (W4/9) @zeroliu
- #2405 fix(vault): respect user trash preference via FileManager.trashFile (W7/9) @zeroliu
- #2404 chore(providers): adopt non-deprecated LangChain APIs + type cleanup @zeroliu
- #2403 chore(types): tighten types and replace TFile/TFolder casts @zeroliu
- #2401 chore(popout): window-global API swaps for timers, globalThis, base64 @zeroliu
- #2400 chore(styles): replace element.style with Tailwind + CSS vars @zeroliu
- #2398 chore(deps): bump deps ahead of scorecard cleanup @zeroliu
- #2358 docs(ai): unify AGENTS.md and CLAUDE.md @capyBearista
Bug Fixes
- #2393 fix(miyo): send portable folder-prefixed path to related-notes endpoint @wenzhengjiang
- #2390 fix(miyo): strip vault folder-name prefix from indexed paths @wenzhengjiang
- #2382 fix(ollama): route through safeFetch when enableCors is set @zeroliu
- #2367 fix: remove 100ms IME timeout that delayed Enter key for Korean/CJK input @octo-patch
- #2343 fix: prevent from being consumed by indented code blocks in think sections @trulyshelton
- #2320 fix: use /responses for GitHub Copilot codex models @Keryer
- #2408 fix: broken tests @zeroliu
- #2407 chore(promises): explicit handling of floating promises @zeroliu
Troubleshoot
- If models are missing, navigate to Copilot settings -> Models tab and click "Refresh Built-in Models".
- Please report any issue you see in the member channel!
Generated by the release agent.
3.2.9-beta.0
Prerelease v3.2.9-beta.0
This is a beta release for testing the project storage migration, mobile support declaration, and a wave of reliability fixes before they ship in 3.2.9. Please report any issues in the Discord member channel with the version number in your report title.
- 📁 Projects now live in your vault, not data.json — Project configurations are migrated from the plugin's
data.jsoninto your vault as regular markdown files. Your projects and their settings transfer automatically on first load. This is a significant storage change — testers please verify your projects come through intact and project chat history loads correctly. (@Emt-lin) - 📱 Mobile support is now officially declared — Copilot is no longer desktop-only. The plugin now works on Obsidian Mobile (minAppVersion 1.7.2). If you're a mobile user, now is the time to test! (@logancyang)
- ⚡ Bundle shrinks by 1.8 MB — Cohere and Mistral models now route through the OpenAI-compatible endpoint instead of their own SDKs, cutting the plugin bundle from ~5 MB down to ~3.3 MB. Faster loads, especially on mobile. (@logancyang)
- 🔧 GitHub Copilot codex models use the Responses API — Models like
gpt-4.1ando4-miniaccessed through GitHub Copilot now use the/responsesendpoint as required. (@Keryer) - ⌨️ Enter key delay fixed for Korean/CJK input — A 100ms IME timeout was causing a noticeable delay when confirming input with Enter in Korean, Japanese, and Chinese. Removed. (@octo-patch)
- 🛤️ Miyo path portability fixes — Two Miyo fixes land together: vault-folder-prefixed paths are now sent to the related-notes endpoint (fixing cross-vault disambiguation), and the vault folder-name prefix is stripped from indexed paths (fixing search result links). (@wenzhengjiang)
- 🌐 Ollama respects CORS setting for all requests — Ollama requests now go through
safeFetchwhenenableCorsis set, matching the intended behavior for custom Ollama setups. (@zeroliu) - 🧠 Think-section
</div>parsing fix — A bug where</div>tags were consumed by indented code blocks inside think sections has been fixed. (@trulyshelton) - 🛡️ Codebase quality hardening — A large wave of ESLint rule enablements (Obsidian API rules, security rules, type-aware rules) and corresponding fixes landed across the W0-W9 scorecard series. No behavior changes for users, but the codebase is now significantly more defensively typed and free of unsafe patterns. (@zeroliu)
What to Test
- Project migration: Open the plugin after updating. Confirm all your projects appear in the Projects list and project chat history loads. Check that project files appear as notes in your vault.
- Mobile: If you use Obsidian Mobile, install the prerelease and confirm basic chat, model switching, and search all work.
- Korean/CJK input: Confirm Enter key no longer has a 100ms lag when confirming IME input in the chat box.
- Miyo: If you use Miyo, test related-notes and search to confirm paths resolve correctly.
- Ollama with CORS: If you run Ollama with
enableCors: true, confirm requests still go through correctly. - Bundle size: Confirm Cohere and Mistral models still work correctly after the SDK routing change.
How to Install the Prerelease
- Download
main.js,manifest.json, andstyles.cssfrom this prerelease's GitHub release page. - Replace the same three files in your vault's
.obsidian/plugins/copilot/folder. - Reload the plugin (Settings → Community Plugins → toggle Copilot off and back on, or restart Obsidian).
- Report issues with the prerelease version number
3.2.9-beta.0in the title so we can track them.
To return to the stable release: reinstall the plugin from Obsidian's community-plugin browser.
Generated by the prerelease agent.
3.2.8
Release v3.2.8
A small but handy patch release adding a global search toggle for Miyo so you can search across everything you've indexed, not just your current vault!
- Search everything in Miyo, not just your vault — A new "Search everything in Miyo" toggle (on by default) lets Miyo search across all indexed content instead of scoping results to your current vault folder. When you turn it off, searches are scoped to your vault and you'll see the folder identifier displayed so you know exactly what's being searched. (@wenzhengjiang)
Improvements
- #2353 feat(miyo): add toggle to search all indexed content @wenzhengjiang
Troubleshoot
- If models are missing, navigate to Copilot settings -> Models tab and click "Refresh Built-in Models".
- Please report any issue you see in the member channel!
Generated by the release agent.
3.2.7
Release v3.2.7
A focused patch release with Miyo server compatibility fixes and a small debug table cleanup!
- 🔧 Miyo now uses your vault name — not the full path — Copilot sends your Obsidian vault folder name (instead of the absolute local path) when talking to Miyo, making it work correctly whether your Miyo server is local or remote. The outdated "Remote Vault Folder" setting has been removed since it's no longer needed. (@wenzhengjiang)
- 📁 Miyo API alignment: folder names and relative paths — Internal Miyo requests now use
folder_name(matching the updated server API) and send vault-relative file paths for document indexing, keeping Copilot in sync with the Miyo server protocol. (@wenzhengjiang) - 🛠️ Cleaner search debug table — The redundant row-index column has been removed from the search results debug log, and columns are now ordered more usefully: path, index type, modified time, score, explanation. (@logancyang)
Improvements
(none)
Bug Fixes
- #2342 Use vault name for Miyo requests @wenzhengjiang
- #2348 refactor(miyo): rename folderPath to folderName and fix parse-doc path @wenzhengjiang
- #2349 refactor(miyo): rename folder_path to folder_name @wenzhengjiang
- #2344 fix(debug): remove idx column from search results debug table @logancyang
Generated by the release agent.