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
Vito
e7cfcc2bfb
style(workspace): align browsing with the approved concept ( #219 )
...
* style(workspace): align approved shell and visual fixtures
* test(workflows): preserve evidence across browser projects
* style(workspace): match approved image browsing geometry
* style(workspace): match natural library card layout
* fix(workspace): retain wheel motion during row correction
* fix(workspace): contain zoomed controls and image metadata (#215 )
2026-10-18 02:53:26 -07:00
Vito
4ef236aaf7
feat(history): persist exact run output references ( #214 )
...
* feat(history): define bounded output reference contracts
* feat(database): migrate execution output evidence to schema v3
* feat(history): persist immutable run output references
* test(history): isolate mocked node gallery monitor
* feat(history): capture bounded output descriptors with shared leases
* fix(history): authenticate payload owners and release failed captures
* feat(history): attach output evidence to exact finalized attempts
* test(history): verify run output evidence on real ComfyUI
* fix(history): release idle worker payload references
* docs(history): clarify defensive lease cleanup
* test(history): align output fixtures with native path styles
* test(history): separate restore completion from writer drain
* test(history): bound batch drains by progress and total time
2026-10-17 23:26:37 -07:00
Vito
763e6b37b1
feat(history): record durable ComfyUI execution attempts ( #212 )
...
* feat(history): normalize bounded execution evidence (#209 )
* fix(history): bound lifecycle kind checks before hashing (#209 )
* feat(history): persist execution attempts with restore fencing (#209 )
* test(api): bootstrap standalone backup restore fixtures (#209 )
* feat(history): isolate bounded asynchronous ledger writes (#209 )
* feat(history): observe actual queue attempts without altering execution (#209 )
* fix(database): honor package-scoped configuration (#211 )
* test(history): exercise real cached and headless executions (#209 )
* fix(history): reject unsupported uniqueness and isolate package fixtures (#209 )
* test(history): support Python 3.10 package fixture cleanup (#209 )
2026-10-17 16:42:07 -07:00
Vito
fdba6fd012
feat(workspace): group saved negatives in the native Prompt Library ( #210 )
...
* feat(workspace): group saved negative variants in native library (#208 )
* fix(library): preserve full name order and batch previews (#208 )
2026-10-17 14:38:03 -07:00
Vito
dc345671ae
feat(workspace): inspect and send positive and negative prompts ( #206 )
...
* feat(workspace): inspect and send positive and negative prompts
* docs(workspace): capture complete inspector and viewer previews
* docs(inspector): explain the subprocess cleanup race
* fix(workspace): defer observed gallery layout writes (#207 )
* fix(inspector): keep path-only prompt associations unverified
2026-10-17 13:43:19 -07:00
Vito
76e9b51079
feat(bridge): add acknowledged ComfyUI prompt destinations ( #203 )
...
* feat(bridge): add guarded PromptManager prompt destinations
* fix(ci): install shared contracts before frontend unit tests
* test(comfyui): wait for paired editor resize before measuring layout
2026-10-17 13:14:02 -07:00
Vito
590aa2cd0e
feat(workspace): add native Images browsing and infinite scroll ( #201 )
...
* feat(workspace): add native image browsing and continuous loading
* test(workspace): assert empty collections through their status
* fix(workspace): rescan refreshed images and expose ancestor folders
2026-10-17 11:22:10 -07:00
Vito
d4bb5c5ba9
feat(ui): add the tested opt-in Prompt Manager workspace shell ( #198 )
...
* docs(ui): prototype unified prompt management application
* docs(ui): add masonry and per-image tagging to application concept
* docs(ui): make gallery concept use continuous infinite scrolling
* feat(ui): introduce the tested application workspace shell
* fix(docs): preserve concept controls across cached navigation
* test(ci): emit Python tracebacks for native test crashes
* test(ui): cover workspace restoration across cached navigation
2026-10-17 10:36:30 -07:00
Vito
caa9649f32
feat: reuse positive and negative prompt combinations ( #195 )
...
* feat(db): add pair schema and stage restore migrations for #193
* feat(database): persist reusable ordered prompt pairs (#193 )
* feat(api): expose reusable pairs and atomic metadata enrichment (#193 )
* feat(metadata): resolve canonical prompt pairs with bounded provenance (#193 )
* feat(scan): enrich image pairs without guessing or duplicate links (#193 )
* fix(database): preserve pair tags during global maintenance (#193 )
* feat(tracking): enrich live image pairs and cancel scans safely (#193 )
* feat(nodes): encode paired prompts and count cached recipe runs (#193 )
* fix(database): validate restored pair ownership and provenance (#193 )
* feat(admin): report pair scan outcomes and cancellation (#193 )
* feat(ui): add paired prompt editor and explicit recipe library for #193
* fix(autocomplete): include reusable pair metadata vocabulary (#193 )
* fix(pairs): honor recent sorting and conservative scan outcomes (#193 )
* fix(ui): protect paired draft saves and clarify negative variants (#193 )
* fix(metadata): preserve bounded paired execution evidence (#193 )
* fix(tracking): follow actual pair output roles and prefer execution evidence (#193 )
* docs(pairs): document live validation and retain renderer screenshots (#193 )
* test(api): inject disposable databases before API startup (#194 )
* test(api): canonicalize portable temporary gallery roots (#194 )
* docs(ui): prototype branching negative variant history (#193 )
* docs(ui): show selected negative beneath positive in timeline concept (#193 )
* docs: retain approved timeline for later gallery redesign (#193 )
* test(db): close restore fixture connections before cleanup (#194 )
* test(db): reuse existing handle guards in all pair fixtures (#194 )
* chore: clarify rollback test and intentional exception handling (#193 )
2026-10-17 08:00:42 -07:00
Vito
3870590704
feat(ui): add Split Prompt Manager workspace ( #192 )
...
* feat(ui): add Split Prompt Manager workspace (#186 )
* test(ui): use consistent unittest imports (#186 )
2026-10-17 06:47:46 -07:00
Vito
a52ff4e052
feat(ui): add Focused Prompt Manager with shared autocomplete ( #191 )
...
* feat(ui): add Focused Prompt Manager node (#186 )
* feat(ui): autocomplete saved Focused metadata with shared controls (#186 )
* feat(ui): autocomplete Focused library filters (#186 )
2026-10-17 05:31:24 -07:00
Vito
035e816db6
feat(ui): adopt shared toolkit for Prompt Manager Classic ( #190 )
...
* feat(ui): adopt shared toolkit for Prompt Manager Classic (#186 )
* test(ui): retain Text node Web UI coverage alongside Classic
* fix(tooling): reject lookalike toolkit download URLs (#186 )
2026-10-16 22:18:18 -07:00
Vito
f98f6fa08d
test(ci): validate shared toolkit in real PromptManager hosts ( #189 )
...
* test(ci): prove shared toolkit with real PromptManager host coverage
* test(ci): match KikoTools Python 3.13 compatibility coverage
2026-10-16 20:56:50 -07:00