Skip to content

Latest commit

 

History

History
227 lines (173 loc) · 18.7 KB

CHANGELOG.md

File metadata and controls

227 lines (173 loc) · 18.7 KB

Changelog

0.11.7 — Unreleased

0.11.6 — 2026-10-23

Highlights: Preserve URL query bytes, recover cleanly from Start at Login failures, and avoid duplicate CLI newlines.

  • URL cleanup: preserve retained query fields exactly, including malformed percent escapes (#63, thanks @SebTardif).
  • Settings: show Start at Login failures with recovery guidance, restore failed toggle changes, and preserve the saved choice when startup registration fails (#63, thanks @SebTardif).
  • CLI: avoid appending a duplicate final newline while keeping exit codes tied to actual text cleaning (#63, thanks @SebTardif).

0.11.5 — 2026-10-21

  • CLI: keep the standalone version synchronized with the app version and reject stale versions in CI before release.

  • Path quoting: quote only existing filesystem paths, preserving slash-containing prose and missing paths while supporting home-relative and relative paths with spaces (#57, thanks @SebTardif).

0.11.3 — 2026-10-20

Highlights: Safer URL, shell-command, and Markdown cleanup without changing copied prose.

  • URL repair: preserve prose following a URL while retaining wrapped host, path, query, and fragment continuations (#58, thanks @SebTardif).
  • Text cleanup: preserve separate uppercase shell arguments and remove in-word backslash continuations without inserting a space (#59, thanks @SebTardif).
  • Text cleanup: preserve line breaks and prose spacing around box-drawing gutters, including Unicode separators and mixed-case remote hosts (#60, thanks @SebTardif).
  • Command detection: preserve prose that shares short command prefixes and filesystem notes such as /etc, while retaining real shell and namespaced slash commands (#61, thanks @SebTardif).
  • Text reflow: keep standalone hyphens spaced and rejoin wrapped Markdown links without changing inline code or parenthetical prose (#62, thanks @SebTardif).
  • Move macOS CI and release builds to xcode-27 while preserving macOS 15 support, native SwiftPM builds, and Linux Swift 6.3/6.4 coverage.

0.11.2 — 2026-09-22

Highlights: Safer shell prompt cleanup, clearer CLI errors, and more reliable app updates.

  • Prompt cleanup: preserve shell variable references and Markdown headings whose words merely start with a command name.

  • CLI: report file, stdin, and UTF-8 decoding failures with their input source instead of incorrectly claiming that no input was provided.

  • URL cleanup: preserve content-identity parameters with percent-encoded names and leave URLs followed by other text untouched.

  • Updates: upgrade Sparkle to 2.10.0 for macOS 27 delta-update compression fixes and better download progress handling.

0.11.1 — 2026-09-13

Highlights: macOS 27-ready shortcuts, clipboard restores that never clobber a newer copy, and CLI stdin/argument fixes.

  • Dependencies: update KeyboardShortcuts to 3.1.0 for macOS 27 compatibility, smoother menu highlighting, function-key handling, and shortcut recorder fixes.
  • Clipboard: use the latest copy for manual pastes and preserve all clipboard formats when restoring, without overwriting a newer copy.
  • Text reflow: preserve fenced content when a fence-like line has trailing text, and require valid Markdown numbered-list markers before rewriting lists.
  • Text cleanup: preserve literal path characters and home expansion, keep placeholder-like text intact when preserving blank lines, and recognize CRLF/CR command continuations.
  • Previews: mark removals correctly around emoji and inserted characters, and use the real cleanup engine for sensitivity examples.
  • Shortcuts: keep cleared paste shortcuts unset across restarts and show recorded function keys and keyboard-layout equivalents correctly in the menu.
  • CLI: correctly read --trim - from stdin, keep short options such as -f separate from file input, and report invalid arguments instead of silently ignoring them.
  • CLI installer: keep the app responsive during authorization and install correctly from paths containing shell characters, without a shared temporary script.
  • App lifecycle: release Accessibility polling and system copy-event hooks when their owners go away and disable Sparkle in signed development builds.
  • Build compatibility: Swift 6.3 or later is now required because Swift 6.2.4 crashes while compiling the updated shortcut dependency's isolated deinitializers; macOS 15 support is unchanged.
  • Dependencies: update KeyboardShortcuts to 3.0.1 for Swift 6 concurrency and release-build fixes.
  • Build: validate macOS and Linux with Swift 6.3 and 6.3.3, pin Actions and lint tools, and run portable text and packaging-script tests in CI.
  • Website: remove stale release numbers from download and social-card labels and clarify that clipboard processing stays local.
  • Development: reuse SwiftPM builds when packaging the debug app, simplify signed shortcut-resource packaging, and replace the obsolete Xcode project with the supported Package.swift workflow.

0.11.0 — 2026-09-07

Highlights: Optional automatic reflow for copied prose and Markdown.

  • Join hard-wrapped prose and Markdown automatically with a new default-off setting, respecting app/site exclusions and preserving fenced examples before command cleanup (thanks @rewtraw).
  • Expand the manual action to Paste Reflowed Text, with shared checks that leave recognized source code and configuration out of both reflow paths (thanks @rewtraw).
  • Add optional removal of leading blank lines during reflow, disabled by default to preserve existing paste behavior (thanks @rewtraw).

0.10.2 — 2026-09-05

Highlights: Safer automatic updates and clipboard handling.

  • Dependencies: update Sparkle to 2.9.6 for installer security fixes and MenuBarExtraAccess to 1.3.1 for macOS 27 compatibility.
  • Terminal detection now recognizes cmux by bundle identifier and app name, so copies use terminal-specific trimming (thanks @gustavosmendes).
  • Preserve YAML block-scalar indentation during automatic trimming in the app and CLI (thanks @rewtraw).
  • Dependencies: update KeyboardShortcuts to 2.4.0 for shortcut-recorder fixes while preserving Swift 6.2 compatibility.
  • Build: validate macOS builds with Swift 6.2.4 while retaining Swift 6.2 and macOS 15 support.

0.10.1 — 2026-06-11

  • Settings: reorganize controls into focused General, Trimming, Rules, Shortcuts, Advanced, and About tabs, with low-frequency cleanup options under Advanced and a compact native macOS layout.

0.10.0 — 2026-06-11

  • Auto-trim can now be disabled for configured apps and browser sites while keeping manual paste actions available (#15).
  • Menu: add an optional “Paste without Query Params” action for copied URLs, gated by Settings → General and preserving configured content-identity parameters (#27, thanks @danfooo).
  • Menu paste-action badges now show a single clear character count instead of duplicate “trimmed” counters (#27, thanks @danfooo).

0.9.0 — 2026-05-11

  • Claude Code: add optional prompt-decoration flattening for copied slash commands while preserving ordinary wrapped prose (#19, thanks @evoleinik).
  • Settings: add an option to hide the menu bar icon while keeping Trimmy running (#24, thanks @qazi0).
  • Text cleanup: dedent copied prose where most paragraph lines share the same leading whitespace (#10, thanks @arunsathiya).
  • Website: add a copy button for the Homebrew install command.

0.8.0 — 2026-01-19

  • Added a menu-only “Paste Reformatted Markdown” action to join wrapped markdown paragraphs and bullet lists while preserving blank lines and fenced code blocks.
  • Path quoting now only wraps standalone paths (not commands or sentences) when they contain spaces (#17, thanks @n0an).

0.7.0 — 2025-12-30

  • Highlight: Context-aware trimming with terminal detection, plus per-terminal aggressiveness (Cmd-C tracking + frontmost-app fallback).
  • Terminal detection now covers Ghostty, WezTerm, Alacritty, Hyper, and Warp Stable bundle IDs for context-aware trimming.
  • Aggressiveness now splits between general apps and terminals (defaults: Low + Normal), plus a “None” option to disable auto-trim in regular apps.
  • Settings: added Advanced tab and moved CLI installer, debug tools, and clipboard fallbacks there.
  • Menu bar icon now animates whenever a trim happens.

0.6.4 — 2025-12-26

  • Sparkle: auto-download updates when auto-check is enabled, and only show the restart menu entry once an update is ready.
  • Command detection: flatten “command + indented args” copies (e.g. emails + flags) into a single pasteable line at Normal aggressiveness; skip transforms for snippets longer than 4 lines.
  • Dependencies: refreshed SwiftPM pins (Sparkle 2.8.1, KeyboardShortcuts 1.17.0, MenuBarExtraAccess 1.2.2).

0.6.3 — 2025-12-19

  • CI: publish Linux TrimmyCLI release assets (.tar.gz + .sha256) so Linux users can install without building from source.
  • Thanks to @JaviSoto for contributing the workflow.

0.6.2 — 2025-12-17

  • Box-drawing cleanup now skips when no box glyphs are present, preserving JSON/YAML indentation and spacing (thanks @ahmedasmar).
  • TrimmyCLI now writes errors via FileHandle.standardError to satisfy Swift 6/Linux concurrency checks while keeping the same stderr output and exit codes (thanks @JaviSoto).
  • Trimmy is now available via Homebrew: brew install --cask steipete/tap/trimmy (updates via brew upgrade --cask steipete/tap/trimmy).

0.6.1 — 2025-12-05

  • Command detection now keeps multi-line command blocks intact when there are three or more standalone command-looking lines and no explicit joiners (, |, &&, ||, ;); pipelines/continuations still flatten as before.
  • Align app and CLI heuristics so both respect the above guard; CLI High/manual overrides still flatten.
  • Added regression tests covering structured JSON copies and the pyenv init snippet to prevent unintended flattening in Normal mode.

0.6.0 — 2025-12-04

  • Added in-app Accessibility permission prompts and menu/settings callouts so “Paste Trimmed/Original” explains how to enable ⌘V injection when permission is missing.
  • Added CLI installer in Settings → General that symlinks the bundled TrimmyCLI into /usr/local/bin and /opt/homebrew/bin as trimmy.

0.5.1 — 2025-12-02

  • Auto-trim (Low/Normal) now skips list-like snippets (bullets, numbered rows, plain token/ID columns) and copies with more than four newlines to avoid mangling hashes/IDs; High/manual override still flattens on demand. Regression tests cover the list/id scenarios.

0.5.0 — 2025-12-02

  • Added headless CLI (TrimmyCLI) with --trim flag, sharing the same heuristics; supports stdin, json output, aggressiveness/blank-line/box-drawing options.
  • Fixed strike-through preview: removed decorative pipes (│) now strike correctly, whitespace deletions show as struck dots, and truncation no longer hides removed characters.

0.4.7 — 2025-12-02

  • Packaging: SwiftPM resource bundles are now symlinked to the app root so KeyboardShortcuts’ Bundle.module resolves in user builds (prevents Settings → Shortcuts crash).

0.4.6 — 2025-12-02

  • Further tightened box-glyph cleanup so terminal-wrapped URLs (e.g., releases/ │ download/...) rejoin correctly without extra spaces.

0.4.5 — 2025-12-02

  • Menu previews now show up to 100 characters (both trimmed and original) while keeping per-row truncation badges aligned with the longer limit.
  • Paste Original row now shows only character count (no “trimmed” badge); trimmed badge remains on Paste Trimmed.
  • Box-drawing cleanup: strip decorative “│” after real pipes and even when copied alone; added regression coverage for terminal-style decorations.

0.4.4 — 2025-12-01

  • Fixed a crash when opening Settings → Shortcuts by ensuring the KeyboardShortcuts resource bundle is packaged into Trimmy.app; packaging now fails if SwiftPM bundles are missing and a regression test guards bundle availability.

0.4.3 — 2025-11-26

  • Clipboard flattening now rejoins hyphen-wrapped tokens (e.g., ...-9bd2-\nf1a4...png) without inserting spaces, fixing QR/path copies from chats.
  • Guarded against treating markdown bullet lists as hyphen continuations so list snippets don’t get glued together when flattened.

0.4.2 — 2025-11-25

  • Menu “Paste Trimmed” and “Paste Original” previews now share the same 50-character middle ellipsis and badge stats for consistent clipping.
  • Settings window is slightly taller so previews and tabs fit without clipping.
  • Debug builds now show a clear “DEBUG BUILD” marker in About to distinguish dev builds from releases.

0.4.1 — 2025-11-24

  • Hardened command detection (#4): Low/Normal now skip when multi-line text looks like source code (brace + language keywords across Swift/JS/Go/Rust/Java/C#/Python, etc.) unless strong command cues are present. High/manual override still flattens on demand, so “Paste Trimmed” keeps working for power users.
  • Strip prompt markers (#3): Copies that start with #/$ are de-promoted when they look like shell commands (Markdown headings stay), so blog/chat snippets paste cleanly. Preferences/README now document aggressiveness levels with concrete before/after examples.
  • Wrapped URLs are repaired automatically, even on Low aggressiveness, so line-breaks or stray spaces inside links (e.g., GitHub changelog URLs) no longer break the pasted URL.

0.4.0 — 2025-11-21

  • Added “Paste Trimmed” action + global hotkey that trims on-the-fly (High aggressiveness), pastes, and restores your clipboard.
  • Added “Paste Original” action + hotkey so you can paste the untouched copy even after auto-trim; Trimmy now keeps the untrimmed text around for that path.
  • Paste actions now show the destination app (e.g., “Paste Trimmed to Ghostty”) so you know where the keystroke will land.
  • Last preview now renders the original line with strike-through on removed characters for a quick diff-at-a-glance.
  • Each paste action now shows its own preview: trimmed text under “Paste Trimmed” and struck-out original under “Paste Original.”
  • Auto-Trim toggle moved below the divider to keep primary actions grouped at the top of the menu.
  • Box-drawing stripping now handles any number of leading/trailing gutter bars (│┃ etc., most-line majority) while leaving real pipeline | characters intact; more regression tests cover single-line, majority, and both-sides cases, and previews mirror the runtime cleaner.

0.3.0 — 2025-11-20

  • Preferences got the full SwiftUI treatment: toolbar tabs (General, Aggressiveness, Shortcuts, About), window auto-resizing per tab, and richer About content with dimmed update controls for debug builds.
  • Shortcuts pane focuses on the Trim Clipboard hotkey (with glyphs) and lets you toggle or rebind it.
  • Global “Trim Clipboard” shortcut ships with a default of ⌥⌘T; you can change or disable it in Settings → Shortcuts and it shows in the menu.
  • New optional global hotkey lets you toggle Auto-Trim on/off without opening the menu (disabled by default; configurable in Shortcuts).
  • Menu bar entry mirrors the new Settings window—actions for Trim Clipboard, Settings…, About Trimmy, plus a multi-line “Last” preview instead of the old submenu.
  • Menu bar icon dims automatically when Auto-Trim is disabled so it’s obvious the service is paused.
  • Trimmy now runs as a single instance to avoid double clipboard watchers or duplicate menu bar icons.
  • Aggressiveness previews now ship with a more illustrative “Low” example and unit tests that lock behavior for all three levels.
  • Manual “Trim Clipboard” and its global shortcut now always run at High aggressiveness, while auto-trim honors the configured level.
  • New toggle (off by default) lets you enable extra clipboard fallbacks (RTF/public text types) for apps that don’t expose plain UTF-8 content.
  • Clipboard flattening now stitches path segments split across lines (e.g. ~/.ssh/\ngithub_rsa.pub) without inserting stray spaces; applies to auto-trim (your set aggressiveness), manual trim (High), and the Aggressiveness preview examples.
  • Sparkle updater now auto-disables for unsigned/dev runs to avoid updater error dialogs during development.
  • Debug builds now use bundle ID com.steipete.trimmy.debug and ship with Sparkle feed disabled, so Accessibility/Input Monitoring and updater prompts stay isolated from release builds.

0.2.4 — 2025-11-17

  • Last trim preview now middle-truncates long text so the menu stays compact while showing both start and end of the command.
  • Packaging/signing hardened: strip extended attributes, remove AppleDouble (._*) files, and re-sign Sparkle + app bundle to satisfy Gatekeeper and notarization.

0.2.3 — 2025-11-17

  • Optional stripping of box-drawing separators (│ │) with whitespace collapse so prompt-style borders paste cleanly.
  • Thanks to @Blueemi for contributing the box-drawing cleaning option.
  • Quit item restored in the menu bar root (consistent with CodexBar layout).
  • Release notes/process cleanup (archive/signing steps clarified).

0.2.2 — 2025-11-16

  • About panel now lists GitHub · Website · Twitter · Email links inline (matches CodexBar).

0.2.1 — 2025-11-16

  • Moved the last-trim preview to sit directly beneath “Trim Clipboard Now” for a faster read.
  • Bumped bundle version/build (0.2.1/5).

0.2.0 — 2025-11-16

  • Sparkle auto-updates (Check for Updates…, auto-check toggle) with GitHub feed and signed appcast.
  • Launch-at-login toggle (SMAppService) persisted and applied at startup.
  • Clickable About panel (GitHub link) showing version/build.
  • Strict concurrency + Swift Testing; lint/format configs aligned with other menu-bar apps.

0.1.3 — 2025-11-16

  • Launch-at-login toggle (SMAppService) with persisted setting.
  • Sparkle auto-updates (Check for Updates…, auto-check toggle, feed to GitHub Releases).
  • Lint/format configs aligned; strict concurrency opt-in.

0.1.2 — 2025-11-16

  • Fix About panel credits: use attributed credits with version and icon so the About menu reliably appears.

0.1.1 — 2025-11-16

  • Clipboard flattening now repairs accidental newlines inside tokens (e.g., N\nODE_PATH → NODE_PATH) to avoid inserting stray spaces when copying shell commands.
  • Added safety valve: copies longer than 10 lines are skipped from auto-flattening, even on High aggressiveness.
  • About dialog added (menu item) showing author (Peter Steinberger), MIT license, and GitHub link.

0.1.0 — 2025-11-16

  • Initial release of Trimmy (macOS 15+, menu-bar only).
  • Auto-flattens multi-line shell commands copied to the clipboard; respects \ continuations, collapses whitespace, optional blank-line preservation.
  • Aggressiveness levels (Low/Normal/High) to tune detection strictness; manual “Trim Clipboard Now” override.
  • Menu controls: Auto-Trim toggle, Keep blank lines toggle, Aggressiveness submenu, last-trim preview, Quit.
  • Robust clipboard watcher: marker type to skip self-writes, grace delay for promised data, fast polling.
  • Packaging scripts: app bundling, signing + notarization helper, shipped notarized Trimmy-0.1.0.zip.