Skip to content

Releases: zonble/zago

zago v1.5.1

Choose a tag to compare

@github-actions github-actions released this 11 Oct 07:18
v1.5.1
ac2535d

Maintenance and bugfix release upgrading TmdSwift to 0.2.5, resolving missing localization keys and status message translations, unifying Unicode wide-character classification into TextMetrics, and improving CI stability across platforms.

Changed

  • TmdSwift 0.2.5 Upgrade:
    • Upgraded TmdSwift dependency to 0.2.5 and migrated TMD exporter, measure checker, inspector, and refactor integration to unified Tmd* type prefixes.
  • Unicode Classification Single Source of Truth:
    • Consolidated CJK script/punctuation and Emoji scalar classification into TextMetrics (DisplayWidth.swift) as the single source of truth, and removed the LocalEditorFileIOStrategy.shared singleton in favor of explicit dependency injection.
  • Documentation & Architecture Guide:
    • Synchronized AGENT.md directory structure map and converted all documentation links to relative paths.

Fixed

  • Localization (i18n) Completeness:
    • Added missing describe_command.general_category localization key, added the category placeholder (%@) to describe_command.editor_command, and localized Fill and IPC status messages in English and Traditional Chinese.
  • Windows CI Test Isolation:
    • Appended UUID().uuidString to temporary file paths in TMDExportTests to prevent file-sharing collisions during concurrent test runs on Windows CI.
  • CI & WebAssembly Build Pipeline:
    • Configured Git submodule policies across GitHub Actions workflows and Docker WebAssembly builds, and enabled CI verification across all branches.

zago v1.5.0

Choose a tag to compare

@github-actions github-actions released this 11 Oct 05:00
v1.5.0
4451f30

Major feature release introducing full Timebase Mark Down (TMD) music score editing and audio playback, interactive score export workflows, expanded Symbol Picker with 240+ specialized Unicode arrows, Directory Browser multi-criteria sorting, cross-platform file URL support, and enhanced mouse/scrollbar interactions.

