75 lines
4.0 KiB
Markdown
75 lines
4.0 KiB
Markdown
# Q-Edit v1.0.0 — Release Notes
|
||
|
||
Date: 2025-09-05
|
||
|
||
## Summary
|
||
|
||
Q‑Edit 1.0 is a major redesign and stabilization release. The UI is now a single‑view file explorer with a sidebar tree, a dedicated full‑page Preview, and global media controls that keep audio/video playing as you navigate. Under the hood, we modularized key logic, added URL‑hash state for pagination, and shipped a small but solid test suite with coverage gates.
|
||
|
||
## Highlights
|
||
|
||
- Single‑view routing so pages never overlap
|
||
- Sidebar file tree with service folders, prefix groups, and leaf navigation to Preview
|
||
- Full‑page Preview with Edit / Replace / Delete actions and multi‑file path input (for WEBSITE/APP)
|
||
- Safer Preview rendering: JSON pretty‑print; HTML via sandboxed iframe; PDF and media inline with responsive sizing
|
||
- Global media playback with header controls; promotion on navigate; Stop revokes Blob URLs
|
||
- Pagination with jump‑to‑page, URL hash deep‑linking (e.g. `#page=17`) and persistent items‑per‑page
|
||
- Hide Deleted toggle (ON by default) with conservative tiny‑file detection
|
||
- Auth auto‑init; Name switcher refreshes lists cleanly; Publish menu scaffold + compose text shell
|
||
- Tooling: ESLint/Prettier, Vitest + jsdom tests, coverage thresholds, docs & tests audits
|
||
|
||
## Notable Changes
|
||
|
||
- Pagination state
|
||
- Current page is reflected in `location.hash` and restored on reload/back/forward.
|
||
- Items‑per‑page preference persists in `localStorage` under `qedit:itemsPerPage`.
|
||
- Content table
|
||
- Identifier text opens Preview; image thumbnails are compact; summary shows total size.
|
||
- Bulk Delete mode retained from 0.7.x with clearer buttons and selection persistence.
|
||
- Media
|
||
- Playing media migrates to a global host when switching views so playback continues.
|
||
- Stop clears playback and revokes Blob URLs to free memory.
|
||
- Accessibility & UX
|
||
- Active pagination item marked with `aria-current="page"`.
|
||
- Sidebar can be collapsed and restored; state persisted.
|
||
|
||
## Breaking/Behavior Changes
|
||
|
||
- Default “Hide Deleted” is ON; tiny delete markers are hidden from counts and lists.
|
||
- Items‑per‑page preference now stored as `qedit:itemsPerPage` (prior ad‑hoc keys are still read when present for compatibility and then mirrored).
|
||
- Preview opens as a full page instead of inline by default; an inline viewer remains available for future use.
|
||
|
||
## Upgrade Steps
|
||
|
||
1. Replace `index.html`, `style.css`, and `script.js` with the v1.0.0 versions.
|
||
2. Include `src/` and `scripts/` for the new hash/prefs/pagination bindings.
|
||
3. Hard refresh your browser to clear cached assets.
|
||
|
||
Optional: run the local server and tests
|
||
|
||
- `node scripts/serve.mjs` → http://localhost:5173
|
||
- `node node_modules/vitest/vitest.mjs run --coverage`
|
||
- `node scripts/ci-check-coverage.mjs`
|
||
|
||
## QA Checklist
|
||
|
||
- Authenticate → name(s) populated; switching names refreshes lists.
|
||
- Hide Deleted toggle defaults ON; toggling updates counts and results.
|
||
- Pagination: First/Prev/Next/Last, windowed pages with ellipses; Jump input clamps to 1..N.
|
||
- Items per page persists; URL `#page` reflects navigation and is restored on reload.
|
||
- Sidebar: services show correct counts; prefix groups expand; leaf click opens Preview.
|
||
- Preview: JSON prettified; HTML sandboxed; PDF and media render inline; media continues when switching views; Stop resets.
|
||
- Bulk Delete: selections persist across page/filter changes; Delete N Files publishes and removes rows.
|
||
|
||
## Known Limitations
|
||
|
||
- Search is scaffolded (form + shell); wiring to results tree is next.
|
||
- Editors are basic; richer text/HTML and media tools are planned.
|
||
- Very large accounts may require virtualization for best performance.
|
||
- Some tiny delete‑detection heuristics may need tuning per service edge cases.
|
||
|
||
## Developer Notes
|
||
|
||
- New modules under `src/` and `scripts/` are unit‑tested (Vitest + jsdom). Coverage thresholds are enforced by `scripts/ci-check-coverage.mjs`.
|
||
- The legacy controller `script.js` remains the central coordinator; further modularization is planned.
|