Skip to content

Releases: SeaLoong/xnip

v0.5.7

Choose a tag to compare

@github-actions github-actions released this 21 Oct 19:40

Release v0.5.7

User-focused documentation and stricter, retry-safe release publication.

  • Refresh both READMEs with status badges, standalone installation, practical editing and MCP examples, and a concise benchmark summary. Keep npm as an alternative and remove fixed release references and development details from the user entry points.
  • Align the stable publishing workflow filename with the configured publish.yml trusted publisher.
  • Isolate npm Trusted Publishing from project, user and environment credentials so failed OIDC authentication cannot fall back to a publishing token. Require signed provenance for each OIDC publication.
  • Retry bounded reads when a newly created GitHub release draft is temporarily invisible, without creating a second draft or relaxing release identity and asset checks.

Build commit: 4e1189f36a11f73b7a35816508e46f7e6b718057

v0.5.5

Choose a tag to compare

@github-actions github-actions released this 21 Oct 17:40

Release v0.5.5

DSH, Pi and Goose integrations, expanded native-editor benchmarks, and npm distribution of the same Rust CLI/MCP executable.

  • Add DSH bundle/MCP, Pi session extension and Goose stdio configurations, with explicit cwd, lifecycle and local-package setup.
  • Extend horizontal native-editor benchmarks with pinned official DSH, Pi and Goose executors, guarded and whole-write strategies, observable read prerequisites, byte-level checks and separate host MCP accounting.
  • Upgrade the MCP SDK for Goose's default modern discovery negotiation while retaining legacy initialization; test both protocol lifecycles, error recovery and clean EOF shutdown.
  • Distribute the xnip executable through the xnip-cli npm parent and six xnip-* platform packages, with xnip-cli/native, xnip-cli/dsh and xnip-cli/pi entries. Verify native payload hashes, embedded build identities, immutable execution caches and offline local tarballs. Keep local preparation private and require an explicit, complete public release.
  • Cover real harness registration/disposal, editing semantics, package integrity, concurrent first launch, active-session package removal and abrupt wrapper shutdown. Add scoped CI checks and refresh integration, benchmark and packaging documentation.
  • Handle delayed npm registry visibility by submitting native packages as a batch and verifying every platform before publishing the parent. Report definite npm rejections with credential-free error categories after one exact-version check; retain bounded verification for uncertain network results.
  • Build and validate npm tarballs from the same six-platform release artifacts in CI, publish platform packages before the parent with explicit stable/development channels, verify registry integrity, and preserve resumable release behavior.
  • Update rustls-webpki to 0.103.16 and webpki-roots to 1.0.10 to address RUSTSEC-2026-0382 and RUSTSEC-2026-0381; retain the bundled certificate data license notice.
  • Disable dev-profile debug symbols in CI while retaining assertions and payload-size checks; locate the bundled npm CLI through both Windows and POSIX installation layouts.

Build commit: 18cbf82455872825c459e03699763cfb2750d881

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 19:26

Release v0.4.0

Smaller edit representations, reusable batch buffers and concise MCP receipts. Whole-file writes, literal insertion and compact file groups share the same validation and recovery path.

  • Add explicit byte-preserving whole-file writes with optional complete-content guards, plus insertion beside a unique literal anchor.
  • Accept compact file-group batches in MCP and CLI: share paths across ordered exact pairs or whole-file writes, reject aliases and validate all groups before committing. Use shared Windows Unicode path identities for alias checks and transaction lookup.
  • Support multiline quoted native payloads and guarded write instructions without nested JSON escaping.
  • Reduce line replacement to byte-span copies, assemble independent line batches once and share transaction snapshots. Ordered unique exact edits reuse copy-on-write buffers after validating each guard; identical edits avoid result allocation.
  • Keep normal MCP batch and global-edit receipts to written; retain paths, match counts and execution modes in structured results. Add opt-in mcp --receipts text to omit structured results and their output schemas for agent clients, without constructing discarded metadata. Omit optional success flags and redundant false-default schema annotations.
  • Preserve detailed MCP parameter error causes, move owned manifest strings without cloning, and detect inline JSON without duplicate native parsing.
  • Add scoped CI verification, six-platform release builds and automatic development prereleases; stable tags reuse full verification for the exact release commit.
  • Refresh CLI/MCP, integration, architecture, update and benchmark documentation and packaged agent references.
  • Expand horizontal native benchmarks with relative paths, guarded and snapshot strategies, tighter native encodings, separate transport costs and byte-exact per-task frontiers.

