-
Notifications
You must be signed in to change notification settings - Fork 741
Open
Labels
Description
Feature description
Summary
Introduce an interactive configuration tool for WaveTerm, inspired by the "wavectl" project, to make configuring AI models, SSH connections, themes, and widgets simple and reliable without manual JSON editing.
Problem
Today, many WaveTerm settings (AI providers/keys, SSH profiles, appearance, widgets) require editing JSON or navigating disparate UI surfaces. This is error‑prone, hard to discover, and increases support load due to misconfigurations.
Proposal
Provide a unified configuration experience:
- A guided, interactive interface (TUI/GUI) to view and edit all settings in one place.
- Version‑aware schemas so upgrades migrate configs safely.
- Explicit validation and test flows (e.g., "Test SSH", "Validate AI key").
- Export/import profiles for portability and team sharing.
Scope
- AI Settings: choose provider/model, store API keys securely, per‑workspace overrides.
- SSH Connections: key management, auth methods, agent forwarding toggle, quick tests.
- Appearance: theme selection (light/dark), custom accents, font/opacity, per‑workspace defaults.
- Widgets: enable/arrange terminal widgets with previews.
User Experience
- One entry point from Settings ("Configuration Manager") or a CLI command.
- Clear status and validation feedback; undo/rollback on failed saves.
- Safe migration assistant when config version changes.
Benefits
- Lower setup friction and fewer support tickets.
- Safer upgrades via schema migration.
- Better onboarding with discoverable, validated settings.
Prior Art
The open‑source "wavectl" tool provides a lightweight TUI that manages AI models, SSH, appearance, and widgets with version awareness and language auto‑detection, demonstrating the viability of an integrated configuration manager for WaveTerm.
Implementation Suggestion
Architecture Options
- Built‑in panel: Implement a first‑party Configuration Manager inside WaveTerm (Electron) using your existing settings APIs.
- Bundled CLI: Ship a companion CLI (e.g.,
wavectl) that reads/writes the WaveTerm config with strict schema validation. - Hybrid: GUI for common paths + CLI/TUI for advanced/automation.
Key Components
- Central schema with versioning (semver + migrations).
- Validation layer (per setting, cross‑setting constraints).
- Secrets handling (OS keychain or encrypted store) for API keys.
- Test runners: SSH handshake, AI key check, widget preview.
- Import/export of profiles and workspace‑level overrides.
Internationalization
- Auto detect system language with override env/setting; provide minimal i18n strings initially (EN/zh), expand later.
Persistence & Safety
- Transactional writes with backup snapshots; rollback on failure.
- Telemetry‑aware: fully functional with telemetry disabled.
UX Details
- Entry points in Settings and Command Palette.
- "Dry‑run" migration preview before applying changes.
- Keyboard‑friendly flows; accessible controls and clear error states.
Anything else?
References
- Project readme and feature overview: wavectl repository
Notes
- The proposal focuses on a unified, validated configuration path covering AI, SSH, appearance, and widgets, with version‑aware schemas and language support, aligning closely with the demonstrated capabilities in wavectl.