v1.5.1
Dune IDE v1.5.1
Changes:
- chore: repos moved to the duneyou org — update all slugs (9a09dbd)
- chore(ios): ignore fastlane run artifacts (244c6db)
- fix(ios): setup script uploads secrets before generating certs and fixes the deploy-key 422 (882ef9b)
- ci(ios): standard fastlane layout — config in apps/dune-ios, dune-fastlane holds only encrypted certs over SSH (9df679b)
- fix(ios): map ASC secrets to non-reserved env names (fastlane owns APP_STORE_CONNECT_API_KEY as a Hash) (9d9e8ab)
- feat(ios): move fastlane config to the separate knoeone/dune-fastlane repo + one-command setup script (bf1fa76)
- feat(ios): fastlane match + pilot replace the manual signing pipeline (be462fd)
- docs(release): exact source for every secret — console URLs and click paths (dd1cd37)
- docs(release): trim the secrets setup to steps and commands (4ebd6c8)
- docs(release): current repo name + gh secret set commands for the App and iOS secret sets (9318954)
- feat(workbench): theme color customizations, extension-preview polish, localhost remap, iOS icon variants (#125) (3208d31)
- ci(release): ship dune-server on the single sem version train with desktop + iOS (eb9bba2)
- ci: adopt tishlang/sem as the release version oracle + document conventional-commit rules (b4db72f)
- feat: iOS (#123) (7a8994e)
- fixes (639a8a6)
- fixes (cb1a6b3)
- lots of conformance (1476834)
- docs(tish-ide): record why openvsx cannot be stubbed — tish's fetch and wss trust different stores (33f253f)
- fix(tish-ide): remote pty/watch aborted the backend — connect off the dispatch thread (102 -> 109) (21b4f34)
- test(tish-ide): cover the no-fixture long tail (79 -> 102 of 152) (7f7bac6)
- test(tish-ide): drive the real node extension host (75 -> 79) (275c1f9)
- test(tish-ide): cover the remote RPC path and ssh teardown (72 -> 75) (9d2e040)
- test(tish-ide): drive MCP against a real stdio server (69 -> 72) (9feab4d)
- test(tish-ide): assert the openvsx registry guard; stop the self-test calling real search APIs (1f8e43d)
- test(tish-ide): drive the hypery family against a local stub server (62 -> 69) (d4dc39c)
- fix(tish-ide): guard dap_write's body, and drive lsp + dap against real children (62/152) (df865fe)
- test(tish-ide): drive a real pty child headlessly (coverage 49 -> 55) (4b7a627)
- test(tish-ide): raise live command coverage 22 -> 49 and gate it (25b14b1)
- feat(parity): resolve helper return shapes across module imports (1a1a071)
- chore(toolchain): pin @tishlang/tish 3.2.2 (was 2.39.0) (65e2cd1)
- feat(tish-ide): port the fs + git watchers, and make the parity gate check events (8fc45a4)
- fix(dev): restore .tish source maps and make the HMR + file-layout guards blocking (2d67fd5)
- fix: port the last stubs and get the file-layout guard green (ee056d4)
- feat(tish-ide): port the remaining stubs — js-debug adapter, .code-workspace, cloud paths, shell command (b0018eb)
- fix(tish-ide): honor the argument keys the webview actually sends in the git + fs broker (eb9c142)
- docs: rewrite the theme docs against current reality — THEMES (model), THEME_RUNTIME (lifecycle/consumers/dev workflow), THEME_AUTHORING (external guide); index them; llms.md + CLAUDE.md entry points (e122508)
- tish-ide: seed bundled dune-themes into ~/.dune/extensions on boot (version-gated) and stage them in the .app bundle (ee716b6)
- theme: grouped duneThemeCollections picker (registry cache v2), hc-light base mapping, live vscode.window.activeColorTheme + onDidChangeActiveColorTheme, doc comments (dadb15d)
- theme: extension TextMate tokenization follows the active theme (per-theme palette + light default) instead of a frozen dark palette (091cf52)
- theme: generated key reference, JSON schema and machine catalog from themeModel (gen-theme-docs.mjs); CI drift guards for all generated theme artifacts (6195c71)
- theme: consolidate geometry/native/escape-hatch key data into themeModel.tish; gen-dune-css --check + block markers; declare --dune-btn-pad-y (74fb764)
- tish pairity (bd807d2)
- chunk (3425a53)
- pairioty (2fb13d4)
- make dmg (#122) (947867c)
- fix (79287a3)
- fix (111e23a)
- make dmg (8c4d929)
- feat(tish-ide): ship as Dune.app and a DMG (#121) (f12b0bf)
- fix: ci: one workflow — build the artifacts once, verify and release from them (#120) (2e106d3)
- fix(tish-ide): stop building against tauri-ide, ship a separate artifact (#119) (12dddff)
- ci: run CI on pull requests only, not on push to main (#118) (c2884e1)
- feat(release): BUILD_* flags to select which OS targets build (#117) (1d2f622)
- fix(release): secrets is not a valid context in a step-level if (#116) (fb16fca)
- fix(release): only attach the Apple signing env when the secret exists (#115) (0f40fa3)
- fix: ci(release): preflight the Apple signing certificate (#114) (0a5569d)
- fix(release): stage the cloud-tier resources before bundling (#113) (166c6df)
- fix(release): stop routing --bundles to cargo instead of tauri (#112) (271cf7c)
- fix(tish-ide): dune-ui 403s on workbench bundles, and dev-mode hijack (#111) (886dcd2)
- feat(scripts): run either app from the repo root, no cd (#110) (eba22df)
- feat(release): sign + notarize the macOS DMG (#108) (4375068)
- feat: Port the dune-ide desktop backend to tish on tish-desktop (#107) (b9dbb13)
- onboarding (33b692c)
- theme (f87dc19)
- modern (832fb0a)
- lights (041b2e7)
- build: enable tauri macos-private-api feature (required for window transparency) (c9ee0e3)
- theme: make the macOS traffic-light spacer themeable (19ea587)
- theme: bottom corner elbow matches the top (image overlay, mirrored) (180bae7)
- fix: run/debug title-bar icons take their token at high specificity too (26f8909)
- fix: title-bar toolbar icons take the fg token, not the inherit chain (b93f351)
- theme: route the remaining title-bar text to titlebar-fg tokens (8a4321e)
- fix: activity-bar overflow menu z-index above workbench content (634dab4)
- theme: title-bar run icon follows a token too (uniform colored-bar fg) (f366a19)
- theme: title-bar foreground tokens (contrast on a colored title bar) (ecfb937)
- app: route html + boot surfaces through the canvas token for transparency (008f7e5)
- app: support theme-opt-in transparent window backgrounds (54c24de)
- theme: top elbow as two-color image overlay (carves the title-bar line) (f5589e5)
- theme: bolder top-left elbow — big sweep + long leg, own height (99d3acc)
- theme: draw corner elbows as SVG-mask shapes (real elbows, not border blobs) (e71cb4d)
- theme: always-on corner elbows, LCARS file tree + settings hooks, motion (241ebdb)
- theme: rework LCARS elbow to ride the activity rail + colored view headers (f2a9a3e)
- theme: chrome decoration layer — per-part caps, frame elbows, segment cycling, uppercase chrome labels, theme font leg + bundled Antonio (f81e740)
- plan: the living document can no longer be destroyed — merge-on-write everywhere + an Open-plan card link (4cb24b6)
- agent: custom modes flow through the shared mode-definition contract (2116dac)
- agent: one loop for every host — pipeline: frontmatter gates staging, plan docs persist per session, subagents run the shared core (0ddeefd)
- plan: MULTI-PASS pipeline — synopsis, flesh-out, tasks as SEPARATE model requests (ceaffec)
- plan: the plan is a LIVING DOCUMENT — created at turn start, grown incrementally, notes + todos (a thought database, not a one-shot checklist) (3f9896b)
- plan: interactive plan editor (live checklist, spinners, edits, side-split open) (5266e5f)
- cloud: stream run output live (stdout-so-far on every PENDING tick) (bbcb364)
- plan: ONE mode definition file drives BOTH hosts (frontmatter contract, shared core) (bcfdb6b)
- plan: cloud plan-mode runs materialize the plan doc by INTERCEPTING the result (a71c428)
- cloud: always clone from the LOCAL workspace path (stop predicting origin state) (1eef9a1)
- cloud: unpushed branches clone from the local workspace, not origin (5753c25)
- plan: FORCE manage_todos via OpenAI tool_choice when a plan-mode turn skips it (3da2c48)
- plan: /plan runs a REAL planning turn; the plan DOCUMENT is the deliverable (2d5481c)
- cloud: wipe the stale workdir before cloning (fix "destination path already exists") (c51d4f5)
- cloud: real logging — a "Dune Cloud" Output channel over the whole run pipeline (bfb756d)
- cloud: failed runs surface WHY + the full run log as a collapsed output (6d34895)
- cloud: use the signed-in Hypery credential + pass the workspace repo to runs (b222a52)
- cloud: provision builds request the fs feature (fix E0425 compilation failure) (087ddd1)
- chat: tool output collapses to the HEADER ONLY when done (3-state, not preview) (62583b4)
- chat: collapse LEGACY run outputs too (display-only upgrade in the renderer) (35b0f84)
- chat: run-command output is a collapsible with a tail preview (toolOutput part) (f1c515e)
- chat: more breathing room around code blocks (0.8rem vs the 0.35rem block margin) (c65733a)
- chat: pre-pay the pre's horizontal-scrollbar height (fix sliced prose after code) (744ed1d)
- chat: borderless tool rows; no bubble wrapper around code-only parts (2b3daf9)
- chat: fix prose overlapping the pre block (drop fit-content bubble sizing) (df99d7d)
- chat: single-bubble assistant messages + no whole-transcript horizontal scroll (c6fcd23)
- chat: real stick-to-bottom + windowed transcript rendering (ChatMessagesView) (70168f0)
- chat: PR chips above the composer (ChatPrBar) (369aac3)
- styles: fix token violations from the recent run; sync THEMES/STYLING docs (d319436)
- terminal: blank host while a session is missing; strip the reattach trace (c96ee00)
- terminal: boot connect no longer kills the surviving shells before reattach (2aeebde)
- terminal: undock leaves a stray zone container that blanks every later panel terminal (b46eac8)
- terminal: reattach persisted terminals by NUMERIC pty id (fix self-closing on reload) (e6e139f)
- terminal: persist terminals across a refresh by reattaching surviving shells (10348cf)
- terminal: register session before pty_info so opening output isn't dropped (a34dcbb)
- agents: one shared icon for chat sessions across all three surfaces (07b7157)
- terminal: open xterm only once its host is laid out (fix blank new terminals) (48cfcad)
- dnd: suppress text selection during tab/agent pointer-drags (5fffd01)
- dnd: fix new terminal being blank / double-created (over-corrected the steal) (b548fb4)
- dnd: new terminal no longer steals the editor-docked session; strip [TERMDND] trace (59f84e0)
- dnd: dock terminal into split leaf BEFORE cleanup (empty-leaf collapse race) (9d89610)
- dnd: remap stale DOM leaf id → real grid leaf before split/dock (8abaf70)
- dnd: terminal panel-zone→grid dock retries until the split leaf's host mounts (e6483fe)
- dnd: full [TERMDND] trace across the terminal drag→drop→mount path (3ed92e8)
- dnd: fix terminal/agent edge-drop losing the item (split FIRST, then dock) (de6eb92)
- dnd: terminal/agent edge-drop splits without requiring flexibleLayout (9f3c217)
- dnd: terminal drag shows the split preview + drop diagnostics (a696266)
- dnd: drag agents into the grid/panel + fix terminal edge-drop from the panel (3aefd45)
- editor: actionable "changed on disk" notice (Reload / Compare) (3e9e0cc)
- remote: /watch WebSocket push (replaces the 2.5s signature poll) (0a37f5b)
- remote: fold a .git fingerprint into workspace_signature (041eb2e)
- editor: handle open files deleted/renamed on disk (e9d91b6)
- editor: save-collision guard (Overwrite / Compare), works local + remote (a992a40)
- fs-watch: explorer softRefresh is a no-op unless a listing actually changed (12b9db7)
- fs-watch: incremental explorer refresh + tighter change filter (no flashing) (08964fa)
- fs-watch: reflect external filesystem changes (local + remote) (368e8f8)
- panels: make Problems / LSP log / Output / Debug Console scrollable (eaff318)
- remote: layers DX — feature catalog, validation, env, worked-example docs (51eafb8)
- remote: devcontainer-style environment layers for dune-server (features + setup) (8d10d95)
- remote: "Connect over SSH" mode — key-based tunnel to the remote dune-server (0a89996)
- quickinput: sync the DOM input value to state so a reopened box clears (09eb091)
- remote: connect accepts a bare host — try https, then http (55844ae)
- remote: fix empty explorer + re-home terminals on connect (shape/routing parity) (9708af4)
- remote: containerize the single-port dune-server + document the remote system (e8e061d)
- remote: "Dune Remote" output channel — connect / RPC / terminal debug logging (7a4eefd)
- remote: single-port dune-server — interactive terminal over WebSocket /pty upgrade (03f1230)
- remote: client bridge for the remote interactive terminal (WebSocket /pty) (2b58930)
- remote: open the remote workspace on connect (fixes empty files + git) (f6141dc)
- remote: move the Remote indicator to the far bottom-left (VS Code / Cursor shape) (ed54cf1)
- remote: Connect to Remote Dune Server — command, status pill, git-surface alignment (8c4f9af)
- remote: Connect-to-Remote transport — Rust RPC forwarder + host routing (123a251)
- headless: type the native agentNative* tool-execution chain (ee5eb9d)
- headless: type agentNativeRepo (delegate→PR repo I/O helpers) (4cef952)
- headless: type the dune-server host + agentHeadlessRun helpers (375a65c)
- headless: bump tish to 2.37.3 + fully type the stack-spec + serve modules (f3df11a)
- headless: type duneStack's leaf helpers (native f64-inference fix, tish#485) (bc7db3d)
- docs/headless: reference filed tishlang/tish#485 for the native f64 landmine (472a915)
- docs/headless: correct mis-attributed native landmines (keep only the verified one) (9efdc03)
- cloud: ship + prefer dune-headless as the cloud runner source (fde72b7)
- headless-dune m3: composable dune-headless host (agent / serve / both) driven by a stack spec (c103ed3)
- headless-dune: delegate -> PR (repo I/O module) — clone, commit, push, open PR (2d92b41)
- headless-dune: ask_subagent tool + modular toolset graph (cycle-broken) (e3a48a8)
- headless-dune: modular tool registry + web_search tool module (3f72494)
- headless-dune m2.5: cloud agent gets skills, rules, constitution, hooks + remember/save_skill (04e43a3)
- headless-dune m2: native ctx — dune-cloud-agent is now the real Dune agent, headless (cb88adb)
- headless-dune m1: extract the shared agent-core (host-agnostic tool loop) (147e1ec)
- cloud agents: ship + auto-resolve the runner/agent — zero user config (1141162)
- cloud agents: integrate into the Agents UI (drop the separate view) (8481c1b)
- cloud agents: in-app 'Cloud Agents' surface (task #21) (3a72610)
- dune-cloud-agent: inline the Hypery call to dodge native-tish #484 (real credit spend works) (e779b8a)
- docs(cloud): Phase-0 backend complete incl. New cloud agent lifecycle (tish 2.37.0) (56c2d3c)
- dune-cloud-run: read artifact_id from the build row + full-lifecycle reference driver (f624979)
- deps: bump @tishlang/tish 2.36.2 -> 2.37.0 (native fetch multipart, tishlang/tish#483) (6658bc9)
- dune-cloud-run: add provision / provision-status (the 'New cloud agent' bootstrap) (80262b8)
- ci: build+smoke the native-tish cloud tier; document dune-cloud-run + webview wiring (d48c7e3)
- dune-cloud-run: accept a --request JSON file (broker-drivable input, no env) (5b653a9)
- docs(cloud): mark Phase-0 loop proven end-to-end; note remaining UI wiring + Zectre exit_code gap (2312d59)
- dune-cloud-run: native-tish Dune->Zectre client (one-shot start/collect) (5122de3)
- dune-cloud-agent: Phase-0 base-case cloud agent (tish→native one-shot) (5a1399e)
- docs: local Zectre runs via justfile native processes, not docker (a93f50e)
- docs: cloud tier is debug-first — prove the loop on local Zectre before auth (a7a858e)
- docs: scope the cloud tier on Zectre (Dune + Hypery + Zectre) (caa0085)
- docs: correct Nihmbus framing — separate marketing platform, NOT a Dune component (1732893)
- docs: update parity reviews to reflect the deep-parity session (c23ef2f)
- polish — per-hunk accept/reject for ⌘K inline edit (b6df862)
- index:p3 — auto codebase context (opt-in pre-retrieval per message) (ceed9ce)
- docs: scoped plan for GPU-first local embeddings sidecar (index:p3 #12) (460e139)
- index:p3 — LLM reranking of code-search results (precision on top of hybrid) (75eec72)
- index:p2 — batched embed+upsert + live first-index progress (3abd5db)
- index:p2 — int8-quantize stored vectors (4x smaller .bin, faster search) (055c93e)
- index:p1 — live re-embed on save (semantic index tracks edits in real time) (6d2d343)
- index:p1 — show retrieval in chat + clickable file citations (450576b)
- index:p1 — golden-set retrieval eval harness (recall@k / MRR) (f61f4fe)
- index:p0 — hybrid BM25 + vector search via Reciprocal Rank Fusion (98c38a2)
- index:p0 — symbol-aligned chunking + path/symbol-context embeddings (3a0a137)
- docs: comprehensive analysis of code-index improvements (quality/freshness/scale/UX/eval) (e9b173e)
- Semantic index: make it usable + observable (@codebase, index panel, self-test) (68025a0)
- Semantic code index: Rust-backed vector store (uncapped, native search, non-blocking) (b91d27e)
- Semantic code index: persist across sessions + incremental refresh (+ dreaming pass) (51d5ef2)
- Settings ▸ Skills: surface duplicate-name skills (non-destructive report) (3594cf2)
- Subagents: opt-in write-capable via 'tools: all', gated against Plan mode (c90d75d)
- Skills: unify on editable SKILL.md files (Claude-parity), not a JSON blob (817393d)
- Subagents: run a real read-only tool loop, not reasoning-only (e41ec46)
- Agent hooks: merge user ~/.dune/hooks.json with project (Rust reader) (b4fa158)
- User slash commands: read ~/.dune/commands too (Rust lister, not webview broker) (e123cf9)
- dune-server: read .dune config dirs in tish (config_list RPC) (aefad01)
- Subagent delegation: ask_subagent tool — pure tish (bd52c17)
- Agent lifecycle hooks (.dune/hooks.json) — pure tish (8fcf14d)
- User-authored slash commands (.dune/commands/*.md) — pure tish, no Rust (b6c4a80)
- User-defined custom modes (.dune/modes/*.md) — Cursor-parity (2d03d5e)
- Custom agents: wire /create-subagent + a "New" button so subagents are creatable (ce52367)
- Plan mode: persist the task list as a reviewable .dune/plans/*.mdx doc (Cursor-style) (3de0de1)
- Chat: keep the mode-pill icon when the menu opens (rev trigger) (2f7baab)
- Chat pills: keep the Agent (icon) pill the same height as the Auto pill (dec38a3)
- Chat: fix agent-mode pill icon (and other AgentIconSlot icons) vanishing on re-render (64e015e)
- Chat: persist the Auto (and reasoning-effort) model prefs across reloads (469f811)
- Chat: show an animated "..." typing indicator immediately on send (ac2e042)
- Model picker: widen the menu so names fit on one line; tighten dedup (b658bfc)
- Model picker: dedupe per-provider variants to one row; strip "Meta:"-style prefixes (01b22d4)
- Model picker: strip author from label + show pricing tier instead of "Open" (fa7a3d2)
- Add-to-chat: set composer before revealing (fix first-add-nothing/double); terminal = compact chip (1097506)
- Chat composer: don't treat @ mid-word or inside code fences as a mention (e76afad)
- First-party reference provider: Peek/Find References work multi-file without an LSP (25ad0fe)
- Terminal context menu (small, custom) + fuller editor Go-to/Peek nav (1bbeaa6)
- Add Selection to Chat: insert a Cursor-style @file:lines chip, not pasted code (1860d64)
- Dirty tab: update the unsaved dot live on edit + save (not only on tab switch) (f2e1c91)
- Dirty tab: hide the × with color:transparent, not font-size (was showing dot AND ×) (901aeb7)
- Editor context menu: rich VS Code/Cursor items + robust fallback; dock quick input to the omnibar (1d3cf58)
- Dirty editor tabs: VS Code / Cursor-style unsaved dot on the tab (52963c3)
- Disable native text-selection over the editor (misleading fake selection) (4ad48f7)
- Editor hot exit: recover unsaved changes across restart (e842f4b)
- NES: yield Tab to a visible ghost + preview the edit (Copilot/Cursor-style coexistence) (dd0bd2d)
- Models settings: show enabled models instantly, only query Hypery when searching (4a20cb6)
- Hypery models: request ?category=chat, not the full catalog (141f3c0)
- Hypery models: retry /models WITHOUT the team header when the team catalog is empty (1a6ab51)
- Model pickers: Completion/Edit/Dreaming offer ANY model (live ∪ all defaults), not just chat-enabled (c3a131e)
- Add Gemini 2.5 Flash Lite to the default model catalog (fast completion model) (677d3b2)
- Hypery models: surface empty-catalog + log the fetch result (diagnose blank Models page) (f40d1af)
- Inline suggest: cache per (model,version,offset) + temperature 0 to stop re-request flicker (4783394)
- Inline suggest: fix stale-position crash + ghost≠tab mismatch (c2a6c28)
- Inline suggest: cap output tokens (speed), log per-request latency, fix model dropdown (595253a)
- Editor: explicitly enable Monaco inlineSuggest option so the ghost-text provider fires (9bebeb1)
- Inline suggest: diagnostic logging to find why ghost text isn't showing (01bf76b)
- Inline suggest: extract pure buildFimMessages + export sanitizeCompletion for tests (e30fdd8)
- @code context: LSP-free symbol outline of the active file [roadmap P1 #8] (52d787c)
- Web search: @web context + web_search tool, multi-provider + user-configurable [roadmap P1 #8] (1ac0b50)
- Bottom-panel tabs follow editor tab style: border only on the selected tab (13121db)
- Slash skills: de-Cursor the catalog + wire /automate /create-rule /create-skill /review-bugbot [roadmap Improvement #2] (f8a33c8)
- Terminal in editor grid: use native panel:terminal tab, not a generic view wrapper (47dfe45)
- Automations plan: native scheduler-tick host built; driver+fire-exec is the remaining wiring [P1 #7] (3dee86b)
- scheduler-tick: native (headless) host for the shared scheduler [P1 #7] (a1d5bbb)
- Panel active tab: don't drop the bottom border's 1px, so icons stop shifting (616e895)
- Terminal panel tab ×: static (always visible) + editor tab close spacing (473de84)
- Automations plan: scheduler decision engine is shared tish (JS+native), not hand-Rust [P1 #7] (48d2cc3)
- Terminal font size: pre-paint --dune-terminal-font-size var kills first-terminal 12px flash (f0980c7)
- Terminal: first terminal defaults to editor font size (--dune-mono-font-size) — kills the 12px boot flash (32e040c)
- Terminal: resolve creation font size from a live terminal (fix stuck-at-12 + jump) (085e81f)
- Terminal dock: attach the container to docked-view parking (fix blank terminal) (d065f03)
- Scheduler: front-end uses the shared core + persists last-run, catches up on reopen [P1 #7] (981be9d)
- Scheduler: shared cron/scheduling core in tish (compiles to JS AND native Rust) [P1 #7] (7035c2f)
- Terminal dock: fit once the pane has a real size (fix blank-on-load) (eaf09bb)
- Inputs: actually disable spellcheck/autocorrect (spellcheck="false", not {false}) (fa02e35)
- Terminal tabs: use the existing dockview zone-tab system (draggable/splittable) (7cbc4ae)
- Terminal: create the xterm at the resolved font size (no post-load jump) (2f326e1)
- Settings search: render results plainly (no virtual list) for normal-size lists (457bfb1)
- Flexible layout: decide it PRE-PAINT so the legacy terminal rail never flashes (77b4bce)
- Settings search: stop the results list snapping back to the top while scrolling (a304d8b)
- Terminal tabs: use the editor tab's exact .tab-close (hover/active reveal) (6411aac)
- Settings search: ONE unified result list (core + agent), settings stay in their tabs (4489e92)
- Terminal rail: hide it reliably when flexible (store flag, not the CSS class) (1bf79be)
- Terminal panel tabs: robust redesign — tabs over the legacy panes, no reparent (dc25665)
- Revert "Settings: agent settings are now ONE system with core settings (schema catalog)" (e9b4c45)
- Settings: agent settings are now ONE system with core settings (schema catalog) (c663b0c)
- Terminal panel tabs: make the flexible-layout path coherent (fix Stage 1 bugs) (330e9c5)
- Reapply "Terminals as panel tabs when flexible layout is on (Stage 1)" (3485f92)
- Revert "Terminals as panel tabs when flexible layout is on (Stage 1)" (7abc40c)
- Settings search: delete ALL keyword blobs; filter by real setting text only (24d91d1)
- Bottom panel: add a toggle to hide tab labels (icon-only, like the side bar) (6f02cac)
- Terminals as panel tabs when flexible layout is on (Stage 1) (f932043)
- Settings search: one keyword source for the Agents page (fixes new settings not being searchable) (96286cc)
- NES: wire predictive next-edit into the editor (Tab to jump/apply) [P1 #4] (93d9a0a)
- NES: pure next-edit prediction engine (prompt + response parser) [P1 #4] (1608c62)
- Agent edit review: per-hunk accept/reject UI above the composer (P0 #3) (980b226)
- Agent edit review: capture per-turn edits for hunk review (428b345)
- Agent edit review: pure diff + hunk-reconciliation engine (P0 #3 foundation) (4b9c1ae)
- Settings search: drop nav sections that have no matching settings (222e2d6)
- Settings search: filter agent settings ROW-BY-ROW, not whole cards (00a5819)
- Settings search: make it global + unified so agent settings actually show (5863d1b)
- Settings search: filter the Agents page + keep sections reachable by content (441f6ab)
- Settings dropdowns: add a chevron affordance so they read as dropdowns (0eb52a4)
- Settings: kill two more drift-prone hand-maintained lists (874cff7)
- Agent settings: one canonical persist list, ending the load/save allowlist drift (009c50c)
- Settings: make Sidebar Width / Secondary Sidebar Width actually resize (21fedfa)
- Settings: drop the redundant Core 'Agent' category, fold its one setting into Agents (cf0542c)
- Chat: tool-call rows inherit the message font (identical to chat text) (d9191cc)
- AI-generating decoration: use the declared --dune-border-focus token (8b5fe2d)
- Agent settings: fix overlapping candidate-skill cards (bfb427e)
- Chat: scale tool-call & sub-element fonts with the panel font, not rem (324399d)
- Agent settings: Dreaming model uses the grouped model picker, not a text input (89b7994)
- UI chrome: make all font sizes honor the UI Font Size setting (#106) (fcd68ef)
- Chat @-context: add @lint (diagnostics) and @git (log + diff) (8f86f35)
- Agent chat: run on custom providers (Ollama/LM Studio), not just completion/⌘K (a164a9f)
- Agent: per-surface model selection + config-driven custom providers (Ollama/LM Studio) (#105) (dd8f6cd)
- Agent: semantic (@codebase) code search tool (#104) (cc52ced)
- Extensions: bridge inline-completion providers to the editor (#103) (043976e)
- Explorer tree: fix icon/label/twistie alignment + bottom clipping at small fonts (#102) (6725f97)
- Chat: scope the model/agent picker to the panel that opened it (#101) (e0f0f00)
- Embeddings: read teamId fresh per call so a team switch bills the right team (#100) (a8aa226)
- Synthesize tool_call_id when a provider streams tool calls without one (#99) (c587d02)
- Extensions: recognize only .dune/extensions, not .vscode (#98) (97d1551)
- Drop all .cursor compatibility — Dune reads only .dune (#97) (5ab6ee6)
- Stop reading .cursor/rules — Dune is not Cursor (#96) (40be20f)
- Don't force-inject alwaysApply:false project rules (#95) (f9b368a)
- Send the correct tool_call_id on tool-result messages (#94) (ff89f93)
- Hide per-second media models from the chat catalog (#93) (151de58)
- Harden Hypery team display against the settings load/refresh race (#92) (1791604)
- Persist the selected Hypery team (was billing the personal team) (#91) (375dfed)
- Settings deep-link: target the embedded editor-tab surface, not the boot-warmed one (#90) (1b24d27)
- Show signed-in user + team in the Hypery status-bar menu (#89) (cc23433)
- Hypery: signed-in account + team-scoped billing (#88) (d2f1c8a)
- Give Hypery its own settings tab (out of Models) (#87) (f9ed1e6)
- Silence NotAllowedError/Canceled on every click (Monaco Safari clipboard workaround) (#86) (bb35817)
- Settings deep-link: land on the target section on a cold open (#85) (2b5b316)
- New Agent: reuse an existing empty chat instead of stacking another (#84) (e07ec03)
- Agents menu: real New Agent hotkey + robot icon, fold Automations into Customize (#83) (8f85bb7)
- Move startup-blocking sync commands off the main thread (#82) (0ddb81a)
- Move Hypery model/embedding HTTP off the main thread (#81) (a80c474)
- Secret store: honor file mode at boot (no keychain prompt/freeze) (#80) (3faf415)
- Kill traffic-light 60fps main-thread poll (boot beachball) (#79) (a0283ea)
- Customize Layout menu tracks the UI font size (#78) (95b73c5)
- Fold titlebar card padding into base rules (fix duplicate .titlebar-tools-card) (#77) (210ad42)
- Tighten the tools-card side padding (outer titlebar icons) (#76) (86d8d57)
- Tighten titlebar icon buttons (less padding) (#75) (6098840)
- Read agent rules/skills/subagents from .dune first, not just .cursor (#74) (d0c06a6)
- Make the Automations action open a dedicated Automations settings section (#73) (bddc0f7)
- Command palette + quick-input now track the UI font (#72) (8d355ed)
- Stop the real cause of traffic-light flicker: don't retitle the window on file select (#71) (41e988b)
- Catch the zoom button synchronously via KVO on its frame (#70) (a05c9d4)
- Fix zoom-button misalignment during file load with a correction poll (#69) (ec1099c)
- Fix residual zoom-button flicker: drop the reentrancy guard (#68) (dea86b7)
- Eliminate traffic-light flicker with synchronous per-button frame observers (#67) (07f26d4)
- Keep traffic-light inset pinned via an NSWindowDidUpdate observer (#66) (216579c)
- Re-assert the traffic-light inset after window reveal (fix boot flicker) (#65) (96ee148)
- Fix traffic-light inset getting reset on boot; increase Dune top padding (#64) (3c15722)
- Shorten the header bar to 34px (was 38) (#63) (9ed4344)
- Stop the traffic-light inset from growing the header; make Y a tunable position (#62) (f5a1e9c)
- Fix over-tall header from the traffic-light container resize (#61) (845c243)
- Make the macOS traffic-light inset theme-driven (#60) (23d620d)
- macOS: preserve the OS default traffic-light spacing (#59) (5bb0c5e)
- macOS: port traffic-light positioning from tauri-plugin-decorum verbatim (#58) (966d38d)
- macOS: add the missing top padding to the traffic lights (#57) (a753e5f)
- macOS: make the traffic-light inset actually stick (#56) (2392375)
- macOS: pad the traffic lights off the top-left corner (#55) (1904a1b)
- Remove the standalone Tish sandbox playground (#54) (f2fdcfa)
- Fix blank-screen boot (Monaco Registry duplicate) via optimizeDeps pinning (#53) (79fbd79)
- Debug: fix Restart locking up (stop + relaunch instead of DAP restart) (#52) (c7e1440)
- Debug: auto-expand first scope, harden child-session swap, surface var fetches (#51) (7ca060c)
- Fix empty play button after stopping a debug session (#50) (2826248)
- Fix breakpoints not showing in the Debug panel + add stopped-line highlight (#49) (861b032)
- Move debug stepping controls into the titlebar (drop the floating toolbar) (#48) (fc4b8c4)
- Stop keychain password prompts on boot — presence check via non-secret index (#47) (f43691a)
- Restructure debug UI to VS Code layout (sidebar + console tab + floating toolbar) (#46) (cf17332)
- Make adding breakpoints discoverable (hover hint + right-click + glyph margin) (#45) (e30df33)
- Add Stop/step controls + Debug Console to the debug panel (#44) (2e1ba3b)
- Fix: substitute ${workspaceFolder} in launch.json + surface adapter stderr (#43) (773e879)
- Fix: run .js debug adapters via node (play button did nothing) (#42) (e10dc30)
- Add debug play button + Debug palette commands (+ fill palette gaps) (#41) (9d16fe2)
- DAP Phase 4: first real adapter — JS/Node via vscode-js-debug (#40) (31caca6)
- DAP Phase 3: debug panel (call stack, variables, watch, breakpoints) (#39) (908732e)
- DAP Phase 2: breakpoint gutter + stepping toolbar (#38) (2c9463f)
- DAP Phase 1: transport + MAIN dispatch wiring for vscode.debug (#37) (e3d7164)
- Replace Rust dune-server with a native-tish implementation (#36) (d3eb354)
- Bump tish to 2.36.2 and lattish to 4.0.2 (#35) (6156e9c)
- Migrate loose ==/!= to strict ===/!== across all .tish (prep for tish 2.36.x) (#34) (f42c82c)
- dune-server: standalone lean crate + Dockerfile (runs in a container) (#33) (e18a208)
- Web transport seam: browser host + platform selector (Track B P2) (#28) (43c2b71)
- dune-server: headless backend foundation (files + git RPC over HTTP) (#27) (04c41f6)
- Automations: fire cron-scheduled automations from the background scheduler (#24) (c7ce544)
- Fix orphaned Source Control header after moving SC to the editor grid (#26) (4b9bbb5)
- feat(agent): clickable add-payment-method link on a 402 (#25) (2877f32)
- Automations P0: manage saved prompts + run them on demand (#23) (c6bfdaf)
- fix(hypery): normalize legacy api.hypery.ai → hypery.ai (fixes inference 401) (#22) (66e866b)
- Dreaming: idle-time memory consolidation & self-improvement (#21) (a0cca84)
- fix(hypery): resolve OAuth client_id from config + default gateway to hypery.ai (#20) (df28d31)
- Add Dreaming (idle-time consolidation & self-improvement) plan (c65484b)
- ui (d5edb8f)
- Add Automations + detachable-backend plan (browser/container/cloud) (e2ff832)
- ui fixes (9c40e76)
- ui etc (c274f2e)
- ui (a57c5b9)
- ai fixes (4687be2)
- fixes (b8a1b26)
- stuff (c453eca)
- Webview panel hot exit: restore serializer-backed panels across reload (44bbe7c)
- Restore view/title toolbar for grid-docked extension views (ab3f437)
- Consolidate extension view/title actions into the single pane header (881f27b)
- Fix git graph commit list scroll + convert Fetch/Pull/Push/Refresh to icons (b2b704f)
- Search results as a VS Code-style grouped accordion (ab458f0)
- Conformance: quick-input fixture (green) + matrix rows showQuickPick/showInputBox STUB->WORKING (07a2f07)
- Implement window.showQuickPick + window.showInputBox (Phase A) (b3f971c)
- Reconcile the extension-API conformance matrix with the code (b9e1d16)
- View/title actions render the COMMAND's icon, not text (da092c5)
- Extension view/title actions: contributed toolbar buttons on ext view headers (f058175)
- Zone panes: draggable per-pane headers + center-drop docks into the target pane (8557adc)
- Settings opens to USER scope by default, not Workspace (7bcbd03)
- Zone unification Phase 5: persistence hygiene + delete legacy made dead by the unification (c223945)
- Git action buttons become icons; binary/non-UTF-8 files open with a dismissible notice (0058e92)
- Zone-split DnD Phase 4: drag a view onto a zone-body edge to split the zone (8b798f9)
- Zone-pane render Phase 3: zone bodies render their split tree (null = today's view, pixel-identical) (ced9bab)
- Zone-pane model Phase 2: per-zone split trees in the layout (ships dark) (f940726)
- Split-kit Phase 1: extract the editor grid's split machinery into shared modules (992f516)
- Render the panel host on fresh panel-tab open and on generic panel-tab close (47b7e02)
- Inter-panel spacing to 8px; vertical wheel scrolls tab strips horizontally (e08f47f)
- Right-click on rail icons and zone tabs opens a native options menu (8d049a3)
- Base .bottom-split-handle also sizes from --dune-split-size (03eea62)
- Bottom-panel gap joins the split-size token: uniform inter-card spacing (94c6f80)
- Count badge on activity icons: git changed-file count on the Source Control icon (b763a41)
- Rail buttons adopt the tab-pill colors; tab pill borders removed (7715a2b)
- 8px spacing rhythm: pill gaps and rail icons on one grid (e021507)
- Bump dune-themes to 1.9.4 so the seeded copy picks up the spacing fixes (7fe0995)
- Pill tabs: identical 4px gap on all four sides, inner padding removed (50e4148)
- Tighten Dune theme chrome spacing: tab pads, strip/rail alignment, breadcrumb rhythm (ba6f9ac)
- Fix disappearing/stale rail icons and heal stranded views in the layout state (8a1b58c)
- Fix views vanishing on side-bar drops: pin body-drops into the rail, unbreak the overflow chevron (f2ce176)
- CI: Windows job builds/tests the Rust CLI crate only (tish has no Windows binary) (#51) (ae6983e)
- CI: build/test across Linux, macOS and Windows via matrix (tish caching paradigm) (#50) (a61415e)
- Make the whole side bar a drop zone via geometric fallback (fix incomplete #38) (#49) (60542df)
- CI: make the dev-time HMR validators non-blocking (#48) (ccc3b87)
- validate-workbench-fixtures: skip agent-map.json (a nav-map index, not a state fixture) (#47) (c520497)
- Gate macOS-only code so the Rust backend compiles on Linux CI (#46) (0b61ee3)
- CI: build the dune CLI launcher before the Rust build (#45) (06890aa)
- cargo fmt the src-tauri crate (#44) (363979e)
- Make ensure-local-tish-links optional (don't fail CI when tish siblings absent) (#43) (d3687f9)
- Switch @tishlang/tishdoc-* to published npm deps; fix CI install (#42) (ca61f03)
- Persist agent view zone across reload: stop forcing it back to the secondary bar (#41) (3f7553e)
- Lower boot.tish ratchet baseline 376 -> 375 to lock in the extraction (#40) (e6c5414)
- Centralize cross-cutting protocol strings into shared constants (#37) (34317a6)
- Fix secondary side-bar resize jank: stop the per-frame activity-rail repaint storm (#39) (332360c)
- Let side-bar/panel view tabs drop onto the whole zone body, not just the tab strip (#38) (5c7faa3)
- Make workspace per-window to fix multi-window ENOENT (#36) (03ff215)
- Titlebar: replace chat button with three panel toggles; Extensions opens Customize (#35) (499200e)
- Wire the token/CSS guards into CI, fix the boot.tish ratchet, and doc a manual gate (#34) (7d9ad70)
- cleanup: promote duplicated frontend helpers into shared modules (#33) (ba0f824)
- Fix language auto-detection: map .js and other extensions to their languages (#32) (7ff0d9b)
- Add a decrease-only --dune-* token-policy CSS ratchet and fix contradicting docs (#30) (357eca4)
- Coalesce onWorkbenchViewportResize to once per frame (#31) (0723be1)
- Fold appended CSS parity overrides into base rules and dedupe declaration blocks (#27) (1a93c66)
- Consolidate duplicated Hypery sign-in / chat / models plumbing (#29) (8fa5dab)
- Fix panel-resize jank: rAF-coalesce the per-move insets reflow (#28) (5d07982)
- Remove dummy settings and fix the default-keybindings dispatch (#26) (0753f1a)
- Prune dead frontend runtime surfaces (#25) (b2114aa)
- Remove the dead internal contribution pipeline; keep the command lane (#23) (0466d71)
- Deduplicate build scripts and prune dead scripts and dependency declarations (#22) (1430732)
- Unify the overlapping process-exec and extension-path broker surfaces (#21) (b16b4ca)
- Delete dead CSS in style.css: legacy .scm-* block and orphaned selectors (#20) (6792fac)
- Deduplicate copy-pasted helper logic across the Rust backend (#19) (06a049d)
- Remove dead Tauri commands and orphaned functions from the Rust backend (#18) (547c3dd)
- style (d29e0b6)
- basic (316b551)
- lots (8e280cf)
- tabs (ba88ca2)
- icons (95b7700)
- side stuff (bb5aa0d)
- hypery (84f8269)
- panels (b36cf27)
- panel updates (e241064)
- agent (afec7aa)
- agents (41f3f0f)
- skills (e1339c2)
- git (a91c637)
- git stuff (53ab828)
- git it (57ebe84)
- native git (26dc3e9)
- extensions (a51e8b2)
- lots (d082d1b)
- exteions (55d073b)
- exteions debug (990592e)
- api (619f124)
- fixes (9f960d1)
- fix (93bc4b7)
- host (b2be1f2)
- ui (b3bf1a5)
- ui (384f4f9)
- fix things (49341bc)
- ui (661d0ed)
- ui (e12656a)
- ui (2dcea3e)
- fixes (0d8efcb)
- ui (157b9b9)
- fix (b2bedf6)
- fix (6d7b778)
- ui (c27b2fc)
- split (259c932)
- refactor (fbe20bb)
- tabs (0ab6946)
- cleanup (c7c18bf)
- cleanup (080ae29)
- fixes (7c060bf)
- fix (4d11214)
- cleanup (e8e2935)
- cleanup (204b1fb)
- refactor (e3f1914)
- fixes (1a86229)
- refactor (0189d7e)
- fixes (b0c8621)
- fixes (9e5541a)
- fix (02b3c00)
- cleanup (1052047)
- fix (329455d)
- cleanup (311e486)
- cleanup (5119800)
- cleanup (2590b28)
- refactor (0c65ff4)
- fix (e6670e3)
- refac (d0993c5)
- cleanup (6494077)
- refactor (08629aa)
- cleanup (72cdd4e)
- port (924aee1)
- refactor (43289fb)
- refactor (900fc89)
- refactor (2889db7)
- dragging and more (454f57f)
- tabs (5179d06)
- drag+drop, blank page (e8b2166)
- hide (04321d6)
- hmr and cleanup (b46e169)
- virtualize settings (4c1d85f)
- fix bugs (6174ef6)
- tabs (6e1608d)
- hmr (b7debb6)
- musch (0b49079)
- bunch of stuff (b8e271f)
- more cleanup (dd561b6)
- cleanup (d6be9a5)
- lots of extension fixes (6a45cb3)
- window and production optimizations (3bfef0c)
- debug (7ef5d30)
- fixes (cf9100d)
- icons ane more (ad9826b)
- esm and cleanup (cd7126d)
- ararch (36d3b09)
- layout fixes and cleanup (78a720a)
- refactor cleanup major (cb290fd)
- perf (ca77481)
- themes (3b01563)
- ui (2754a38)
- ui (f18eb03)
- ui (054e6a2)
- lots of ui (cf0b2bb)
- fixes (da9d329)
- fixes (2e8d8e4)
- panels (88a0978)
- pannels (7bd2444)
- remove broken file (2bc6ece)
- panels (49c6190)
- ui (c299793)
- ui fixes (d4aa8f3)
- more ide (59adb55)
- panel (444e517)
- reactive (f632a36)
- styling (1c8acbc)
- cleanup (9cabbfc)
- fixes (74d4d45)
- files (5c5e8b9)
- files (0e0eb56)
- fuck u (4c4e729)
- fix menus (e5b65d4)
- convert to tish (d49c8f8)
- wow (d8de583)
- ui (ac1dc1e)
- init (d5b067a)