Build commit: 0b7155cab1c647923ac37adb407d775af404bf4e

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 18 Oct 13:37

Release v0.3.1

Smaller edit inputs and responses, byte-preserving operations, and silent background updates. The README now includes reproducible native-editor benchmark conclusions and an overview chart.

Compatibility

  • MCP advertises five tools by default: edit, apply, peek, find and recover. Use xnip mcp --toolset full to expose all ten tools.
  • Reads default to 200 lines or 100 search hits and 12,000 payload bytes. Previews also default to 12,000 bytes; zero disables the corresponding cap. Truncation is explicit, including quiet mode.
  • MCP rejects unknown arguments, including misspelled preview/check flags.
  • apply --check no longer writes stdout OK. Use structured JSON receipts for scripts.
  • Independent overlapping line edits are rejected; use --sequential for dependent operations.

Editing and context

  • Accept direct ordered edits arrays for MCP exact batches, without a nested manifest string.
  • Reduce ordinary MCP write text to written; retain complete structured results and exceptional details. CLI defaults to one compact receipt, with JSON and expanded human output available.
  • Share CLI/MCP read selection and budget behavior. Stream line selections and search hits without retaining a full line index or match list. Skip unused diffs during checks and non-preview renames.
  • Fix empty-marker panics, context overflow, IO exit classification and missing retained rename journals.
  • Provide concise Codex AGENTS instructions and an on-demand guide; synchronize the six editing references across integrations.

Silent updates

  • Add detached, nonblocking update checks with an OS-lock singleton per installation. Live MCP leases and a 30-minute CLI idle tail defer installation until the next eligible use; a prepared update has a 24-hour maximum deferral.
  • Prefer GH-Proxy for public release metadata and assets; retry failed delivery directly against GitHub within one bounded HTTP budget. XNIP_UPDATE_PROXY=direct selects the official HTTPS route alone.
  • Verify stable newer releases, archive checksums, paths and executable hashes. Existing mapped processes keep running across replacement. Windows state replacement supports concurrent readers without sleeps or retries.
  • Keep checks, failures, fallback markers and retained backups in private state. No update notifications or text enter CLI/MCP responses.

Evidence and distribution

  • Execute native Codex, Gemini CLI, OpenCode and aider editing tools against xnip on 13 scenarios, with three repetitions, byte-level oracles, paired relative costs and reproducible charts. These measure editing executors, not full agent/model token usage.
  • Rewrite behavior contracts around independent byte and sequence oracles, including lifecycle, recovery, budgets, transports and updater subprocesses.
  • Automatically build six release targets after qualifying default-branch changes and successful CI. Verify all 21 assets in a draft before publishing; support safe reruns and protect existing tags/assets.
  • A matching stable tag on the same commit suppresses a duplicate automatic prerelease. Stable releases include the matching changelog section in their release notes.

Build commit: 369d3227afd036ee592623901ef2fefd4bfbc6b5

xnip v0.2.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 20:53

xnip v0.2.0

This release completes the next default-editor workflow: exact file editing, no-clobber rename, text patch import, ordered file lifecycle batches and journal-assisted recovery.

本版补齐默认编辑工作流:精确文本编辑、整文件重命名、补丁导入、批量创建/删除及失败恢复。

