Files
ComfyAssets-ComfyUI_PromptM…/docs/application-redesign.md
T
Vito d9537a726c feat(workspace): complete shared inspector and collection viewer (#224)
* 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.
2026-10-18 09:41:53 -07:00

7.8 KiB
Raw Blame History

Application Redesign Development Plan

The maintainer approved the interactive concept on 2026-10-17. It is a design reference with simulated operations, not production code. This plan proposes implementation order and acceptance gates.

Delivery status

  • Foundation merged in #198.
  • #200 delivers native Images browsing, physical-file details, infinite scroll, Grid/List/Masonry, Viewer.js and video playback. The workspace opens on Images; original application entry points remain available.
  • Shared role-aware sending and the physical-file prompt inspector merged in #203 and #206.
  • The native Prompt Library merged in #210 for #208: one positive parent, saved negative variants, full selected text and a shared filtered image gallery. It does not invent chronological runs from counters or scan dates.
  • Durable history storage records job attempts and outcomes from #212, frozen prompt contexts from #213, and observed run-owned output locators from #214. Those locators do not verify file bytes or establish gallery-image associations. That association contract and the chronological execution timeline remain pending under #209.
  • #215 brings the shell, Images and natural-height Prompt Library presentation into the approved geometry and themes while retaining their existing operations. #216 adds the shared current-file inspector with exact generation facts, scoped provenance, raw/download evidence and loaded-collection viewer controls, including a slideshow that pauses at native video. This delivery does not establish whole-application parity, change the default entry point or constitute a release. Recorded chronological run/context browsing continues under #209; image tagging/review, System consolidation and remaining organization capabilities continue under #196.

Scope and compatibility

Rebuild the standalone application around one shared shell. Preserve existing node schemas, saved workflows, backend capabilities, pinned Viewer.js and the ComfyAssets toolkit. Keep existing application entry points usable during the transition. Do not change the running maintainer instance during automated tests.

Use the concept's feature inventory as a parity checklist. Each row needs an implementation issue, observable acceptance criteria and automated test coverage. Record any intentional behavior change explicitly; no silent feature removal.

Proposed delivery sequence

Use a tracking issue and small issue-linked branches and PRs. Dependencies may require splitting these milestones further.

Milestone Deliverable and acceptance focus
1. Foundation Production shell, routing, shared theme and disposable page-test harness. Verify startup, navigation, dark/light changes, cleanup and existing entry points. Establish discovered-test and coverage baselines before changes.
2. Image workspace Real API-backed filters, Grid/List/Masonry, readable thumbnails, selection and shared Viewer.js inspector. Continuous infinite scroll only, with accessible Load more fallback, stable ordering, retry and restored browsing context. Bound retained DOM and test large datasets.
3. Prompt library and history Real positive/negative associations, selected full negative, run history and shared image filtering. Design any missing execution-history persistence and migration before wiring the timeline; never invent historical runs from incomplete metadata.
4. Send to ComfyUI Shared paper-plane actions wherever prompt text appears; role-specific and pair sends, destination preview, acknowledgement and failure recovery. Cover explicit empty versus unknown negatives and connected inputs. Never queue or replace a workflow.
5. Editing and review Prompt editing, vocabulary management, per-image manual/auto-tag approval and Needs review. Preserve cancellation semantics and distinguish tag approval from prompt-association decisions.
6. System and maintenance Settings, sources/scans, integrations, jobs, diagnostics, backup/restore and maintenance impact previews. Cover existing capabilities before retiring their old controls.
7. Additional organization Favorites independent of ratings, collections, saved views, Activity, scheduled backups and portable import previews. Specify persistence, validation and recovery separately for each capability.
8. Cutover Complete the parity checklist, migration and upgrade validation, accessibility/performance checks, documentation and targeted maintainer live testing. Switch the default only after these pass; preserve compatible URLs.

TDD and test layers

For each behavior, first write and run a meaningful failing test. Implement the smallest working change, verify it passes, then refactor with the suite green. Include failing-before/passing-after evidence in the PR.

  • Unit: filtering and selection state, cursor handling, prompt roles, formatting, validation, navigation and lifecycle cleanup.
  • Integration: real HTTP handlers and disposable SQLite/filesystem fixtures; persistence, migration from supported old schemas, idempotent scans, restore, rollback and reference-safe deletion. Mock inference and external services.
  • Smoke: shipped production pages start and navigate with real fixture APIs; test populated, empty and error states, assets and unexpected console failures.
  • Browser workflows: production HTML/JS across Chromium, Firefox, WebKit and touch; editing/reload, infinite append, viewer cleanup, tagging approval, keyboard access, delayed responses, cancellation and retries.
  • Host integration: pinned disposable CPU ComfyUI, Classic and Nodes 2.0, switching both ways and workflow reload for host-facing changes. Exercise independent and combined pack installations for shared bridge/toolkit changes.

Retain existing test discovery and coverage gates. Carry forward database injection and open-handle checks into new fixtures. Add new frontend modules to coverage measurement and its baseline; do not lower floors or replace existing regression coverage with mockup-only tests.

GitHub and release gates

Extend existing required workflows: the Python 3.10–3.13 matrix on Linux, Windows and macOS; 85% Python coverage; formatting; frontend units and per-file coverage floors; vendor checks; browser workflows; real ComfyUI compatibility. Publish traces, screenshots, logs and coverage artifacts on failures. See TESTING.md for commands and fixture isolation requirements.

Every PR must map acceptance criteria to tests, report relevant checks and include screenshots for visual changes. All required checks must pass before merging. Use maintainer live review at meaningful visual and host-integration milestones; capture discovered regressions in automated tests. Notify the maintainer when Python changes require a ComfyUI restart.

Keep version/publication changes separate from intermediate UI work: the existing registry workflow publishes on main/master changes to pyproject.toml or manual dispatch. Do not trigger a release merely to preview a redesign milestone.