Files
ImpTune/.planning/ROADMAP.md
T
kawaandClaude Sonnet 4.6 b8f10107d2 docs(15-01): complete ux-driver-upload-feedback-fix plan
- SUMMARY.md created: one-line fix, two new tests, full suite green
- STATE.md updated: Phase 15 complete, decisions logged
- ROADMAP.md: Phase 15 marked 1/1 Complete 2026-04-16

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 16:35:16 +02:00

135 lines
10 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.
# Roadmap: ImpTune
## Milestones
-**v1.0 MVP** — Phases 17, 13 plans, 27/27 requirements (shipped 2026-04-13) — see [`milestones/v1.0-ROADMAP.md`](milestones/v1.0-ROADMAP.md)
- 🚧 **v1.1 Hardening & Validation** — Phases 811, 15 requirements + UI enhancements (in progress, started 2026-04-13)
## Phases
<details>
<summary>✅ v1.0 MVP (Phases 17) — SHIPPED 2026-04-13</summary>
- [x] Phase 1: Foundation (3/3 plans) — 2026-04-10
- [x] Phase 2: Driver Management (2/2 plans) — 2026-04-10
- [x] Phase 3: Printer Configuration (2/2 plans) — 2026-04-10
- [x] Phase 4: Script Generation (2/2 plans) — 2026-04-10
- [x] Phase 5: Package Export (2/2 plans) — 2026-04-10
- [x] Phase 6: Wire Icon into .intunewin (1/1 plan, gap closure) — 2026-04-10
- [x] Phase 7: Dashboard & Navigation Polish (1/1 plan, gap closure) — 2026-04-13
Full details: [`milestones/v1.0-ROADMAP.md`](milestones/v1.0-ROADMAP.md)
</details>
### 🚧 v1.1 Hardening & Validation (Phases 811)
- [x] **Phase 8: Nyquist Validation Track** — Retro-fit Nyquist-compliant VALIDATION.md across all 7 v1.0 phases with evidence-backed checks (completed 2026-04-13)
- [x] **Phase 9: UX Tech Debt Closure** — Fix the three carried-over UX gaps so the deployed build is the polished one technicians actually use
(completed 2026-04-13)
- [x] **Phase 10: Real-World Runtime Validation** — Validate generated artifacts end-to-end against a live Intune tenant and a real managed endpoint (completed 2026-04-13)
- [x] **Phase 11: UI Enhancements** — Add printer edit, separate form from list, clickable client names, dark/light mode toggle, and French/English language switch (completed 2026-04-15)
## Phase Details
### Phase 8: Nyquist Validation Track
**Goal**: Every v1.0 phase has a signed-off Nyquist-compliant validation record with cited evidence, and any blocking gaps are tracked.
**Depends on**: Nothing (parallelizable — pure audit of shipped code, no runtime dependency)
**Requirements**: NYQ-01, NYQ-02, NYQ-03
**Success Criteria** (what must be TRUE):
1. An operator can open any of the 7 v1.0 phase folders and read a `VALIDATION.md` where every success criterion maps to exactly one observable check with cited evidence (commit, test name, file path, or screenshot)
2. An operator can open `.planning/milestones/v1.0-VALIDATION-INDEX.md` and see a single pass/fail roll-up across all 7 phases with links to each phase's validation file
3. Any validation gap surfaced during the Nyquist pass appears in the index as either a v1.1 defect ticket (linked to the fixing phase) or an explicitly deferred item with written rationale
**Plans**: 8 plans
- [ ] 08-01-PLAN.md — Audit Phase 1 (Foundation) into Nyquist-compliant 01-VALIDATION.md (NYQ-01)
- [ ] 08-02-PLAN.md — Audit Phase 2 (Driver Management) + record POST /drivers/upload 500 gap (NYQ-01)
- [ ] 08-03-PLAN.md — Audit Phase 3 (Printer Configuration) into Nyquist Record (NYQ-01)
- [ ] 08-04-PLAN.md — Audit Phase 4 (Script Generation) with SYSTEM-context attestation notes (NYQ-01)
- [ ] 08-05-PLAN.md — Audit Phase 5 (Package Export) with RTVAL-01 byte-level evidence (NYQ-01)
- [ ] 08-06-PLAN.md — Audit Phase 6 (Wire Icon into .intunewin) into Nyquist Record (NYQ-01)
- [ ] 08-07-PLAN.md — Audit Phase 7 (Dashboard & Nav Polish) into Nyquist Record (NYQ-01)
- [ ] 08-08-PLAN.md — Compile v1.0-VALIDATION-INDEX.md, triage gaps, human sign-off (NYQ-02, NYQ-03)
### Phase 9: UX Tech Debt Closure
**Goal**: The three carried-over UX defects are fixed and live-verified in a real browser so the rolled-out build is the polished one.
**Depends on**: Nothing (independent of validation and rollout — but must complete before Phase 11)
**Requirements**: UX-01, UX-02, UX-03
**Success Criteria** (what must be TRUE):
1. A technician uploading a new driver on the printer form sees the new DriverDesc appear in the dropdown without manually reloading the page
2. A technician typing an IP address into the printer form sees the port field auto-populate via the PRNT-03 Alpine.js handler, observed live in a real browser and recorded in VALIDATION.md
3. A technician on the printer detail page can click direct download links for the install, uninstall, and detect scripts individually, in addition to the existing package export buttons
**Plans**: 3 plans
- [ ] 09-01-driver-upload-fix-and-inline-oob-PLAN.md — Fix POST /drivers/upload 500 + add inline upload to printer form with HTMX OOB refresh (UX-01)
- [ ] 09-02-playwright-port-autofill-PLAN.md — Add Playwright dev dep + headless test for PRNT-03 IP->port auto-fill (UX-02)
- [ ] 09-03-script-download-links-PLAN.md — Add .ps1 route aliases + printer_detail.html script download links (UX-03)
### Phase 10: Real-World Runtime Validation
**Goal**: Generated .intunewin, install, detect, and uninstall artifacts are proven to work end-to-end on a real Intune tenant against a real Windows endpoint, with evidence recorded.
**Depends on**: Phase 9 (rollout uses the validated-AND-polished build; validation itself only strictly needs v1.0, but running it on the polished build avoids re-doing the pass)
**Requirements**: RTVAL-01, RTVAL-02, RTVAL-03, RTVAL-04, RTVAL-05
**Success Criteria** (what must be TRUE):
1. A generated `.intunewin` package is uploaded to a real Microsoft Intune tenant and accepted without format errors, with the tenant ingestion confirmation captured as evidence
2. A technician assigning the package to a real Intune-managed Windows endpoint observes the install script succeed under SYSTEM context, with `pnputil` driver staging and `$PSScriptRoot` path resolution verified in the device log
3. After install, the Intune detection rule driven by the generated detect script reports "installed" for the endpoint
4. A technician triggering uninstall from Intune sees the printer cleanly removed from the endpoint under SYSTEM context
5. A reviewer can open `RUNTIME-VALIDATION.md` and read a signed-off report listing tenant, device, OS build, driver vendor(s), screenshots/logs, and any issues found
**Plans**: 3 plans
- [ ] 10-01-preflight-package-and-scaffold-PLAN.md — Generate real .intunewin from current commit and scaffold RUNTIME-VALIDATION.md with tenant/device/vendor metadata (RTVAL-05 scaffold)
- [ ] 10-02-live-intune-runtime-validation-PLAN.md — Drive RTVAL-01..04 manual checkpoints against a live Intune tenant + real Windows endpoint, capturing screenshots and device logs as evidence
- [ ] 10-03-report-signoff-PLAN.md — Finalize RUNTIME-VALIDATION.md, human sign-off, tick RTVAL-01..05 and mark Phase 10 complete
### Phase 11: UI Enhancements
**Goal**: Improve the daily usability of ImpTune with printer editing, better form/list layout, client-scoped navigation, dark/light theme, and bilingual (FR/EN) support.
**Depends on**: Phase 9 (polished base build), Phase 10 (runtime validation passed)
**Requirements**: UIE-01, UIE-02, UIE-03, UIE-04, UIE-05
**Success Criteria** (what must be TRUE):
1. Every printer in the list has an Edit button that opens a pre-filled form and saves changes in-place without losing other printer data
2. The new-printer form is visually separated from the printer list (distinct section, card, or page) so adding a printer doesn't feel buried in the list
3. Every client name in the interface is a clickable link that navigates to a filtered page showing only that client's printers
4. A toggle lets the user switch between Dark mode, Light mode, and Follow system — the chosen preference persists across page reloads
5. A toggle lets the user switch the UI language between French and English — all labels, buttons, and messages update immediately and the choice persists
**Plans**: 4 plans
- [ ] 11-01-PLAN.md — Wave 0 test scaffolds + UIE-02: dedicated /printers/new page + POST redirect (UIE-02)
- [ ] 11-02-PLAN.md — Printer edit modal: PATCH /printers/{id} + native dialog + Edit button per row (UIE-01)
- [ ] 11-03-PLAN.md — Theme toggle + FR/EN language toggle in base.html via Alpine.js stores (UIE-04, UIE-05)
- [ ] 11-04-PLAN.md — Client detail page /clients/{id} + clickable client names everywhere (UIE-03)
## Progress
| Phase | Milestone | Plans Complete | Status | Completed |
|-------|-----------|----------------|----------|------------|
| 1. Foundation | v1.0 | 3/3 | Complete | 2026-04-10 |
| 2. Driver Management | v1.0 | 2/2 | Complete | 2026-04-10 |
| 3. Printer Configuration | v1.0 | 2/2 | Complete | 2026-04-10 |
| 4. Script Generation | v1.0 | 2/2 | Complete | 2026-04-10 |
| 5. Package Export | v1.0 | 2/2 | Complete | 2026-04-10 |
| 6. Wire Icon into .intunewin | v1.0 | 1/1 | Complete | 2026-04-10 |
| 7. Dashboard & Nav Polish | v1.0 | 1/1 | Complete | 2026-04-13 |
| 8. Nyquist Validation Track | v1.1 | 8/8 | Complete | 2026-04-13 |
| 9. UX Tech Debt Closure | 3/3 | Complete | 2026-04-13 | 2026-04-13 |
| 10. Real-World Runtime Validation | v1.1 | 3/3 | Complete | 2026-04-13 |
| 11. UI Enhancements | 4/4 | Complete | 2026-04-15 | |
| 15. UX Driver Upload Feedback Fix | v1.1 | 1/1 | Complete | 2026-04-16 |
### Phase 12: i18n bugfixes — full translation coverage and browser language auto-detection
**Goal:** All hardcoded UI strings in every template respond to the FR/EN language toggle; browser language auto-detected from navigator.language on first visit; E2E suite fully green.
**Requirements**: TBD
**Depends on:** Phase 11
**Plans:** 2/2 plans complete
Plans:
- [ ] 12-01-PLAN.md — Browser language auto-detection (navigator.language fallback) + fix test_port_autofill E2E
- [ ] 12-02-PLAN.md — Full template i18n coverage: wire all hardcoded strings across 13 templates to Alpine i18n store
### Phase 15: UX Driver Upload Feedback Fix
**Goal:** Make the driver upload success feedback visible on /printers/new so technicians see confirmation after uploading a driver.
**Depends on:** Phase 9 (UX-01 OOB wiring), Phase 11 (/printers/new page)
**Requirements:** UX-01 (integration gap closure)
**Gap Closure:** Closes integration gap from v1.1 audit — OOB primary swap target `#driver-list` is hidden, upload confirmation feedback invisible despite dropdown refresh working correctly.
**Success Criteria** (what must be TRUE):
1. After uploading a driver on /printers/new, the upload success feedback (driver name + confirmation) is visible on the page
2. The DriverDesc dropdown still refreshes correctly via OOB swap (no regression)
**Plans:** 1 plan
- [x] 15-01-PLAN.md — Fix hidden #driver-list div on /printers/new + smoke-test upload feedback visible (UX-01 integration gap)