Skip to content

Releases: sazardev/leader

Leader 1.14.2: an empty __init__.py is not a failure

Choose a tag to compare

@sazardev sazardev released this 21 Oct 20:32

Leader 1.14.2 (includes 1.14.1 and 1.14.0)

Highlights

  • An empty file can be a right answer: a build used to report a failure for every file the model left empty, including the ones
    that are correct that way (a Python __init__.py, a .gitkeep, py.typed, the requirements file of a project with no
    dependencies). It now does for those what it should: nothing.

Fixes

  • build: an empty init.py is not a failed answer (5ecfbb0)

1.14.1

Highlights

  • Checked against a real build: a build of a small project with Claude Haiku (13 files, $0.03, under 3 minutes) did what the
    1.14.0 notes promise: it named its riskiest requirement, deferred the one SPEC.md left open and said why, ended ⚠ built · 3/4 requirements have a test instead of ✓, and left a .leader/ folder with nothing of the project in it. Two details came out
    of it and are fixed here: the plan review no longer calls a test that uses a fake or a temporary directory a "stand-in", and the
    builder's own wiring check is recorded under its name.

Fixes

  • build: tests are not stand-ins, name the wiring check (1ff9203)

Verify: see packaging/README.md (every file has a detached signature from the Leader Releases key; SHA256SUMS is signed).

Leader 1.14.1: honest builds and a local .leader folder

Choose a tag to compare

@sazardev sazardev released this 21 Oct 19:45

Leader 1.14.1 (includes 1.14.0)

Highlights

  • Checked against a real build: a build of a small project with Claude Haiku (13 files, $0.03, under 3 minutes) did what the
    1.14.0 notes promise: it named its riskiest requirement, deferred the one SPEC.md left open and said why, ended ⚠ built · 3/4 requirements have a test instead of ✓, and left a .leader/ folder with nothing of the project in it. Two details came out
    of it and are fixed here: the plan review no longer calls a test that uses a fake or a temporary directory a "stand-in", and the
    builder's own wiring check is recorded under its name.

Fixes

  • build: tests are not stand-ins, name the wiring check (1ff9203)

1.14.0

Highlights

  • A build no longer calls itself done when it only compiles: the closing line now says what is proven, e.g. ◐ built · 23 files · checks pass · 5/17 requirements have a test · core without one: FR-16 · 2 placeholders, and it is ✓ only when every requirement has a
    test and nothing is open. PROGRESS.md carries the same proof and what is open. A layer build (foundation, design, domain) reports the
    numbers but keeps ✓; kit.build.strict makes an unproven build a failure.
  • A repair cannot delete your code quietly: before a replan trashes files, the review lists what goes (lines, public types, tests, who
    still uses them) and asks, and the closing line counts the public declarations a build removed or the tests it made unproven.
  • Layers build on the code that is there: a whole-project build used to plan from the documents and the ADRs' text only, so it wrote
    the code earlier builds had left a second time under other names (two ports, two controllers, hundreds of analyzer errors). It now sees
    the project's files and their API. A free check fails when a public type is declared in two files, Flutter projects run flutter test
    and Rust ones cargo test, and plans name their risks and what they defer, with a warning for stand-ins of core requirements.
  • .leader/ in every project the builder touches: how Leader worked there (how builds end, which checks fail, what a model costs,
    whether you accept a proposal) as counts, sizes, durations, costs and outcomes, for measuring and improving Leader from real use.
    Offline: nothing is ever sent. It is never your work: a schema is the only gate, so unknown fields are dropped, file names are salted
    hashes, and there is no code, prompt, answer, name or text. The folder documents itself, ignores itself in git, <leader>aSl shows the
    report, LEADER_NO_DATA=1 turns it off, and deleting it clears everything.

Features

  • build: honest builds and a local .leader folder (1cb1c6e)

Fixes

  • build: skip examples in the duplicate check, hide custom models (bebfb1d)

Documentation

  • build: proof, loss gate, duplicates and the .leader folder (94a536e)

Chores

  • deps: update the plugin lockfile (3ab99c6)

Verify: see packaging/README.md (every file has a detached signature from the Leader Releases key; SHA256SUMS is signed).

Leader 1.12.2: your nvim speaks Herdr

Pre-release

Choose a tag to compare

@sazardev sazardev released this 21 Oct 16:39

