## kdlbs/kandev — v0.92.2…v0.93.0

_69 commits._

### Features
- **feat(agents): add explicit branch recovery for resumed sessions (#3216)** (4e3dc91)
- **feat: show live task icons in command panel (#3190)** (b836497)
- **feat: decouple prompt history loading (#3146)** (0b7bc8b)
- **feat: add pull request link copy actions (#3179) (#3182)** (6074f39)

### Fixes
- **fix(ui): keep file select-all inside text inputs (#3259)** (c51ec0a)
- **fix(agent): complete resumed workspace preparation (#3267)** (e6f98d9)
- **fix: settle session launches with attachments (#3258)** (2e2019a)
- **fix(backend): prevent concurrent plan writes from losing edits (#3256)** (070c881)
- **fix(backend): stop office agents from spawning duplicate concurrent sessions (#3253)** (63f47a6)
- **fix(kanban): fix preview-on-click and unreachable actions menu in pipeline view (#3254)** (1bb80b7)
- **fix: stop subtasks launching into a deleted parent workspace (#3235)** (84c83c3)
- **fix(web): normalize structured task confirmations (#3234)** (646ff00)
- **fix(chat): preserve saved prompt context in Quick Chat (#3251)** (3a93e65)
- **fix(web): recover restored transcript pagination (#3252)** (57f9047)
- **fix(agents): stop injected skills from duplicating, colliding, and hiding in Settings (#3198)** (3f19626)
- **fix(office): stop review and approval from seating the same agent (#3239)** (5a3d1bf)
- **fix(backend): stop a subtask's PR from binding to unrelated tasks and archiving them (#3248)** (0c7b16a)
- **fix(plugins): correct false claim that some workflow actions need Office to run (#3214)** (6322f16)
- **fix(web): refine task cleanup confirmations (#3231)** (f46ff3b)
- **fix: normalize structured app confirmations (#3220)** (9fa6a4d)
- **fix(chat): count text parts in transcript lazy loads (#3219)** (2023feb)
- **fix: guard passthrough initial prompt turn (#3247) (#3249)** (40beea5)
- **fix: preserve selected agent tab across reloads (#3250)** (aee0c5c)
- **fix: standardize surface typography primitives (#3206)** (a5b4a32)
- **fix: clear stale background activity after resume (#3245)** (5a6c200)
- **fix(ui): keep Quick Chat composer in viewport (#3244)** (b2157e1)
- **fix: refresh automation continuation metadata so repeat PR merges can archive (#3194)** (f05afcc)
- **fix: move spec-lint size exceptions to a merge-friendly sidecar (#3207)** (9d5c8d3)
- **fix(orchestrator): recover auto-start routines stranded by a lost task-created event (#3203)** (095f7e2)
- **fix(plugins): correct pluginsdk doc that misstated which on_enter actions run (#3221)** (625c4ca)
- **fix: scope git status by task environment (#3212)** (daa0350)
- **fix(agentctl): accept the automation MCP mode at the instance API (#3193)** (1dc06e8)
- **fix: bind office run identity to its own agent's session, not the assignee's (#3211)** (e7ebf5d)
- **fix(backend): repair office session race guard that could never trigger (#3228)** (83b125f)
- **fix: clear stale dispatch gate after context reset (#3210) (#3223)** (9f2bb78)
- **perf(mcp): stop task-plan write guard from loading full revision history for one number (#3204)** (f13a453)
- **fix(ui): restrict Changes auto-focus to Default layout (#3205)** (b292f92)
- **fix(workflow): stop silently dropping Office event triggers on sync (#3213)** (9342892)
- **fix(backend): stop a PR from rendering twice on a task's detail page (#3208)** (8b6ec7f)
- **fix: resolve dynamic workflow replacement profiles (#3202) (#3217)** (b8952c8)
- **fix: harden done cleanup identity and path safety (#3195)** (71de0df)
- **fix: prevent tab maximize while renaming (#3192)** (87d5b4f)
- **fix: preserve canonical MCP tool names for Auggie (#3196)** (f85ae95)
- **fix: preserve custom default layout proportions (#3201)** (a82369d)
- **fix: support stacked PR base retargeting for review-watch worktrees (#3199)** (0a0fb2d)
- **fix(worktree): use local base when refresh is unavailable (#3184)** (282be1e)
- **fix(workflow): stop logging false unrecognized-action warnings for participant seats (#3187)** (5e2ebe0)
- **fix(backend): stop e2e ACP tests from launching commands production doesn't (#3186)** (c3677f4)
- **fix: safely recover Cursor stream resets (#3188)** (3df0905)
- **fix(agentctl): keep comparison target Git non-interactive (#3185)** (4b420f4)
- **fix: avoid passthrough ready event deadlock (#3177) (#3181)** (1c7b5af)
- **fix: make worktree cleanup auditable and retryable (#3178)** (03ad1a6)
- **fix: reject prompt admission during context reset (#3169)** (73170eb)
- **fix(git): keep shared-environment status authoritative (#3173)** (07da130)
- **fix: continue paginating transcript history (#3174)** (fd2c7dc)
- **fix: support empty remote task worktrees (#3172)** (a96f0d5)
- **fix: bound untracked dependency status enumeration (#3170)** (0983ae9)

### Backend
- **release: publish 0.93.0** (866bd32)

### Tests
- **test(web): add responsive text hierarchy E2E (#3237)** (b4f1933)
- **test(workflow): catch quorum guards from silently depending on session identity (#3255)** (0cf5362)
- **test(backend): catch active-session state drift between SQL and Go (#3236)** (033244a)
- **test(web): stabilize session hydration ordering (#3168)** (361d561)

### Docs
- **docs: freeze generic plugin host boundary (#3175)** (377b0b2)
- **docs: require explicit PR review thread dispositions (#3222)** (1ef5dfc)
- **docs(specs): make quorum role resolution step-preferring (#3215)** (f9c50a4)
- **docs(agentctl): fix comments claiming a Codex/StreamJSON protocol (#3189)** (799b423)
- **docs(plugins): sync WorkflowStep field docs with the shipped contract (#3183)** (2e6f2eb)

### Chore
- **chore(agentctl): remove ApprovalPolicy field that never governed approval (#3209)** (6271fc3)
- **ci: revoke stale merge approval after untrusted push (#3224)** (59c77a7)

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