Commit Graph
21 Commits
Author SHA1 Message Date
Ewald 9a8242ce4c Ignore temp previews in the sidebar asset badge
A generation with a compare node indexes two temp preview files next to
the output, so one generation showed a badge of 3. Skip assets whose
source is temp.
2026-11-05 10:22:55 +01:00
Ewald ALOEBOETOE e7b2d306ab Keep the floating viewer topbar button next to Run after a reload
The Run group is rendered asynchronously inside the actionbar, and the
observer only watched the actionbar's direct children, so the button stayed
at the end once Run appeared. Observe the subtree and re-anchor when the
button is not right after the Run group.
2026-11-04 13:22:06 +00:00
Ewald ALOEBOETOE 4a19fc81a5 Fix remaining issues from the integration audits
- Watcher: a sidecar JSON created or edited next to an unchanged media
  file now invalidates that file's metadata cache and scan journal and
  forces a re-extraction; a non-incremental re-index no longer skips
  assets that already have a metadata row when the cache was cleared.
- Merge index rows that are one file under different Windows path
  spellings at startup, keeping the best rating, all tags, the stack
  cover, execution ids and the vector embedding.
- Remove deleted/removed assets from the generated feed too.
- Scope the floating viewer's single-letter shortcuts to the viewer
  (pointer, focus or pop-out) instead of the whole page.
- Take LGraph/LGraphCanvas types from comfyui-frontend-types and drop
  @comfyorg/litegraph; delete five dead frontend files.
- Fix an order-dependent test that leaked an input-directory override.
2026-11-04 08:48:26 +00:00
Ewald ALOEBOETOE 49bf320631 Fix asset sync for new, moved and deleted files
- Fix assets_fts triggers: the external-content FTS5 table was updated
  with plain UPDATE/DELETE, so every rename or move failed with
  "database disk image is malformed" and the watcher fell back to
  delete + re-index, losing ratings, tags and collections. Use the FTS5
  'delete' command, limit the update trigger to filename/subfolder and
  repair existing databases (plus an FTS rebuild) at startup.
- Wait for the prompt history entry before post-execution ingestion:
  ComfyUI fires on_prompt_end before task_done() stores history, so
  outputs of prompts queued from the API or another client could be
  missed.
- Scan prune only removes assets whose absence is confirmed; a stat
  error or an unreadable scan root no longer deletes user data. Report
  pruned assets instead of SQLite change counts.
- Emit mjr-assets-removed for watcher deletes and scan prunes and
  mjr-asset-updated for moves so open grids update in place.
- Annotate mjr-scan-complete with origin and needs_refresh; reload the
  grid once when live events cannot cover a change and summarise a
  finished directory scan in one ComfyUI core toast.
- Document the comparison with ComfyUI core's asset system.
2026-11-04 08:01:26 +00:00
Ewald ALOEBOETOE b6f6082f4f Move Majoor notifications onto ComfyUI core toasts
- Use the typed ToastManager API (success/error/info/warning/loading)
  instead of the deprecated add(); add() stays as a fallback for older
  frontends.
- Accept a toast manager without add() so toasts keep working once
  ComfyUI drops the deprecated methods.
- Tracked operations (DB restore/reset, vector backfill) show one
  loading toast updated in place via its ToastId instead of stacking a
  toast per step; dismiss them on extension teardown.
- Persistent toasts use the largest safe timer delay instead of
  Infinity; history action links become native toast action buttons
  (http(s) or same-origin paths only).
- Route genInfoOverridePicker and comfyAlert through the core toast API;
  drop the app.ui.toast fallback, the no-op fallback dismisser and the
  unused .mjr-toast CSS.
- Keep the Majoor message center as a read-only history; it no longer
  pops open by itself on reset/backfill.
- Document the notification audit.
2026-11-04 07:38:14 +00:00
Ewald ALOEBOETOE d0ab7d594e Resolve remaining ComfyUI integration conflicts
- Move the read-only OpenAPI compat surface from /api/v2/assets to
  /mjr/am/compat/assets so it never squats ComfyUI core's /api namespace;
  the legacy alias is opt-in via MJR_AM_LEGACY_API_V2_ASSETS=1.