New capabilities

  • xnip edit / xnip_edit: create files, replace unique literal blocks, delete regular files, and rename to an absent destination. CLI and MCP support preview/check and backups.
  • xnip apply --format patch: unified text diffs and *** Begin Patch documents, including add/update/delete/move, CRLF/EOF handling and Git-quoted UTF-8 paths. --patch-root / MCP patch_root explicitly selects the project directory.
  • Native/JSON/YAML manifests now support create, delete, rename and literal edit. File operations and patches use input-order virtual planning; --sequential enables dependent legacy operations too.
  • Commit failures attempt rollback and retain integrity-checked original/planned snapshots. xnip recover JOURNAL --check / --dry-run / restore, and MCP xnip_recover, allow explicit recovery after an interrupted transaction.
  • MCP apply now previews/checks without writing diffs to protocol stdout. The server exposes 10 tools.
  • Windows persistent-session doctor deadlocks are fixed. Skills use xnip as the default text editor while reusing known context; detailed references are loaded only as needed.

Install

# macOS / Linux
curl -fsSL https://github.com/SeaLoong/xnip/releases/latest/download/install.sh | sh
# Windows PowerShell
Invoke-RestMethod https://github.com/SeaLoong/xnip/releases/latest/download/install.ps1 | Invoke-Expression
# Source install, Rust 1.89+
cargo install --git https://github.com/SeaLoong/xnip --tag v0.2.0 --locked xnip

Six binary archives cover Linux musl, macOS and Windows in x86_64/ARM64 variants. SHA256 sidecars, both installers and six Agent integration packages are attached. Refresh the MCP connection after upgrading to load the new tool schemas.

Contracts and limits

  • Pure moves preserve identity with a no-clobber hard-link/unlink sequence on the same filesystem. There can briefly be two names; cross-device moves, unsupported hard-link filesystems and case-only moves on case-insensitive filesystems fail explicitly.
  • Batches validate before writing, but are not cross-file atomic visibility or a lock against external writers. Rollback can fail or refuse detected conflicts; inspect the journal/status before retrying. Recovery does not force-overwrite external changes.
  • Journals require temporary space and contain original/planned content. Successful commits clean them up; failed/interrupted transactions retain them for recovery. This is not an automatic undo history or a universal power-loss guarantee.
  • Patch import is UTF-8 text-only. Binary and mode-only patches are rejected. Literal editing remains byte-preserving.

中文说明 · Editing · Patch import · Recovery · Changelog

Final cross-platform CI

xnip v0.1.1

Choose a tag to compare

@github-actions github-actions released this 15 Oct 09:57

First official release of xnip, a standalone CLI and MCP stdio server for precise local text editing.

这是 xnip 的首个正式版本,提供精准文本编辑 CLI、批量清单和 MCP stdio 服务。

Included

  • Nine commands: peek, find, replace, insert, move, indent, apply, mcp, doctor.
  • Native, JSON and YAML batch manifests; dry-run/check modes; per-file atomic writes, backups and expected-content checks.
  • Eight structured MCP tools and six Agent integration packages.
  • Binary archives for Linux musl, macOS and Windows, each in x86_64 and ARM64 variants, with SHA256 sidecars. Archives include the MIT license and README.
  • Installation, CLI, MCP, troubleshooting, contributor and release documentation, plus safety and installer regression tests.

Install

macOS / Linux:

curl -fsSL https://github.com/SeaLoong/xnip/releases/latest/download/install.sh | sh

Windows PowerShell:

Invoke-RestMethod https://github.com/SeaLoong/xnip/releases/latest/download/install.ps1 | Invoke-Expression

With Rust 1.89+:

cargo install --git https://github.com/SeaLoong/xnip --tag v0.1.1 --locked xnip

The installers verify downloaded archive SHA256 hashes. Add the installation directory to PATH if needed, then run xnip doctor. See installation and troubleshooting for pinned versions and manual verification.

Compatibility and limits

  • Prebuilt binaries do not require Rust; source builds require Rust 1.89+.
  • Backups use the full name, such as main.rs.bak.
  • Batch commits are atomic per file, not across the whole batch. Commit failures report already-committed files; no automatic rollback is performed.
  • --revert is a constrained inverse operation, not a history stack. Use Git or backups for exact recovery.
  • MCP write tools commit immediately after validation and use the launching user's filesystem permissions. Use CLI preview/check modes when you need a non-writing operation.

Full changelog · 中文说明 · Runnable tutorial · Cross-platform CI

The earlier v0.1.0 tag was used during release validation and has no published GitHub Release. v0.1.1 is the first public release.