Remove the ROADMAP, no longer needed
Release rolling / release (push) Has been cancelled

This commit is contained in:
Raven Scott
2026-07-15 15:32:56 -04:00
parent 42f066fa47
commit 13124ace9e
-136
View File
@@ -1,136 +0,0 @@
# 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 / 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.