Skip to content

Commit cc39886

Browse files
ernopcursoragent
andcommitted
ui: multi-image composer, prompt-tools under prompt, --ui-open flags
- Composer accepts up to /api/config maxInputImages attachments; gpt-image-2 /edits receives every entry, other generators index 0 - Fix spelling / fix typos / undo move from the send row to #prompt-tools directly under the prompt box; new UI Control Placement rule recorded in .cursorrules and AGENTS.md (controls live next to the input they act on) - --ui-open / --ui-no-open control the browser tab on --ui start (default: open when interactive, skip under systemd) - gpt2 guidance localStorage key bumped to gpt2GuidanceTextV2 so stale copies of the replaced default text retire - docs/provider-onboarding.md: researched onboarding notes for candidate providers (Seedream, Reve, Luma, Qwen, MiniMax, Runway) Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 1025fa2 commit cc39886

8 files changed

Lines changed: 1978 additions & 1299 deletions

File tree

.cursorrules

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,11 @@
3535
- A fallback is allowed only when the user has explicitly specified that exact behavior as a product requirement. Document it at the call site and validate that it cannot select unrelated data.
3636
- Declared input defaults chosen before an operation starts are not failure fallbacks. Once an operation starts, never replace failed output with different output.
3737

38+
## UI Control Placement
39+
- Controls live next to the input they act on. A button, toggle, or helper that edits/fixes/clears a specific field sits immediately down/right of that field — not in a distant shared toolbar.
40+
- Example: prompt "fix typos" / "fix spelling" / "undo fix" sit under `#prompt`; Generate (whole-form submit) stays in the send row.
41+
- Same rule for future field-scoped actions (reset, clear, validate, rewrite-this-field).
42+
3843
## Universal Image Prompt Defaults
3944
- When writing or rewriting image-generation prompts, default to clear, bright, full normal daytime lighting unless the user explicitly asks for dark, night, low-key, gloomy, or murky output.
4045
- Explicitly avoid dim, murky, grimy, muddy, gloomy, shadow-choked, underexposed, dusk-like, night-like, or dark results.

AGENTS.md

Lines changed: 4 additions & 2 deletions
Large diffs are not rendered by default.

MultiImageClient/RunOptions.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,11 @@ public class RunOptions
244244
/// Port for --ui. The server binds 127.0.0.1 only.
245245
public int UiPort { get; set; } = 5960;
246246

247+
/// Whether --ui should open a browser tab on start.
248+
/// null = default (open when interactive; skip under systemd).
249+
/// true/false = force via --ui-open / --ui-no-open.
250+
public bool? UiOpenBrowser { get; set; }
251+
247252
/// Master switch for popping finished images/contact-sheets open in the
248253
/// system default viewer. Defaults to false: runs are headless and just
249254
/// save to disk. Set with --open-images. Drives
@@ -332,6 +337,12 @@ public static RunOptions Parse(string[] args)
332337
case "--ui-port":
333338
o.UiPort = int.Parse(args[++i]);
334339
break;
340+
case "--ui-open":
341+
o.UiOpenBrowser = true;
342+
break;
343+
case "--ui-no-open":
344+
o.UiOpenBrowser = false;
345+
break;
335346
case "--repl-size":
336347
o.ReplSize = args[++i];
337348
break;
@@ -505,6 +516,8 @@ private static void PrintUsage()
505516
Console.WriteLine(" --quick-test Like --fast plus: save every streamed partial PNG and open each one in the default viewer as it arrives (implies --open-images). Still asks y/n/custom per prompt unless combined with --auto.");
506517
Console.WriteLine(" --ui Start the local web UI (browser control panel): paste an image + prompt, fan out to selected generators (gpt-image-2 edit, grok-web pro, grok-api), watch results fill in live. Binds 127.0.0.1 only.");
507518
Console.WriteLine(" --ui-port N Port for --ui (default 5960).");
519+
Console.WriteLine(" --ui-open Force opening a browser tab when --ui starts (default for interactive runs; unused under systemd unless set).");
520+
Console.WriteLine(" --ui-no-open Never open a browser tab when --ui starts (default under systemd so restarts don't pile up tabs).");
508521
Console.WriteLine(" --repl Interactive prompt-by-prompt REPL. Prompts fire asynchronously (up to --repl-concurrency at a time); NO viewer pops. Commands: :help :size :quality :gens :status :wait :edit :retry :quit.");
509522
Console.WriteLine(" --repl-size WxH REPL session default size for gpt-image-2 (default 2048x2048). Change at runtime with :size WxH.");
510523
Console.WriteLine(" --repl-quality L REPL session default quality: low|medium|high (default high). Change at runtime with :quality <L>.");

0 commit comments

Comments
 (0)