Skip to content

Releases: tiagojct/loomings

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 13:38
v1.2.0 — web version + self-hosted deploy at loomings.tiagojct.eu

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 08:00
v1.1.0 — performance, Glauca/Try-Works themes, icon fix, correctness …

v1.0.3

Choose a tag to compare

@github-actions github-actions released this 15 Jun 18:26

[1.0.3] — 2026-06-15

Internals patch from the launch-readiness audit (Tier 2). No new features
in the editor itself; what changes here is correctness, security, and one
small View-menu addition.

Added

  • Line numbers toggle in View menu. Persisted across launches.
  • Strict-ish Content Security Policy. The shipped build now restricts
    resource loading to self, the Tauri IPC scheme, and api.github.com
    for the update check. Previously the policy was disabled entirely.
  • Unit tests for the update-check version parser. Covers v-prefix
    stripping, pre-release suffixes (-rc.1, -beta), build metadata
    (+build.42), and rejects malformed input.

Fixed

  • Close-window race condition. The previous double-tap-close guard
    kept its state in a Rust-side mutex with a 2-second window. A second
    close request landing in that window was force-accepted regardless of
    the unsaved-confirm result. The state machine is gone — Rust now
    unconditionally intercepts every close request and waits for an
    explicit confirm_quit from the frontend before exiting.
  • Cold-launch race between Apple Events and the JS event listener.
    When opening Loomings by double-clicking a .md file from Finder on
    the very first launch, the file path could arrive before the renderer
    had attached its file-opened listener, dropping the file silently.
    The path is now cached on the Rust side and drained by the JS init
    flow once listeners are ready. Warm-launch "Open With" while the app
    is already running takes the direct emit path as before.
  • Tokio worker starvation during update check. The synchronous
    ureq GET to GitHub Releases ran on a tokio worker thread, blocking
    it for up to 5 seconds and starving every other IPC command. The
    call now runs on tauri::async_runtime::spawn_blocking so the worker
    thread stays free for IPC during the network round-trip.
  • Silent file-watcher failures. If the OS denied the watch
    registration (sandbox, network filesystem, missing capability), the
    failure was swallowed and external-edit detection was quietly dead.
    Failures now flash in the statusbar.

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 06 Jun 21:01

First stable release. The app has been complete enough to use daily for
some time; this version is the line in the sand.

Install

macOS (Apple Silicon) — Homebrew:

brew install --cask --no-quarantine tiagojct/loomings/loomings

The --no-quarantine flag is required because the build is unsigned.
Modern Homebrew adds the com.apple.quarantine xattr by default; without
the flag, Sequoia and Tahoe Gatekeeper refuse to launch the app with
"Loomings.app is damaged." If you have already installed without the
flag, fix the existing copy with:

xattr -dr com.apple.quarantine /Applications/Loomings.app

Direct downloads are attached below for all platforms (.dmg,
.msi/.exe, .deb, .AppImage, .rpm). For unsigned macOS direct
downloads, run the same xattr command after moving the app into
/Applications.

Editor

  • Real markdown syntax in the editor — bold, italic, headings (H1/H2/H3/H4
    visually distinct), inline code, links.
  • Markdown shortcuts: ⌘B / ⌘I wrap selection, ⌘` for code, ⌘K for link.
    Toggle-aware: pressing again unwraps.
  • Smart list auto-continue: -, *, +, 1., and > extend on Enter;
    pressing Enter on an empty list item exits the list.
  • Smart typography: straight quotes → curly, -- → em-dash, ...
    ellipsis. Toggle in View menu.
  • YAML frontmatter detection — --- blocks at document start render dimmed.
  • Native undo, IME, paste-as-plaintext, scroll, selection (CodeMirror 6).

Navigation

  • Outline palette (⌘P) — fuzzy-jump to any heading with ↑↓ Enter Esc.
  • Find/Replace (⌘F) — CodeMirror search panel with regex, case sensitivity,
    replace.
  • Recent files menu (File → Open Recent), last 10 files persisted.
  • Cursor position (Ln 5, Col 12) in statusbar.
  • Now opens .qmd and .rmd files alongside .md, .markdown, and .txt.

Writing flow

  • Focus mode (⌘⇧D) — dims everything outside the current sentence (not
    just the paragraph).
  • Preview (⌘⇧P) — full markdown-it rendering with sanitized URLs.
  • Word goal (⌘⇧G) — 7 presets cycle: off → 250 → 500 → 750 → 1000 → 2000 →
    5000. Progress shows in the statusbar.
  • Column-width cycle (⌘⇧W) — wide (900px) / normal (660px) / narrow (500px).

Themes

  • Pequod navy (dark) + Pequod parchment (light) + system-follow mode.
  • Cycle theme (⌘⇧T). All surfaces share the same palette: editor, syntax
    highlighting, preview, modals, statusbar, titlebar.

Files

  • Auto-save 2 seconds after last edit, for named files.
  • Crash-recovery scratch buffer — last buffer restored on next launch.
  • External file watcher (notify-debouncer-mini) — prompts reload if the
    current file changes on disk.
  • Double-tap-close guard: requires two close attempts within 2 seconds to
    prevent accidental data loss.

App

  • About modal (Help menu) and a populated macOS native About panel with
    name, version, MIT license, website, copyright.
  • Open Example (Help menu) — opens the bundled chapter 1 of Moby-Dick,
    the chapter the app is named for.
  • Update check — checks GitHub Releases on launch and on demand (Help →
    Check for Updates). Notification-only; downloads stay on the releases
    page. Avoids breaking unsigned builds with mid-install quarantine.

Builds

  • 4-platform CI on tag push: macOS arm64, macOS x64, Linux x64, Windows x64.
  • Bundle outputs: .dmg (macOS), .exe + .msi (Windows), .deb +
    .AppImage + .rpm (Linux).
  • Releases attach all platform installers to a single tagged release.