Releases: trilitech/octez-manager
Releases · trilitech/octez-manager
v0.3.0
octez-manager v0.3.0
This release brings major new features for RPC interaction, web-based access, improved stability, and extensive code quality improvements.
🎯 Highlights
Interactive RPC Browser
Press r in the TUI to explore your node's RPC endpoints interactively:
- Navigate the endpoint tree with cursor keys
- JSON syntax highlighting for responses
- Real-time streaming for monitor endpoints (e.g.,
/monitor/heads/main) - Quick shortcuts (1-5) for common endpoints
- Query any managed node via Tab key
Web Interface
Access octez-manager from your browser with octez-manager web:
- Full terminal interface via xterm.js over WebSocket
- Controller and viewer roles with optional password auth
- Perfect for remote server management
RPC CLI Tools
New octez-manager rpc commands for scripting and automation:
rpc get -i INSTANCE PATH- Execute GET requestsrpc list -i INSTANCE [PATH]- List available endpointsrpc interactive -i INSTANCE- Interactive mode with tab completion
✨ New Features
- Update notifications: TUI shows when new octez-manager versions are available
- Streaming RPC support: Monitor endpoints now display live-updating content
- Better form navigation: Tab/Shift+Tab to cycle between fields
- Architecture tools: Code health tracking with
arch_indexandarch_query
🐛 Bug Fixes
- Fixed weeklynet installation (name truncation and snapshot URL issues)
- Removed deprecated Ghostnet network from all selections
- System metrics now appear immediately on startup (no delay)
- Long-running installs (snapshot downloads) no longer timeout
- App shutdown is now instant (~0.5s instead of up to 10 minutes)
- Fixed forms flashing default values on submit
- Fixed Esc key accidentally quitting the app after closing modals
- Multi-column layout navigation improvements
🔧 Improvements
- Massive CI speedup: Build times reduced from ~45 min to ~10-12 min
- Better test isolation: All 56 integration tests now have guaranteed cleanup
- Code quality: Extensive refactoring reducing code duplication by 63%
- Better documentation: 138+ new doc comments across the codebase
- Updated to Miaou TUI library v0.2.6
📦 Installation
One-liner:
curl -fsSL https://raw.githubusercontent.com/trilitech/octez-manager/main/install.sh | shDebian/Ubuntu:
wget https://github.com/trilitech/octez-manager/releases/download/v0.3.0/octez-manager_0.3.0_ubuntu_amd64.deb
sudo dpkg -i octez-manager_0.3.0_ubuntu_amd64.debDirect download:
wget https://github.com/trilitech/octez-manager/releases/download/v0.3.0/octez-manager-v0.3.0-linux-x86_64
chmod +x octez-manager-v0.3.0-linux-x86_64
sudo mv octez-manager-v0.3.0-linux-x86_64 /usr/local/bin/octez-manager🔐 Verify Checksums
wget https://github.com/trilitech/octez-manager/releases/download/v0.3.0/sha256sums.txt
sha256sum -c sha256sums.txtFull Changelog: v0.2.1...v0.3.0
v0.2.1
Added
- TUI now shows notification when octez-manager update is available and recommends running
self-updatecommand
Changed
- Renamed "linked directories" to "registered directories" (CLI commands:
binaries link→binaries register,binaries unlink→binaries unregister)
Fixed
- Systemd service template warnings about unknown keys
StartLimitIntervalSecandStartLimitBurstin [Service] section (moved to [Unit] section)
Removed
- Ghostnet support - Ghostnet testnet has been deprecated and is no longer available as a network option
What's Changed
- Fix #512: Enable cascade import for accusers by @vch9 in #525
- feat(ui): auto-find available ports for DAL instances by @vch9 in #519
- fix(installer): remove obsolete logrotate sync calls by @vch9 in #520
- fix(ui): force immediate refresh after instance removal by @vch9 in #526
- docs: add OCaml LSP server guide to AGENTS.md by @mathiasbourgoin in #539
- feat: drop Ghostnet support by @vch9 in #521
- docs: add missing changelog entry for PR #496 to v0.2.0 by @vch9 in #533
- Fix #515: Rename 'linked' to 'registered' directories by @vch9 in #522
- Fix #541: Move StartLimitIntervalSec and StartLimitBurst to [Unit] section by @vch9 in #551
- feat(tui): add self-update notification on startup by @vch9 in #554
Full Changelog: v0.2.0...0.2.1
v0.2.0
Added
- Self-Update System: Check for and install octez-manager updates
- Binary Management: Download and manage official Octez binary releases
- Installer Integration: Use managed binaries when installing services
- Version Notifications: Get notified when new Octez versions are available
- Update Version Action: Change the binary version used by running services
- Cascade Update and Rollback: Update services along with their dependents
- Unmanaged Instances Detection: Automatically detect Octez services not installed by octez-manager
- Import External Services: Convert detected external services into managed instances
Changed
- Default network changed from mainnet to shadownet for new installations
Fixed
- Import wizard navigation and error handling improvements
- Binary download progress no longer causes display glitches
- Various keyboard shortcuts and UI fixes
- Clean exit without hanging on quit
Full changelog: https://github.com/trilitech/octez-manager/blob/main/CHANGELOG.md
What's Changed
- chore(docs): update logo to latest official Octez version by @mathiasbourgoin in #257
- docs: add gardening framework for ongoing code maintenance by @mathiasbourgoin in #275
- ci: deploy docs to AWS S3/CloudFront by @mathiasbourgoin in #279
- ci: make CloudFront invalidation non-blocking by @vch9 in #282
- fix(docs): update base URL for octez-manager.tezos.com by @mathiasbourgoin in #283
- fix(docs): remove hardcoded /octez-manager/ from internal links by @mathiasbourgoin in #284
- docs: update installation to prioritize install script by @mathiasbourgoin in #285
- feat(binaries): add storage and config schema for binary management by @mathiasbourgoin in #268
- fix(ui): allow 'h' key to toggle hidden files in file browser by @mathiasbourgoin in #287
- chore(docs): compress GIF assets for faster page loads by @mathiasbourgoin in #290
- feat: disable mouse tracking in TUI by @vch9 in #288
- feat(installer): auto-position extra args based on option type by @mathiasbourgoin in #289
- docs(agents): add rules for moving code between files by @mathiasbourgoin in #304
- docs(readme): fix install-node snapshot command syntax by @vch9 in #306
- fix: add retry logic for sandbox snapshot download by @vch9 in #291
- refactor(cli): extract output formatting to cli_output module by @mathiasbourgoin in #308
- refactor(cli): extract helper utilities to cli_helpers module by @mathiasbourgoin in #309
- refactor(cli): extract install-accuser command to cmd_install_accuser module by @mathiasbourgoin in #310
- refactor(cli): extract install-dal-node command to cmd_install_dal module by @mathiasbourgoin in #311
- refactor(cli): extract install-baker command to cmd_install_baker module by @mathiasbourgoin in #314
- refactor(cli): extract install-node command to cmd_install_node module by @mathiasbourgoin in #315
- refactor(cli): extract instance command to cmd_instance module by @mathiasbourgoin in #316
- refactor(instances): extract state module (Phase 1 of #272) by @vch9 in #312
- refactor(instances): extract layout module (Phase 2 of #272) by @vch9 in #313
- refactor(cli): extract utility commands to cmd_utils module by @mathiasbourgoin in #317
- refactor(installer): prepare directory structure for modularization by @mathiasbourgoin in #319
- refactor(instances): extract render module (Phase 3 of #272) by @vch9 in #329
- refactor(installer): extract helpers module by @mathiasbourgoin in #320
- docs(agents): add guideline preferring 'open' over 'include' by @mathiasbourgoin in #331
- refactor(installer): extract snapshot module by @mathiasbourgoin in #321
- refactor(instances): extract actions module (Phase 4 of #272) by @vch9 in #330
- chore: add copyright header checker and fix all headers by @mathiasbourgoin in #332
- refactor(installer): extract config module by @mathiasbourgoin in #322
- refactor(installer): extract node module by @mathiasbourgoin in #323
- refactor(installer): extract dal_node module by @mathiasbourgoin in #324
- refactor(installer): extract baker module by @mathiasbourgoin in #325
- refactor(installer): extract accuser module by @mathiasbourgoin in #326
- refactor(installer): extract lifecycle module by @mathiasbourgoin in #327
- refactor(installer): extract removal module by @mathiasbourgoin in #328
- feat: detect and manage external Octez services by @mathiasbourgoin in #334
- feat(import): core import library with bug fixes by @mathiasbourgoin in #368
- Improve data directory validation error message in node install form by @Copilot in #333
- feat(cli): add import command for external services by @mathiasbourgoin in #369
- feat(binaries): implement download engine for Octez binaries by @vch9 in #358
- docs: add code review guidelines to AGENTS.md by @vch9 in #377
- feat(ui): add interactive TUI wizard for importing services by @mathiasbourgoin in #366
- feat(binaries): implement CLI commands for binary management by @vch9 in #359
- feat(binaries): add TUI page for binary management by @vch9 in #362
- test(import): add comprehensive integration tests for import feature by @mathiasbourgoin in #376
- fix: change default network from mainnet to shadownet by @mathiasbourgoin in #379
- fix(cli): add warning when $EDITOR is not set in interactive mode by @mathiasbourgoin in #380
- fix(import): improve cascade import error context by @mathiasbourgoin in #381
- feat(instances): add Update Version action by @vch9 in #363
- feat(ci): implement time-based test sharding for balanced parallel execution by @mathiasbourgoin in #382
- fix(ci): pin OCaml base image to known-good digest by @mathiasbourgoin in #387
- fix(binaries): include octez-baker in binary downloads by @vch9 in #388
- feat(instances): add cascade update and rollback support by @vch9 in #364
- Revert self-update notification feature by @vch9 in #390
- feat(installer): integrate managed binaries into install wizards by @vch9 in #367
- fix(tui): filter binaries list to show only 2 latest major versions by @vch9 in #403
- fix: parse actual byte counts from curl progress output by @mathiasbourgoin in #397
- feat(tui): Multi-file progress display for binary downloads by @mathiasbourgoin in #406
- fix: Atomic binary downloads to prevent incomplete installations by @mathiasbourgoin in #407
- feat(notifications): notify users of new Octez versions by @vch9 in #370
- feat(prune): add disk space calculation to prune command by @vch9 in #371
- fix: replace disk cache with RAM cache for versions in TUI by @vch9 in #410
- feat: group binaries by major version with collapse/expand by @vch9 in #411
- feat(binaries): download binaries in parallel by @vch9 in #412
- ci: Add docs-check job for documentation-only PRs by @mathiasbourgoin in https://github.com/trilitech/octez-manager/pull/...
v0.1.1
What's Changed
- docs: add logos to README by @mathiasbourgoin in #242
- Update storage requirements for node setups by @ACoquereau in #240
- docs: align style with Tezlink/Tezos design by @mathiasbourgoin in #245
- docs: improve sidebar styling to match Tezlink by @mathiasbourgoin in #246
- feat: add install script for one-liner installation by @mathiasbourgoin in #247
- fix: ensure tmp cleanup on error in install script by @mathiasbourgoin in #249
- fix: hero button text color in dark mode by @mathiasbourgoin in #248
- fix: use official Tezos logo by @mathiasbourgoin in #250
- docs: use shadownet in examples instead of mainnet by @mathiasbourgoin in #251
- feat(forms): validate binary accessibility for service user by @vch9 in #244
- ui: add Tab shortcut to hint bar by @mathiasbourgoin in #243
- ci: add Ubuntu and Debian .deb package builds by @mathiasbourgoin in #254
- chore: release 0.1.1 by @mathiasbourgoin in #256
Full Changelog: v0.1.0...v0.1.1
v0.1.0
Highlights
- Export logs command for diagnostics
- Disk space check before snapshot download
- UI as default command (run
octez-managerinstead ofoctez-manager ui) - Comprehensive documentation with demo GIFs
- Integration test suite with Docker-based testing
What's Changed
Added
- Export logs command (
octez-manager instance <name> export-logs) - Disk space check before snapshot download
- Snapshot integrity verification option
- Auto-generated instance names for all service types
- System monitor graphs for accusers
- TUI flow tests using headless driver
Fixed
- Cache invalidation after editing instances
- Instance naming no longer includes redundant "node-" prefix
- DAL node uses correct binary (octez-dal-node)
- Service failure detection and status display
- Form field truncation on narrow terminals
Documentation
- Documentation now focuses on Shadownet for examples
- Added Nomadic Labs and Trilitech credits
- Comprehensive CLI reference with examples
- TUI guide focused on workflows
- Dark mode support for logos
See CHANGELOG.md for full details.
What's Changed
- Cli: improve and fix a bunch of stuff by @vch9 in #105
- cli: import octez-node data-dir by @vch9 in #109
- fix(ci): explicit dependency on miaou-driver-matrix by @mathiasbourgoin in #124
- Remove signer management by @mathiasbourgoin in #126
- Remove refresh-from-snapshot functionality by @mathiasbourgoin in #127
- Add help-driven generator for bash/zsh completions by @mathiasbourgoin in #102
- Fix/UI pollution by @mathiasbourgoin in #128
- fix: Dynamically discover instance actions for shell completions by @mathiasbourgoin in #133
- Fix/node preserve data dir by @mathiasbourgoin in #135
- feat(ui): Migrate to Miaou Navigation API by @mathiasbourgoin in #139
- fix(ui): Use cache for load_service_states when detail=false by @mathiasbourgoin in #143
- Feat/edit instance by @mathiasbourgoin in #140
- feat(logs): Improve log viewer experience by @mathiasbourgoin in #149
- docs: Add Astro Starlight documentation site by @mathiasbourgoin in #152
- fix: Use stable backends for Eio and Miaou drivers by @mathiasbourgoin in #155
- feat: Add Docker-based integration test framework by @mathiasbourgoin in #156
- test(integration): Add comprehensive node instance tests by @mathiasbourgoin in #157
- refactor(integration): Switch to real systemd in test container by @mathiasbourgoin in #158
- test(integration): Add node runtime tests by @mathiasbourgoin in #159
- fix: Use correct help subcommands for accuser and DAL node by @mathiasbourgoin in #154
- feat: Show snapshot download progress in UI log panel by @mathiasbourgoin in #151
- fix: Add --tmp-dir option for large snapshot downloads by @mathiasbourgoin in #160
- fix(ui): Show failure feedback when service fails to start by @mathiasbourgoin in #161
- fix: Pass --endpoint to both global and DAL node options by @mathiasbourgoin in #167
- fix(docs): Correct CLI documentation and add missing content by @mathiasbourgoin in #169
- fix(docs): Update logo with transparency fix by @mathiasbourgoin in #170
- fix(docs): Update logo and favicon with proper transparency by @mathiasbourgoin in #171
- fix(docs): Update logo and favicon by @mathiasbourgoin in #172
- fix(docs): Update logo and favicon by @mathiasbourgoin in #173
- docs: Add AGENTS.md with TUI architecture guidelines by @mathiasbourgoin in #174
- fix(ui): UX improvements from issue #164 by @mathiasbourgoin in #166
- From dune build to make build by @mattiasdrp in #176
- [Docs] update by @ACoquereau in #178
- fix(ui): Restore phase indicator in job status header by @mathiasbourgoin in #184
- README: update prerequisites by @picdc in #138
- fix(ui): Remove non-functional wallet button and use named constants by @mathiasbourgoin in #185
- Fix duplicate role prefix in data directory paths by @Copilot in #187
- Filter snapshot import options by selected history mode by @Copilot in #191
- perf: Cache port validation to avoid I/O during form render by @mathiasbourgoin in #190
- chore: cleanup Makefile targets by @mathiasbourgoin in #198
- Move Edit action from instance details to instance actions menu by @Copilot in #194
- ci: improve CI performance and add sync IO lint by @mathiasbourgoin in #201
- fix(ui): disable left/right navigation in menu area by @vch9 in #203
- feat(tui): default snapshot download to enabled for new nodes by @Copilot in #197
- fix: Use octez-dal-node binary instead of octez-baker run dal by @mathiasbourgoin in #188
- fix(ui): update filebrowser selection handling by @mathiasbourgoin in #199
- fix(ui): fix curl output leakage and blocking snapshot checks by @mathiasbourgoin in #200
- chore: add _opam/ to .gitignore by @vch9 in #207
- fix(ui): don't highlight columns when menu is selected by @vch9 in #208
- docs: update README with current features and architecture by @vch9 in #209
- fix(dal): use custom data directory from form field by @mathiasbourgoin in #206
- feat: make UI the default command by @vch9 in #210
- feat(install): check disk space before snapshot download by @mathiasbourgoin in #211
- fix(rename): properly update all dependency references when renaming by @mathiasbourgoin in #212
- feat(cli): add export-logs command for diagnostics by @mathiasbourgoin in #213
- feat(systemd): increase service retry configuration by @vch9 in #216
- chore(completions): use dynamic options and rename files by @mathiasbourgoin in #217
- docs: fix CLI reference and guides discrepancies by @mathiasbourgoin in #221
- chore: use miaou's default driver instead of forcing term by @mathiasbourgoin in #220
- fix(ui): truncate long values in form fields by @mathiasbourgoin in #218
- docs: fix GitHub URLs and light theme support by @mathiasbourgoin in #222
- docs: fix light theme and remaining GitHub URLs by @mathiasbourgoin in #223
- fix(ui): use Atomic for instances_dirty cross-domain visibility by @mathiasbourgoin in #224
- fix(ui): preserve data_dir when renaming instance in edit mode by @mathiasbourgoin in #225
- fix(ui): invalidate caches after editing instances by @mathiasbourgoin in #226
- fix(ui): strip node- prefix from auto-generated instance names by @mathiasbourgoin in #227
- docs: add demo GIFs to documentation by @mathiasbourgoin in #228
- fix(docs): move GIFs to public folder for LFS compatibility by @mathiasbourgoin in #229
- fix(ci): fetch LFS files in docs deploy workflow by @mathiasbourgoin in #230
- docs: focus on Shadownet and improve TUI guide by @mathiasbourgoin in #231
- docs: fix logos and baker monitoring description by @mathiasbourgoin in https://github.com/trilitech/octez-manage...
v0.0.2
What's Changed
- ocamlformat by @vch9 in #94
- fix: clean up background processes on app exit by @mathiasbourgoin in #96
- feat: smart binary path defaults and LRU directory registry by @mathiasbourgoin in #97
- fix(ui): preserve extra flags and require values for value flag by @mathiasbourgoin in #98
- feat(ui): Instances UI cleanup by @mathiasbourgoin in #100
- docs: update miaou repo URL to trilitech/miaou by @mathiasbourgoin in #103
- perf(ui): improve form and instances page responsiveness with centralized caching by @mathiasbourgoin in #95
- feat(ui) Instances matrix layout by @mathiasbourgoin in #99
- docs: add CHANGELOG for v0.0.2 release by @mathiasbourgoin in #104
Full Changelog: v0.0.1...v0.0.2
v0.0.1
What's Changed
- Address CI workflow review feedback and fix missing dependencies by @Copilot in #9
- Validate snapshot history mode matches node configuration before import by @Copilot in #4
- Add --snapshot-no-check flag to install-node command by @Copilot in #20
- Copilot/monitoring dashboard by @mathiasbourgoin in #22
- Resolve teztnets network aliases to URLs before passing to octez-node by @Copilot in #12
- Simplify network prompt text in CLI by @Copilot in #28
- Add purge-all command to purge all registered instances by @Copilot in #26
- Convert relative --app-bin-dir paths to absolute before storing in systemd units by @Copilot in #31
- Add service name to
instance showoutput by @Copilot in #32 - Make install-baker prompt interactively for instance name by @Copilot in #36
- Fix baker remote command from "run with remote node" to "run remotely" by @Copilot in #38
- Enforce unique instance names across all service roles by @Copilot in #41
- Add mandatory liquidity baking vote configuration for baker instances by @Copilot in #43
- Add DAL node endpoint configuration with opt-out support for baker by @Copilot in #45
- Remove --role flag from instance management commands by @Copilot in #47
- Leftover from !47 by @vch9 in #48
- Make install-dal-node instance parameter optional with interactive prompting by @Copilot in #51
- Add net-addr and endpoint parameters to install-dal-node by @Copilot in #53
- Remove install-smart-rollup-node command by @Copilot in #58
- Fix CLI input prompts: arrow keys now work instead of printing escape sequences by @Copilot in #55
- CLI: Default install-baker to pass/none, add interactive node/DAL selection with autocompletion by @Copilot in #60
- Fix DAL node network display by hiding incorrect network field by @Copilot in #57
- Baker: resolve network from connected octez-node endpoint by @Copilot in #64
- Baker: make the install baker simpler by @vch9 in #72
- Validate instance names for systemd compatibility by @Copilot in #71
- Fix node endpoint handling in install-baker interactive prompt by @Copilot in #75
- Feature/form builder core by @mathiasbourgoin in #76
- Feature/form builder bundles by @mathiasbourgoin in #77
- Feature/node form v3 by @mathiasbourgoin in #78
- Feature/accuser form v3 by @mathiasbourgoin in #79
- feat: Add DAL node and signer installers using field bundles by @mathiasbourgoin in #80
- Feature/form builder cleanup by @mathiasbourgoin in #81
- Add zsh autocompletion for octez-manager CLI by @Copilot in #66
- Chore: Update modals width to new miaou features by @mathiasbourgoin in #82
- A bunch of improvements by @vch9 in #83
- Form parity and defaults improvements by @mathiasbourgoin in #84
- ci: switch to Alpine-based static builds without SDL by @mathiasbourgoin in #85
- Fix service command line generation by @mathiasbourgoin in #86
- refactor: Simplify logging to journald-only by @mathiasbourgoin in #88
- fix(ui): Modal callback, form navigation and reset fixes by @mathiasbourgoin in #87
- feat(ui): add system metrics and version tracking for nodes by @mathiasbourgoin in #89
- feat(ui): Improve Instances Page by @mathiasbourgoin in #90
- Add form field help hints and purge-all directory cleanup by @mathiasbourgoin in #91
- Prepare repository for open-source release by @mathiasbourgoin in #92
- docs: add UI screenshot to README by @mathiasbourgoin in #93
New Contributors
- @Copilot made their first contribution in #9
- @mathiasbourgoin made their first contribution in #22
Full Changelog: https://github.com/mathiasbourgoin/octez-manager/commits/v0.0.1