Skip to content

Implement interactive TUI for sysop management and release v1.1.0#1

Merged
sphildreth merged 13 commits into
mainfrom
sph.2026-06-03.01
Jun 3, 2026
Merged

Implement interactive TUI for sysop management and release v1.1.0#1
sphildreth merged 13 commits into
mainfrom
sph.2026-06-03.01

Conversation

@sphildreth
Copy link
Copy Markdown
Owner

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

  • Added the local Ratatui sysop TUI via 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.
  • Added configurable file logging under [logging], including text or newline-delimited JSON output, daily rotation, size-based rotation, and retention settings.
  • Added GitHub release artifact packaging for Linux, macOS, and Windows archives with SHA-256 checksums.
  • Added sysop-facing documentation for caller commands and user security levels.
  • Added stronger config and startup validation around screen assets, terminal assets, DecentDB startup reads, and audit writes.
  • Improved telnet caller compatibility with CRLF output normalization and CR-NUL input handling.
  • Updated generated configs and release archives so the bundled oxide-check door fixture lives under ./doors/oxide-door-check/dist, satisfying door containment checks.
  • Updated README, SECURITY, changelog, version metadata, starter assets, and release planning docs for the v1.1.x release line.

Compatibility Notes

  • All OxideBBS Rust workspace crates are aligned at 1.1.0.
  • No DecentDB schema bump is required; schema 4 remains the current v1 release-line schema.
  • Existing v1.0.0 board configs remain valid.
  • The v1.1.0 example config includes [logging] and [sysop] settings for file logging, rotation, and the local sysop TUI.
  • Directory-valued database.path values now resolve to oxidebbs.ddb inside that directory.
  • Startup now fails before listening when required database reads or startup audit writes fail.
  • Release archives include both the runnable doors/oxide-door-check fixture and source fixture under tools/doors.

Validation

Passed locally:

  • ./scripts/dev-check.sh
  • npm ci
  • npm run docs:build
  • Docker first-boot smoke test
  • Optional live DOSEMU2 smoke test
  • Local Linux release-package smoke test
  • stale release-state/version string scans
  • git diff --check

Deferred 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.

sphildreth added 13 commits June 3, 2026 07:30
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.
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.
@sphildreth sphildreth merged commit 8273856 into main Jun 3, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant