Releases: phuryn/grok-build-vscode
Releases · phuryn/grok-build-vscode
Release v1.4.10
1.4.10 — 2026-06-18
Session history that stays fast with thousands of sessions.
Features
- Session history loads in pages and stays fast at scale. The history dropdown used to read and parse every saved session on each open, which got slow once a project had hundreds or thousands of them. It now loads the most recent 100 (newest first by last activity) and pulls in older ones as you scroll to the bottom. The search box filters by name across your entire history — not just the loaded page — so you can still find an old session instantly. Behind the scenes it orders sessions with one cheap directory
stateach (no file reads), reads only the page you're looking at, and caches by file modification time so re-opening the dropdown costs effectively no disk reads. (src/sessions.ts, src/sidebar.ts, media/chat.js, media/chat.css) - Switching model or reasoning effort on a fresh session no longer clutters history. Some model and effort changes need the session to restart. If you flip them a few times right after opening a session — before you've actually said anything — each restart used to leave behind an empty, identical session in your history. Now an empty session (one where only the hidden setup has run) restarts cleanly with no "Summarize & Restart vs. Just Restart" prompt, and the throwaway session is removed instead of piling up. If you had renamed that session, the name carries over to the restarted one. (src/sidebar.ts, src/sessions.ts)
Fixes
- History dropdown no longer opens clipped off the right edge. Opening the session-history popover quickly (before its rows had finished loading) could position it too far right, so it spilled past the panel edge and only looked right after closing and reopening. The popover is now right-aligned to the panel (respecting the edge padding) and grows leftward, so it stays fully on-screen no matter how its contents resize as sessions load in. In a narrow panel it also caps its width to fit, so a long session name truncates with an ellipsis instead of pushing the popover off the left edge. Resizing the panel while the dropdown is open now re-fits it live (no need to close and reopen), and switching to another panel tab or extension closes it so it can't reappear mis-sized when you come back. (media/chat.js)
Internal
- Opt-in performance simulation for the history popover. A new
npm run test:perfsuite (kept out ofnpm testand CI) builds a 5000-session in-memory store and asserts the access-count improvement: first open drops file reads from 5000 to 100 (~98%), a repeat open does zero reads (modification-time cache), and search warms the catalog once then stays read-free — with a modeled-latency projection and a real in-memory parse-cost wall-clock. (test/sessions.perf.ts, vitest.perf.config.ts, package.json)
Docs
- Documented the pagination design in docs/architecture.md (§ History at scale) and CLAUDE.md (§ History pagination), and updated the Session history feature note in the README.
Release v1.4.9
1.4.9 — 2026-06-16
Make the chat bigger — just the chat.
Features
- Adjustable chat font size (#14). A new
grok.chatFontScalesetting zooms the Grok chat panel only — text, icons, and spacing together — as a percent (e.g.150,200, or smaller like70). Unlike VS Code's globalCtrl/Cmd+Shift+=, it leaves the rest of the editor at its normal size, so you can enlarge (or shrink) just the chat for readability. It applies live with no reload, the composer stays pinned to the bottom of the panel at any scale, and it works at both User (global) and Workspace (local) scope. (package.json, src/sidebar.ts, media/chat.css, media/chat.js)
Docs
- README polish. Added screenshots for Voice input and the Agent Dashboard, and moved a few wire-level implementation details out of the feature blurbs into docs/architecture.md so the feature list reads less like internals. (README.md, docs/architecture.md)
Release v1.4.8
1.4.8 — 2026-06-15
Run several Grok sessions at once — switch between them instantly, and see at a glance which one needs you.
Features
- Multi-session Agent Dashboard. The sidebar now keeps several sessions alive at once instead of one at a time. Switching between them from the history dropdown is instant and lossless — the conversation you switch away from keeps running in the background (mid-turn, mid-approval, anything), and switching back replays its exact state with no reload. Picking a session that isn't live anymore loads it from history as before. (src/sidebar.ts, src/session.ts)
- Status dots in the history dropdown. Every session shows a dot so you can see what each one is doing without opening it. It's gray at rest, and only lights up when there's something to know: blue = working, yellow = needs you (a permission, question, or plan to review), green = finished with output you haven't opened yet, red = finished with an error you haven't opened. The green/red marker is an unread badge — it clears the moment you open the session, and it's persisted, so it survives the idle cleanup below and even a VS Code restart. Walk away, come back, and the green sessions are exactly the ones with results waiting. (media/chat.js, media/chat.css, src/session-pool.ts)
- Idle sessions are cleaned up automatically. To keep a pile of background sessions from each holding a live process, a session left untouched for an hour — or beyond a cap of ~8 live — is quietly shut down (never one that's working or waiting on you). It reappears in history and reloads on click, so nothing is lost. (src/session-pool.ts)
- Updating the Grok Build CLI warns about sessions in progress. With multiple sessions now able to run at once, the Update Grok Build CLI action confirms before it restarts when any session is mid-turn or waiting on you — so an update doesn't silently interrupt work in a background session. (src/sidebar.ts)
- No more long pause before Grok starts. Sending your first message used to sit silent for 15–40 seconds before anything appeared. Behind the scenes the extension primes each session with a hidden plan-mode instruction, and that primer was running in front of your first message and — because Grok Build is an agentic CLI — was wandering off to read files and search the workspace before your real prompt even ran. The primer now fires the moment a session goes live, silently in the background, so it's almost always finished before you hit send; if you're quick, your message shows immediately and is released the instant the primer settles. The primer text itself was also trimmed to just the protocol it needs to teach (the product blurb and repo link that were tempting Grok to go exploring are gone), so it completes in a beat instead of dozens of seconds. (src/sidebar.ts, src/grok-primer.ts, src/session.ts)
- A "Grokking…" indicator while you wait. Every turn now shows an animated Grokking… placeholder the instant you send, so there's immediate feedback that Grok received your message — it's replaced in place the moment the first thought, reply, or tool action arrives. (media/chat.js, media/chat.css)
Release v1.4.7
Sharper math, and one-click export for equations and diagrams.
Features
- Math now renders with MathJax (replacing KaTeX). MathJax produces self-contained SVG that's closer to "real LaTeX," renders
\label/\ref-style environments without painting red errors, and — crucially — gives every equation an exportable vector. Inline\(…\)sits on the text baseline in your editor's text color; display\[…\]gets its own centered, horizontally-scrollable block. The swap also fixed a double-rendering bug where Chromium drew MathJax's hidden accessibility MathML as a second, visible copy of each equation (enableAssistiveMml: false). - Copy / Download / Open actions on display math + Mermaid diagrams. Hover any display equation or rendered diagram for a top-right overlay (mirrors the generated-image actions): Copy the LaTeX/Mermaid source, Download as an image, or Open it in VS Code's image preview. Download offers a quick-pick — PNG (rasterized with your VS Code theme background, i.e. what you see), or a transparent SVG tuned for a dark or for a light background. Math recolors its ink for each; Mermaid is re-rendered in its matching light/dark theme so a "for light background" diagram actually uses the light palette.
Internal
video-genis excluded from the default live-test gate (opt-in via--only=video-gen). In the headless test harness grok 0.2.x spins on/imagine-videoinstead of producing a clip, so it never completes — the feature works interactively, so a default-on test only produced noise.
Release v1.4.6
Grok's Mermaid diagrams now render as diagrams.
Features
- Mermaid diagram rendering. Grok answers with
```mermaidfenced blocks — flowcharts, sequence/state diagrams, git graphs, class diagrams, ER, pie, and more — which the chat previously showed as raw diagram source. These now render as real diagrams via the vendored Mermaid library (bundled into the extension, no network — works offline and in the packaged build). The diagram is themed to match VS Code (dark/light) and gets horizontal scroll so a wide flowchart doesn't blow out the narrow sidebar. Rendering is asynchronous and DOM-based (Mermaid measures text to lay out nodes), so unlike the LaTeX path it runs as a post-render pass over the inserted message; an SVG cache keyed by the diagram source keeps the streaming bubble flicker-free (the agent message re-renders every animation frame) and stops the same diagram being laid out dozens of times before the first render resolves. A half-streamed block stays as plain text until its closing```arrives, and if Mermaid can't load or the diagram is malformed the readable source is shown instead of an error.
Also new in the v1.4.x rendering line (shipped in v1.4.5, repeated here since the Marketplace build lags behind):
- LaTeX / math rendering. Grok increasingly answers with TeX — inline
\(…\)and display\[…\](including\begin{pmatrix}matrices, fractions, sums, Greek). Math is now rendered with KaTeX, vendored into the extension (no network, works offline). Display math gets its own block with horizontal scroll; a malformed expression renders as an inline error instead of blanking the message, and\label{…}is stripped (KaTeX has no\ref/\eqref). Single$…$is deliberately not a delimiter — too many false positives with prose currency ("$5 and $10").
Release v1.4.5
Grok's math now renders as math.
Features
- LaTeX / math rendering. Grok increasingly answers with TeX — inline
\(…\)and display\[…\](including\begin{pmatrix}matrices, fractions, sums, Greek) — which the chat previously showed as raw backslash-soup. Math is now rendered with KaTeX, vendored into the extension (no network, works offline and in the packaged build). The renderer pulls LaTeX out before HTML-escaping so the backslashes and braces survive intact; inline math flows with the text, display math gets its own block with horizontal scroll so a wide matrix doesn't blow out the narrow sidebar. A malformed expression renders as an inline red error (KaTeXthrowOnError:false) instead of blanking the message; if KaTeX somehow can't load, the raw TeX is shown rather than swallowed.\label{…}(which Grok emits insidealign/equationblocks for cross-referencing) is stripped before rendering — KaTeX has no\ref/\eqrefsystem so it would otherwise paint the label as a red error, and\labelproduces no visible output in real LaTeX anyway. Single$…$is deliberately not a delimiter — too many false positives with prose currency ("$5 and $10").
Release v1.4.4
1.4.4 — 2026-06-15
You can read history again while Grok is thinking.
Fixes
- Scrolling up no longer gets yanked back down while Grok is thinking (#16). The chat snapped to the bottom on every streaming update, so any attempt to scroll up and re-read earlier messages (or Grok's own earlier reasoning) was undone on the very next thought chunk. The view now follows streaming output only while you're already pinned to the bottom; the moment you scroll up to read history, auto-scroll pauses and leaves you there. Genuinely interactive activity you need to see — permission cards, ask-user-question cards, and your own sent message — still pulls the view back down and re-pins. This also restores the ability to keep an eye on reasoning while permission cards stack up (#15). (media/chat.js, media/webview-helpers.js)
Release v1.4.3
1.4.3 — 2026-06-09
Docs catch-up and a faster, leaner session start.
Docs
- README rewrite. Restructured around three audiences: users get a clean Requirements → Install → Quick start path, then a Features & capabilities section where each feature is its own collapsible — ordered by what actually sells the extension (diff-preview approval, modes,
/imagineimages+videos, voice…) rather than by implementation. Configuration, Commands & keybindings, and Development each collapse into a single<details>so the page scans in seconds while staying self-contained for the Marketplace listing. The deep dive — diagram, message flow, module map, design notes, and the Plan-Mode "the one part that isn't thin" explainer — moved to a new docs/architecture.md, linked from a short How it works teaser. - Removed stale claims. Dropped the Subagents feature section (still research-only — it rarely fires in practice, so it shouldn't read as shipped) and the "generated media is inlined as base64" known-limit (1.4.2 switched media to
asWebviewUristreaming). Trimmed the opening screenshots to the sidebar + an inline/imagineresult, with a More screenshots link to the folder; removed a decorative image that carried no information. - Canonical
README.md/CHANGELOG.mdcasing. The working-tree files were lowercase on disk (a Windows case-insensitivity slip) while git already tracked them uppercase; the disk now matches. (vscestill normalizes the packaged copies to lowercase inside the.vsix— that's its own convention, which the Marketplace renders fine.)scripts/release.*now referenceCHANGELOG.mdso the release-notes extraction works on case-sensitive filesystems too.
Changed
- The hidden plan-mode primer no longer costs a startup round-trip. The extension sends Grok a hidden "primer" that teaches it the Plan-Mode verdict protocol. It used to fire at every session start — new and every restore — locking the composer until Grok acknowledged and burning a turn even on a session you only opened to glance at. It's now sent lazily, as its own hidden turn before your first real prompt — on a new or restored session — so it rides along with work you already triggered. The composer is ready the instant the session connects, and opening/abandoning a session (or restoring just to read history) costs nothing. Re-asserting the primer on the first post-restore send (rather than trusting a copy buried in replayed history, which a
/compactcan drop) keeps Plan Mode reliable across resumes. Best-effort and unchanged in protocol — the plan-gate remains the real enforcement. (src/grok-primer.ts, src/sidebar.ts)
Release v1.4.2
1.4.2 — 2026-06-09
Generated video renders now, and inline media is a tighter thumbnail.
Fixes
- Generated videos (
/imagine-video) finally render. Detection, path extraction, MIME, and CSP were all already correct — the failure was the delivery: a multi-MB clip base64-inlined into a singlepostMessagedata:URI was silently dropped, so the<video>got an empty source. Generated files are now served viawebview.asWebviewUri(the grok home is alocalResourceRootsentry), so the webview streams the file straight from disk instead of carrying it as a giant string — videos play, and large images load lazily. Files written outside the served roots still fall back to a base64data:URI, so nothing regresses. (src/sidebar.ts, media/chat.js)
Polish
- The Copy path / Open in VS Code hover icons now sit on the image. They were anchored to the chat column's right edge, so on a thumbnail they floated in empty space well to the right of the picture. The media block is now sized to the rendered image, so the icons pin to the image's own top-right corner — for videos too. (media/chat.css)
- Inline media is capped at 320px wide (was 640px), so a generation reads as a compact thumbnail in the narrow sidebar instead of dominating the chat. The file is untouched — click an image (or Open in VS Code) for full resolution. (media/chat.css)
Release v1.4.1
1.4.1 — 2026-06-09
A two-part fix for generated images that stopped rendering in 1.4.0.
Fixes
- Generated images are visible again. 1.4.0 capped inline media at 640px by wrapping it in a
width: fit-contentcontainer. That made the<img>'smax-width: 100%resolve against an indefinite width, which collapses a replaced element to zero in Chromium — so every generation (including plain/imagine) rendered as an invisible, zero-width image. The container is now a normal block (definite width), so the percentage resolves correctly while the 640px cap stays. (media/chat.css) - Reference-edited images (
image_edit) now render too. Editing a real photo with/imagineruns Grok'simage_edittool (titleimagine-edit: …, variantImageEdit) — a surface 1.4.0's detector didn't know about, so the saved file was never inlined. Confirmed live against grok 0.2.x: the completed result reports the path as the same machine-readable JSON{path}the other media tools use (an extended-length\\?\C:\…Windows path, stripped to canonical form).isMediaGenToolCallnow recognizes it. (src/acp-dispatch.ts)