Vito Sansevero
03a8ccc10e
fix(history): honor close deadlines after early joins ( #209 )
2026-10-17 19:38:29 -07:00
Vito Sansevero
70a418ecac
fix(history): harden context validation and worker fixtures ( #209 )
2026-10-17 19:19:53 -07:00
Vito Sansevero
8890c56c30
test(ci): update execution context tooling fixtures ( #209 )
2026-10-17 19:11:04 -07:00
Vito Sansevero
2fcbf5389d
fix(history): scope transforms to captured source paths
2026-10-17 19:03:56 -07:00
Vito Sansevero
20c8e9eef9
test(history): verify durable contexts on real ComfyUI hosts
2026-10-17 18:54:53 -07:00
Vito Sansevero
0bdb33230f
feat(history): capture cached prompt strings without mutating host caches
2026-10-17 18:38:56 -07:00
Vito Sansevero
436ae95cda
test(history): discover owner invalidation callback regression
2026-10-17 18:30:55 -07:00
Vito Sansevero
da4d6cdc84
feat(history): bind exact runtime context to execution attempts
2026-10-17 18:28:23 -07:00
Vito Sansevero
8e014c0ebe
fix(history): bound persisted identifier bytes before restore reads
2026-10-17 18:10:37 -07:00
Vito Sansevero
8b922c6b64
fix(history): fence context commits and resolve stored run identity
2026-10-17 18:04:48 -07:00
Vito Sansevero
98a8475d10
feat(history): bound context payloads beside lifecycle finalization
2026-10-17 17:58:38 -07:00
Vito Sansevero
99e4d09419
fix(history): preserve package identity for execution contexts
2026-10-17 17:51:35 -07:00
Vito Sansevero
600a479f0b
feat(history): persist immutable execution context snapshots
2026-10-17 17:47:27 -07:00
Vito Sansevero
cc6e7f9ec0
feat(history): migrate execution contexts to schema v2
2026-10-17 17:39:20 -07:00
Vito Sansevero
523c136455
fix(history): retain observable sources and validate evidence
2026-10-17 17:29:27 -07:00
Vito Sansevero
08e77de05f
feat(history): define exact bounded execution contexts
2026-10-17 17:24:16 -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
Vito
ce82dfb912
fix: quiet routine console logging and prevent duplicate output ( #183 )
2026-10-16 09:58:05 -07:00
Vito
5ded3189c1
test: cover backup restore and destructive browser workflows ( #185 )
2026-10-16 07:56:15 -07:00
Vito
f1b1d4731b
test: exercise real page workflows and enforce frontend coverage ( #181 )
2026-10-16 06:45:20 -07:00
Vito
e9fe586442
fix: repair prompt edit hashes, auto-tag review, and stale UI responses ( #180 )
...
* fix: keep edited prompt hashes consistent
Fixes #176
* fix: align gallery auto-tag review with scoped image APIs
Fixes #177
* fix: keep Tags prompt results on the current filter
Fixes #178
* fix: ignore stale metadata in admin image viewers
Fixes #179
* test: compare canonical gallery paths on macOS
2026-10-16 06:14:06 -07:00
Vito
6d9f3fc8fb
fix: preserve gallery image identity and ignore stale metadata ( #175 )
...
* fix: preserve gallery root identity across media and metadata
Fixes #173
* fix: ignore stale gallery metadata responses
Fixes #174
* test: use platform-valid gallery filenames on Windows
2026-10-16 05:35:03 -07:00
dependabot[bot]
911b801883
deps(pip)(deps-dev): update aiohttp requirement ( #172 )
...
---
updated-dependencies:
- dependency-name: aiohttp
dependency-version: 3.14.5
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-16 05:23:48 -07:00
dependabot[bot]
a576cff69f
deps(pip)(deps-dev): update black requirement ( #171 )
...
Updates the requirements on [black](https://github.com/psf/black ) to permit the latest version.
- [Release notes](https://github.com/psf/black/releases )
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md )
- [Commits](https://github.com/psf/black/compare/26.10.0...26.10.1 )
---
updated-dependencies:
- dependency-name: black
dependency-version: 26.10.1
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-16 05:23:28 -07:00
Vito
cf0cef3f25
feat: vendor Viewer.js reproducibly and automate release updates ( #170 )
...
Refs #169 . Pin and verify pristine distribution assets, upgrade to 1.15.2, and add tested maintainer tooling plus desktop and touch browser checks.
2026-10-16 04:56:25 -07:00
Vito
7b6430e20a
fix: stop misleading thumbnail prompts on gallery startup ( #168 )
...
* fix: count pending thumbnails accurately across gallery roots
* fix: clear thumbnails across all configured gallery roots
* fix: log skipped thumbnail directory cleanup
2026-10-16 04:56:07 -07:00
Vito
611c19d2f4
fix: keep infinite-scroll gallery rendering and viewer work bounded ( #166 )
2026-10-16 04:17:20 -07:00
ghosttigerllc-bit and kai
2763e9f9fa
Read A1111/Forge generation parameters: fix the SELECT and parse multi-line prompts ( #165 )
...
* get_image_prompt_info: include gi.parameters in SELECT and return value
The function selects workflow_data, prompt_metadata and generation_time from
generated_images but omits the parameters column, so the A1111/Forge
generation-parameters string (steps, sampler, CFG, seed, LoRA list) never
reaches the API even when present in the database. Add it to the SELECT and
include it in the returned dict.
* parse A1111/Forge parameters: multi-line prompts, structured settings
_parse_comfyui_prompt took lines[0] of the parameters chunk as the whole
positive prompt, truncating every multi-line prompt to its first line, and
matched 'negative prompt:' only as a full line start. Split on the trailing
'Steps: ...' settings line instead, keep the full multi-line positive prompt,
and extract Steps / Sampler / Schedule type / CFG scale / Seed as structured
fields alongside the raw string.
Together with the get_image_prompt_info SELECT fix (previous commit), the
full A1111/Forge generation recipe now flows from the database to the API.
* style: apply black to the A1111 parameters parser
CI's black --check flagged py/api/__init__.py (slice spacing and two long
lines in the settings extraction). Formatting only; the AST is unchanged.
---------
Co-authored-by: kai <kai@hermes.local >
2026-10-16 03:50:26 -07:00
Vito Sansevero
3bb21c621c
chore: release 3.3.1
...
- Fix Prompt Manager UI routing behind a ComfyUI proxy mount such as
SwarmUI's /ComfyBackendDirect/ (#164 , thanks @ghosttigerllc-bit)
- Restore runtime minimums Pillow>=8.0.0 and watchdog>=2.1.0: nothing
requires the newer floors, and raising them forces upgrades in users'
shared ComfyUI environment
v3.3.1
2026-10-14 03:26:05 -07:00
ghosttigerllc-bit and Zayne
374ce6e7a8
Fix Prompt Manager UI routing behind a ComfyUI proxy ( #164 )
...
* Fix gallery folder filters behind SwarmUI proxy
* Route Prompt Manager UI requests through proxy mount
* Use Comfy frontend base for Prompt Manager node requests
---------
Thanks @ghosttigerllc-bit
Co-authored-by: Zayne <noreply@gtb.ai >
2026-10-14 03:18:29 -07:00
dependabot[bot]
e2ec6df3d4
deps(pip)(deps-dev): update numpy requirement from >=1.24 to >=2.2.6 ( #162 )
...
Updates the requirements on [numpy](https://github.com/numpy/numpy ) to permit the latest version.
- [Release notes](https://github.com/numpy/numpy/releases )
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst )
- [Commits](https://github.com/numpy/numpy/compare/v1.24.0...v2.2.6 )
---
updated-dependencies:
- dependency-name: numpy
dependency-version: 2.2.6
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-11 07:46:02 -07:00
dependabot[bot]
38daedf131
deps(pip)(deps-dev): update flake8 requirement from >=7.0.0 to >=7.4.1 ( #160 )
...
Updates the requirements on [flake8](https://github.com/pycqa/flake8 ) to permit the latest version.
- [Commits](https://github.com/pycqa/flake8/compare/7.0.0...7.4.1 )
---
updated-dependencies:
- dependency-name: flake8
dependency-version: 7.4.1
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-11 07:45:59 -07:00
dependabot[bot]
1e1b92a1ba
deps(pip)(deps-dev): update aiohttp requirement from >=3.8.0 to >=3.14.4 ( #159 )
...
---
updated-dependencies:
- dependency-name: aiohttp
dependency-version: 3.14.4
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-11 07:45:55 -07:00
dependabot[bot]
ef66d7bd3e
deps(pip)(deps): update watchdog requirement from >=2.1.0 to >=6.0.0 ( #156 )
...
Updates the requirements on [watchdog](https://github.com/gorakhargosh/watchdog ) to permit the latest version.
- [Release notes](https://github.com/gorakhargosh/watchdog/releases )
- [Changelog](https://github.com/gorakhargosh/watchdog/blob/master/changelog.rst )
- [Commits](https://github.com/gorakhargosh/watchdog/compare/v2.1.0...v6.0.0 )
---
updated-dependencies:
- dependency-name: watchdog
dependency-version: 6.0.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-11 07:45:52 -07:00
dependabot[bot]
f00d6408d8
deps(pip)(deps-dev): update pre-commit requirement ( #163 )
...
Updates the requirements on [pre-commit](https://github.com/pre-commit/pre-commit ) to permit the latest version.
- [Release notes](https://github.com/pre-commit/pre-commit/releases )
- [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md )
- [Commits](https://github.com/pre-commit/pre-commit/compare/v4.0.0...v4.6.2 )
---
updated-dependencies:
- dependency-name: pre-commit
dependency-version: 4.6.2
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-11 07:32:43 -07:00
dependabot[bot]
6962fecf86
deps(pip)(deps-dev): update coverage requirement from >=7.0 to >=7.16.2 ( #161 )
...
Updates the requirements on [coverage](https://github.com/coveragepy/coveragepy ) to permit the latest version.
- [Release notes](https://github.com/coveragepy/coveragepy/releases )
- [Changelog](https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst )
- [Commits](https://github.com/coveragepy/coveragepy/compare/7.0.0...7.16.2 )
---
updated-dependencies:
- dependency-name: coverage
dependency-version: 7.16.2
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-11 07:32:38 -07:00
dependabot[bot]
90d706c943
deps(pip)(deps-dev): update bandit requirement from >=1.7.0 to >=1.9.4 ( #158 )
...
Updates the requirements on [bandit](https://github.com/PyCQA/bandit ) to permit the latest version.
- [Release notes](https://github.com/PyCQA/bandit/releases )
- [Commits](https://github.com/PyCQA/bandit/compare/1.7.0...1.9.4 )
---
updated-dependencies:
- dependency-name: bandit
dependency-version: 1.9.4
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-11 07:32:31 -07:00
dependabot[bot]
d17be56e1b
deps(pip)(deps-dev): update black requirement from >=24.0.0 to >=26.10.0 ( #157 )
...
Updates the requirements on [black](https://github.com/psf/black ) to permit the latest version.
- [Release notes](https://github.com/psf/black/releases )
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md )
- [Commits](https://github.com/psf/black/compare/24.1a1...26.10.0 )
---
updated-dependencies:
- dependency-name: black
dependency-version: 26.10.0
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-11 07:32:28 -07:00
dependabot[bot]
94366938d1
deps(pip)(deps-dev): update setuptools requirement from >=61 to >=84.0.0 ( #155 )
...
Updates the requirements on [setuptools](https://github.com/pypa/setuptools ) to permit the latest version.
- [Release notes](https://github.com/pypa/setuptools/releases )
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst )
- [Commits](https://github.com/pypa/setuptools/compare/v61.0.0...v84.0.0 )
---
updated-dependencies:
- dependency-name: setuptools
dependency-version: 84.0.0
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-11 07:32:23 -07:00
dependabot[bot]
e13ea3c92f
deps(pip)(deps): update pillow requirement from >=8.0.0 to >=12.3.0 ( #154 )
...
Updates the requirements on [pillow](https://github.com/python-pillow/Pillow ) to permit the latest version.
- [Release notes](https://github.com/python-pillow/Pillow/releases )
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst )
- [Commits](https://github.com/python-pillow/Pillow/compare/8.0.0...12.3.0 )
---
updated-dependencies:
- dependency-name: pillow
dependency-version: 12.3.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-11 07:32:20 -07:00