Added

  • Timebase Mark Down (TMD) Music Score Support:
    • Integrated TmdSwift parser and syntax highlighter with document outline for TMD music scores.
    • Context-aware TMD menu in editor menu bar (visible when editing TMD files).
    • Score export to MIDI, MusicXML, LilyPond, ABC, WAV, MP3, and OGG formats with interactive prompt workflows.
    • Built-in TMD score diagnostics checker (:tmd check), code formatter (:tmd format), and score structure inspector (:tmd inspect).
    • Score playback triggers with high-quality SoundFont synths via OSC and terminal audio playback.
    • Interactive playback control bar with progress bar, transport controls, and draggable floating UI in web edition.
    • Built-in TMD snippets and Quick Reference guide in TMD and Help menus.
    • TMD skill integration in install-skills script.
  • Special Unicode Arrows Symbol Picker:
    • Expanded Symbol Picker with a dedicated "Arrows" tab featuring 240 curated Unicode arrow symbols organized in an interactive grid.
    • Mouse click support for selecting tabs and inserting symbols directly from the Symbol Picker dialog.
  • Directory Browser Multi-Criteria Sorting & Dedicated Help Bar:
    • Multi-criteria sorting for Directory Buffer (name, created, modified with ASC / DESC ordering).
    • Interactive hotkeys (s/S to cycle sort criteria, o/O to toggle ASC/DESC order) and :sort command bar interface.
    • Dedicated 2D-aligned Help Bar layout and visual sort badges in buffer header, title bar, and status line for Directory Buffer.
  • Journal Directory Browser Support:
    • Open daily journals folder directly in Directory Buffer via :journal dir, :journals, :dir journal, Tools menu item, and --journal-dir CLI flag.
  • Cross-Platform file:// URL & Anchor Support:
    • Open and resolve file:// URLs (POSIX, Windows drive letters, and percent-encoded paths) from CLI arguments, command prompts (:open, :edit, :write, Ctrl+O), and IPC.
    • Line and column anchor parsing (#L<line>, #L<line>C<col>, #L<line>:<col>, :<line>:<col>) to jump directly to target positions on open.
    • Tab autocompletion support for file:// URL prefixes in interactive prompt bar.
  • Scrollbar Interaction & Web UI Improvements:
    • Scrollbar enabled by default with mouse click and drag thumb scrolling support.
    • Collapsible documentation sidebar on desktop for full-width editing in web edition.

Changed

  • Updated default save and export prompt cursors to automatically place at the end of the input string.
  • Upgraded TmdSwift dependency to 0.1.6.

Fixed

  • TMD Multi-Line Block Comments:
    • Fixed syntax highlighter to properly parse and render multi-line block comments (/* ... */) in TMD files.
  • Canvas Mode Line Drawing Adjacent Isolation:
    • Fixed line drawing to prevent unintended junction fusion (┬) with adjacent rows when drawing horizontal lines across empty space near existing boxes.
  • Mouse Right Click Behavior:
    • Prevented right click from toggling the top menu bar unintentionally.
  • Windows IPC Session Locator:
    • Enhanced Windows session locator directory scanning resilience and token reading.
  • Dynamic Binary Path Resolution:
    • Dynamically resolved binary output path via swift build --show-bin-path.

zago v1.4.6

Choose a tag to compare

@github-actions github-actions released this 01 Sep 10:12
v1.4.6
e821084

Feature and bugfix release featuring enhanced path autocompletion, multi-mode double-click word selection, refined Canvas Mode editing behaviors, dotted arrow styles, menu organization improvements, and rendering accuracy fixes.

Added

  • Tab Path Autocompletion:
    • Added tab completion for file paths in command prompt, :open, :edit, and :write commands.
  • Double-Click Word Selection:
    • Added mouse double-click word selection across Text, Table, and Canvas modes.
  • Canvas Mode Enter Alignment:
    • Added in-place Enter key behavior in Canvas Mode with smart start column alignment to the preceding content.
  • Dotted Arrow Style (dotted):
    • Added dotted arrow style in Canvas Mode and Style DSL (┄┄►, ┆▼).
  • Open File Command (file.open_file):
    • Added dedicated open file command to open files in new buffers.
  • Menu Dividers and Key Display Symbols:
    • Added visual menu dividers and standardized key symbol displays.

Changed

  • Dropdown Menu Priority:
    • Prioritized active dropdown menu items over top-level category hotkeys during keyboard navigation.
  • Documentation & FAQ:
    • Updated project FAQ to detail the rationale behind choosing Swift for zago.

Fixed

  • Canvas Inactive Cursor Rendering:
    • Fixed visual column rendering for inactive cursor in Canvas Mode when focus is in the prompt bar.
  • Shift+Arrow Line Segment Replacement:
    • Fixed line drawing to seamlessly overwrite and replace existing arrow heads with continuous line segments.
  • Scrollbar Indicator Terminal Line Clearing:
    • Fixed rightmost column terminal clear-line sequence (\u{1B}[K) from erasing scrollbar thumb/track characters on full-width lines.

zago v1.4.5

Choose a tag to compare

@zonble zonble released this 31 Aug 15:09
v1.4.5
76b0819

Feature and UX enhancement release introducing Zero Interface Mode, vertical scrollbar indicator, expanded arrow and connector styles in Style DSL, canvas block overwrite pasting, Org-mode LOGO code block evaluation, and multi-byte boundary detection improvements.

Added

  • Zero Interface Mode (-0 / --zero / Alt+Z):
    • Added distraction-free mode hiding chrome elements (menu, status, and hint bars) for maximum editor viewport space.
    • Added toggle shortcut Alt+Z and command :set zero / :set nozero.
  • Vertical Scrollbar Indicator (-q / --indicator):
    • Added vertical scrollbar position indicator to visualize relative document viewport position.
    • Added CLI flag -q / --indicator and :set indicator / :set noindicator setting.
  • Extended Arrow Shapes & Style DSL:
    • Added new connector and arrow styles: diamond (◆), circle (●), cross (✚), crow foot (⤙), and harpoon (⇁/↼).
    • Added double arrows (<=| / |=>) and heavy arrows (<+| / |+>) with Style DSL support.
    • Reorganized menu bar with a dedicated Arrows category and made Style DSL reference menu always accessible.
  • Org-Mode LOGO Block Evaluation:
    • Added support for Org-mode #+begin_src logo ... #+end_src code block extraction and execution.
  • Text Selection & Navigation:
    • Added Shift+Home and Shift+End range selection support in SingleLineTextEditor and interactive prompt bars.
    • Added distinct inactive cursor styling in the editor when focus is in the command bar or during prompt entry in canvas mode.

Changed

  • Canvas Mode Block Paste Overwrite:
    • Changed block pasting in canvas mode to overwrite existing cells rather than shifting following content rightward, preserving diagram layouts.
    • Preserved canvas block marks after fill operations.
  • Modular ANSI and Terminal Target Refactoring:
    • Extracted shared ANSI key mappings to dedicated ANSITerminal target shared across CLI and WebAssembly (zagoweb).
    • Refactored single-line prompts into SingleLineTextEditor and modular PromptController extensions.

Fixed

  • Multi-Byte Encoding Truncation:
    • Added boundary truncation trimming for all multi-byte encodings in TextEncodingDetector.
  • Windows Release Packaging:
    • Excluded unnecessary Swift toolchain DLLs from Windows release packages.

zago v1.4.4

Choose a tag to compare

@github-actions github-actions released this 27 Aug 20:17
v1.4.4
079d982

Maintenance and test suite stabilization release standardizing cross-platform path assertions and eliminating LogoEngine compiler warnings.

Fixed

  • Cross-Platform Test Path Normalization:
    • Normalized path assertions across Windows and POSIX environments in DirectoryBufferTests, EditorEngineTests, and CommandBarTests using FileIOStrategy.normalizePath.
  • LogoEngine Compiler Warnings:
    • Cleaned up unused variable tracking and redundant guard unwrapping in LogoEngine+BoxCommands.

zago v1.4.2

Choose a tag to compare

@github-actions github-actions released this 26 Aug 18:03
v1.4.2
f8c3f32

Performance, spatial canvas editing, and text selection release introducing incremental per-line layout caching, 2D canvas block spatial editing semantics, WebAssembly CJK IME batch draining, text selection newline highlighting, and daily journal workflows.

Added

  • Canvas Mode 2D Spatial Editing & Mark Persistence:
    • Ctrl+K (Cut Canvas Block): Copies the 2D block into canvasBlockClipboard and fills the cut area with whitespace (保持空白,不內縮), preserving fixed-position diagrams, borders, and connectors without shifting surrounding content leftward.
    • Backspace: Replaces all characters in the active canvas block mark with spaces in-place without shifting columns leftward.
    • Delete: Deletes the marked block columns and shifts content to the right of the block leftward (往左內縮).
    • Preserved canvas block marks across PageUp, PageDown, ^V, ^Y, :goto, :eof, and mouse wheel scrolling at absolute document 2D coordinates (startLine, startCol) to (endLine, endCol).
  • WebAssembly (WASI) CJK IME & Multi-Byte Batch Draining:
    • Implemented multi-byte UTF-8 batch draining in WasiTerminal.readPendingText(firstChar:) to consume queued input in a single pass, eliminating duplicate insertions and full-screen redraw hitches when confirming long CJK sentences in browser environments.
    • Added comprehensive unit test suite WasiTerminalTests and documented WASI IME burst I/O guidelines in docs/architecture/cross_platform.md.
  • Daily Journal Mode:
    • Added automated daily journal path resolution (journal/YYYY-MM-DD.md) and pre-population with customizable header templates.

Changed

  • Incremental Per-Line Layout Caching & Keystroke Optimization:
    • Implemented an incremental layout cache (lineEntries: [LineCacheEntry?], lineOffsets: [Int]) using Swift copy-on-write pointer equality in LayoutEngine, reducing keystroke latency in large 5,000+ line documents from 129.2 ms down to sub-1.5 ms.
    • Accelerated virtual cursor coordinate lookups from $O(N)$ scanning to $O(1)$ binary/indexed lookups.
    • Debounced git repository state disk checks in GitCoordinator to eliminate filesystem I/O jitter on rapid typing.
  • Text Selection & Newline Highlight Refinement:
    • Extended multi-line selections across line breaks to display an extra inverse space cell representing the selected newline (\n).
    • Replaced full-width inverse background highlighting on empty lines with a single inverse space cell for clean, focused visual feedback.

Fixed

  • Git & Undo Synchronization:
    • Immediately refreshed git diff status and gutter markers upon executing Undo (Ctrl+Z) and Redo (Ctrl+Shift+Z).
  • Mouse & Menu Interaction:
    • Disabled drag selection and background auto-scroll gestures while the top menu bar overlay is active.
  • Search & Spell Checker Navigation:
    • Ensured search match jumps start after current cursor position and wrap around smoothly to document beginning.

zago v1.4.1

Choose a tag to compare

@zonble zonble released this 24 Aug 15:30
v1.4.1
2ee3097

Usability, rendering, and interaction release introducing full ANSI SGR 1006 terminal mouse support, directional topology overhaul for Table Cell Detection with CJK wide-character awareness, unified Editor LOGO headless execution, and WebAssembly frontend rendering upgrades.

Added

  • Full Terminal Mouse Interaction (ANSI SGR 1006):
    • Added native mouse interaction across Text Mode, Canvas Mode, Table Mode, Directory Mode, Dialogs, Top Menu Bar, and WebAssembly.
    • Implemented continuous edge auto-scrolling with a two-tier edge-holding acceleration system (60ms boundary rows, 30ms outside window).
    • Implemented decoupled mouse wheel scrolling with terminal hardware cursor off-screen parking and keyboard snapback.
    • Added set mouse on/off configuration in .zagorc and --mouse / --no-mouse CLI arguments.
    • Added official Mouse Interaction Specification.
  • WebAssembly & Web Terminal Frontend Upgrades (zago-web):
    • Integrated @xterm/addon-unicode11 to standardize CJK and punctuation character widths.
    • Integrated hardware-accelerated @xterm/addon-webgl with fallback to @xterm/addon-canvas to enforce cell grid clipping and prevent glyph overflow.
    • Added persistent CacheStorage caching with HTTP ETag validation for instant WASM streaming loads.
    • Made virtual key bar always visible across all viewport sizes for tablet and mobile touch support.
    • Added full English / Traditional Chinese UI localization and automated Playwright integration smoke tests.

Changed

  • Editor LOGO & Headless Mode Alignment:
    • Removed deprecated APPEND and PREPEND primitives in favor of standard TYPE, PRINT, NEWLINE, and line formatting.
    • Unified headless CLI output (zago -s and zago -e) with the live editor buffer (Editor.headlessOutput()), ensuring box drawings and canvas marks match final buffer state.
  • Table Cell Detection & Topological Directionality:
    • Added directional boundary character sets (leftBoundaryChars, rightBoundaryChars, topBoundaryChars, bottomBoundaryChars) with strict corner exclusion rules.
    • Required strictly continuous horizontal borders without space gaps to prevent false-positive spanning across separated boxes.
    • Required genuine bottom boundaries in downward scanning, preventing broken intermediate rows from being substituted as cell frames.
    • Calculated boundaries using visual terminal columns (TextMetrics.visualColumn) rather than logical character offsets to correctly handle 2-column wide CJK characters.
    • Updated Table Cell Detector Architecture.

Fixed

  • Table Mode & Detection:
    • Fixed false-positive cell detection when the cursor is placed in whitespace gaps between disconnected boxes.
    • Fixed Table Mode cursor navigation and border alignment when editing cells with CJK full-width characters.
  • Web Terminal:
    • Fixed CJK corner bracket width rendering in the web terminal by adopting Unicode 11 and WebGL rendering.
  • Keymap Hints:
    • Prioritized Ctrl+Z and Ctrl+Shift+Z in menu bar shortcut hints.

zago v1.4.0

Choose a tag to compare

@github-actions github-actions released this 21 Aug 04:51
v1.4.0
aae2dfe

Major feature release introducing Foundation Measurement conversions and formatters, extensible dialect localization architecture (Traditional Chinese), data detection and codec primitives, procedural docstring introspection, enhanced keymaps, dashed box drawing styles, and CJK-aware syntax highlighting.

Added

  • Extensible Logo Dialects & Traditional Chinese Localization:
    • Added LogoParserPlugin and LogoLocalizationRegistry architecture for registering multilingual LOGO dialects.
    • Implemented LogoTraditionalChinesePlugin supporting Chinese keywords for primitives, operators, headings, styles, and natural language filler tokens (則, 否則, 步, 次, 成, 為, 到, 至).
    • Added localized keyword and filler token support in syntax highlighting with Unicode boundary detection, Tab auto-completion, and command introspection.
  • Foundation Measurement & Unit Primitives:
    • Added CONVERT.MEASURE and FORMAT.MEASURE supporting 22 measurement dimensions with natural scaling, custom units, and localized dictionary options.
    • Added measurement arithmetic and comparisons: MEASURE.ADD, MEASURE.SUB, MEASURE.SCALE, MEASURE.EQUAL?, MEASURE.LESS?, MEASURE.GREATER?, MEASURE.MIN, MEASURE.MAX.
  • Foundation Date & Formatting Suite:
    • Added DATEFORMAT, DATEADD, DATEDIFF, and consolidated formatters (FORMAT.NUMBER, FORMAT.LIST, FORMAT.RELATIVETIME, FORMAT.BYTES, FORMAT.NAME).
  • Data Detection & Codec Primitives:
    • Added data detection primitives: DETECT.URL, DETECT.EMAIL, DETECT.PHONE, DETECT.DATE, DETECT.ADDRESS.
    • Added Base64/Hex/URL codec, UUID operations, and SHA-256/SHA-1/MD5 hashing primitives.
  • Introspection & Help Modal:
    • Added DESCRIBE (help-command) and Describe Key interactive modal dialog views with Tab auto-completion, scrolling, and primitive metadata inspection.
    • Added procedural docstrings (TO ... "docstring" ... END), DOC, ARITY, PRIMITIVE?, and PROCEDURE? reporters.
  • Drawing & Canvas Enhancements:
    • Added dashed border styles (triple-dash, heavy-triple-dash, quadruple-dash, heavy-quadruple-dash, double-dash, heavy-double-dash).
    • Added table mode border style switching and enhanced arrow connectors.
  • Keymap System:
    • Implemented layered mode-aware KeymapManager supporting Classic and Modern presets.
  • Editing & Formatting:
    • Added paragraph reflow/justify, fill column configuration, and platform-aware line endings.

Changed

  • Syntax Highlighting Engine: Upgraded LogoSyntaxDefinition and SyntaxHighlighter with dynamic dialect registration and Unicode character class boundaries.
  • Primitive Metadata: Centralized primitive parameter metadata and cross-platform compatibility guards.

zago v1.3.1

Choose a tag to compare

@github-actions github-actions released this 14 Aug 07:56
82cd5f2

Linux release build compatibility fix.

Fixed

  • Linux Release Build: Updated the release workflow to Swift 6.3.3 and removed a trailing parameter comma that older Linux Swift parsers rejected.

zago v1.2.5

Choose a tag to compare

@github-actions github-actions released this 09 Aug 08:36
00547a4

Release v1.2.5