Populars: Dades actualitzades el 26 d’octubre del 2026

Categories

Internet1.355
Comunicació321
Àudio i vídeo898
Gràfics i disseny539
Ofimàtica i productivitat1.120
Eines per a desenvolupadors3.132
Eines d’IA527
Seguretat i privadesa385
Eines del sistema3.113
Jocs523
Educació i ciència239
Xarxa i TI284

mnml: baixar versions anteriors

A NvChad-style terminal IDE in Rust.

Aquí hi ha 17 versions de mnml, des de 23 d’agost del 2026 fins a l’actual, v0.3.5. Cadascuna enllaça amb els instal·ladors del mateix desenvolupador.

2026: 17 17 26
VersióDataMidaFitxers
v0.3.5Darrera versió 7 d’octubre del 2026 — 64 bits MSI
Notes de la versió
One statusline chip per integration
- Bitbucket PRs and Jira Work show one statusline chip each; the hover
carries the breakdown; the Segments menu names them. Bitbucket's
chip reads your open pull requests, then the review threads on them
and the pull requests waiting on your review, each with its own small
icon and left off at zero; it turns yellow, then orange, as those
appear. Jira Work's carries the QA Actionable Now count beside the
assigned one. The hover says each number in words, one line apiece. A
click opens the pane. Needs Jira and Bitbucket 0.2.4; installing them
takes the old second and third chips off the row.
- Right-click the statusline between its chips: Segments ▸ lists an
integration's chip as Bitbucket PRs: pull requests, review threads,
waiting on you rather than by its id. A chip's own right-click menu
has Hide.
- Opening Bitbucket Pipelines no longer turns the Bitbucket PRs chip's
icon into the Pipelines one.
- An integration manifest's statusline segment takes an optional
label, the few words the Segments menu shows.
v0.3.4 6 d’octubre del 2026 — 64 bits MSI
Notes de la versió
Jira and Bitbucket 0.2.3 in the Marketplace
- The Marketplace an installed mnml reads lists the integrations its
own release was cut with, and 0.3.3 was cut before Jira and
Bitbucket 0.2.3 existed. This release's index names them, so the
recent-items cache, the pull-request and pipeline number ranges, the
Atlassian chip icons, the confirm-box click fix and the measured
tables described under 0.3.3 reach a Marketplace install. Nothing
else changes.
v0.3.3 5 d’octubre del 2026 — 64 bits MSI
Notes de la versió
Integrations add rows to each other's menus
- A manifest's context_menu[] rows now reach mnml's menus: a row
aimed at ticket, pr, pipeline, link or one pane's rows
(pane:<id>:<kind>) joins the right-click menu of a link of that
kind anywhere and of a Jira ticket row, under a muted header with the
contributing integration's name. Picking it runs that integration's
command with the clicked row's {key}, {repo}, {n}, {id} and
{url} filled in; a when (state=OPEN) narrows where it shows.
Older manifests with a plain string target still load. The sample
integration contributes Echo ticket key and Echo pull request.
Integration panes: a confirm's chips click, and hover help names the key
- The SDK's confirm box (confirmBox) let a click on its OK or Cancel
chip land on the box behind them, so neither did anything. Jira's
and Bitbucket's merge confirms both had it. The chips now win.
- A mounted pane's hover can name the command its element's click
runs, and the info view then ends with that command's Key: chord,
as the host's own controls do. Panes set it with Help.runs(id) and
Mount.hoverHelp; older panes and hosts are unaffected. The sample
integration's header shows it.
The setup wizard on a first launch
- A first launch from your home folder — the way a new terminal window
opens — shows the setup wizard. It used to show the "where to?"
picker instead, and the wizard never came; the picker returns on
later launches once the setup is done.
- A dialog that is already up on a first launch, such as the workspace
trust question, no longer cancels the wizard: it opens as soon as
that dialog closes.
One data root for every build; the dev profile is gone
- A build from source and an installed mnml now share one data root
(~/.config/mnml), one session file (.mnml/session.zon) and one
statusline. MNML_PROFILE and --profile are no longer read; the
dev chip, the [dev] window title, the first-launch seeding and
mnml profile seed are gone. --sandbox, --demo and
MNML_DATA_ROOT still pick a root of their own.
- A leftover ~/.config/mnml-dev (and .mnml/session-dev.zon) is
ignored. Delete it, or move what you want from it into
~/.config/mnml, by hand.
- mnml paths prints the data root, session file, IPC mailbox and
running-instance marker (it replaces mnml profile; on Windows,
run.ps1 paths).
- --version reads mnml 0.3.3+g<sha> for a source build, and the
start page shows mnml 0.3.3 · <sha>; a release reads its version
alone.
Claude tokens renew on every system
- A Claude account whose token is turned down renews it with the
account's own refresh token — every account, on macOS, Linux and
Windows — and the new token is written back to that account's file.
On macOS the keychain is tried first when it holds that account's
login. The state line reads expired — refreshing… meanwhile; only a
refused renewal shows expired — Re-auth.
- Re-auth works on Linux and Windows: after claude login the login is
read from the CLI's credentials file (~/.claude/.credentials.json,
or under CLAUDE_CONFIG_DIR).
SESSIONS: names, states and verbs from Claude Code's registry
- EXTERNAL rows — sessions running in another terminal — read Claude
Code's live-session registry (~/.claude/sessions/<pid>.json): a
session the user named shows that name and its exact state (busy,
idle, waiting) instead of main (47c3b85c), and a running session
with no transcript yet is listed too. The registry is undocumented and
may change; an unreadable file is skipped and the transcripts stay the
listing. sessions.registry = false turns it off (docs/API.md).
- Ask what it is doing (sessions.ask_external) sends the session one
cross-session message asking what it is working on and whether it is
safe to interrupt; its reply, read from its transcript, shows as a
toast within 60 s. Not on Windows yet.
- Take over… (sessions.take_over) ends an idle or waiting session in
its own terminal and resumes it in a pane here, after a confirm. A
working session is refused; the pid must still be a claude process;
v0.3.2 4 d’octubre del 2026 — 64 bits MSI
Notes de la versió
mnml 0.3.2 is the week after the cutover. Sessions get a mode of their own
— every Claude Code and Codex session side by side, with a ring that walks
the ones waiting on you — and mnml grows an API: a local socket with
mnml remote, a gate on what a program in a pane may ask for, and a face
for Claude Code's IDE protocol, so a session can open files, read the
selection and show its diffs in a review pane with no setup. Ticket keys
and PR references are links wherever they appear. The dashboards prefetch
and refresh on their own cadence. Jira and Bitbucket 0.2.2 ship alongside:
their chips wear Atlassian's own icons, and their cards and terminals link
to the issue or pull request they name.
Safety
- A program in a pane can no longer run commands through the file channel
without asking. A run-command of anything that changes more than the
view, and every open-pty, now waits on a toast with a Review
button; Review opens a box with Allow once, Allow for the session,
Deny and Cancel, and nothing answered in two minutes is denied. The
toast never takes the key you are typing.
- Every command now has a class — view, edit, write or exec — listed in
docs/commands.md; a grant for the session covers one class until mnml
quits.
- Each answer is a line in .mnml/ipc/audit.jsonl and in events.jsonl.
- .api.allow_commands and .api.clients in config.zon let a command
or the file channel through unasked; a workspace you have not trusted
cannot set them.
The API
- Each mnml now serves a local socket that mnml remote (or mnml r)
talks to: open PATH[:LINE[:COL]], run COMMAND-ID, status, panes,
ping, instances, and call METHOD [JSON] for anything raw, with
--json. Run in a pane it reaches that mnml as that pane; run from any
other terminal it finds the mnml whose workspace holds the current
directory. docs/API.md has the methods and the exit codes.
- Every pane is told the socket and gets its own token, made when the pane
starts and gone when it closes. A command run through the API that
changes more than the view asks you first, naming the pane; Allow for
the session lasts while that pane is open. Anything without a token may
only read the status and the command list.
- Settings → Integrations → API turns the socket off.
- A Claude Code session started in an mnml pane links to mnml as its IDE
with no setup. It sees your selection, opens files, reads diagnostics,
and shows its edits as a diff in mnml's review pane for you to accept
hunk by hunk or reject. An accepted diff is saved, as the session is
told it was; a session asking to save a file itself asks you first.
- A linked session wears a link mark (⇄) on its tab, and on its SESSIONS
card when nothing else has that spot; a toast says so when it first
connects.
- ai.send_selection points the session you looked at last at the
selected lines.
- The API switch covers the link too: off, no session is linked.
Sessions
- The + New session menu opens a batch of 3 or 6 Claude Code sessions
as well as 2, 4 or 8 (ai.claude_code_new_x3, _x6).
- The Sessions row of the activity bar enters the sessions mode: the editor
layout is put aside and every Claude Code and Codex session stands in
columns side by side (ai.session_columns, 1 to 4, default 2; the AI
chips' right-click Show side by side sets it), the rest stacked behind
them. Click the row again and the layout comes back exactly as it was.
- In the sessions mode Ctrl+Tab / Ctrl+Shift+Tab step the focused column's
stack, Ctrl+1 to Ctrl+9 show the rail's Nth session there, and Ctrl+N
starts a new session in it; outside the mode those chords mean what they
always did. Ctrl+Shift+N starts a Claude Code session anywhere.
- Closing a session keeps the shape: a zoomed session hands the zoom to the
next one, and a column whose last session closes is refilled from the
sessions stacked behind the others.
- One click on a SESSIONS card shows that session when the page is zoomed or
in the sessions mode; a • beside a card marks a session on screen.
- sessions.next_wai
v0.3.1 30 de setembre del 2026 — 64 bits MSI
Notes de la versió
mnml 0.3.1 is a fix release for the Jira and Bitbucket integrations, with
what landed on the editor since 0.3.0 alongside it.
Jira and Bitbucket 0.2.1 — the gzip fix
- The reason for this release. Jira and Bitbucket compress their answers
when the client offers it, and both integrations handed the compressed
bytes to the JSON parser: every Jira pane said "the search answer was not
JSON", and Bitbucket's panes failed the same way. The body is now read
through the answer's content-encoding, as mnml's own HTTP client already
does.
- A parse failure names what it saw: the read error that cut the body
short, or the content-type, the size and the first bytes.
- This release's integrations.json offers Jira 0.2.1 and Bitbucket 0.2.1.
An installed 0.2.0 reads update available in the Marketplace tab.
Sessions
- Session cycling: ai.focus_next_session / ai.focus_prev_session
(ctrl+alt+pagedown / ctrl+alt+pageup, ]a / [a in a vim editor,
with a count) step through every Claude Code and Codex pane — splits,
stacked tabs, other tab pages and the bottom dock — with a ‹ 3/7 › on
each session's tab strip and on the statusline's new sessions chip.
- The Claude and Codex chip menus open a session in a new tab or on a new
tab page, and a worktree profile's session lands there too once its
branch name is answered.
The frame
- The launcher dock can live on the command line's own row:
ui.dock.placement = .shared (:dock shared, or on command line in
Settings) puts its items on the : row, always up with no grip and no
extra row. Typing never moves them; they step aside only while a long
command would reach them.
- The tree draws its connectors on every row below the top level —
folders and files, a │ while a sibling follows and a └ on the last
child — in the comment grey, so they can be seen.
- The tree's workspace dot (ui.show_workspace_dots) marks the active
workspace with ● and every other root with ○, instead of sitting on
the primary for good; a click on a dot switches to that workspace,
and the rest of the header still folds. An extra root's Switch to this
workspace switches directly instead of opening the picker. Removing the
active root hands the dot, open, back to the primary.
- About prints the build's own version, not a fixed 0.3.0.
Integrations on the top bar
- The top bar's integration chips sit three cells apart, the same rhythm as
the right-panel toggle beside them, instead of five.
- A newly installed integration — from the Marketplace, a local folder, a
launcher or a shell <binary> --install — starts off the top bar; its
menu's Show on top bar puts it there, and a reinstall or update keeps
what you chose. Browser keeps its chip.
- An integration's rebuild chip is no longer hidden by the host rewriting
its manifest.
Testing
- The Jira and Bitbucket tests, and the corpus files for both panes, run
against a fake site that compresses its answers.
- The tour and the drive harness launch mnml with the update check off, so
a newer release on GitHub no longer changes every screenshot.
- A corpus file for session cycling and one for the shared dock.
The website
- mnml.sh: the home page, downloads read from the latest release, the
docs — install, getting started, configuration and its option
reference, features, Lua, integrations — the release notes, and nine
short recordings of mnml at work.
v0.3.0 30 de setembre del 2026 — 64 bits MSI
Notes de la versió
mnml 0.3.0 is the same editor, rewritten in Zig 0.16.0. One static binary per
platform, no runtime, and the shared .test corpus as the definition of
parity (every file at 120x40; the 80x24 and 200x60 sweeps check for panics,
leaks and rects outside their parent). Everything below is what the 0.2.x user notices; the
architecture behind it is in docs/DESIGN.md.
The editor
- The core: a String buffer and a byte cursor behind one apply chokepoint;
vim and standard keymaps as two complete profiles that never leak into the
render layer. Undo groups, registers, marks, macros, dot-repeat.
- Multi-cursor — every cursor types, deletes, selects and puts. Visual block
yanks and deletes the rectangle. Surround (ys / ds / cs), align,
ctrl+a / ctrl+x, gq reflow, gcc comment toggle, the [ ] pairs, the
section / method / TODO jumps.
- A save writes the file's terminating newline.
- Incremental tree-sitter highlighting for 43 grammars, compiled in. Spans
slide with the text as you type; the reparse waits for idle. Language
injection (fenced code, <script> / <style>), predicates and roles.
- Sticky context: the enclosing scope's header pinned above the viewport.
Text objects, the symbol outline, the rendered markdown preview, snippets
with tab stops that track the text.
- Open files are stat'ed every 2 s — a clean buffer reloads, a dirty one is
warned.
The frame
- Splits, tab pages, per-leaf strips, the statusline, the editor scrollbar
and pin, drag-to-resize dividers and tabs, click-count selection, the wheel
batch, right-click menus, overlays, the palette — the Rust frame, cell for
cell.
- The 94 NvChad base46 palettes as ZON, derived into every UI role at compile
time. theme.pick previews as you move; toggle, reset, follow-the-OS.
- The first-launch wizard — eight sections, Enter writes only what was
touched; the last offers Jira and Bitbucket as checkboxes that install on
the spot, with a Private integrations row under them. The settings overlay — sectioned rows, the file follows the row.
- Build-artifact directories stay hidden in the tree without a .gitignore.
- A pane that opens beside another sizes itself by what is already there:
the first one takes an empty editor area whole, the third makes thirds and
the fourth quarters, and a stack inside one of the columns keeps its own
proportions. Integrations, terminals and session panes all follow the one
rule now. integrations.arrange = .fixed — a row under Integrations in the
settings overlay — puts back the old half-the-active-pane sizing.
Config — ZON, not TOML
- config.zon beside your config.toml; mnml 0.3.0 never touches the TOML.
Run mnml export-config-zon on 0.2.22 once to convert. Three layers (user,
workspace, defaults), a typed schema, Patch(T) merges derived at compile
time, persistScalar splices one value back into the file with a backup.
- Workspace trust is decided at load and asked once.
- Two profiles, so one machine can run the mnml you live in and the mnml you
are working on. MNML_PROFILE=dev (or --profile dev) moves the data root
to ~/.config/mnml-dev, the session file to .mnml/session-dev.zon, the
IPC mailbox and the running-instance marker to their own names, and paints
a dev chip on the statusline with a matching window title. The first dev
launch seeds itself from your stable setup — config, integration manifests
and configs, launchers, themes — and never copies a credential, a cache or
a session; mnml profile says which one you are in and mnml profile seed --force copies again.
- docs/CONFIG.md is the complete commented config.zon, and a test parses
it.
Panes
- Pane.pty — a shell or command in a split, painted from the libghostty-vt
grid. cargo / npm / pytest / go runners and test.* in a pty pane,
the tools picker, configured tasks (task.run, task.<name>, :task,
startup tasks).
- Git: status, diff, blame, graph, staging — every call on a worker, results
posted back as one event. Gutter marks and blame labels on the editor. One
Repo per repository, a job queue, the one-h
v0.2.22 28 de setembre del 2026 — 64 bits MSI
Notes de la versió
Release Notes
Added
- (update) the export-config-zon note expires 30 days after 0.3 ships
- (update) the toast for 0.3+ says to run export-config-zon first
- (cli) mnml export-config-zon [--out] [--workspace] [--in] [--force]
- (config) TOML → ZON converter for the mnml-zig config
- (ui) Button gains compact() and fit_row() so a row can never overflow
- (ui) one spinner, a Busy button state, and a refresh button that uses both
- (ai-usage) detect accounts sharing one login; L opens claude login
- (flash) say what to press; correct the "s is dead" finding
- (cmd) keyboard route to the panel sort modes
- (ui) light the hovered menu-bar word; file the settings export todo
- (ui) visible sort chips on TODOS/NOTES/FINDINGS + right-click on findings
- (ui) a missing-dependency toast offers the install
- (ui) green current-row accent, and hover help for four dead surfaces
- (ui) right-click the notification bell
- (ui) a close × on toasts, and identical toasts coalesce
- (ui) the notification bell is always present, with three states
- (todos) + New todo — TODOS was the only list panel that could not create
- one-step menu-glyph audit, and the Claude icon starts a new session
- (ui) NOTES / FINDINGS / TODOS get a sort mode
- (ui) refresh becomes a mode-aware Button, not a chip of its own
- (ui) right-click any ↻ chip to toggle that panel's auto-refresh
- (ui) a glyph on every menu and context-menu row
- (ui) [ui] external_browser picks which browser opens links
- (findings) a + New finding action, matching NOTES and TODOS
Fixed
- (test) check out the export-config-zon goldens with LF on Windows
- (config) export-config-zon leaves [jira] unmigrated — mnml-zig dropped it
- (vim) guu / gUU / g~~ leave the cursor on the line they changed
- (vim) Esc from Insert / Replace stops at the line start instead of crossing onto the line above
- (editor) a save that appends the final newline keeps the cursor where it was
- the top-right + makes a tab again; hero GIF gets mnml's own glyphs
- (ai-usage) a Retry-After of 0 is not permission to retry now
- two SEV-1s — the first-launch panic and :%s eating line breaks
- (panels) one drop order across all six panels; group commands by namespace
- (panels) hover help for the sort chip, TODOS row parity, drop stale rows
- (vim) finish the inclusivity and fold fixes; sync the manual
- picker drew twice a frame; reveal-in-tree revealed the wrong file
- (vim) extend every cursor's selection, and correct three e2e expectations
- (vim) zo opens and zc closes; only za toggles
- (vim) charwise visual is inclusive, as vim is
- (picker,ipc) right margin on detail-less rows, ellipsis on cut labels
- (todos) say when the scan capped; stop rewriting config on a no-op
- (picker) stop panicking under 30 columns; make the scrollbar real
- (ui) the sort chip was invisible at the shipped default width
- (menus) one verb per action, and no hardcoded "Finder"
- (menus) three dead rows, two missing right-click branches, one stale cursor
- (ui) one gutter rule, paired sort modes, a real reveal-in-tree
- (ui) reserve the picker scrollbar column before laying out rows
- (ui) the toast offer gets its own row; the close x is legible
- (scroll) a wheel event always moves at least one line
- green CI, plus two tester SEV-2s
- (ui) messages popup gets a scrollbar; left-bar bell removed
- (editor) :vsplit + :wa silently destroyed one window's edits
- (app) a plain save refreshes the list panels; docs for all three
- (ui) context menus scroll instead of silently dropping their last rows
- (ui) tester round 1 — SEV-1 filter focus, and my own glyph/panel bugs
- (ui) real integration icons, and icons on submenu parents
- (ui) TODOS rows stop one cell short of the kebab
- (tui) stale mouse reports typed themselves into the buffer
- (ui) the panel scrollbars were paint-only — wheel and drag now work
- (ui) TODOS/NOTES/FINDINGS could not scroll at all
- (ui) menu glyph repetition + spacing, and two right-edge overruns
- (ui) align the pane
v0.2.21 1 de setembre del 2026 — 64 bits MSI
Notes de la versió
Release Notes
Added
- (markdown) typing on a rendered preview swaps to the editor
- (md) rendered-first stays the default, but becomes an option
- (files) a "Delete permanently" button on the confirm modal
- (files) Option on the delete confirm skips the trash
- (files) a trash view, and widen the panel gutter to 3 cells
- (files) a delete is undoable — it moves to the workspace trash
- (editor) the breadcrumb is clickable
Fixed
- (ui) FINDINGS gets a cursor; panel caches refresh on fs changes
- (ui) the TODOS/NOTES gutter never painted its accent bar
- (#1238) markdown preview tabs carry no marker glyph at all
- (#1238) .http had the preview bug in both directions
- (#1238) glancing at an image left a permanent tab, same as markdown
- (md) a markdown preview was always a permanent tab
- (files) migrate the old trash index; say "Delete permanently" in there
- (files) deleting inside the trash re-trashed it; hide the index
- (picker) "Open file" ignored a pasted path, silently
- (ui) hide the terminal caret while a dropdown is open
- (files) bound the trash by size, and verify the symlink case
- (files) two ways the undoable delete still destroyed data
- (test) Windows path separator broke the TODO-prompt assertion
- (git) the repo chip was a dead end once you closed your repo tabs
Other
- rename crates/fim-engine/ -> crates/mnml-fim-engine/
- (v0.2.20) the file-manager release
Install mnml-rs 0.2.21
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/chris-mclennan/mnml/releases/download/v0.2.21/mnml-rs-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/chris-mclennan/mnml/releases/download/v0.2.21/mnml-rs-installer.ps1 | iex"
Download mnml-rs 0.2.21
─────────────────────────────────────────────┬───────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼───────────────────┼─────────────
mnml-rs-aarch64-apple-darwin.tar.xz │Apple Silicon macOS│checksum
─────────────────────────────────────────────┼───────────────────┼─────────────
mnml-rs-x86_64-apple-darwin.tar.xz │Intel macOS │checksum
─────────────────────────────────────────────┼───────────────────┼─────────────
mnml-rs-x86_64-pc-windows-gnu.zip │x64 MinGW │checksum
─────────────────────────────────────────────┼───────────────────┼─────────────
mnml-rs-x86_64-pc-windows-gnu.msi │x64 MinGW │checksum
─────────────────────────────────────────────┼───────────────────┼─────────────
mnml-rs-aarch64-unknown-linux-gnu.tar.xz │ARM64 Linux │checksum
─────────────────────────────────────────────┼───────────────────┼─────────────
mnml-rs-x86_64-unknown-linux-gnu.tar.xz │x64 Linux │checksum
─────────────────────────────────────────────┴───────────────────┴─────────────
v0.2.20 31 d’agost del 2026 — 64 bits MSI
Notes de la versió
Release Notes
A file manager, background file operations, and three separate editor
freezes fixed. The performance work matters most if you open large
files: mnml could lock up for minutes on a minified JSON file or on a
13,000-line source file, and both are now fast.
Added
- Files pane — a directory listing as a first-class pane
(files.open), so a file browser is just another thing you can split,
tab, and arrange. Navigation, sort, hidden-file toggle, a clickable
breadcrumb with a destinations picker (Home / Downloads / volumes /
workspaces / recents), git status badges per row, and p to preview
a file without leaving the listing.
- Multi-select in that pane. Space marks, a marks all, Esc
clears; every operation acts on the set. Reachable by mouse too —
Ctrl/Cmd-click toggles one, Shift-click extends a range, and the
right-click menu acts on the marked set rather than silently on the
row under the cursor.
- Dual file panes (commander layout) from the + menu.
- Background file transfers. Copy and move run off the render
thread, so a large directory can no longer freeze the editor. A
statusline chip shows progress and speed while one is running, hidden
entirely when nothing is; transfer.cancel_all in the palette.
- Notification history. Every message already recorded to
:messages now persists per workspace and survives a restart, with a
statusline badge counting unread warnings and errors. Info does not
light it.
- Submenus in context menus, and the + menu regrouped from ~15
flat rows into five. Each row carries a kebab for pinning, hiding, or
copying its command id, and your layout persists.
- TODO actions. The TODOs panel offers to hand a marker to an AI
session, listing whatever agents, commands, and skills the workspace's
own .claude/ directory contains, and falling back to plain Claude
Code or Codex when it has none.
- --no-session (also ./run.sh fresh) launches without restoring the
previous session — an escape hatch for the case where a restored pane
wedges the app and relaunching reopens it.
Fixed
- Three editor freezes on large files. A single very long line (a
minified 545 KB JSON file on one line) made the renderer redo
whole-line work for every visual row. Separately, line lookups scanned
the entire buffer on every call, and the statusline breadcrumb ran a
regex pass over the whole file every frame. On a 13,000-line file,
frame time went from 300 ms to 9 ms.
- Horizontal scrolling rendered nothing. With line wrap off, the
view window never moved, so anything past the viewport width on a long
line was unreachable and the cursor drifted off the character it was
on. Long-standing; found while reviewing the performance work.
- PageDown on a short file parked the cursor past the end and
painted a blank pane.
- Scroll acceleration is calibrated for terminals that multiply wheel
events, and defaults to a sane setting.
- Git panel: the rail scrolls, tags list newest first, a collapsed
section's count no longer changes as you scroll past it, and clicking
a branch reveals its commit with context instead of pinned to a screen
edge.
- The + dock chip no longer paints over the bottom-right pane's last
row, where clicking a file created a sticky note. Its actions moved
into the + menu.
- A menu left open no longer keeps the keyboard after a Ctrl+punctuation
chord.
Security
- Hardened the GitHub Actions workflows: event-supplied values reach
shell steps as environment variables rather than being interpolated
into the script, and every workflow declares least-privilege
permissions. Both classes were reported by code scanning.
Install mnml-rs 0.2.20
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/chris-mclennan/mnml/releases/download/v0.2.20/mnml-rs-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/chris-mclennan/mnml/releases/download/v0.2.20/mnml-rs-installer.ps1 | iex"
Download mnml-rs 0.2.20
─────────
v0.2.17 24 d’agost del 2026 — 64 bits MSI
Notes de la versió
Release Notes
Tree polish release. Iterative visual refinement of the file
tree's connector + chevron system plus a workspace-header
cleanup.
Added
- nvim-tree-style tree connectors (#1201). Every child row
now carries a │ line back to its parent, with the last child
in a directory getting the └ corner. Rendered in bg2 (a
step below comment) so they read as background trace marks;
chevrons paint at the same weight for a uniform look.
- Custom-baked connectors at F1F04 / F1F05 — a shifted
│/└ pair injected into MnmlSymbols.ttf by
scripts/inject_tree_connectors.py. Sits closer to the parent
folder-icon column above than plain U+2502/U+2514, and the L's
arm is tuned to visually match the vertical bar (CoreText was
rasterising the two at different weights).
- + New session action-chip constants and search-glyph
consolidation — every activity-panel action chip now shares
the same visual + interaction shape (#1195, #1200).
Changed
- Workspace header shows ~/Projects/mnml/ instead of a
bare mnml, so the active repo's location is visible at a
glance. Depth 1 rows shift 2 cells right so nested children
align under the parent's folder icon.
- Tree header icon cluster right-aligned — file/folder/pull/
collapse-all chips flush to the panel's right edge; refresh
glyph reserved to the top-right corner above the scrollbar
(#1021).
- Cursor-row connector fg lifts to bg3 so the trace lines
stay visible over the highlight background instead of
vanishing.
Removed
- Workspace up-nav (↑) chip + .. Projects row. The
view.workspace_up command, the App::navigate_workspace_up
method, the tree_up_row rect, and the HoverChip::TreeUpRow
variant are all gone — if a user wants another directory, they
add it as a workspace. Thorough cleanup across 10 sites
(command registry, hover-help, click handlers, IPC rects dump,
InfoViewCopy, dispatch).
Install mnml-rs 0.2.17
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/chris-mclennan/mnml/releases/download/v0.2.17/mnml-rs-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/chris-mclennan/mnml/releases/download/v0.2.17/mnml-rs-installer.ps1 | iex"
Download mnml-rs 0.2.17
─────────────────────────────────────────────┬───────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼───────────────────┼─────────────
mnml-rs-aarch64-apple-darwin.tar.xz │Apple Silicon macOS│checksum
─────────────────────────────────────────────┼───────────────────┼─────────────
mnml-rs-x86_64-apple-darwin.tar.xz │Intel macOS │checksum
─────────────────────────────────────────────┼───────────────────┼─────────────
mnml-rs-x86_64-pc-windows-gnu.zip │x64 MinGW │checksum
─────────────────────────────────────────────┼───────────────────┼─────────────
mnml-rs-x86_64-pc-windows-gnu.msi │x64 MinGW │checksum
─────────────────────────────────────────────┼───────────────────┼─────────────
mnml-rs-aarch64-unknown-linux-gnu.tar.xz │ARM64 Linux │checksum
─────────────────────────────────────────────┼───────────────────┼─────────────
mnml-rs-x86_64-unknown-linux-gnu.tar.xz │x64 Linux │checksum
─────────────────────────────────────────────┴───────────────────┴─────────────
v0.2.16 23 d’agost del 2026 — 64 bits MSI
Notes de la versió
Release Notes
Tester-round release. Two rounds of persona-driven bug hunts
(R10 nvchad-user / vscode-keyboard / api-workflow, then R11 of
each) turned up two SEV-1 stability bugs plus a wide field of
vim-fidelity + keyboard-completeness gaps. All fixed, most
with regression-lock tests.
Fixed
- Multi-cursor + /search + insert no longer panics
(#1149, 73618036). clear_find_and_deselect had cleared
extra_cursors but not extra_anchors, tripping a
debug_assert (and silently desyncing in release) on the very
next multi-cursor motion — the exact recovery gesture a user
would try after a /search on multi-cursor state. Both vecs
now clear together via Editor::clear_extra_cursors().
- <leader>n / [ui] line_numbers = false actually hides
the digits (#1149, 73618036 + 98c753ee). The renderer
was emitting format!("{:>0} ", n+1) which still produces
the digit at width 0. Guard the branch, and while
auditing, also fix the wrapped-continuation glyph's
gutter-width invariant for the same num_w == 0 case so
wrapped rows align with straight rows when line numbers
are off.
- Shift+Tab (both terminal forms) walks buffers
backward (#1149, 73618036 + 35d6a805). Some terminals
send Shift+Tab as Tab + SHIFT rather than BackTab;
bare Tab if !ctrl was catching that and running
buffer.next (the opposite direction). Explicit Tab if SHIFT arm added, ordered before the ctrl arm.
Ctrl+Shift+Tab now also lands on buffer.prev in both
vim and standard modes (VS Code muscle memory) — the
standard-mode binding was silently falling through to the
editor and inserting a literal \t.
- <leader>? cheatsheet Esc actually closes the pane
(#1149, 73618036). Was just refocusing off the pane
(which stayed open). NvChad's <leader>? is a floating
window that Esc dismisses; a Cheatsheet pane with no undo
state is safe to close on Esc.
- Y on empty line no longer captures \n (#1153, three
commits). NvChad's Y = y$ rewrite crossed the newline via
MoveRight on empty lines, so Y then p split whatever
was on the next line. Real vim y$ on empty is a no-op —
now matches. Same guard also fixes d$/c$ on empty which
used to delete the newline and merge lines.
- y operator now preserves the cursor across every yank
code path (#1153, three commits). All 5 yank arms —
generic motion, explicit Y, yf<c>/yt<c>, text-object
yanks (yiw, yap, ...), and ygn/ygN — now restore
ctx.cursor after YankSelection, matching vim's
y-preserves-cursor invariant.
- p no longer silently pastes stale system clipboard
after Y on empty line (#1149, 73618036). The
unnamed-register fallback path used to serve the OS
clipboard whenever it differed from the empty register.
Track register_owned — after any in-mnml yank/delete the
register is authoritative; only cold-start (pre-first-yank)
falls back to the OS. "+p still explicitly reads the OS
clipboard.
- Ctrl+K Ctrl+S opens keys.edit as advertised (#1154,
859b8ee5). The global Ctrl+S save-anywhere handler was
shadowing the chord chain. Guard on
pending_chord_seq.is_empty() so a chord in flight
resolves through the chain instead.
- Palette pane-scope regression fixed (#1154, 859b8ee5
- c1d2d5e9). priority = 1 from #1113 was a hard tier
that always beat fuzzy score, so common queries like
save file picked lsp.diagnostics_severity_filter_cycle
over file.save (a 341-score bull's-eye). New
PickerItem.score_bonus: i64 field lets you nudge without
the always-wins semantics — palette uses +20 for pane-
scope, +50 for recents, restoring the documented
"recents > pane-scoped > everything-else" invariant at
empty query while letting a strong match elsewhere still
win on typed queries.
- HTTP Env chip agrees with the pane (#1152, 56a94239).
Top-bar chip was using the legacy EnvSet::select and
showing none ▾ + warning-yellow when only workspace TOML
[http] default_env set the active env, while the Vars
tab / URL var-coloring / actual Send all correctly
resolved. Threaded config_default_env down + switched to
select_with_config_default.
- Response pane copy chip copies what's on
v0.2.13 20 d’agost del 2026 — 64 bits MSI
Notes de la versió
Release Notes
Marketplace + auto-update polish release. 52 commits over ~10 days
of live-user feedback. Headline: integrations can now self-update
on your schedule, with a per-integration opt-in toggle surfaced in
the right-click menu AND on the integration detail page, plus a
(Current) marker so the Installed tab tells you at a glance
whether you're on the latest.
Added
- Per-integration Auto-update toggle (#993 / #1088) — right-click
any integration chip → "Auto-update: ● on / ○ off", or click the
same toggle on the integration detail page's button strip. Fires
via integrations.fire_auto_updates_now (or the periodic
planner). Config resolution: per-integration override wins over
the global [integrations] auto_update flag. Each planned update
opens a visible Pty pane running cargo install … + <name> --install so you can watch the build.
- (Current) version marker (#1088 addendum) — Installed rows
render <version> (Current) when up-to-date, <version> → <latest> [ Update ] when behind. Integration detail page's
byline gets the same treatment: v0.3.17 · by <author> (Current) or → v0.3.18 available.
- Version + inline Update chip on Installed + Marketplace rows
(#1086) — no more hunting for the right-click menu just to see
which version you have or whether one's out.
- In-Development marketplace tab (#1056 / #1087) — config-gated
[marketplace] show_dev_tab opens a fourth tab (glyph U+EEF4
nf-fa-dev) for authors + testers to see unready siblings without
polluting the default Marketplace view.
- Marketplace "Ready" gate (#1055) — sibling authors declare
ready = true in their manifest to appear in the default
Marketplace tab. Non-ready siblings only show on the In-Development
tab, so users never install a WIP integration by accident.
- ⛶ maximize button on pane strips (#1018) — click to zoom the
focused pane; click again to restore. Palette: view.toggle_zoom.
- Claude chip sparkline + urgency signal (#1043) — 8-cell
spark of usage history + "use this account next" underline
when quota is imbalanced across multi-account setups.
- Configurable AI-review templates (#997) —
[ai.review_templates] config block. Per-user prompts for the
"Review with Claude / Review with Codex" chips on PR panes so
you can standardize your team's review rubric.
- Right-click context menus on integration chips (#992) —
"Update to X" / "Show in marketplace" contextual to the
chip's current state. Editor right-click gains "Explain with
Claude" / "Ask Claude…" (#980) on any selection.
- Jira Work Resolved / Unresolved / All scope dropdown
(#1084) — top-of-tab chip filters Ticket rows by resolution
state; auto-expand for unresolved tickets fixed at the same time.
- Jira Work refresh button (#1053) near the top of the pane.
- Jira PR row enrichment (#1051) — merged/open PRs inline with
action chips (approve / merge / open in browser).
- Bitbucket PRs + Pipelines lazy fetch (#1079) — only fetches
repos with activity in the last 2 weeks by default; "See more"
link at the bottom pulls the next batch. Cuts 429 pressure on
workspaces with hundreds of stale repos.
- MNML_DATA_ROOT env override (#1041) — hermetic sandbox
for tests + one-off runs. Points every state-file writer at the
given root instead of ~/Library/Application Support/mnml/.
- MNML_E2E_NETWORK gate (#1042) — network-dependent e2e
tests now opt-in via env var; CI runs without them by default.
- Timestamped-backup helper (#1039) — every programmatic TOML
write (5 sites) now stashes the prior version at <path>.bak- <YYYYMMDD-HHMMSS> before overwriting. Recovery is a mv.
- Startup layout schema (#878 step 1+2) — [[startup.layout]]
entries declare panes to open at boot. Foundation for the
broader programmatic-layout track; the resolver is wired but
the surface is still small.
Changed
- Ready badge dropped from Marketplace rows — every row is
Ready by definition (unready ones show on In-Development tab
only), so the badge became redundant noise.
- Hover-help drag grip (═════) above the panel bottom
removed (#
v0.2.12 18 d’agost del 2026 — 64 bits MSI
Notes de la versió
Release Notes
Bug-fix + polish release built from a long session of live-user feedback
(Chris + Liaan). Headline: SEV-1 leader-chord fix — bare <space>
now opens the NvChad-style whichkey overlay instead of evaporating,
restoring all ~60 <leader>* chords declared in the trie.
Added
- theme.auto_system — right-click theme chip → "Auto: match
system (light/dark)" now actually works. One-shot detection:
macOS defaults read -g AppleInterfaceStyle, Linux GNOME
gsettings + KDE Plasma kreadconfig6/5 fallback, Windows
AppsUseLightTheme registry. Dark → uses [ui] theme_toggle
alt-theme; light → [ui] theme default. (#1007)
- Codex API routing — first-launch wizard's AI billing pref
now exposes Api for Codex too (not just Sub / Off). Codex CLI
supports both ChatGPT Plus/Team sub auth and $OPENAI_API_KEY.
- Tri-state per-product AI backend routing — [ai.routing.claude]
/ [ai.routing.codex] blocks with Sub / API / Auto / Off choices,
wired into the first-launch wizard. Auto probes CLI-on-PATH +
env-key. Ghost-text default flipped to on.
- Ghost-text via Claude Code sub — no longer bills against API
tokens; uses claude -p under the hood.
Changed
- Empty-state tab bar renders per-tab — clicking + in the
top-right to create a new desktop tab now shows the empty-state
bar (left + + right split-cluster with Claude / ghostty / H / V)
same as first-launch. Prior check was app.panes.is_empty() which
only fires on a fresh workspace. (#1019)
- Tab-page chip spacing tightened — 1 2 3 instead of the
looser 1 2 3. Dropped a padding cell each side. (#1020)
- Wizard section reorder — Nerd Font → Input → Claude+Codex
install → AI billing → AI ghost-text → VSCode shim. Prior order
asked ghost-text backend first, before install / billing were
even covered.
- Statusline chips get pill treatment — Claude / Codex usage,
coverage, mixr all render on a distinct bg_darker pill so they
read as grouped chrome.
- Multi-account Claude ticker — the usage chip rotates
through accounts one at a time with a bold-active marker,
fitting 3+ accounts in the same width.
Fixed
- SEV-1: <space> opens whichkey via chord-chain fallback —
picker.files binds "space f f" making <space> a chord
prefix. Prior state: pressing <space> returned Pending with
no fallback; after the 1s timeout it evaporated. All ~60 leader
chords silently no-op'd (<leader>e fell through to vim as
end-of-word motion, etc.). Fix: added "space" to
whichkey.leader's keys so resolve_seq([space]) returns
PendingWithFallback(whichkey.leader). (#968)
- Tree-focused Space activates the row — reviewer follow-up on
the SEV-1 fix: pane_wants_bare_space now includes Tree focus
in the bypass, so bare Space in the workspace tree reaches the
documented tree_activate() handler instead of getting eaten
by the chord chain. Leader chords still work from any pane;
Ctrl+K opens whichkey from the tree. (#968 f/u)
- Tab-page close-button hitbox — bufferline_tab_page_close
rect was width: 1 but painted span was 2 cells. Right half of
the × was dead. (#1022)
- Theme detection on KDE — detect_system_dark was GNOME-only
via gsettings; KDE Plasma users got a false "system light"
report. Added kreadconfig6 → kreadconfig5 fallback. (#1007 f/u)
- Per-section hover-help for activity-bar icons — hovering
Explorer / Search / Git / Debug / Integrations / Sessions /
Agents / Cloud Agents / HTTP / Notes / TODOs / Findings all
previously showed the same generic "one of the sections that
shares the left panel" placeholder. Each now has a dedicated
title/body/palette-link entry. (#969)
Docs
- Removed stale "coming soon" claims from activity_bar.rs and
ActivitySection enum docs (all 5 sections ship live content).
(#1011)
- Site: dropped <meta name="robots" content="noindex, nofollow">
from astro.config.mjs — was blocking Google indexing. Added
Sitemap: line to robots.txt.
Install mnml-rs 0.2.12
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/chris-mclennan/mnml/releases/download/v0.2.12/mnml-rs-in
0.2.11 12 d’agost del 2026 — 64 bits MSI
Notes de la versió
Release Notes
Two flagship features on 8/11 — the first-launch wizard and the
per-integration auth SDK — plus a big 8/12 add: L2 demo mode
(mnml --demo), ghost-text via Claude Code sub, and a wizard
- hover-help polish pass driven by user feedback.
Added
- First-launch wizard (first_launch.show) — modal that
auto-opens on first-ever mnml launch, walks new users through
6 setup questions: AI ghost-text backend (Claude API / Local /
Skip), input style (vim / standard), Nerd Font check, Claude
Code + Codex install, VSCode code shim, process monitors.
Install sections spawn a Pty pane running the actual command
(npm install -g …, sudo ln -sf …, brew install …).
Esc = "Ask me later"; Enter = "Finish" (persists + suppresses
future auto-open).
- Per-integration Settings pane + [[auth]] manifest schema.
Integration authors declare auth fields (kind = secret / text
/ url / email / number, env_fallback, help_url, required)
via mnml-bridge 0.7.0's new AuthField. mnml core drives
three surfaces from those declarations:
- Configure pane: right-click chip → "Configure…"
renders a modal form (secrets masked). Ctrl+S writes to
[auth_values] in the same manifest TOML.
- First-hit auth guard: firing a command with a required
field unset (and no env fallback) opens the Configure pane
instead of silently spawning a broken Pty.
- Pty env-injection: at spawn time, [auth_values] flow
through as env vars using each field's env_fallback name
— cross-integration, so configuring bitbucket once gives
jira's Fix Versions view its $BITBUCKET_ACCESS_TOKEN for
free.
- Pilot siblings shipped with [[auth]]: mnml-msg-slack 0.1.3 (bot_token + team_id), mnml-forge-bitbucket 0.3.3
(app_password + username), mnml-tracker-jira 0.2.3 (site_url
- email + api_token).
- hover-help-writer agent (.claude/agents/) — audit/fill/
verify modes over src/ui/info_view_copy.rs; enumerates every
HoverChip variant + menu item + tree language, diffs
against the copy dictionary, reports gaps + drift.
- pr-reviewer agent — fetches a GitHub PR into an isolated
worktree, runs cargo build/clippy/test on the branch, stages a
severity-ranked review at .mnml/pr-reviews/<N>.md. Never
posts to GitHub — user posts after reading.
- crates/fim-engine/ — the local FIM completion engine is
now a workspace member (was a sibling repo at ../fim-engine/,
now vendored via git subtree with full history preserved).
Worktrees under the repo tree work again; no more cross-repo
coordination.
- Site manual: 2 new pages under site/src/content/docs/manual/
— first-launch wizard walkthrough + integration auth deep-dive.
- L2 demo mode (mnml --demo / ./run.sh demo). Boots against
a bundled Loop / Bloom Labs sample workspace (demo/workspace/)
copied to a per-user cache dir + git history seeded from the
shipped demo/workspace-git.tar.gz (fictional 10 commits, 4
authors, 2 feature branches). Auto-spawns a Python HTTP mock
server on localhost:7071 that serves 40 JSON fixtures under
demo/fixtures/{jira,bitbucket,github}/ — populated Jira
boards + sprints + tickets, Bitbucket repos + PRs + pipelines,
GitHub PRs + Actions runs. Env-injects the sibling env vars
(JIRA_BASE_URL etc) so integration panes route through the
mock. Clears [[workspaces]] from the in-memory config so the
tree rail doesn't leak the user's real workspace favorites.
Screenshot-ready without exposing real work.
- AI ghost-text via Claude Code subscription (SuggestBackend:: ClaudeCode) — reuses the OAuth access token Claude Code caches
(via crate::ai_usage::read_claude_token) so ghost-text calls
bill against Max/Pro plan quota instead of requiring a separate
$ANTHROPIC_API_KEY. Same /v1/messages endpoint; x-api-key
header carries the OAuth token (Anthropic 401s Bearer-carried
OAuth as of early-2026), + anthropic-beta: claude-code-20250219,oauth-2025-04-20 + Claude-Code identity
system-prompt fragment. Wizard's AI section gains a 4th radio
("Claude Code sub — uses your Max/Pro plan") and auto-selects
it when claude CLI + ~/.claude/ are both present. G
0.1.3 4 de juny del 2026 — 64 bits MSI
Notes de la versió
Install mnml-rs 0.1.3
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/chris-mclennan/mnml/releases/download/v0.1.3/mnml-rs-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/chris-mclennan/mnml/releases/download/v0.1.3/mnml-rs-installer.ps1 | iex"
Download mnml-rs 0.1.3
─────────────────────────────────────────────┬───────────────────┬─────────────
File │Platform │Checksum
─────────────────────────────────────────────┼───────────────────┼─────────────
mnml-rs-aarch64-apple-darwin.tar.xz │Apple Silicon macOS│checksum
─────────────────────────────────────────────┼───────────────────┼─────────────
mnml-rs-aarch64-apple-darwin.pkg │Apple Silicon macOS│checksum
─────────────────────────────────────────────┼───────────────────┼─────────────
mnml-rs-x86_64-apple-darwin.tar.xz │Intel macOS │checksum
─────────────────────────────────────────────┼───────────────────┼─────────────
mnml-rs-x86_64-apple-darwin.pkg │Intel macOS │checksum
─────────────────────────────────────────────┼───────────────────┼─────────────
mnml-rs-x86_64-pc-windows-msvc.zip │x64 Windows │checksum
─────────────────────────────────────────────┼───────────────────┼─────────────
mnml-rs-x86_64-pc-windows-msvc.msi │x64 Windows │checksum
─────────────────────────────────────────────┼───────────────────┼─────────────
mnml-rs-aarch64-unknown-linux-gnu.tar.xz │ARM64 Linux │checksum
─────────────────────────────────────────────┼───────────────────┼─────────────
mnml-rs-x86_64-unknown-linux-gnu.tar.xz │x64 Linux │checksum
─────────────────────────────────────────────┴───────────────────┴─────────────
0.1.2 2 de juny del 2026 — 64 bits MSI
mnml-rs-v0.2.16 23 d’agost del 2026 — 64 bits MSI
Notes de la versió
Release Notes
Tester-round release. Two rounds of persona-driven bug hunts
(R10 nvchad-user / vscode-keyboard / api-workflow, then R11 of
each) turned up two SEV-1 stability bugs plus a wide field of
vim-fidelity + keyboard-completeness gaps. All fixed, most
with regression-lock tests.
Fixed
- Multi-cursor + /search + insert no longer panics
(#1149, 73618036). clear_find_and_deselect had cleared
extra_cursors but not extra_anchors, tripping a
debug_assert (and silently desyncing in release) on the very
next multi-cursor motion — the exact recovery gesture a user
would try after a /search on multi-cursor state. Both vecs
now clear together via Editor::clear_extra_cursors().
- <leader>n / [ui] line_numbers = false actually hides
the digits (#1149, 73618036 + 98c753ee). The renderer
was emitting format!("{:>0} ", n+1) which still produces
the digit at width 0. Guard the branch, and while
auditing, also fix the wrapped-continuation glyph's
gutter-width invariant for the same num_w == 0 case so
wrapped rows align with straight rows when line numbers
are off.
- Shift+Tab (both terminal forms) walks buffers
backward (#1149, 73618036 + 35d6a805). Some terminals
send Shift+Tab as Tab + SHIFT rather than BackTab;
bare Tab if !ctrl was catching that and running
buffer.next (the opposite direction). Explicit Tab if SHIFT arm added, ordered before the ctrl arm.
Ctrl+Shift+Tab now also lands on buffer.prev in both
vim and standard modes (VS Code muscle memory) — the
standard-mode binding was silently falling through to the
editor and inserting a literal \t.
- <leader>? cheatsheet Esc actually closes the pane
(#1149, 73618036). Was just refocusing off the pane
(which stayed open). NvChad's <leader>? is a floating
window that Esc dismisses; a Cheatsheet pane with no undo
state is safe to close on Esc.
- Y on empty line no longer captures \n (#1153, three
commits). NvChad's Y = y$ rewrite crossed the newline via
MoveRight on empty lines, so Y then p split whatever
was on the next line. Real vim y$ on empty is a no-op —
now matches. Same guard also fixes d$/c$ on empty which
used to delete the newline and merge lines.
- y operator now preserves the cursor across every yank
code path (#1153, three commits). All 5 yank arms —
generic motion, explicit Y, yf<c>/yt<c>, text-object
yanks (yiw, yap, ...), and ygn/ygN — now restore
ctx.cursor after YankSelection, matching vim's
y-preserves-cursor invariant.
- p no longer silently pastes stale system clipboard
after Y on empty line (#1149, 73618036). The
unnamed-register fallback path used to serve the OS
clipboard whenever it differed from the empty register.
Track register_owned — after any in-mnml yank/delete the
register is authoritative; only cold-start (pre-first-yank)
falls back to the OS. "+p still explicitly reads the OS
clipboard.
- Ctrl+K Ctrl+S opens keys.edit as advertised (#1154,
859b8ee5). The global Ctrl+S save-anywhere handler was
shadowing the chord chain. Guard on
pending_chord_seq.is_empty() so a chord in flight
resolves through the chain instead.
- Palette pane-scope regression fixed (#1154, 859b8ee5
- c1d2d5e9). priority = 1 from #1113 was a hard tier
that always beat fuzzy score, so common queries like
save file picked lsp.diagnostics_severity_filter_cycle
over file.save (a 341-score bull's-eye). New
PickerItem.score_bonus: i64 field lets you nudge without
the always-wins semantics — palette uses +20 for pane-
scope, +50 for recents, restoring the documented
"recents > pane-scoped > everything-else" invariant at
empty query while letting a strong match elsewhere still
win on typed queries.
- HTTP Env chip agrees with the pane (#1152, 56a94239).
Top-bar chip was using the legacy EnvSet::select and
showing none ▾ + warning-yellow when only workspace TOML
[http] default_env set the active env, while the Vars
tab / URL var-coloring / actual Send all correctly
resolved. Threaded config_default_env down + switched to
select_with_config_default.
- Response pane copy chip copies what's on

El més popular a Editors de text

Mostra-ho tot
  1. Notepad++Editors de text · Notepad++ Team
  2. AtomEditors de text · GitHub Inc.
  3. NeovimEditors de text · neovim.io
  4. GeanyEditors de text · The Geany developer team
  5. WordPress.comEditors de text · Automattic Inc.
  6. FontForgeEditors de text · FontForgeBuilds
  7. BracketsEditors de text · brackets.io
  8. AvidemuxEditors de text · Avidemux
  9. Markdown MonsterEditors de text · West Wind Technologies
  10. MarkTextEditors de text · Jocs

Més programes de Chris McLennan

Mostra-ho tot
  • mixrTerminals i línia d’ordres · Chris McLennan
  • tmnlTerminals i línia d’ordres · Chris McLennan

Etiquetes

Comparteix