Documentation

Changelog

Ringly release notes in Keep a Changelog format.

Format based on Keep a ChangelogSemVer versioning. Full history in the CHANGELOG.md of the repository.

v0.6.0 — 2026-05-26

Added

  • Friendly summary inside /ringly-update — before asking for confirmation, the slash command now shows a short summary (≤10 lines) of what changed in the new version, read from the packaged CHANGELOG.md and rewritten in plain language. Structure: What’s new / Changes / Fixes / ⚠ Breaking changes.
  • New /ringly-help slash command — shows the ringly help output straight inside the Claude Code chat, with a visible warning that commands run in the external terminal.
  • Translated ringly help subcommand — replaces yargs’ hardcoded-English output with a version that honors the configured language.

Changed

  • /ringly-update now respects the language across every message it writes itself. The ringly update --check JSON snapshot embeds the resolved language (never “auto”), and the slash command’s .md uses that field as the single source of truth.
  • ringly update --check schema extended to {current, latest, hasUpdate, reachable, language, notes}. The 4 old fields are identical — no breaking change.

Tests

  • +30 new tests (from 133 to 163). changelog.test.ts (18 parser scenarios), help.test.ts (5 rendered-help scenarios), update.test.ts (6 buildNotesFor scenarios).

v0.5.2 — 2026-05-26

Changed

  • Leaner hook bundle. claudeSettings.ts is now strictly read-only; claudeSettingsWrite.ts carries everything that writes. Same separation applied to config.ts vs configWrite.ts. Result: the hook (hot path) no longer pulls in chmodSync / copyFileSync / readdirSync, and Rollup tree-shake warnings are gone.

v0.5.1 — 2026-05-26

Fixed

  • ringly update --yes was failing on Windows with spawn EINVAL before npm even started. Root cause: Node ≥ 20.12 refuses to spawn .bat/.cmd directly by design (CVE-2024-27980). Fix: passes shell: true on Windows; macOS/Linux still use shell: false.

v0.5.0 — 2026-05-26

Breaking change

  • Removed userConfig from plugin.json. The /plugin → Installed → Ringly → Configure screen no longer exists due to known limitations of the official schema (no enum support, Enter doesn’t toggle booleans, no atomic write). All config moves to ringly config. Existing values under pluginConfigs.ringly.options keep being read — no migration needed.

v0.4.0 — 2026-05-26

Added

  • /ringly-update slash command inside Claude Code: detects the CLI, queries npm, shows the diff, asks for confirmation, installs, reminds about /reload-plugins.
  • SessionStart hook with background update check, throttled to 1x/day. Native toast when a new version is available.
  • ringly update subcommand (also usable outside Claude Code) with --check (JSON) and --yes (skip prompt) modes.
  • check_updates: boolean option in userConfig (default true).

v0.3.0 — 2026-05-25

Breaking changes

  • Removed the legacy system (legacy.ts, --migrate-legacy / --legacy flags).
  • Removed the ~/.config/ringly/config.json fallback. Config now lives only in ~/.claude/settings.json.

Security & robustness

  • Atomic write on settings.json (temp + atomic rename, defense against race conditions).
  • Hook payload validation (256 KB stdin, 500-char strings, 1024-char paths, regex on appId).
  • settings.json set to mode 0600 on Unix.
  • Automatic GC of backups older than 7 days.
  • Log rotation at 5 MB.

Behavior

  • Locale detection reordered: CLAUDE_PLUGIN_OPTION_LANGUAGEIntl.DateTimeFormatLANG/LC_*en-US.

v0.2.4 — 2026-05-26

Fixed

  • False-positive BLOCKED: on Windows 11 / PowerShell 5.1 (known IInspectable vs IDispatch bug). Now uses $notifier.Setting.value__ (intrinsic .NET enum field) instead of going through the broken COM adapter.

v0.2.1 — 2026-05-25

Important changes

  • Full internationalization of the TUI and CLI commands (doctor, uninstall, test, init --non-interactive).
  • Hooks now read ~/.claude/settings.json directly instead of depending on environment variables Claude Code doesn’t export.
  • Event filter respected on every path (previously only the “rich” path filtered).
  • sound: false now silences the embedded fallback via <audio silent="true"/> in the XML.
  • spawn EINVAL on Windows fixed in tryCliBinary (shell: true on .cmd/.bat).

v0.2.0

  • ringly config now writes to settings.json (under pluginConfigs.ringly.options) instead of the old local config.json. Automatic timestamped backup.
  • New claudeSettings.ts module with safe merge.
  • ringly doctor gained a separate check for plugin settings.

See the full CHANGELOG.md on GitHub for earlier history.

Edit on GitHub Last updated: 2026-05-26