Webox v0.1.0-rc2 — Sprint 20 (TUI polish + Provider Catalog)
Pre-releaseWebox v0.1.0-rc2 — Release notes
Tag: v0.1.0-rc2 · published 2026-05-25 as a GitHub pre-release.
Type: Release candidate refresh — Sprint 20 (TUI polish + Provider Catalog) ships into the RC channel alongside the new manual-validation harness.
Promote this commit to
v0.1.0(GA) by re-tagging the same SHA after the manual checklist in.cursor/skills/release-check/SKILL.mdis fully ticked. No code changes expected between RC2 and GA; the next code-affecting work is on the v0.2 track (Sprint 21 cPanel adapter).
What changed since v0.1.0-rc1
This RC bundles Sprint 20's TUI hardening, the Sprint 19 carry-over Provider Catalog screen, and a brand-new tuistory-driven PTY smoke harness that validates every user-facing change against the actual ./bin/webox binary on every push.
New cockpit surfaces
- Provider Catalog screen (
pfrom dashboard) — a read-only browser over the Sprint-19 embedded preset registry. Rows are grouped by region (🇵🇱 Poland,🇪🇺 Europe,🌍 Global,🛠 Advanced) with status pills (VERIFIED/CANDIDATE/RESEARCH/DEPRECATED/COMMUNITY) and capability badges (SSH · API · Node · SSL · DB · Logs · Safe Restart · Fixtures).↑/↓walks the cursor,Enter/→toggles a deep-dive strip (markets, panel API, restart method, paths, probes, known risks, sources, verification audit trail).ccopies a stable plain-text "Webox Provider Briefing" to the OS clipboard (pbcopy/xsel/xclip/wl-copy/clip.exe); on headless servers the failure surfaces an inline remediation hint instead of crashing. - Help overlay (
?from any surface) — a centred fullscreen modal that lists keybindings sourced from the active surface's footer at render time. The list cannot drift from reality because it is parsed from the same string the chrome already advertises. While the overlay is up, every other key is silently swallowed except?,Esc,q,Ctrl-C(strict block, matching the host-key modal pattern).
Project Detail tab unstubs
Both v0.2-flagged tabs are now first-class read-only views (no backend I/O, no wizard, no risk of writes):
- Tab 2 — Environment Diff. A compact table of
secrets/registry.jsonentries: alias, env-var key,last_rotated_atrelative time, source backend, stale flag (older than 60 days). Onboarding hint when the project has no entries yet. - Tab 3 — Database. A stack-aware connection cheatsheet (mysql / postgres / redis / sqlite) with copy-friendly one-liners, host hint inferred from profile, and a per-stack documentation link.
Standard mode mini-bento
The 100×30 Standard mode now lays out a 4-tile mini-bento (projects + server detail above, CI/CD strip + log strip below) instead of the old dual-tile fallback. Density is now within 5 lines of Ultra at the same width, without compromising the safe-zone Tiny fallback at sub-80×24.
Mouse semantics
- Layout-aware left-click. From the dashboard, a click anywhere inside the Projects tile drills into Project Detail; clicks on status bar / footer / empty space are silent no-ops (no more accidental focus loss).
- From Project Detail, a body click returns to the dashboard.
Tabis a new alias for the same back-navigation (matches the new help overlay's listed binding).
Footer / chrome hints
- Per-surface footers (
projectdetail,projectwizard,initwizard,resumewizard,importpreview,catalog) carry context-specific keybindings instead of the old global hint. The chrome no longer advertises the never-implemented[/] command palette. - Focus-mode footer (when a tile is locked via
Tab) showsfocus: <tile> · [PgUp/PgDn] scroll panel · [Esc] release. - Bento UltraPlus's deep-dive strip placeholder is gone — the mode now uses the same 4-band layout as Ultra at higher resolutions until a real deep-dive tile lands in v0.2.
- Bento Tiny fallback's misleading
[r] to redrawhint is replaced withResize to ≥ 100×24 to unlock cockpit.
Manual smoke harness
make smoke-test. Newscripts/manual-test/Node 24+ project drives./bin/webox --mockthrough every Sprint 20 user-facing change via tuistory (Playwright-for-terminals): 5 scenarios × 34 assertions × ~83 s wall-clock end-to-end. Scenarios cover bento mode flipping on resize, help overlay strict-block routing, Provider Catalog navigation + clipboard, Project Detail tab navigation including theTabback-nav alias, and layout-aware mouse clicks (status bar no-op, Projects tile drill, body-click back). Artefacts: 17 text snapshots +REPORT.mdunderdocs/screenshots/sprint-20/manual/.- CI integration. New advisory job
smoke-tuiin.github/workflows/ci.ymlruns the harness on every push / PR (Ubuntu, Node 24, pinnedactions/setup-node@48b55a0SHA). The job iscontinue-on-error: trueand excluded fromci-summary.needsuntil we accumulate a few weeks of green runs; on every run it uploads the manual snapshots +REPORT.mdas thesmoke-tui-<sha>artefact (14-day retention) so reviewers can diff the rendered terminal output without re-running the suite locally.Makefile::smoke-testpinsVERSION=smoke-testvia sub-make so snapshots stay deterministic between commits.
Tooling
cmd/screenshot/main.go— new development tool that programmatically renderstui.Modelto a deterministic frame for documentation work. Replaces the ad-hocprobe.goscripts used during Sprint 20.
Quality bars met
| Gate | Status | Threshold |
|---|---|---|
Tests passing (make test -race) |
✅ green | All packages |
Coverage (make cover-check) |
✅ ≥ 80 % | ≥ 70 % global |
Lint (golangci-lint v2) |
✅ 0 issues | 0 issues |
Vulnerability scan (govulncheck) |
✅ clean | 0 known CVEs |
Bento render perf (make bench-check) |
✅ < 5 ms/op | ≤ 5 000 000 ns/op |
CI bundle (make ci) |
✅ green | Full pipeline |
Manual smoke (make smoke-test) |
✅ 5/5 scenarios, 34/34 assertions | n/a yet |
Documentation
docs/sprints/sprint-20-tui-polish-and-catalog.md— full Sprint 20 outcome.docs/sprints/sprint-21-cpanel-adapter-prep.md— Sprint 21 plan (cPanel adapter foundation + public launch prep).docs/retros/2026-05-25-sprint-20.md— sprint retro (what worked, friction points, surprises, follow-ups).scripts/manual-test/README.md— smoke harness setup, usage, adding new scenarios.docs/screenshots/sprint-20/— 14 static screenshots covering every Sprint 20 user-facing change.
Known limitations (unchanged from rc1)
- One verified provider only. Adapters for cPanel, DirectAdmin, CyberPanel are scaffolded but not implemented. Sprint 21 ships the cPanel adapter foundation (read-only UAPI client + SSH fallback +
webox doctor cpanel); creation flows land in Sprint 22. - Asciinema demo + static
dashboard.pngnot yet recorded (Sprint 21 TASK-21.6). - EN landing body still in PL — head/meta translated; body pass in Sprint 21 TASK-21.5.
- No Homebrew tap /
go installpublished yet — lands with the GA promotion.
Upgrade notes
If you tried v0.1.0-rc1:
git pull && make build— that's it. No config migration, no schema change, no flag rename.- From the dashboard, press
?to see the new help overlay. Presspto open the Provider Catalog. PressEnteron a project, then2and3to see the new Env Diff / Database tabs. PressTabfrom any tab to return to the dashboard.
If you skipped rc1 entirely:
git clone https://github.com/dilitS/webox.git && cd webox && make build./bin/webox --mockto explore the cockpit with synthetic data../bin/webox(without--mock) launches the init wizard for your first profile.
Security
- License: Apache License 2.0 (unchanged).
- Disclosure:
SECURITY.md— coordinated disclosure via private GitHub Security Advisories. - No new dependencies on the runtime side. The smoke harness is dev-only (
scripts/manual-test/) and never imported by the production binary; it ships nothing into release artefacts.
Credits
In addition to the rc1 credits:
- remorses / tuistory — Playwright-for-terminals. Made the manual smoke harness possible inside a normal CI minute budget.
- Sprint 20 reviewers for catching the dashboard footer drift and the v0.2-flagged tab alert noise during pre-release walkthroughs.
Next: v0.1.0 GA promotion or v0.2.0 track
When the manual checklist in .cursor/skills/release-check/SKILL.md is ticked, promote this commit to GA:
git tag v0.1.0 v0.1.0-rc2
git push origin v0.1.0The GA promotion adds: cosign signature, SLSA provenance, GoReleaser-built multi-arch binaries (darwin/arm64, darwin/amd64, linux/amd64, linux/arm64), Homebrew tap PR, and the v0.1.0 retrospective.
The next code-affecting work is on the v0.2.0 track — Sprint 21 starts the cPanel adapter foundation in parallel with public-launch prep (README EN final, asciinema demo, cPanel test account onboarding). See docs/sprints/sprint-21-cpanel-adapter-prep.md.