All notable changes to Frontier CLI will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Protocol-based UserTalk debugger - Full debugging support across 7 phases: breakpoints, step into/over/out, watchpoints, multi-thread debugging, conditional breakpoints, and variable inspection
- system.environment.args - CLI argument access from UserTalk scripts
- sys.openUrl kernel verb - Open URLs from UserTalk
- Lint infrastructure - Added clang-tidy, ruff, and shellcheck to CI pipeline
- databasedata global elimination (Phases 1-10) - Zero runtime mutation of the databasedata global, removing a major source of shared mutable state
- Data-loss risk mitigations - Duplicate open guard, fread size validation, and migration lock prevent corruption scenarios
- 19 consistently-failing integration tests - Resolved long-standing test failures
- GIL deadlock blocking HTTP callback dispatch - Fixed deadlock where HTTP callbacks could not acquire the GIL
1.0.0-alpha.7 - 2026-02-16
- Per-worker database isolation for parallel test execution
- Per-component logging via
FRONTIER_LOG=comp:levelenvironment variable
- Integration test failures 23 to 0 - All 1,881 integration tests passing
- Verb processor consolidation and WP headless support
- Script path error logging - Improved error messages for script resolution failures
- Concurrent access patterns - Fixed race conditions in shared state access
1.0.0-alpha.6 - 2026-02-11
- NDJSON protocol mode -
--protocolflag enables structured subprocess communication - 8-worker parallel test execution - Test suite runs in ~40s, down from 5+ minutes
- PTY harness for interactive integration tests
- Ranger-style file browser for
file.getFileDialog
- Integration test failures 755 to 23 - Massive reduction in test failures through systematic fixes
- Concurrent debugging infrastructure and platform detection improvements
1.0.0-alpha.5 - 2026-02-07
- GIL-based cooperative threading with real POSIX threads
- Guest database navigation and REPL index syntax
- Callback infrastructure for async operations
- Startup segfault - Fixed crash on application launch
- Thread registry - Corrected thread lifecycle management
- stringerrorlist YAML resource migration - Moved from compiled-in data to external resource
1.0.0-alpha.4 - 2026-01-31
- CLI state persistence - System root saves on exit
- Guest database support - Open, navigate, and close external databases
- Compiler warnings reduced 154 to 24 - Major cleanup of build warnings
- Startup stabilization - Resolved intermittent startup failures
- Menu loading - Fixed menu system initialization
- Integration test hardening - Improved test reliability
1.0.0-alpha.3 - 2026-01-27
- Webserver Hello World endpoint and TCP migration to portable sockets
- Intel Mac (x86_64) compatibility fixes
- Database file extension - Distribution builds now use
.rootextension instead of.root7. The v7 format is detected by header magic, not file extension.
- Critical: Fix dist startup crashes - Three independent root causes: restored
langexternalsetdatabase()for cross-database assignment, fixed menu external handling ingetoutlinefromtarget(), added NULLparam1guard inlangfunctioncall() - NULL safety in outline traversal - All 8 traversal functions in
opvisit.cnow check for NULL link pointers - Pack logging noise - Moved PACK diagnostics after dirty check and downgraded to trace level, eliminating ~6,800 log lines per save
- Nested parentOf() resolution - Fixed incorrect results for chained parentOf() calls
- REPL word navigation - Corrected cursor movement behavior
- HTTP verb handling - Fixed request processing issues
1.0.0-alpha.2 - 2026-01-15
- Critical: Preserve user data on upgrade - Installation script now checks if system root database already exists and prompts before overwriting (default: preserve existing). This prevents data loss when users upgrade to newer versions.
1.0.0-alpha.1 - 2026-01-15
- Universal Binary Build: Support for both Apple Silicon (arm64) and Intel (x86_64) in a single binary
- Automatic System Root Discovery: CLI now automatically finds system root database without requiring
--system-rootargument- Search paths:
$FRONTIER_ROOTenv var →~/Library/Application Support/Frontier/→~/.frontier/→ current directory
- Search paths:
- Version Embedding: Git-based version strings embedded at build time via
git describe - Professional Installation:
install.shscript for one-command installation- Automatic PATH management for zsh/bash
- Support for both sudo and non-sudo installation
- Release Automation:
tools/package_release.sh- Creates distribution archives- GitHub Actions workflow for automated releases on git tags
- SHA-256 checksums for all release artifacts
- Documentation:
INSTALL.md- Complete installation guideCHANGELOG.md- Version history tracking
- System Root Search: Enhanced auto-discovery replaces hardcoded
databases/Frontier.rootpaths - Copyright Notice: Updated to "1992-2026 UserLand Software, Inc. and Contributors"
- Installation Location: Default to macOS-standard
~/Library/Application Support/Frontier/for data
- Binary size: ~2.8MB (universal), ~1.4MB (single architecture)
- System root database: ~5.8MB (v6), ~9.9MB (v7 migrated)
- Supports macOS 11.0 (Big Sur) and later
None - this is the first pre-release for external distribution.
For developers upgrading from local builds:
- System root will auto-migrate from v6 to v7 format on first run
- Database migration creates
.root7file alongside original.rootfile - Original v6 files remain unchanged (read-only protected)