Skip to content

v2.49.4

Choose a tag to compare

@github-actions github-actions released this 07 Jul 03:19
· 174 commits to main since this release
7fd544e

Random AI prompt + image generator for the Stable Diffusion WebUI -- a CLI and a local web UI.

Pre-release software. Provided as-is under Apache-2.0.

What's new in this release

2026-07-06 — Fix Manage add-menu overflowing the pane (2.49.4)

The tree's add (+) menu ("New block / New folder") opened left-to-right (left: 0) from + controls
that sit near the right edge of the narrow tree pane, so the 130px menu spilled past the pane and forced
a horizontal scrollbar. Right-aligned it (right: 0; left: auto) so it grows leftward and stays inside
the pane. Verified in Chrome. CSS-only.

2026-07-06 — "Create override" for built-in blocks/lists + corner scrollbar fix (2.49.3)

  • Create override: the block + list editors now show a Create override button for any built-in
    entry. It copies the entry (content + .js/.json sidecars) into the matching user-overlay root
    (user/blocks or user/lists) — which wins at runtime and survives app updates — then selects the
    new copy so you edit YOUR version; the built-in is left untouched. If an override already exists it
    just opens it. Backed by a new cross-root copy fs op (toRoot) in manageFs, overrideEntry in
    useManageTree, and a confirm dialog. Verified end-to-end in Chrome.
  • Corner scrollbar fix: the Modify/Draft combo overlapped the DPL editor's vertical scrollbar —
    inset it (right: 1.25rem) so it always clears the scrollbar.
  • Editor-freeze fix: the first attempt used scrollbar-gutter: stable on the CodeMirror scroller,
    which put CM into an infinite measure loop and froze the renderer when a block opened. Dropped it (CM
    wraps long lines inside the scrollbar already, so the text stays clear without it).
  • Verified green: the full gate — check:docs + lint (incl. stylelint) + smoke + Node unit (279,
    incl. the new cross-root copy round-trip) + web (416, incl. overrideEntry cases) + the web build;
    i18n:extract synced en.json. Manually confirmed the override flow, the scrollbar clearance, and
    the freeze fix in the browser.

2026-07-06 — Refine bar UX overhaul: stepper combos + corner Modify/Draft (2.49.2)

Rebuilt the block refine controls after they read as "a slab of buttons overflowing with even more
buttons oddly below it" (verified in Chrome this time — the fix is UX-driven).

  • Stepper combos: each dimension is now ONE compact control — [ − Detail + ] — instead of two
    separate "Add detail" / "Trim detail" pills. Five combos (Detail, Complexity, Focus, Intensity,
    Variety) + a lone Cleanup pill (renamed from "Tighten") sit on one tidy, wrap-safe row. New
    DplRefineBar renders /+ step buttons per dimension; the +/− aria-labels carry the old action
    names.
  • Corner Modify/Draft: the free-text box moved out of a full-width slab into a joined Modify /
    Draft
    combo pinned to the DPL editor's top-right corner (new DplAskCorner.jsx), opening a compact
    popover (title + textarea + Send, ⌘/Ctrl+Enter). The editor content gets a top gutter so the first
    line clears the control; the popover caps at min(88vw, 360px).
  • Test-infra fix: the heavier suite tipped promptEngine.integration's ensureCatalog() warmup
    hook (~9.3s on HEAD) past the default 10s hook timeout under parallel load — gave that beforeAll a
    30s timeout (the real data-corpus glob genuinely takes >10s under load).
  • Verified green: inspected in Chrome at desktop (combos tidy, corner popover clean, no clipping) +
    lint + smoke + the full web suite (412 tests) + the web build; i18n:extract synced en.json.

2026-07-06 — Free-text "Modify" box for block refine in Manage (2.49.1)

