Repository navigation
Releases: zonble/zago
Release list
zago v1.5.1
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
TmdSwiftdependency to0.2.5and migrated TMD exporter, measure checker, inspector, and refactor integration to unifiedTmd*type prefixes.
- Upgraded
- 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 theLocalEditorFileIOStrategy.sharedsingleton in favor of explicit dependency injection.
- Consolidated CJK script/punctuation and Emoji scalar classification into
- Documentation & Architecture Guide:
- Synchronized
AGENT.mddirectory structure map and converted all documentation links to relative paths.
- Synchronized
Fixed
- Localization (i18n) Completeness:
- Added missing
describe_command.general_categorylocalization key, added the category placeholder (%@) todescribe_command.editor_command, and localized Fill and IPC status messages in English and Traditional Chinese.
- Added missing
- Windows CI Test Isolation:
- Appended
UUID().uuidStringto temporary file paths inTMDExportTeststo prevent file-sharing collisions during concurrent test runs on Windows CI.
- Appended
- 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
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
TmdSwiftparser 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-skillsscript.
- Integrated
- 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,modifiedwith ASC / DESC ordering). - Interactive hotkeys (
s/Sto cycle sort criteria,o/Oto toggle ASC/DESC order) and:sortcommand bar interface. - Dedicated 2D-aligned Help Bar layout and visual sort badges in buffer header, title bar, and status line for Directory Buffer.
- Multi-criteria sorting 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-dirCLI flag.
- Open daily journals folder directly in Directory Buffer via
- 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.
- Open and resolve
- 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
TmdSwiftdependency to0.1.6.
Fixed
- TMD Multi-Line Block Comments:
- Fixed syntax highlighter to properly parse and render multi-line block comments (
/* ... */) in TMD files.
- Fixed syntax highlighter to properly parse and render multi-line block comments (
- 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.
- Fixed line drawing to prevent unintended junction fusion (
- 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.
- Dynamically resolved binary output path via
zago v1.4.6
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:writecommands.
- Added tab completion for file paths in command prompt,
- Double-Click Word Selection:
- Added mouse double-click word selection across Text, Table, and Canvas modes.
- Canvas Mode Enter Alignment:
- Added in-place
Enterkey behavior in Canvas Mode with smart start column alignment to the preceding content.
- Added in-place
- Dotted Arrow Style (
dotted):- Added dotted arrow style in Canvas Mode and Style DSL (
┄┄►,┆▼).
- 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.
- Updated project FAQ to detail the rationale behind choosing Swift for
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.
- Fixed rightmost column terminal clear-line sequence (
zago v1.4.5
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+Zand 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/--indicatorand:set indicator/:set noindicatorsetting.
- 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.
- Added new connector and arrow styles: diamond (
- Org-Mode LOGO Block Evaluation:
- Added support for Org-mode
#+begin_src logo...#+end_srccode block extraction and execution.
- Added support for Org-mode
- Text Selection & Navigation:
- Added
Shift+HomeandShift+Endrange selection support inSingleLineTextEditorand 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.
- Added
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
ANSITerminaltarget shared across CLI and WebAssembly (zagoweb). - Refactored single-line prompts into
SingleLineTextEditorand modularPromptControllerextensions.
- Extracted shared ANSI key mappings to dedicated
Fixed
- Multi-Byte Encoding Truncation:
- Added boundary truncation trimming for all multi-byte encodings in
TextEncodingDetector.
- Added boundary truncation trimming for all multi-byte encodings in
- Windows Release Packaging:
- Excluded unnecessary Swift toolchain DLLs from Windows release packages.
zago v1.4.4
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, andCommandBarTestsusingFileIOStrategy.normalizePath.
- Normalized path assertions across Windows and POSIX environments in
- LogoEngine Compiler Warnings:
- Cleaned up unused variable tracking and redundant guard unwrapping in
LogoEngine+BoxCommands.
- Cleaned up unused variable tracking and redundant guard unwrapping in
zago v1.4.2
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 intocanvasBlockClipboardand 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
WasiTerminalTestsand documented WASI IME burst I/O guidelines indocs/architecture/cross_platform.md.
- Implemented multi-byte UTF-8 batch draining in
- Daily Journal Mode:
- Added automated daily journal path resolution (
journal/YYYY-MM-DD.md) and pre-population with customizable header templates.
- Added automated daily journal path resolution (
Changed
-
Incremental Per-Line Layout Caching & Keystroke Optimization:
- Implemented an incremental layout cache (
lineEntries: [LineCacheEntry?],lineOffsets: [Int]) using Swift copy-on-write pointer equality inLayoutEngine, 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
GitCoordinatorto eliminate filesystem I/O jitter on rapid typing.
- Implemented an incremental layout cache (
-
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.
- Extended multi-line selections across line breaks to display an extra inverse space cell representing the selected newline (
Fixed
- Git & Undo Synchronization:
- Immediately refreshed git diff status and gutter markers upon executing Undo (
Ctrl+Z) and Redo (Ctrl+Shift+Z).
- Immediately refreshed git diff status and gutter markers upon executing Undo (
- 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
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/offconfiguration in.zagorcand--mouse/--no-mouseCLI arguments. - Added official Mouse Interaction Specification.
- WebAssembly & Web Terminal Frontend Upgrades (
zago-web):- Integrated
@xterm/addon-unicode11to standardize CJK and punctuation character widths. - Integrated hardware-accelerated
@xterm/addon-webglwith fallback to@xterm/addon-canvasto enforce cell grid clipping and prevent glyph overflow. - Added persistent
CacheStoragecaching 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.
- Integrated
Changed
- Editor LOGO & Headless Mode Alignment:
- Removed deprecated
APPENDandPREPENDprimitives in favor of standardTYPE,PRINT,NEWLINE, and line formatting. - Unified headless CLI output (
zago -sandzago -e) with the live editor buffer (Editor.headlessOutput()), ensuring box drawings and canvas marks match final buffer state.
- Removed deprecated
- 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.
- Added directional boundary character sets (
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+ZandCtrl+Shift+Zin menu bar shortcut hints.
- Prioritized
zago v1.4.0
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
LogoParserPluginandLogoLocalizationRegistryarchitecture for registering multilingual LOGO dialects. - Implemented
LogoTraditionalChinesePluginsupporting 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.
- Added
- Foundation Measurement & Unit Primitives:
- Added
CONVERT.MEASUREandFORMAT.MEASUREsupporting 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.
- Added
- Foundation Date & Formatting Suite:
- Added
DATEFORMAT,DATEADD,DATEDIFF, and consolidated formatters (FORMAT.NUMBER,FORMAT.LIST,FORMAT.RELATIVETIME,FORMAT.BYTES,FORMAT.NAME).
- Added
- 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.
- Added data detection primitives:
- Introspection & Help Modal:
- Added
DESCRIBE(help-command) andDescribe Keyinteractive modal dialog views with Tab auto-completion, scrolling, and primitive metadata inspection. - Added procedural docstrings (
TO ... "docstring" ... END),DOC,ARITY,PRIMITIVE?, andPROCEDURE?reporters.
- Added
- 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.
- Added dashed border styles (
- Keymap System:
- Implemented layered mode-aware
KeymapManagersupporting Classic and Modern presets.
- Implemented layered mode-aware
- Editing & Formatting:
- Added paragraph reflow/justify, fill column configuration, and platform-aware line endings.
Changed
- Syntax Highlighting Engine: Upgraded
LogoSyntaxDefinitionandSyntaxHighlighterwith dynamic dialect registration and Unicode character class boundaries. - Primitive Metadata: Centralized primitive parameter metadata and cross-platform compatibility guards.
zago v1.3.1
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.