comfyui-browser toggles its own window on a plain b (hard-coded, no
setting), so with both installed one press opened one window and closed the
other. Shift+B keeps the B and leaves comfyui-browser alone (it checks for a
lowercase b). Tested with both plugins loaded.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The user's two wishes for v1.58.2:
- Esc on a page one level down (a model's details, one combo, one recipe)
presses that page's own back button; on any other page, Workflows and
Combos included (they are layers, but look like the other rail pages),
it closes the browser. The model details' back button gets a class on
the line that makes it, so ui_detail.js does not grow.
- The default shortcut is B, like ComfyUI's single keys for its side panels.
Ctrl+Shift+M is taken by Chrome and Edge (switch profile) before the page
sees it. ComfyUI keeps shortcuts the user set; typing in a text box is
left alone.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The user's two wishes for v1.58.2:
- Dragging a gallery picture fades the browser out, as for the other cards
(anomalous-material-dragging), so the canvas and the node under the
pointer take the drop; it comes back on dragend.
- Insert as a Load Image node closes the browser and the node follows the
pointer until a click puts it down, Esc takes it off: a combo's Put on
canvas (notebook_canvas.js's followPointer, now exported).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A "tut01/name.png [output]" value ran, but ComfyUI's check before a run
only finds output pictures in this session's history, so an older picture
was flagged "a required media input has no file selected" (seen on the
user's library). The picture is now uploaded through /upload/image like a
file dropped on the node; ComfyUI keeps one copy of the same picture.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Windows keeps a background program (ComfyUI) from raising a window, so the
folder opened behind the browser and was easy to miss. After starting
Explorer, the route waits up to 3 s for its window (a new one, or the open
one Explorer reused, matched by the folder's name in the title) and raises
it, borrowing the foreground window's input queue for the moment.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From a Bilibili comment (2026-10-13):
- Esc closes the top layer: a dialog or menu (the plugin's alert and confirm
now close on Esc, as OK / Cancel), else the Workflows / Combos workspace,
else the browser. One capture listener decides before the layers act, so a
dialog closing on the same Esc still counts as above. The shortcut and the
Extensions entry toggle the browser.
- A model's file card has Show in folder: POST /anomalous/open_model_folder
(api/model_folder.py) takes type, folder index, subfolder and file name,
never a path, and opens Explorer / Finder with the file selected; a POST,
so local_guard keeps it to this computer. The card moves out of
ui_detail.js into model_location.js.
- A gallery card's right-click menu (gallery_card_menu.js): Insert as a Load
Image node reads the output file in place ("name.png [output]"), and View
Parameters.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Found while recording in English: picture details showed "20 步" and
"定位模型", and the activity log said "Changed 1 things". Picture
details' last fixed Chinese strings (steps, Show model, copied JSON, two
empty notes) move to locales. formatTranslation learns {count|one|other},
and every English "{count} <plural noun>" uses it (49 strings; names like {engine} or {node} are left alone); two
sentences whose verb followed the count are reworded. The voice guides
name the TTS node by its English title, Character Speech (GPT-SoVITS).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Users in mainland China often have no proxy: say which parts need the
network and that an offline scan works without it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The key handler ignored every <input> as a text field, so once a node's
checkbox under All parameters was ticked it kept the focus and the arrows
and A / D did nothing until a click elsewhere. Only text entry (text inputs,
textareas, contenteditable) keeps the keys now. In since 2026-09-04.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On a combo saved from canvas nodes, once the page was scrolled a little,
"‹ All combos" opened the model picker: Chrome hit-tested the model covers
(overflow: hidden) that had scrolled under the header as still there. The
combo editor's scroll box gets clip-path: inset(0), like the recipe details
on 2026-10-09. lessons.md records it as the second time, with the sweep that
finds it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MCP now uses local_guard.is_local (one local check). A backup upload
request that is no upload answers 400 instead of 500. tests/test_local_guard.py.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
With ComfyUI started with --listen, other devices could use most of AMB's
actions: delete and rename models, save and delete workflows and prompts,
start downloads and scans, export a backup of all data, translate with the
user's key, change settings, switch the plugin version. A probe of all
routes as a LAN device found 9 of 112 refusing.
api/local_guard.py is one middleware in front of every /anomalous/ route:
anything but GET answers only this computer unless it is a read sent as POST
(OPEN_POSTS); a GET is open unless it is more than a read (LOCAL_GETS:
backup file, GitHub releases, local folders). Local = loopback peer, no
proxy headers, loopback Host (DNS rebinding is refused too). Refusals are
403 local_only with a bilingual message; GET /anomalous/access lets the page
show a "view only" chip (remote_view.js). AGENTS.md rule 4 now names it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A model Civitai has no record of now has its safetensors header checked (model_identity.
safetensors_damage: too short, header longer than the file, not JSON, or a tensor ending past
the file's end; only the header is read). Such files get the unmatched reason "damaged": a red
badge on the card, a line in the details, a warning on the scan page (the summary counts them)
and first place in the unmatched list, with advice to download the model again.
Tests: header cases, a scan telling a damaged file from a whole one; the scan report fixtures
are whole safetensors files now.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A record inferred from the file alone names model and version after the file. With renaming on, the scan renamed it to name_name, and every later scan doubled it again; the details showed name - name. Such records are no longer renamed (physically or virtually, an earlier doubled virtual name is dropped), and a model and version of one name read once.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
After 90 seconds closed the model grid is released. Reopened onto Current node or Prompts (a node selected on the canvas), nothing redrew it, so pressing Models showed an empty page. Showing the models now redraws an empty grid.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Opening a workflow on the canvas hid the workspace without restoring the page under it, so
opening the browser again showed an empty page. It now only hides the browser; the Workflows
list stays in place.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ComfyUI keeps widget values by the root graph's id; a picture's workflow laid on a
detached graph under the open canvas's id shared and overwrote the canvas's values.
detached_graph.js gives the copy an id of its own; image_keep and recipe_save use it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The picker, combo-save and activity fixes now ship in v1.58.0, so their entries
move from v1.59.0's Fixes to v1.58.0's (the code here already had them; the
picker keeps this branch's theme-aware border colour). Outdated docs/plans and
docs/audits are removed.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Same fixes as feature/next 99576e6, brought into v1.58.0 (the user fixes the
released line directly while it has few users):
- Current node's model picker repaints the chosen card in place instead of
redrawing the grid, which scrolled back to the top.
- The classic combo editor no longer saves when its bilingual tags are shown nor
once per translated tag; one save follows the last translation.
- A long activity before/after pair is cut around its first difference.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs/plans held task briefs written for other agents, most of them done or
abandoned (the toolbox shortcuts, the Material Library node capture), and
docs/audits a 2026-09-19 report on the old Model Doctor and Material Library.
Read publicly they looked like current plans. GEMINI.md now points front-end work
to AGENTS.md section 4 and docs/architecture/frontend.md; the audits row and the
audits ignore rules are gone. History keeps every file.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Current node's model picker redrew the whole grid to mark the chosen card, so
choosing one further down scrolled back to the top. The cards are repainted in
place (paintCard) instead.
- The classic combo editor saved when its bilingual tags were shown and again for
each tag's translation as it arrived: a long prompt wrote the combo dozens of
times in a second (34 note_save entries in one user's log). Rendering no longer
saves and the translations share one save half a second after the last. Its
prompt placeholder moves into locales.js (no inline language branch).
- Activity values are capped at 400 characters from the start, so an edit late in
a long prompt logged identical before and after. A long before/after pair is now
cut around its first difference (test included).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Home's feedback band ends with "⭐ Star on GitHub" and Settings -> Help and feedback
has a "Star it on GitHub" row; both open the project page in a new tab
(feedback.js openRepoPage). No pop-up, no reminder and no request is made: the
page opens only when pressed.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Two more security-floor rules from the Edit emotions search: read-only routes follow
rule 3 too (by name or id where possible), and reading user files is capped, with
unreadable or oversized files skipped. A new "资源占用" part: act only on user action
(timers only while their view is open), heavy I/O off the event loop (moved here),
data lives with its view, thumbnails rather than originals. The delivery checklist
asks about paths, read limits and idle cost.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Once the combo editor or a recipe's details was scrolled, Chrome hit-tested content
that had scrolled out of view as still sitting under the header: "‹ All combos" hit
a LoRA tile, and the recipe's Back and tabs hit its cover. The combo tiles lose
content-visibility: auto (their off-screen boxes kept taking clicks); the recipe
detail's scroll box gets clip-path: inset(0), which Chrome also applies to hit tests.
Found with a sweep that scrolls every scroll box of each page in steps and checks
each visible button still gets its own click.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- CHANGELOG: ui-shell's v1.58.0 Beta block kept as it is there; next's own sections
move to a new v1.59.0 Beta heading (model downloads, backup, share codes, recipe
packages, node combos, MCP, light theme, opening by node, header search, LoRA
insertion, DeepL key, tests; "Ctrl+Z after a scan" under Fixes).
- README badge v1.59.0 Beta.
- What's new guide (new id 2026-10-downloads-and-backup): downloads from Model Check,
backup and share codes, node combos, light theme, MCP.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- CHANGELOG: Unreleased becomes v1.58.0 Beta (2026-10-09), its entries grouped by
subject (layout, keeping results, prompts and Current node, Model Check, scanning,
deleting, memory, activity log, voices, fixes); no entry dropped. Stale wording
fixed: the rail's real order (no toolbox), no material workspace, no help page,
Activity canvas entries do have Undo, combos instead of prompt notes.
- README: changelog badge v1.58.0 Beta.
- What's new guide: the five steps are the release's main changes (rail and Home,
☆ keep and combos, Prompt Studio, Model Check, voices); the model-types,
activity and memory steps are gone (Activity is named in the layout step).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>