## logancyang/obsidian-copilot — 4.0.12…4.0.13

_55 commits._

### Features
- **Add Perplexity search attribution (#3320)** (41c2086)

### Backend
- **4.0.13 (#3446)** (a775bfb)
- **[OpenCode enabled models] - Step 2: Show Loading models while any chat starts (#3503)** (7b066df)
- **Start OpenCode 2.0.22 chats only on models the user enabled (#3498)** (0aee316)
- **Preserve an open chat's model and effort across an agent restart (#3323)** (2ef0c04)
- **Show custom endpoint names in the opencode model picker (#3497)** (c91496a)
- **Make web search, web fetch, and PDF built-in skills default off (#3500)** (c3b66b6)
- **Decode relay responses as UTF-8 on Windows (#3488)** (3282cab)
- **Save unsaved chats when Copy Chat Link is clicked (#3392)** (13aa7d9)
- **[Dead code removal] - Step 5: Drop unused settings, search, tools and utils code (#3494)** (31957b6)
- **[Dead code removal] - Step 4: Drop unused agent UI and skills code (#3493)** (7877065)
- **[Dead code removal] - Step 3: Drop unused LLM and model management code (#3492)** (7a37901)
- **[Dead code removal] - Step 2: Drop unused UI components, props and modals (#3491)** (4357bc0)
- **[Dead code removal] - Step 1: Drop unused agentMode core code (#3490)** (f9c6f37)
- **Remove the inset frame around the Quick Ask footer (#3489)** (fc6dfa0)
- **Give commands an explicit default model (#3443)** (e207a15)
- **[Test cleanup] - Step 26: Prune and restructure miyo, openArtifacts, and projects tests (#3478)** (4d55c42)
- **[Test cleanup] - Step 25: Prune commands, editor, instructions, lib and system-prompts tests (#3476)** (92569a8)
- **[Test cleanup] - Step 24: Prune dev gallery and scripts tests (#3472)** (ad9395f)
- **[Test cleanup] - Step 23: Prune search and services tests (#3471)** (32ac27b)
- **[Test cleanup] - Step 22: Prune and restructure tools unit tests (#3469)** (d75deb2)
- **[Test cleanup] - Step 21: Prune and restructure context unit tests (#3468)** (ec95a68)
- **[Test cleanup] - Step 20: Prune model management unit tests (#3467)** (de91fc4)
- **[Test cleanup] - Step 19: Prune and restructure src root tests (#3466)** (3a4455e)
- **[Test cleanup] - Step 18: Prune and restructure utils unit tests (#3465)** (13f2fb0)
- **[Test cleanup] - Step 17: Prune chat-components unit tests (#3464)** (6ee5371)
- **[Test cleanup] - Step 16: Prune and restructure settings and migration unit tests (#3463)** (0255e0d)
- **[Test cleanup] - Step 15: Prune and restructure LLM provider and chain runner tests (#3462)** (962b9e5)
- **[Test cleanup] - Step 14: Prune settings v2 component tests (#3461)** (d45f47d)
- **[Test cleanup] - Step 13: Prune chat core unit tests (#3460)** (1802a0a)
- **[Test cleanup] - Step 12: Prune components and hooks unit tests (#3459)** (44ffb0e)
- **[Test cleanup] - Step 11: Prune and restructure Claude SDK tests (#3458)** (67bf965)
- **[Test cleanup] - Step 10: Prune and restructure ACP and agent-mode root tests (#3457)** (2b693ab)
- **[Test cleanup] - Step 9: Prune agent mode UI unit tests (A-M) (#3456)** (96be78a)
- **[Test cleanup] - Step 8: Prune agent-mode skills tests (#3455)** (9ff970f)
- **[Test cleanup] - Step 7: Prune agent mode UI N-Z and hook tests (#3454)** (e8cadd8)
- **[Test cleanup] - Step 6: Prune agent session manager tests (#3453)** (a2cdb98)
- **[Test cleanup] - Step 5: Prune Claude backend and shared backend tests (#3452)** (d9dd93e)
- **[Test cleanup] - Step 4: Prune and restructure AgentSession tests (#3451)** (493897b)
- **[Test cleanup] - Step 3: Prune and restructure agent session unit tests (#3450)** (206f91f)
- **[Test cleanup] - Step 2: Prune opencode backend tests (#3449)** (bd5c593)
- **[Test cleanup] - Step 1: Prune Codex backend unit tests (#3448)** (85c8e35)
- **Upgrade Codex to 2.0.1 and keep command prefixes out of permission buttons (#3447)** (75c9805)
- **Close two loopholes in the issue-linked comment rule (#3411)** (162288e)
- **[Comment cleanup] - Step 11: Ban comments that do not link a GitHub issue (#3408)** (1bcb6ad)
- **[Comment cleanup] - Step 10: Delete non-issue comments in remaining modules (#3407)** (f399ec5)
- **[Comment cleanup] - Step 9: Delete non-issue comments in tools, search, context (#3399)** (73de2e3)
- **[Comment cleanup] - Step 8: Delete non-issue comments in providers, core, utils (#3403)** (cb88e25)
- **[Comment cleanup] - Step 7: Delete non-issue comments in settings and models (#3401)** (6d9566b)
- **[Comment cleanup] - Step 6: Delete non-issue comments in components (#3400)** (898d665)
- **[Comment cleanup] - Step 5: Delete non-issue comments in chat-components (#3409)** (0f416b7)
- **[Comment cleanup] - Step 4: Delete non-issue comments in agentMode core (#3404)** (a34db98)
- **[Comment cleanup] - Step 3: Delete non-issue comments in agentMode/backends (#3406)** (40239f3)
- **[Comment cleanup] - Step 2: Delete non-issue comments in agentMode/ui (#3405)** (0b5fce3)
- **[Comment cleanup] - Step 1: Delete non-issue comments in agentMode/session (#3402)** (aa1691a)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/logancyang/obsidian-copilot?utm_source=github-action)._