Highlights

  • Your nvim now speaks Herdr: Herdr is the terminal workspace that runs the coding agents, and
    Leader talks to its CLI. <leader>Wa opens the breakdown of the workspace: one row per agent grouped by workspace (its
    state, the agent and where it is), the transcript of the one under the cursor and why Herdr thinks it is in that
    state (the rule that matched). It refreshes on its own, so what is on screen is the state now. <leader>Ws is the
    setup: it detects the binary, the version, the server and the agents' integrations, and installs what is missing
    (nothing without the button) — the installer does the same, and the start screen gets an Agents button when Herdr
    is there.
  • And Herdr sees what your nvim is doing: nvim registers itself as an agent of the workspace and says what it is
    doing (working while the inline agent runs, blocked while a proposal waits for you, idle otherwise), so the
    Agents panel of Herdr shows it. It never takes the pane from a real agent that already owns it, and a headless nvim (a
    script, a test) does not register at all.

Features

  • herdr: the workspace of agents under W (135c337)

These binaries are NOT signed. The release key ("Leader Releases",
8E437A7936E48EAEDA88CD73A7DCC3DBB671476A) is not on the machine that built this
pre-release, so there is no .asc next to the files. The one-command installer
(releases/latest/download/leader-installer.sh) keeps serving the signed v1.12.0
until this one is signed; this pre-release does not replace it.

To sign it: put the key in ~/.gnupg-leader-releases and run app/package.sh again —
the .asc files and the signed SHA256SUMS appear next to these.

Leader 1.12.0: faster Lua, Flutter run/stop, sessions safe from tests

Choose a tag to compare

@sazardev sazardev released this 21 Oct 02:29

Highlights

  • Lua answers across files ~2.5x sooner: Lua now uses emmylua_ls (a Rust server) when it is installed, and lua_ls
    otherwise. On this repo's 670 files cross-file go-to-definition worked at ~0.7 s against ~3.8 s on the bare workspace,
    and ~2.5x sooner with the full config, with the same hover, completion and diagnostics. lua_ls keeps nothing between
    sessions and its maxPreload has no effect, so the way to speed it up was a faster server. Mason installs it with the
    rest; settings.lsp.lua_server forces either one.
  • <leader>dr runs and stops a Flutter app: pressed again while the app runs, it quits it and closes the debugger and
    every panel that opened, instead of only saying it is already running.
  • Your sessions are safe from tests: Neovim saves a session on every exit, and a headless test that opened temp files
    in a repo replaced that folder's real session with files that no longer existed, so restoring the project opened an empty
    buffer. Persistence now stays off without a UI, every test script runs against a throwaway state directory, and the whole
    suite leaves sessions, recent files, agent history and logs byte-identical.

Features

  • dart: leader dr toggles run/stop (fffd15c)

Fixes

  • sessions: tests and headless runs never write your state (db55542)

Performance

  • lsp: Lua gets emmylua_ls when it is installed (~2.5x faster) (ccc1a54)

Leader 1.10.0: signed packages, a .deb, Arch, the logo

Choose a tag to compare

@sazardev sazardev released this 20 Oct 17:41

Highlights

  • Install it the way your system expects: a .deb for Debian, Ubuntu, Mint and Pop!_OS, PKGBUILDs for Arch and CachyOS
    (prebuilt and from source), the one-command installer for any Linux and WSL, and ./install.sh --app from a clone. They
    add the menu entry, the icons, the manual (man leader) and leader-setup, and uninstalling removes exactly what was
    installed.
  • Signed releases: every file has a SHA-256 and a detached signature by the Leader Releases key (fingerprint in
    packaging/README.md). The installer requires a signature made by exactly that key when gpg is installed, and refuses
    a forged or missing one.
  • The logo, clear: the N is the window icon, the menu icon at every size (a solid N when small, the dotted one when
    large) and the art of the About dialog. The app id is io.github.sazardev.Leader, so launchers pair the window with
    its icon and menu entry.
  • First launch that explains itself: no Neovim says so in a notification; no Neovim config runs leader-setup in the
    window's own terminal. AppStream metadata, a New Window action, a license (MIT) and a site with Open Graph cards,
    structured data, a sitemap and real screenshots.

Features

  • site: SEO, screenshots, install options for every system (eab5dbc)
  • packaging: signed releases, a .deb and Arch PKGBUILDs (3ebec37)
  • app: the logo everywhere, an app id, first-launch setup (035cbea)

Install

System How
Any Linux x86_64, WSL curl -fsSL https://github.com/sazardev/leader/releases/latest/download/leader-installer.sh | bash
Debian, Ubuntu, Mint, Pop!_OS sudo apt install ./leader-editor-amd64.deb
Arch, CachyOS, Manjaro packaging/arch/leader-editor-bin (makepkg -si)

Verify: SHA256SUMS and the .asc signatures, made by the Leader Releases key 8E43 7A79 36E4 8EAE DA88 CD73 A7DC C3DB B671 476A (how).

