[0.1.0-beta.5] — 2026-07-10
Overview
This release is a major architectural milestone for cdin.
The focus of this release is not a large set of user-facing features, but a complete improvement of the internal foundation: the Lua layer has been simplified, core functionality has moved behind cleaner C-powered APIs, the event bus system has been removed, and several internal systems have been redesigned for better modularity and future extensibility.
Filesystem operations, searching, Git integration, state handling, and lifecycle management are now organized around dedicated APIs and modules, creating a cleaner foundation for future plugins and editor features.
Due to the scope of these changes, some internal Lua APIs and plugin behaviors may require updates.
Breaking Changes
Event system removal
- Removed the old
eventbussystem from both C and Lua. - Plugins using
eventbus.emit(...)or depending on event bus initialization must migrate to the new architecture.
Lua structure changes
- Reorganized the
data/Lua structure. - Removed redundant modules and moved functionality into cleaner core APIs.
- Internal module paths may have changed.
Keymap changes
- Centralized default keymap registration into
core/keymaps/default.lua. - Plugins or user configurations that relied on previous startup ordering may require adjustments.
Document hooks
- Replaced document method monkey-patching with a structured hook table system.
- Plugins extending document behavior should migrate to the new hook mechanism.
New Features
Core Architecture
State and project management
- Added
core.statefor centralized runtime state management. - Added
core.projectfor project lifecycle and project-related operations. - Created a cleaner foundation for future session and workspace features.
Lifecycle system
- Added Lua initialization and lifecycle management.
- Plugins can now follow structured initialization phases instead of relying on implicit loading behavior.
Logging system
- Added a unified logger available from both C and Lua.
- Improved debugging and internal diagnostics.
Core helpers
- Added
core.active_docview()helper. - Reduced the need for plugins and internal components to manually traverse views.
- Added shared utilities such as configuration helpers and copy utilities.
Public APIs
Filesystem API
- Added a public
fsAPI exposed to Lua. - Provides unified filesystem operations and path handling.
- Reduces duplicated filesystem logic across plugins and core modules.
Search API
- Added a public
searchAPI exposed to Lua. - Search functionality is now powered by the native C search engine.
- Plugins can use the same search implementation as the editor core.
Git API
- Added centralized
core.gitAPIs. - Git operations are now shared between core components and plugins.
- Removed duplicated Git command handling from individual modules.
Search Improvements
- Reworked search around the native
search.cengine. - Improved consistency between project search and internal search functionality.
- Removed older duplicated Lua-based search logic.
- Added a cleaner API layer for future search extensions.
Git Integration
- Centralized Git status, branch, and repository operations.
- Improved Git usage across treeview, statusbar, and plugins.
- Git information is now provided through
core.git.status.
Git UI improvements
- Treeview Git badges now use centralized Git APIs.
- Status bar Git information now reads from the Git API instead of executing commands directly.
UI & Editor Improvements
Status bar
- Redesigned status bar layout.
- Added Vim mode indicator/pill.
- Git branch and status information are now integrated through the new Git API.
Project search
- Improved search result presentation.
- Added match context display.
- Added highlighted matches.
- Added progress indication during searches.
Tabs and windows
- Added tab/window command support.
- Improved tab and window management architecture.
- Removed unnecessary tab abstractions by integrating logic directly into the tab system.
Theme
- Added a new built-in theme.
Log view
- Added copy and paste support for log entries.
Vim Improvements
- Unified write/quit mappings through the
excommand system. - Improved usage of
core.active_docview(). - Reduced duplicated view lookup logic.
Configuration & Initialization
- Added dedicated configuration and event modules.
- Improved initialization order and module separation.
- Boot sequence has been simplified.
Bug Fixes
Git
- Fixed Linux Git ignored-file detection error:
git ls-files -i must be used with either -o or -c- Fixed Git subprocess handling issues on Windows.
Editor behavior
- Fixed insert mode
mkey incorrectly opening menus. - Fixed incorrect directory label rendering in empty views.
Build & Platform
- Fixed several platform-specific build issues.
- Improved consistency of Git and shell behavior across supported platforms.
Refactoring & Internal Changes
- Removed event bus dependencies from the codebase.
- Replaced document monkey-patching with hook tables.
- Removed obsolete Lua files and duplicated logic.
- Simplified core module boundaries.
- Fixed C core submodule paths.
- Updated Makefile and build structure.
- Marked required build scripts as executable through Git attributes.
- Improved internal synchronization between C and Lua layers.
Platform Notes
| Platform | Status |
|---|---|
| Linux | Supported. Native APIs and Git integration improved. |
| Windows | Supported. Git subprocess handling improved. |
| macOS | Supported. Existing release pipeline improvements continue. |
Stability Notes
This release focuses on architecture rather than major visual changes.
The main goal is creating a cleaner and more maintainable foundation for future cdin development, including:
- More powerful plugins
- Better project management
- Advanced editor automation
- Improved language tooling support
Installation
Linux (x86_64)
tar xzf cdin-v0.1.0-beta.5-linux-x86_64.tar.gz
cd cdin-v0.1.0-beta.5-linux-x86_64
bash install.sh # → ~/.local (no sudo)
# or system-wide:
sudo bash install.sh --prefix=/usr/localSDL3 runtime — needed at runtime if not already installed:
- Ubuntu 24.04+:
sudo apt install libsdl3-0- Other distros: see SDL3 releases
Windows (x86_64)
- Download
cdin-v0.1.0-beta.5-windows-x86_64.zipand extract it. - Open PowerShell inside the extracted folder and run:
.\install.ps1
# Optional:
.\install.ps1 -RegisterFileTypes # set as default for text/code files
.\install.ps1 -Prefix C:\Tools\cdin # custom locationThe installer copies
cdin.exe,SDL3.dll, and the Lua DLL into
%LOCALAPPDATA%\cdin\binand adds that folder to your user PATH.
macOS (arm64)
- Download
cdin-v0.1.0-beta.5-macos.dmgand double-click it. - Drag cdin into the Applications folder shortcut.
- Eject the disk image and open cdin from Launchpad or Spotlight.
SDL3 is bundled inside the .app — no Homebrew or extra installs needed.