Implement interactive TUI for sysop management and release v1.1.0#1
Merged
Conversation
Introduce a full-featured TUI for system administration, allowing operators to manage the BBS from a terminal interface. This implementation includes a modular screen system, command palette, and reactive event loop. - Add ratatui and crossterm for terminal rendering and input - Implement core application state and event handling in oxidebbs-sysop - Integrate TUI launch via "oxide-server sysop --tui" command - Define theme, custom widgets, and service layer for the management UI - Add fuzzy-matching support for command palette operations
Reflect the version bump in the documentation to designate the next minor release. - Set version 1.1.0 for the current set of unreleased changes.
Update design documents to reflect the transition of the Ratatui-based sysop interface from a planned feature to a shipped component of v1.1. - Mark milestones TUI-0 through TUI-4 as completed. - Update command references to include the `--tui` flag. - Shift project timelines and recommendations from future to current status.
Promote the Ratatui-based TUI to be the default sysop interface and wire up state-modifying administrative actions with full auditing. - Replace the legacy text-only preview with the full interactive TUI. - Add a --readonly flag to the sysop command for safe monitoring. - Implement user status toggles and door enablement with confirmation modals. - Integrate audit logging into user, door, and message service layers. - Complete implementation of ANSI, Config, and Log screens, including support for log directory tailing and TOML flattening. - Add dynamic grid scaling and sorting to the node management interface.
Enable the sysop command to launch an embedded server instance if no active control socket is detected. This allows for full management functionality, including node and service control, even when the main BBS process is offline. - Implement automatic server lifecycle management within the TUI process. - Add --connect-only flag to explicitly skip embedded server startup. - Refine input handling to support case-insensitive control hotkeys and Shift modifiers. - Improve help screen navigation and semantic modal interaction. - Update technical specifications and changelog to reflect standalone operational modes.
- Introduced a new `theme_name` field in `AppConfig` to specify the TUI theme. - Implemented theme selection logic in the `App` struct, defaulting to "oxide-classic". - Added a variety of themes: `wildcat`, `telegard`, `vbbs`, `mystic`, `midnight`, and `high-contrast`. - Updated control client to use newline-delimited JSON for requests and responses. - Enhanced documentation to include theme options and examples. - Created a new `sysop-tui-themes.md` file detailing theme descriptions and visual previews.
Provide visual feedback for interactive commands and background tasks within the sysop management interface. This update introduces a visible command palette and a status bar messaging system. - Add a modal overlay for the command palette with fuzzy-search display. - Enable transient status messages in the footer for operation feedback. - Integrate F3 filtering and F5 refresh actions with visual cues. - Ensure consistent rendering of the command palette state to prevent unresponsive UI states.
Integrate a "Doctor" screen into the management TUI to perform automated validation of database integrity, schema status, and active session health. This update also adds safeguards to prevent accidental service disruption. - Add verbose health checks with remediation steps for system issues. - Implement a configurable exit confirmation dialog via `confirm_quit`. - Enforce mandatory shutdown warnings if active callers are connected. - Map `Ctrl+O` for quick navigation to the new diagnostics interface. - Update configuration templates and documentation for sysop controls.
…ntation checklist
Align all workspace crates, documentation, and metadata for the v1.1.0 release. This update automates the installation of the `oxide-check` test door during setup and updates the release pipeline to include bundled tools and assets. - Bump crate versions and package metadata to 1.1.0. - Embed and automate installation of the `oxide-check` door fixture. - Finalize v1.1.0 changelog, release plan, and security policies. - Update welcome ANSI art and documentation for the new release line. - Restore project task tracking in `design/TASKS.md`.
Update the README to provide a visual demonstration of the Sysop TUI dashboard and improve project cross-referencing. - Add a dedicated Sysop TUI section featuring a screenshot of the dashboard, node map, and health alerts. - Link DecentDB mentions to the official project repository. - Initialize the `graphics/screenshots` directory to house visual documentation assets.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
v1.1.0 Release Notes
OxideBBS v1.1.0 is the first follow-up release after v1.0.0, focused on sysop operations, release packaging, logging, documentation, and production-readiness fixes.
Highlights
oxidebbs-server sysop, including dashboard, nodes, users, doors, messages, database, logs, config, ANSI, audit, doctor, command palette, modal actions, read-only mode,and selectable themes.
[logging], including text or newline-delimited JSON output, daily rotation, size-based rotation, and retention settings.oxide-checkdoor fixture lives under./doors/oxide-door-check/dist, satisfying door containment checks.v1.1.xrelease line.Compatibility Notes
1.1.0.4remains the current v1 release-line schema.v1.0.0board configs remain valid.[logging]and[sysop]settings for file logging, rotation, and the local sysop TUI.database.pathvalues now resolve tooxidebbs.ddbinside that directory.doors/oxide-door-checkfixture and source fixture undertools/doors.Validation
Passed locally:
./scripts/dev-check.shnpm cinpm run docs:buildgit diff --checkDeferred From v1.1.0
The following remain intentionally deferred: menu-level security enforcement, caller-side sysop menu, door add/edit mutation commands, additional drop-file formats,
db compact, audit purge CLI wrapper,dedicated logoff screen rendering, FTN/OxideNet implementation, physical modem transport, file transfers, remote web admin, native door API, and remote door-provider integrations.