Leader 1.9.0: projects first, updates, Esc closes everything

Choose a tag to compare

@sazardev sazardev released this 20 Oct 17:08

Highlights

  • Projects first, like an IDE: Leader asks which project to open when it starts (or reopens the last one, or shows the
    start screen: your choice), leader <folder> opens that folder, and starting inside a repo opens that repo. The picker
    keeps its facts and the list it found on disk, reads git in the background one folder at a time, pins projects (p),
    and a Yazi-like browser (b: h up, l in, Enter opens) walks your folders.
  • Updates, connected: a ↑ 1.9.0 badge in the bar and a line at the top of the logo's menu when a newer version
    exists; a page shows what changed version by version and updates on request (the config with git pull --ff-only, the
    app through its installer). One tiny request, never more often than every 12 hours, never updates by itself.
  • Recent files that belong to the project you are in, not everything you ever opened (Ctrl+A widens it).
  • Esc closes whatever is extra: help, quickfix, panels, floats, pickers (from insert too), lone tabs; never the last
    window. The hidden cursor has one owner list now, so it can no longer stay invisible after pages overlap.
  • Install progress in numbers: every language tool with its state, time, bytes and speed, a bar, and a warning
    when data stops arriving. The window remembers its size, place and maximized state; the frame is yours to pick.
  • Speed: hovering never scrolls a list, hovers are coalesced, Telescope no longer leaks a buffer per open, streaming
    answers redraw at most every 40 ms, and a list that fails to open leaves nothing behind.

Features

  • gui: projects first, a folder browser, install progress, Esc (e9ccc65)
  • app: keep the window's size, place and maximized state (fd876ef)
  • ui: one owner list for the hidden cursor, Esc closes extra windows (0157e10)
  • update: detect new versions, show the changelog, update on request (3eac257)
  • recent: recent files that belong to the project you are in (9ac6d49)

Leader 1.7.0: the editor, in its own window

Choose a tag to compare

@sazardev sazardev released this 20 Oct 01:49

Leader for the desktop

Leader 1.7.0: the editor, in its own window

Leader now has a desktop app for Linux. leader is Neovim with Leader's config in its own GPU window, written in Rust: the
same editor you know, drawn in a single GPU draw call per frame and idle between keystrokes (~170 ms to the first frame,
GPU start included). On top of it, everything a desktop IDE should have: Zed-like menus, a command palette, your
projects, a project picker, a live status of what is running, and the mouse everywhere.

Install in one command

curl -fsSL https://github.com/sazardev/leader/releases/latest/download/leader-installer.sh | bash

It downloads the package, checks its SHA-256 and runs a guided installer:

  1. Checks this machine: Linux x86_64, glibc 2.31 or newer (Ubuntu 20.04, Debian 11, Fedora 32 and newer), a Wayland or X11 desktop, or WSL with WSLg.
  2. Installs the app: ~/.local/bin/leader, Leader in your applications menu, its icon.
  3. Brings the editor when it is missing or older than the app: Neovim, Leader's config, plugins, language tools and parsers, through Leader's own installer. An existing Neovim config is moved to nvim.bak-<date>, never deleted.
  4. Opens Leader. The first launch is the welcome screen: it checks Neovim, plugins, parsers, language tools, the font, the GPU, the clipboard, your system tools and the AI agent, and installs what is missing with Enter.

Prefer the archive? Download leader-linux-x86_64.tar.gz, extract it and run ./install.sh (--help lists --yes, --no-config, --prefix, --uninstall). From a clone: ./install.sh --app builds it from source.

A tour

