Product
What’s new
Every Incise release, newest first. Both the Mac App Store and Homebrew editions share the same version numbers.
Follow new releases by RSS or other ways. Full history on GitHub.
Easier-to-see find results, and a tab bar VoiceOver can use.
Find
- Every match highlighted: while the find bar is open, every match is highlighted in yellow, and the current one is solid yellow with dark text, so it stands out in light and dark themes. Before, the current match showed only as a faint grey selection.
- Regex selects the whole match: with Regex on, Next selected only as many characters as the pattern had, not the text it matched.
VoiceOver
- Tabs: the tab bar is announced as a group of tabs, each with its name, whether it has unsaved changes, and whether it is the selected one. Tabs can be selected, and closed from the Actions menu.
- Buttons: Close Tab and New File can now be reached and pressed, and the find bar's close button is announced as "Close Find Bar".
- Editor: the text area is announced as "Editor" (the two sides of a diff as "Diff, left side" and "Diff, right side").
For coding agents and local apps: a read-only diff view, and an easier way to connect.
Agent Integration (Settings ▸ Agents)
- Show a diff: a connected agent or app can open a read-only, side-by-side diff of one or more files in Incise, with a file picker when there are several. It changes nothing and asks nothing. It waits behind a change an agent is proposing, or your own Compare with Saved, and never replaces them.
- Easier to connect: while Agent Integration is on, Incise writes its address and token to
~/Library/Application Support/Incise/mcp-endpoint.json, readable only by you. A local app can then connect without you copying them from Settings. Turning it off, or quitting, removes the file.
Claude Code's /ide integration is unchanged.
More clipboard history: pinned clips, quick paste, and a list that opens where you type.
Clipboard history
- Pinned clips: pin a clip with ⌘P in the list, or Pin in its menu. Pinned clips stay at the top and are never removed by the limits. Clear History keeps them.
- Quick paste: ⌘1–⌘9 paste one of the first nine rows at once, and ⌥⌘1–⌥⌘9 paste it as plain text.
- The list opens where you type: just below the text insertion point, in Incise and, with the Accessibility permission, in other apps. Resize it, move it, and drag the divider between the list and the preview. Incise remembers the size.
- Ignored apps: Settings ▸ Clipboard can leave out copies from apps you choose.
Fixes
- A clip pasted from the list or the menu bar keeps the app it was copied from, rather than taking the app it was pasted into.
- When Paste directly lacks the Accessibility permission, Settings says what to do if Incise already looks switched on in System Settings.
Clipboard history, plus fixes in the visual Markdown editor.
Clipboard history
- Incise records the text and images you copy in any app while it's running, and keeps them on disk. Turn it on in Settings ▸ Clipboard.
- Edit ▸ Paste from History (⇧⌘V, or a shortcut you choose) opens a searchable list. Return pastes; ⌥Return pastes as plain text.
- Select several with ⌘-click or ⇧-click to paste them together, in the order you picked them.
- Screenshots paste into Claude Code in the terminal, one after another.
- Open the list from any app, and optionally paste straight into that app (needs the Accessibility permission).
- A menu bar icon with recent clips, and an option to open Incise at login.
Also
- Edit ▸ Paste and Match Style (⌥⇧⌘V).
- Visual Markdown editor: - Copying now gives Markdown (
# Heading,**bold**). - Edits keep the file's final newline. - A read-only notice names the Markdown profile and offers to switch. - The status bar shows the active profile. - With "Ask to save unsaved documents when quitting" off, Incise quits without asking and brings unsaved changes back next time.
Bug-fix release.
- Tabs are no longer lost when a file can't be opened at launch. If a file from your last session wasn't readable when Incise started — a cloud folder or external drive that wasn't available yet, for example — Incise dropped that tab without a word and saved the shorter list, so the tab was gone for good. Incise now keeps those tabs, tells you which files it couldn't reopen, and tries again the next time it opens. Choose Try Again to retry now, or Forget Them to drop them.
- Closing Settings keeps the tab width you typed. Typing a new Tab Width and then closing the Settings window with its close button, while the cursor was still in the box, didn't save or apply the new value, even though the box still showed it when you reopened Settings. It is now saved and applied when the window closes.
Bug-fix release.
- Selecting text in a busy terminal works again. While a program kept redrawing the screen — Claude Code's spinner and streamed replies, for example — dragging to select text kept restarting wherever the mouse happened to be, so nothing could be copied until the program went idle. The selection now holds while output streams. Programs that use the mouse themselves still receive clicks as before.
Bug-fix release.
- Lower CPU use with busy terminals on macOS 27. With a customized pointer (System Settings › Accessibility › Display › Pointer size or colour), Incise redrew the mouse pointer on every mouse move over a terminal and on every screen refresh. With a few Claude Code sessions running, that could cost around 40% of a CPU core while Incise sat idle. The pointer is now only set when it actually changes.
Small update.
- Folders on a network share (SMB, NFS, sshfs) now notice changes made on the server. While Incise is in front, the file tree and any open files from the share are re-checked every few seconds; a changed file shows the usual Reload / Keep banner.
- Switching back to Incise re-checks the open folder and files on any disk, and View ▸ Refresh does the same on demand.
- Fixed: saving right after Reload no longer warns that the file "has been changed by another application."
Small update.
- Settings ▸ Agents now has the switch for Claude Code integration (/ide), with a short explanation of what it does. It used to be only in the View menu and at the bottom of the Editor pane.
Bug-fix release.
- A first launch no longer asks for access to your Desktop, Documents, Downloads and cloud drives before its window appears. With no folder to reopen, the sidebar offers Open Folder… instead of opening your home folder, and macOS asks only when you open a folder that needs it.
- Opening a folder with
incise ., from Finder or on the Dock icon goes straight to that folder instead of loading the last one first. - The Go menu no longer checks your folders at launch. iCloud Drive is checked when you open the menu, and greyed out if it's turned off.
- The sidebar's tag filter offers a tag you've just added, without waiting for the filter to change. Both tag menus have Remove from Recent Tags.
- The Preview and Table toolbar buttons start out disabled when no file is open.
Finder tags come to Incise.
- Files in the sidebar show their tag colors, the same dots Finder shows.
- Right-click a file in the sidebar or an editor tab and choose Tags to add or remove a tag, or create a new one. They're the same tags Finder uses, so they show up in Finder too.
- Save As and Copy File… have a Tags field, as in other Mac apps.
- Filter the sidebar by tag with the bar at its bottom. It uses Spotlight, so it finds tagged files even in folders you haven't opened. Click anywhere on the bar to choose a tag; ✕ shows all files again.
- Get Info lists a file's tags, and shows long names and paths in full instead of cutting them off.
- The tab right-click menu has Move to Trash. It asks first, warns if the file has unsaved changes, and the tab closes once the file is gone (a tab with unsaved changes stays open so you can save it again).
- Reveal in File Tree now tells you when the file isn't in the folder shown in the sidebar, and offers to switch the sidebar to the file's folder. Before, it seemed to do nothing. For a hidden file it points you to View ▸ Show Hidden Files.
- Updating from 1.12.38 or earlier: save unsaved tabs (⌘S) before installing. Those versions can't save from the quit prompt; 1.12.39 fixed that.
- Save before you install this update. In earlier versions, choosing Save in the "Do you want to save" prompt while quitting didn't save the file and cancelled the quit, and afterwards ⌘S couldn't save that file either. Installing an update quits the same way, so save any unsaved tabs (⌘S) before clicking Install Update. If you're already stuck, File ▸ Copy File… still writes your edits to a new file.
- Fixed: Save in the quit prompt now saves the file, and Incise quits. Don't Save and Cancel work as before.
- Editor tabs have a right-click menu (Control-click works too): Close Tab, Close Other Tabs, Close Tabs to the Right, Save, Save As…, Copy File…, Revert to Saved, Compare With Saved, Reveal in Finder, Reveal in File Tree, Copy Path, Share… and Print…. The tab you right-click becomes the active tab, and the menu acts on it. Closing several tabs asks about each unsaved one first.
- Closing a tab you weren't looking at no longer switches you to another tab.
- If Incise is updated while it's open, for example by
brew upgrade, Check for Updates now offers to relaunch into the new version instead of downloading it again.
- Opening a file no longer changes the folder in the sidebar. Files opened from Finder, the Dock, the
incisecommand or File ▸ Open… open in a tab, and the sidebar stays on the folder you were browsing, whether or not the file is in it. If no folder is open, the sidebar shows the file's folder, as before. - Settings ▸ Agents no longer offers a Claude Code setup. Claude Code connects through /ide (View ▸ Enable Claude Code Integration), which already gives it your selection and diff review; adding the MCP endpoint as well gave Claude a duplicate set of tools. If you added Incise to Claude Code with
claude mcp add, remove it withclaude mcp remove incise. Codex, Cursor, Grok Build, Antigravity and VS Code are unchanged.
- In-app updates work again on macOS 26. Installing an update from inside Incise stopped with "An error occurred while running the updater", because macOS 26 blocked the folder the updater worked in. Incise now ships the fixed updater.
- If you saw that error, update once with
brew upgrade --cask inciseor a fresh download from incise.dev; in-app updates work from this version on.
- Make Incise the app Finder opens for a kind of file. Settings has a new File Types tab, and right-clicking a file in the sidebar offers "Always Open .md Files with Incise…". macOS asks you to confirm each change.
- A file opened by a coding agent (Claude Code over /ide or MCP) no longer takes keyboard focus away from the terminal you are typing in. Its tab is highlighted until you select it, and the Dock icon bounces once if Incise is in the background.
- Syntax highlighting for LookML (.lkml) files.
- Settings ▸ Terminal links to the guide on which fonts draw every symbol Claude Code and Antigravity use.
- Select several files in the sidebar. Shift-click selects a range and ⌘-click adds or removes one file, as in the Finder; Shift-↑ and Shift-↓ extend the selection from the keyboard, and ⌘A selects everything.
- Open, Reveal in Finder, Copy Path, Move to… and Move to Trash act on everything selected, and ⌘⌫ moves the whole selection to the Trash after one confirmation. Rename and Get Info still take one file at a time.
- Drag several files at once to move them to another folder, or out to the Finder or the Trash.
- Formatter settings problems are explained. When Black, rustfmt, clang-format, swift-format, perltidy or SQLFluff rejects its settings file, Incise shows everything the tool said, with an Open button that takes you to the file, at the line responsible when that can be worked out. Errors in your code stay a note in the status bar.
- SQLFluff settings get a plain-language diagnosis: a templater plugin you don't have (dbt or Dataform), a misspelled dialect, or an invalid option. For a missing plugin, Incise offers the command that installs it.
- "Format failed" shows the tool's actual error. It was sometimes blank, or showed Black's usage line instead of what went wrong.
- Fixed: Incise could stop responding the first time it looked for a formatter after launch, for as long as your shell's startup files took to run. It now looks in the background, and never waits more than 2 seconds.
- With several AI agents connected, a diff proposed while another is on screen waits its turn. Before, it replaced the first, and that agent waited forever for an answer.
- Right-click a file or folder in the sidebar and choose Copy Path to copy its full path.
- .tab files open as tab-separated values, and Finder offers Incise for them.
- Settings ▸ Formatter explains what a formatter does and how to run one.
- Settings ▸ Agents: the copy buttons no longer sit under the scroll bar.
- Perl: .pl, .pm and .t files open with syntax highlighting, and Format Document runs perltidy (
brew install perltidy). - Formatters follow your project's settings. Each one now picks up the project's pyproject.toml, .sqlfluff, rustfmt.toml, .clang-format, .swift-format or .perltidyrc, even from a folder above the file. Before, they ran with their defaults.
- SQLFluff uses your project's dialect, and ANSI only when none is set, instead of always ANSI.
- Incise runs the same formatter your terminal does. It now follows your shell's PATH order, so a tool installed with uv, pipx or pyenv wins over a Homebrew copy, just as it does in Terminal.
- Formatting a file over about 64 KB no longer times out. In some cases it could also make Incise quit.
- Settings ▸ Formatter lists what the built-in Prettier formats, and links to a new guide to installing formatters: incise.dev/formatters.
- Long sessions stay lean. Each time a terminal program changed its title — Claude Code does it several times a second while it works — Incise rebuilt the whole terminal tab bar, and the file tree rebuilt every visible row on every file change. On macOS 26 each rebuild also left behind a little memory that was never freed, and it added up over a long day. Tabs now update in place, and the tree reloads only a folder whose contents actually changed.
- The file tree shows files created outside Incise (by a command in the terminal, an agent, or a build) as soon as they land. Before, a folder only showed them after you collapsed and reopened it.
- Terminal: right-click a tab ▸ Keep Current Title to keep the name a program gave it, such as Claude Code's /rename, so later titles (zsh naming the tab after each folder you cd into) can't replace it. Reset Name undoes it.
- Markdown and HTML preview: new Settings ▸ Editor options open Markdown and/or HTML files with the split-screen preview already showing. Turning the preview off for a file is remembered for that file.
- Agents can open a file with its preview showing: the MCP openFile tool takes an optional
previewflag, for putting a Markdown document up for review. - Terminal: selecting text while a program keeps printing (a long Claude Code task, say) no longer loses the selection mid-drag.
- Terminal: scrolling moves to SwiftTerm 1.20's handling. The trackpad now scrolls pagers like less and git log, and Shift-scroll moves the history even when a full-screen app has the mouse.
- View ▸ "Show Invisibles" is now "Show Whitespace Characters", so it no longer reads like the file tree's Show Hidden Files.
- About: a "Follow new releases" link to incise.dev/news.
Bug-fix release.
- Google Drive shortcuts (.gsheet, .gdoc, .gslides) now offer to open the document in your browser, instead of showing the link file's raw JSON.
- The file tree expands symlinked folders: ~/Google Drive and ~/OneDrive open in place rather than bouncing you to Finder.
- Symlinked files such as ~/.zshrc now open in the editor instead of doing nothing at all.
- Get Info stays open while the folder you're browsing changes, and points at the file it describes.
- Fixed a stall with a large file open and a busy folder in the sidebar — the git change gutter was rescanning the whole document on every file event.
- MCP endpoint: Incise now answers with a protocol version it actually supports, rather than agreeing to whatever a client asked for.
Sharing, a caret fix, and a smarter Save panel.
New
- Share — send the current file to AirDrop, Mail, Messages or anywhere else, from the toolbar or File ▸ Share. Unsaved changes are written first, so you never send a stale copy of what you're looking at.
- New Incise Document with Selection — select text in any app and send it straight to a new Incise tab, from that app's Services menu or the right-click menu on the selection.
- File Type popup in the Save panel — pick Markdown, CSV, JSON and the rest when naming a new file, instead of typing the extension. New files also propose a better name: paste a CSV, hit Save, and Incise offers
Untitled.csvrather thanUntitled.txt.
Fixed
- Clicking to the right of a line did nothing. Any file whose longest line was narrower than the window had a dead zone covering the rest of the width — worst on CSVs and other short-line files, where it was most of the window. Clicking past the end of a line now puts the caret at the end of that line, as it always should have.
- Save and Save All are no longer offered when the document already matches what's on disk.
Changed
- The Save toolbar icon is now a document with a down arrow, so it reads as "save" rather than "download" next to the new Share button.
Claude Code integration improvement.
- The integrated terminal now exports
CLAUDE_CODE_SSE_PORT, so a Claude Code session started in Incise's terminal connects to the editor automatically — no need to run/ideby hand (#86).
Bug-fix release.
- Agent integration works with Claude Code again. Claude Code could connect to Incise but saw none of its tools, so Open File, Show Diff and the rest never appeared — the connection reported healthy the whole time, which is why it looked like nothing was wrong. Both the MCP endpoint and the
/ideconnection are fixed. - Settings ▸ Agents now tells you when the endpoint has had to move to a different port because 3845 was busy, and that your agent's configuration needs re-copying. Previously an agent that had been working would quietly stop connecting with nothing on screen to explain it.
- Settings ▸ Agents: the VS Code instructions now name only the files the configuration actually works in. Pasted into
settings.jsonit was ignored without an error.
Verified against Claude Code, VS Code, Cursor, Codex, Grok Build and Antigravity.
Feature release.
- Automatic updates. Incise now keeps itself up to date: it checks for new versions (with your consent) and installs them in place — no more manual
brew upgrade. This release is the last one you need to fetch by hand. - Task lists in the visual Markdown editor. Documents with
- [ ]checklists open editable, with clickable checkboxes that write straight back to the source — no more read-only banner. - Visual Markdown editor polish: a toolbar button so it's no longer buried in the View menu, a proper table icon on the insert button, the formatting bar stays pinned while scrolling, and the source and visual panes scroll in sync.
- The unsaved-changes dot now clears when you undo back to the saved text, instead of insisting the file changed.
- Settings ▸ Agents: the config and setup prompt are shown in full with copy buttons in each pane, and Grok Build (xAI) joins the supported agents.
Bug-fix release.
- Tabs now share the bar Safari-style: they shrink together as you open more files or narrow the window, so the active tab's close button is always reachable (previously tabs kept full width and clipped off the right edge).
- Terminal tabs do the same — and opening many terminals (⌘N) no longer resizes the whole app window to make room for the strip.
- Showing a collapsed sidebar now takes its width from the editor pane instead of growing the window, matching Finder/Xcode.
Bug-fix release (Homebrew edition only).
- Terminal: two-finger / wheel scrolling now works inside apps that take over the mouse — Claude Code's fullscreen TUI, vim with
mouse=a, htop. Those keep their own scrollback on the alternate screen, so the wheel is now forwarded to the app the way Terminal.app and iTerm do, instead of scrolling terminal history that doesn't exist there.
Bug-fix release.
- Links in the Markdown preview open in your browser again. Clicking an http link rendered the page inside the preview pane, replacing your document. The handler that was supposed to send it to your browser was never being called — its signature didn't match what WebKit expects, and because that delegate method is optional, nothing warned. Applies to the visual Markdown editor too.
Bug-fix release.
- Renaming a file no longer gets undone the next time you save it. Renames, moves, and drags now tell macOS the file moved, so an open document follows it instead of recreating the old name.
- The change bars in the margin no longer vanish on a new or renamed file. A file git hasn't seen yet is marked as entirely new rather than showing nothing.
- The Format command names the tool it will actually run — "Format with Prettier", "Format with Black" — instead of always claiming Prettier.
- CSV grid: scrollbars sit outside the table rather than over the last row and column.
Bug-fix release.
- Diffs open at the change. A proposed change from Claude Code's
/ideused to open at the top of the file, so an edit further down was off-screen and you had to hunt for it. The diff now opens at the first change with a few lines of context above it. Same fix applies to Compare with saved. - Claude Code MCP setup prompt now handles the case where an
inciseserver is already registered instead of failing.
Window and tab behaviour, mostly places where Incise quietly did nothing.
- ⌘-Tab back after closing the window now shows it again. Closing the last window leaves Incise running, which is correct — but ⌘-Tab brought the app forward showing nothing, and the Dock icon was the only way back. Minimised windows are deliberately left alone, since ⌘-Tab doesn't un-minimise on macOS.
- ⌘N, File ▸ Open, and Open Folder work with the window closed. They were adding tabs to an invisible window, so the command appeared to do nothing at all.
- New document tabs open on the right, matching the terminal tabs, Safari, Finder, and Xcode. They used to appear on the left.
- Right-click a folder in the file tree ▸ Make Top Level. Go ▸ Go Up had no counterpart, so returning to the folder you came from meant going through the Open Folder panel.
Terminal search, and two MCP fixes that matter if you use Incise with a coding agent.
Terminal
- Find in the scrollback —
⌘Fin a terminal opens a find bar with Match Case, Whole Word, and Regex, the same three the editor's find has.⌘G/⌘⇧Gstep through matches, Esc closes. Options are remembered. It seeds from your selection, and a half-typed pattern says "Bad pattern" rather than pretending it found nothing. - Copy on select (optional) — Settings ▸ Terminal. Off by default, since it replaces the clipboard as you drag.
- One right-click menu — Copy, Paste, Rename Tab, Terminal Theme, and Reset Terminal, from either the tab or the terminal body. macOS's AutoFill and Services entries no longer appear over a shell.
Fixes
- ⌘F now works in a terminal at all. The Find menu item was silently disabled whenever a terminal had focus.
- Esc closes the editor's find panel. It previously stayed open unless you clicked the close button.
- Opening a file leaves Terminal Only mode. Double-clicking a file in the tree used to open it into a hidden editor, so nothing appeared to happen.
- Settings panes no longer run off the bottom on a laptop screen.
Agents (MCP)
Both of these were found by running a real agent against Incise, and both stopped non-Claude agents from working properly:
- A tool name was illegal.
incise/pingcontained a slash, which MCP forbids — clients rejected it and could fail to register Incise's other tools along with it. - Legacy clients were being refused. Any client declaring protocol 2025-06-18 or 2025-11-25 was held to 2026-07-28's stricter header rules and rejected outright.
- Tool descriptions now tell an agent when to show you a diff in the editor rather than writing the file behind your back.
Small release for agent setup.
- Copy Setup Prompt in Settings ▸ Agents — instead of pasting the MCP config into your agent's file yourself, copy an instruction you paste into the agent and let it merge the entry into its own config. Handy when that file already has servers in it, and it handles the cases a snippet can't: the file missing, holding comments, or carrying a stale
inciseentry. - The prompt names the destination file, insists on a merge rather than an overwrite, and warns against the mistake that actually bites — an agent "correcting" Antigravity's
serverUrltourl, which it rejects silently. Claude Code gets the CLI command instead of a file edit. - Clearer wording on what the token in that prompt amounts to: it reaches the agent's model, which its config file would anyway, and it only opens the endpoint on 127.0.0.1.
Any coding agent can now drive Incise. Turn on View ▸ Enable Agent Integration (MCP) and Incise serves its editor tools — open a file, read the current selection, list open tabs and workspace folders, show a diff to accept or reject — over a local MCP endpoint that agents connect to directly. Settings ▸ Agents has the URL and copy-paste config for Claude Code, Antigravity, Codex, VS Code, Cursor, and anything else that speaks MCP over HTTP.
Previously only Claude Code could reach these tools, over a private WebSocket. That still works unchanged; this adds the standard transport alongside it, so Codex, Antigravity, Cursor, Zed and the rest get the same tools.
Off by default. When on, it listens on 127.0.0.1 only and requires a token that's unique to your install — regenerate it any time from Settings.
Also: drag tabs sideways to reorder them, in both the document and terminal tab strips (1.12.14).
Drag tabs to reorder them. Grab a tab and drag it sideways to put it where you want — in both the document tab strip and the terminal tab strip. Its neighbours slide out of the way as you go, and the order sticks across a relaunch.
Clicking a tab still just selects it: a drag only starts once the mouse actually moves, so nothing shifts by accident. Double-click on a terminal tab still toggles the panel, and Control-click still opens its rename/theme menu.
Markdown release: linting against a platform dialect, richer source styling, and a visual editor.
Markdown profiles + linter — Edit ▸ Lint Markdown for ▸ picks a target dialect (Looker Markdown files, GitHub-Flavored, CommonMark). Constructs the target won't render get an amber squiggle; hover one to see why. View ▸ Markdown Issues (⌘⇧M) lists every finding and jumps to it.
Rich Markdown styling — headings render larger and bold, bold is bold and italic italic, code sits on a faint slab, links are coloured, and the syntax markers (#, **, backticks, bullets) dim so prose stands out from its markup. View ▸ Rich Markdown Styling.
Visual Markdown editor — View ▸ Markdown Editor opens an editable pane beside the source, bound to the active profile: its schema, serializer, and toolbar all reflect the dialect, so it can only produce Markdown the target renders. The source file stays the record of truth. Documents using constructs it can't model open read-only rather than rewriting them.
Also — spell-check no longer flags URLs, autolinks, inline code, or link targets, and hovering a misspelling shows its corrections. The file tree's font setting is labelled more clearly.
New features + polish.
- File ▸ Copy File… — save a copy of the current file to a new location and open it in its own tab, keeping the original open and unchanged (unlike Save As, which retargets the tab). Defaults to the standard "<name> copy.<ext>" name next to the source.
- Drag-to-dock the terminal — grab the terminal's tab strip and drag it; the editor edge it'll snap to lights up; drop to re-dock (bottom/top/left/right). A direct-manipulation alternative to the Terminal Position menu.
- Type coloring now colors the raw text too — the CSV table's "color by type" toggle recolors the underlying text view to match the grid, not just the grid.
- Fixed: the table/preview toolbar toggle now reflects a view restored from saved state on open (it could show off while the pane was showing).
Large-file performance.
- CSV table on huge files — the table's row index now scans by byte instead of character, making the boundary scan ~10× faster (on a 1.3 GB / 2.85M-row file, ~16 s → ~1.6 s to build). Row-click now selects the record's exact span, and cell edits no longer re-materialize the whole buffer.
- Opening large files — the git change-gutter no longer reads the entire buffer before deciding to skip large files, and it did so on every git refresh. On a 1.3 GB file this removes a repeated multi-GB read that pinned the CPU and thrashed memory for the better part of a minute after open. (Fixes a small tax that was present on every file's open, just invisible on small ones.)