Files
q-edit/docs/RELEASE_NOTES_v1.0.0.md

4.0 KiB
Raw Permalink Blame History

Q-Edit v1.0.0 — Release Notes

Date: 2025-09-05

Summary

QEdit 1.0 is a major redesign and stabilization release. The UI is now a singleview file explorer with a sidebar tree, a dedicated fullpage Preview, and global media controls that keep audio/video playing as you navigate. Under the hood, we modularized key logic, added URLhash state for pagination, and shipped a small but solid test suite with coverage gates.

Highlights

  • Singleview routing so pages never overlap
  • Sidebar file tree with service folders, prefix groups, and leaf navigation to Preview
  • Fullpage Preview with Edit / Replace / Delete actions and multifile path input (for WEBSITE/APP)
  • Safer Preview rendering: JSON prettyprint; 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 jumptopage, URL hash deeplinking (e.g. #page=17) and persistent itemsperpage
  • Hide Deleted toggle (ON by default) with conservative tinyfile detection
  • Auth autoinit; 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.
    • Itemsperpage 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.
  • Itemsperpage preference now stored as qedit:itemsPerPage (prior adhoc 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.mjshttp://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 deletedetection heuristics may need tuning per service edge cases.

Developer Notes

  • New modules under src/ and scripts/ are unittested (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.