The app menu (Leader's N, F10): File, Edit, Selection, View, Go, Run, Git, Agent, Window and Help. Every item does exactly what Leader's own key does, and shows it.
The command palette (Ctrl+Shift+P): every menu item and every key of the config in one search.
Open a project (Ctrl+Shift+O): the projects you worked in and every git project on your machine, the one under the pointer described on the right (branch, last commit, its stack, its README). Switching saves your session and brings the other project's back.
The welcome screen: what this machine has and what is missing, fixed with Enter. It comes back with the bar's "to finish" chip or Ctrl+Shift+W.
  • A bar that is part of the editor: the editor's own color, it steps back while a modal is open. The current file as a clickable path, live activity (LSP indexing with its progress, installs, saves), and only what the statusline does not already say.
  • Mouse everywhere: menus, pickers, modals, Telescope, the tree and the start screen follow the pointer and answer a click.
  • Built for speed: nothing renders between keystrokes, glyphs are cached in a GPU atlas, block and box characters are drawn exactly so the flat design tiles with no seams. On WSL it draws with your Windows GPU through WSLg.
  • Window keys: F11 fullscreen, Ctrl+Shift+N new window, Ctrl+Shift+H home, Ctrl+Shift+R recent files, Ctrl+= / Ctrl+- / Ctrl+0 font size.

What else is new in 1.7.0

Highlights

  • Leader for the desktop (Linux and WSL): leader, a GPU window for the editor written in Rust. The same config,
    drawn in one GPU draw call per frame, nothing running between keystrokes, ~170 ms to the first frame. Its own bar in the
    theme's colors: Zed-like menus (File, Edit, Selection, View, Go, Run, Git, Agent, Window, Help), a command palette
    (Ctrl+Shift+P), the projects you work in (switched with their sessions) and a full-screen project picker
    (Ctrl+Shift+O), the current file as a clickable path, live activity (LSP indexing, installs, saves). Full mouse:
    menus, pickers, modals, Telescope, the tree and the start screen follow the pointer and answer a click. A welcome
    screen checks the install and fixes what is missing. Install it in one command
    (curl -fsSL https://github.com/sazardev/leader/releases/latest/download/leader-installer.sh | bash: the app, plus
    Neovim and the config when they are missing; Linux x86_64 with glibc 2.31+, WSL with WSLg) or from a clone with
    ./install.sh --app.
  • Doctor (<leader>aX): a troubleshooting agent for builds that fail, apps that will not start or crash. Free
    checks first (dependencies, lockfile, .env, toolchain versions, a merge in progress), then one confirmed request.
  • Merge conflicts (<leader>Gx): trivial ones resolved for free, the rest one proposal per conflict.
  • Language packs: Python, TypeScript, Rust, SQL, Swift, JVM and more as packs, with tests in the editor, project
    setup presets, debugging and a SQL runner. The installer asks once which packs you want.
  • A full-screen marketplace for SPEC.md modules and STACK.md / DESIGN.md add-ons, and a bigger library of each.
  • Leader is the new name (repo sazardev/leader), with a brand kit, wallpapers and a scripted product video.

Features

  • app: release package with a guided installer (9cb78d4)
  • gui: the config side of the desktop app (8c320ce)
  • app: Leader desktop app, a GPU front-end for Neovim (f0ee3b0)
  • site: wallpapers page, fed by a release of the brand assets (196b936)
  • brand: logo, image catalog and wallpaper collection (602c5a7)
  • video: scripted product video with keys, effects and score (9ec8b75)
  • agent: doctor, a troubleshooting agent (4b23e52)
  • git: merge conflict assistant (818657c)
  • kit: full-screen marketplace and a bigger library (af08bb9)
  • agent: statusline badge for one-shot requests (a2b18f9)
  • languages: packs, tests in the editor, setup and SQL runner (4c6f2a1)
  • agent: SPEC.md modules for what every app repeats (50e3da4)

Fixes

  • kit: drop a stray local path from the design presets (9ced0ca)

Other changes

  • docs(app): install and document the desktop app (fb4775e)
  • chore(rename): rename my-nvim-setup to Leader (0a5425c)
  • docs(agent): document the doctor, conflicts and marketplace (3a3e74a)
  • docs(docs): list Go and Dart / Flutter under Languages (4270f1f)

Files

File What it is
leader-installer.sh the one-command installer (downloads, verifies and installs the package)
leader-linux-x86_64.tar.gz the app, its menu entry and icon, the guided installer, this changelog
leader-linux-x86_64.tar.gz.sha256 its SHA-256

Leader brand assets (brand-1)

Choose a tag to compare

@sazardev sazardev released this 19 Oct 22:50

Wallpapers, images and the video of Leader's brand kit, built from commit 196b936.

Wallpapers: 102 designs in 270 files. Pick one by device on https://sazardev.github.io/leader/wallpapers/ or download a whole device:

  • leader-wallpapers-phone.zip: Phone 1170×2532, 96 images (14.1 MB)
  • leader-wallpapers-desktop.zip: Desktop 2560×1440, 102 images (18.4 MB)
  • leader-wallpapers-ultrawide.zip: Ultrawide 3440×1440, 60 images (11.8 MB)
  • leader-wallpapers-4k.zip: 4K 3840×2160, 12 images (4.1 MB)

Brand kit: leader-brand-kit-1-landscape-square-logo.zip and leader-brand-kit-2-portrait-story-carousel.zip (every post size, carousels, banners, avatars, the logo and logo/svg), and leader-brand-USAGE.md (what goes where, with the text to post).

Video: leader-video-1080p.mp4.

Single wallpapers are named <device>-<design>.png (phone-, desktop-, ultrawide-, 4k-). This release is not a version of the config: its tag points to a commit outside master.