- Allow Python 3.14 (requires-python <3.15) and add 3.14 to CI and tox.
- Stop wrapping api.queuePrompt: progress tracking now resolves the
  running prompt from the core Jobs API (getJobDetail), then /queue and
  /history, driven by websocket events. Remove wrapHostQueuePrompt.
- Add opt-in Majoor.Integration.HideNativeAssetsTab setting that hides
  ComfyUI's native Assets sidebar tab through the official
  getSidebarTabs/unregisterSidebarTab API and restores it when disabled.
- Fix all 913 type errors in tsconfig.test.json and type-check tests in
  CI; drop a duplicated `stubs` key in asset_card_inner test; make
  addToastHistory's type argument optional for the object form.
- Update audit report, changelog, API reference and env var docs.
2026-11-03 21:16:34 +00:00
Ewald 7913d14792 Classify opus, aac, m4a and EXR live outputs in the realtime listener
Also accept tif/tiff and m4v in drag and drop, and rebuild dist/.
2026-10-01 12:18:20 +02:00
Ewald c1cdfacff5 fix(ui,ci): address audit findings on sidebar prewarm, topbar button, API dedupe/validation, and frontend-types CI
- Sidebar prewarm no longer steals the Vue host from an already-open panel:
  mountKeepAlive only attaches on first creation unless explicitly allowed,
  and teardown resets the prewarm state and removes its detached container.
- Topbar MFV button now also observes the actionbar container's parent so a
  full replacement of .actionbar-container (not just mutations inside it) is
  detected and the button is remounted.
- get() skips request deduplication when a caller passes its own AbortSignal,
  since the shared fetch only ever wired up the first caller's signal.
- The API client now rejects response envelopes missing a boolean `ok` field
  (including bare arrays) and downgrades ok:true responses paired with an
  HTTP error status to INVALID_RESPONSE.
- frontend-compat-nightly.yml: upstream ComfyUI_frontend's build:types now
  emits per-file declarations mirroring src/ instead of one bundled file, so
  the previous entrypoint paths no longer exist. The activation step now also
  checks dist/src/types/index.d.ts and copies the whole dist/ tree so the
  unbundled declaration's relative imports keep resolving.
2026-09-11 11:42:32 +02:00
Ewald 37fb1b00e6 chore: release 2.5.1 2026-09-04 21:18:35 +02:00
MajoorWaldi e7a2f8b88d Improve save placeholders and floating viewer 2026-08-06 19:08:06 +02:00
Ewald 10f851aaae Add metadata FTS backfill, registry logging collision fixes, i18n locales, and doc updates 2026-07-22 16:33:34 +02:00
Ewald ed8e33c5e4 Prepare 2.5.0 features and release notes 2026-07-09 11:18:28 +02:00
Ewald 67a8aa4961 Release 2.4.9 and fix LTX video drops 2026-06-25 12:29:16 +02:00
Ewald 30ae52d978 Integrate ComfyUI app mode and workflow UX fixes 2026-06-22 16:03:28 +02:00
Ewald cf1ea341a7 Fix MFV topbar integration 2026-06-22 09:44:07 +02:00
Ewald bacc50000e Improve VRAM controls and settings organization 2026-06-16 17:17:19 +02:00
Ewald 43a1fad285 chore: update dist, tests, and UI components 2026-06-12 10:19:33 +02:00
Ewald 8628122377 fix(ci): resolve ts typecheck and aiohttp test stub incompatibility 2026-06-02 17:21:42 +02:00
Ewald b255c25c49 refactor(filter): style popover neutre + fermeture via mjr:filters-changed 2026-06-02 16:58:15 +02:00
MajoorWaldi 99398aad5d Fix mojibake text and update default settings 2026-05-31 20:03:25 +02:00
Ewald a78f4572c8 Align frontend layout with ComfyUI conventions 2026-05-26 10:42:22 +02:00