Files
peardock/ROADMAP.md
T
Raven Scott 42a69c6dc7 Ship Track G UX, multi-shell terminals, Swarm default-on, install.peardock.boats
Probe bash/sh/ash and related shells until a container terminal works, enable Swarm APIs by default, add keyboard go-chords and appearance prefs, and point install docs at https://install.peardock.boats.
2026-07-11 18:06:46 -04:00

137 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# peardock Roadmap
**Goal:** A production-grade, peer-to-peer Docker operations console—full Engine coverage on the server, and a **desktop UI that feels as complete, guided, and trustworthy as the best commercial Docker management tools**, without copying any products branding or layout.
**Status (2026-07-11):**
| Track | Status |
|-------|--------|
| **A — Platform / Engine / security** | ✅ Complete |
| **B — Product UI & operator experience** | ✅ Complete |
| **C — UX polish & full-app experience** | ✅ Complete |
| **D — Holesail tunnels** | ✅ Complete |
| **E — Docker ops / Portainer-parity (core)** | ✅ Complete |
| **F — Optional Docker ops enhancements** | ✅ Complete |
| **G — UI/UX design system & power-user chrome** | 🔄 In progress |
```bash
npm test
npm run server
npm run dev
```
---
## Implementation map
| Concern | Location |
|---------|----------|
| Host snapshot / IPAM / suggestions | `server/utils/suggestions.js` |
| Multi template lists | `client/templateLists.js`, Settings |
| Peer disk cache | `client/peerCache.js` |
| Jobs + feedback | `client/jobs.js`, `libs/uiUtils.js` |
| Settings subtabs | `ui/ops-app.js`, `index.html` |
| Holesail | `server/services/holesail-tunnels.js`, `client/holesailBareControl.cjs` |
| GitOps | `server/utils/gitops.js` |
| Recreate / system prune | `recreateContainer`, `systemPrune` |
| Track F extras UI | `ui/track-f-extras.js` |
| Track G UX chrome | `ui/track-g-ux.js`, `ui/modern.css`, Settings → Appearance |
| Volume browser | `browseVolume` RPC |
| Schedules | `server/services/schedules.js` |
| Fleet environments | peer env tags + filter |
---
# Tracks AF — ✅ Complete
See git history. Core Engine coverage, product UI, Holesail, recreate, system prune, Hub search, secrets/configs lists, settings subtabs, volume browse, schedules, fleet envs.
---
# Track F — Optional Docker ops — ✅ Complete
| Item | Delivery |
|------|----------|
| **Volume file browser** | RPC `browseVolume` + Volumes 📂 action + modal |
| **Stack env file** + re-deploy | Env file textarea on deploy stack → `envFileContent` |
| **Service scale UI** | Scale button on Swarm services table → `scaleService` |
| **Create secret / config** | Forms on Swarm Secrets/Configs tabs |
| **Disconnect network** | Unlink on container networking cards → `disconnectNetwork` |
| **Registry browser** | Access view Hub search + pull (vault for private creds) |
| **Scheduled maintenance** | Server schedules (prune/ping) + Host panel UI |
| **Container resource editor** | Resources… menu → live `updateContainer` |
| **Log download / export** | `logs-download-btn` + `getContainerLogs` |
| **Multi-host environments** | Fleet env tags (prod/staging/dev/lab) + filter |
---
# Track G — UI/UX design system & power-user chrome — 🔄
Elevate the desktop console: denser/spacier layouts, accessible motion, keyboard-first navigation, and subtle chrome that makes long operating sessions less fatiguing.
### Delivered (this pass)
| Item | Delivery |
|------|----------|
| **Keyboard shortcuts modal** | `?` opens a designed cheatsheet (`openShortcutsModal`); Settings → About link |
| **Quick filter focus** | `/` focuses the active views search/filter |
| **Go-chords** | `g` then letter jumps views (`g c` containers, `g i` images, …); titlebar `g…` hint |
| **Command palette extras** | Shortcuts, focus filter, toggle sidebar, cycle density, refresh view |
| **Density: spacious** | Settings + `body[data-density=spacious\|compact\|comfortable]` |
| **Accent themes** | Teal / cyan / violet (`body[data-accent]`) |
| **Reduce motion** | Preference + OS `prefers-reduced-motion` |
| **List refresh stamp** | “Updated HH:MM:SS” on headers after poll / navigation |
| **Sticky table headers** | Resource tables keep `thead` visible while scrolling |
| **Scroll-to-top** | Floating control after scrolling long content |
| **View enter motion** | Subtle fade/slide (disabled when reduce-motion) |
| **Swarm auto-refresh** | Included in list poll when Swarm view is active |
| **ENABLE_SWARM default on** | Opt out with `ENABLE_SWARM=0` (same pattern as Holesail) |
### Track G checklist
- [x] Shortcuts modal + About entry
- [x] `/` filter focus + `g` chords
- [x] Palette power actions
- [x] Density spacious + accent + reduce motion
- [x] Refresh stamp + sticky headers + scroll-top
- [ ] **Dashboard density cards** — sparkline polish, empty-state CTAs per role
- [ ] **Column visibility** prefs per table (containers/images)
- [ ] **Saved filters** (status + search presets)
- [ ] **Bulk action bar** sticky + keyboard multi-select (`x` / shift)
- [ ] **Notification grouping** by peer + severity collapse
- [ ] **Onboarding checklist** progress persisted across peers
- [ ] **High-contrast mode** for projector / outdoor ops
- [ ] **Font scale** preference (sm / md / lg)
- [ ] **Mobile breakpoints** for ops on tablet (read-mostly)
### Proposed Track H (later)
| Theme | Ideas |
|-------|--------|
| **Observability** | Per-container sparkline history UI, export CSV, host heat map |
| **Fleet** | Cross-peer bulk restart, tag-based deploy targets |
| **Extensibility** | Plugin UI surface when `ENABLE_PLUGINS=1` |
| **Accessibility audit** | axe / keyboard trap pass, ARIA live regions review |
---
## Cross-cutting NFR ✅
Destructive confirms · job tray · roles · smart defaults · Holesail · GitOps · prune/recreate · notification badge policy · schedules · keyboard-first chrome (Track G)
---
## Definition of done
1. ✅ Full container/image/network/volume/stack RPC + UI
2. ✅ Swarm services/nodes/tasks/secrets/configs (+ create/scale); Swarm **on by default**
3. ✅ Holesail, GitOps, recreate, system prune, Hub search
4. ✅ Volume browse, resource edit, disconnect network, schedules, fleet envs
5. ✅ Settings subtabs · Access vault · multi-peer fleet
6. 🔄 Track G UX chrome (first ship); remaining items open
7.`npm test` green
---
**Next:** finish remaining Track G checklist (column prefs, saved filters, bulk keyboard, a11y), then open Track H as needed.