Outerline 1.0-60

Summary

Build 60 introduces Recently Deleted — Outerline's trash bin — so deleted documents land in a recoverable state before they're gone for good. This release also adds wikilink interoperability: type @ or [[ to insert internal links, and documents round-trip cleanly between Outerline's native format and standard [[WikiLink]] syntax on import and export. Rounding out the build are several hardening fixes for Recently Deleted and two library defaults corrections: new installs start with library word count hidden, and first-run onboarding no longer creates a fallback ~/Outerline library before you confirm a location.

Recently Deleted

Documents deleted from your library now land in Recently Deleted instead of being removed immediately. From the sidebar view you can restore documents one at a time, restore everything, or permanently delete. Batch trash and permanent-delete operations are processed together to keep the library catalog consistent during large operations.

Recently Deleted ships with the following edge-case handling:

  • Bulk permanent-delete is now atomic — manifest entries are only removed after file deletion succeeds.
  • Delete All runs cleanup side effects only for records that were confirmed deleted.
  • Restore now warns you when a trashed file is missing on disk and an empty placeholder will be created in its place.
  • Permanently Delete confirmation reads cannot be undone, and singular-item wording is correct so you won't see These 1 documents will be deleted.

Fixes

  • Fixed the default for Word Count: Show in Library so fresh installs start with that option off, while existing user preferences are still respected.
  • Fixed a first-run onboarding bug where a fallback ~/Outerline/.outerline-data directory could be created before the user confirmed a library location.

Improvements

  • Renamed the user-facing Annotations area to Markup across the inspector tab, View menu toggle, and toolbar tooltip. Individual items are still called highlights, and the underlying data formats and outerline:// deep-link scheme are unchanged.
  • Moved Acknowledgements off a standalone SwiftUI Window scene and into a Help-triggered AppKit window manager, so it no longer appears as a persistent entry in the Window menu and only opens from Help.

Wikilink Interoperability Update

  • Added dual trigger support in the editor: typing @ or [[ opens the wikilink palette.
  • Preserved the canonical storage format as [@Title] for inserted and persisted internal links.
  • Fixed cancellation behavior for the double-bracket trigger so backing out no longer leaves stray trailing ]].
  • Added markdown export transforms to rewrite canonical [@Title] to [[Title]] outside protected regions.
  • Added markdown import and load transforms to normalize [[Title]] back to canonical [@Title] before persistence and use.
  • Kept transform safety boundaries so fenced code, inline code, malformed tokens, markdown links, and external URLs are not rewritten.
  • Aligned OuterlineMCP link extraction to parse both [@...] and [[...]], so MCP link and backlink behavior matches editor and markdown interop behavior.