Added a free-text message box to the block editor's refine bar so a template can be re-processed by a
typed instruction — full control alongside the quick pills. A segmented Modify / Draft new toggle
sits over one input: Modify (default) sends your instruction plus the current template to the AI and
applies the revised DPL; Draft new is the previous draft-from-description (now folded into the same
box). Both keep the existing validate + dirty-until-Save + one-click Undo behaviour.

  • New dpl-custom mode (rewriteSystem.js): its task tells the model the user message is an
    INSTRUCTION followed by the current template after a --- TEMPLATE --- delimiter, to apply the
    change and return the full revised DPL while preserving everything not asked to change. Rides on the
    same DPL_PRIMER as the other dpl-* modes.
  • dplRefine.js: DPL_CUSTOM_MODE + buildCustomPrompt(instruction, template) (packs the two
    around the delimiter). DplRefineBar.jsx replaced the collapsible draft control with the always-
    visible Modify/Draft box; ManageBlockEditor.jsx gained handleCustom (validates both an
    instruction and a template exist, composes the prompt, runs dpl-custom) and a kind-driven status.
  • Verified green: lint + smoke + the full web suite (409 tests) + the web build; i18n:extract
    synced en.json. No data-practice change, so the legal docs are untouched.

2026-07-06 — AI refine + draft-from-description for blocks in Manage (2.49.0)

Extended the Manage block editor's DPL tab with an AI refine toolbar and a draft-from-description
control, so a block template can be shaped by clicking instead of hand-editing DPL. All of it rides on
the existing text (rewrite) provider path — the same BYOK plumbing the list editor's "AI Expand" uses —
so no new provider code was needed.

  • Refine toolbar (DplRefineBar.jsx): five dimensions as more/less pill pairs — Detail
    (add/trim), Complexity (more/simplify), Focus (sharpen/loosen), Intensity (crank/ease),
    Variety (more/consistent) — plus a Tighten polish action. Each pill sends the current template
    through the provider with a dedicated dpl-* mode and replaces the editor content; the result is
    validated (issue count surfaced in the status), marked dirty (not saved until Save), and reversible via
    an Undo link (a manual edit supersedes the revert point).
  • Draft from description: a free-text box drafts a whole starting template from a plain-English
    subject, using a "winning formula" system prompt (front matter → Start → subject spine → essential
    bullets → one of: variety → maybe/NN% garnish → [f<40%] focus fluff → [i>70%]/[i<25%]
    intensity variants, composable, ~10–20 lines).
  • DPL-aware system prompts (rewriteSystem.js): a shared DPL_PRIMER teaches the model the DPL
    grammar and the intensity/focus dials so it refines as DPL (tokens, sections, gates, choices
    preserved) rather than flattening to prose; systemFor() now routes every dpl-* mode (primer + a
    per-mode task) alongside the existing keyword/expand/fix. Reused by both transports
    (browser-direct + the /api/rewrite proxy) since both already call systemFor.
  • New: frontend/lib/dpl/dplRefine.js (action catalog + cleanDplOutput fence/quote stripper) and
    dplRefineMessages.js; styles/components/dpl-refine-toolbar.css. No data-practice change (refine
    reuses the already-disclosed text-provider flow), so the legal docs are untouched.
  • Verified green: lint + smoke + the full web suite (404 tests, incl. new dplRefine,
    rewriteSystem, and DplRefineBar specs) + the web build; i18n:extract synced en.json.

How to get it

Prefer not to build? Download a pre-built edition:

  • Desktop app -- Windows .msi / .exe (or a portable .zip), macOS .dmg, Linux .AppImage / .deb (attached below). Self-contained; nothing to install first.
  • random-ai-prompt-2.49.4-online.zip -- the online edition as static files; host it anywhere, or just use https://prompt.fairyfox.io.
  • random-ai-prompt-2.49.4.tar.gz -- source tarball (run with Node 24: npm install then npm start).
  • random-ai-prompt-2.49.4-docs.zip -- the generated documentation site.

What's Changed

  • Release v2.49.4 by @junebug12851 in #44

Full Changelog: v2.48.0...v2.49.4