* feat(library): manage native editor drafts and recovery
* fix(library): fence pair archive retries against restored storage
* feat(library): add native recipe editor dialogs
* fix(library): read archive counts through the editor controller
* feat(library): reconcile editor saves and archived pairs
Wire the concept's heading actions (Library Export and + New prompt, Images New prompt, history ← Prompt library, Edit metadata and pair Send to ComfyUI) and the Negative variants + Add negative and Show archived controls. Saves navigate or reconcile in place through createLibraryDetail.accept, invalidate cached shelf state by write generation, browse and restore archived pairs, and offer an explicit Library reload when storage was restored.
* fix(library): refresh archived pairs and align editor outcomes
* test(library): enforce approved native editor presentation
* test(library): verify editor host and coverage compatibility
Adds the rejected connected-target host assertion, pins the stock host listing at 80 cases, documents the native editor, and keeps Save/Archive focus after a failed write.
* docs(testing): correct host case totals and cover archive focus
* fix(library): fence editor reloads after restore and settle outcome copy
* feat(history): add bounded chronological read projections (#209)
* fix(history): validate internal continuation positions (#209)
* feat(history): expose fenced history windows and run details (#209)
* fix(history): release retired projection connections (#209)
* feat(history): resolve reported outputs through current authorization (#209)
* fix(history): reject invalid inspection targets (#209)
* feat(history): add scoped history state and current-file adapter (#209)
* fix(history): preserve slideshow and clear stale reentry actions (#209)
* feat(history): render recorded executions and frozen run details (#209)
* fix(history): recover receipts and refresh capture evidence (#209)
* test(history): verify chronological history across restore and host modes (#209)
* fix(history): enforce chronological marker visual parity (#209)
* fix(history): resolve final chronological review findings
Address #209 recovery, bounded visit restoration, exact receipt availability, and portable regression coverage.
* test(history): repair Windows fixtures and review feedback
Address #209 and PR #227 native path, cleanup, media and review-comment expectations. Document Windows portability preflight without changing production behavior.
* ci: raise the viewerjs job budget for the larger browser suite
The cross-browser workflows suite grew from 396 to 496 tests on this
branch, which pushed the whole viewerjs job to about 25.5 minutes
against the 25 minute cap set in #181. Two exact-head runs on this
branch timed out without any test failing: run 39173019283 was killed
on test 474 of 496, and run 39175125474 printed "496 passed (12.8m)"
and was then cancelled during Playwright shutdown.
Raise only the job budget. Browser projects, workers and per-test
timeouts are unchanged. Splitting the browsers into parallel jobs is
tracked separately.
* feat(inspector): expose bounded physical file evidence
* fix(inspector): distinguish ambiguous saved associations
* feat(inspector): derive conservative generation facts
* fix(inspector): guard fact ancestry and inspection state
* feat(inspector): share complete file details and exports
* fix(inspector): preserve fact states and touch targets
* feat(viewer): navigate the loaded media collection
Refs #216
* fix(viewer): refit after current stage geometry changes
Ref #216. Observe the current media stage after readiness and wrapped title changes without rebuilding focused controls or resetting transforms at unchanged dimensions.
* feat(viewer): add lifecycle-safe slideshow and media preferences
* fix(viewer): resume gallery continuation after close (#216)
* fix(images): guard source recovery and wrap viewer actions
Clear stale root and folder intent, cancel old pages, and wait for current source discovery before loading a refreshed collection. Preserve safe retry through failed, superseded, and disposed discovery.
Wrap narrow viewer footer actions and wait for measured gallery viewport settling in responsive checks. Refs #216; addresses PR #224 review.
* test(viewer): await gallery layout after viewport changes
Require actual inner, root client, and document widths to agree after each responsive-case viewport and CSS zoom transition. Keep the existing exact frame, overflow, focus, and coarse target assertions unchanged.
Observed PR #224 CI initial mobile resize at537px before pending card relayout settled to356px. Refs #216.