Repository navigation
Specs for 1.18 (Vector versions, drawing, depth stack, pasted pictures) and 1.19 (Prompt builder) - #39
Merged
Conversation
…rsion You made a Vector run with several versions and found two problems: Delete on a version deleted all of them, and the versions were not grouped the way Images groups a run's pictures. Both reproduced (real page and server, 3 versions): the card has one Delete button, for the whole run, and shows each version as a full-width block (1389 px tall, against 230 px for an Images card of 3 pictures). Your answers: the versions are reached through a viewer, like Images; Delete version goes into the bin for 30 days, like a picture. - docs/DESIGN.md: section 35 (what was found, what it looks like, the rules, the server, the small choices, criteria 185 to 201, what is not in 1.18); decision #54; a 1.18 row in the version table; the header; the two choices of 31.12.9 (no per-vector bin, no viewer) and the known limit of 31.13 are marked as amended. - README.md: the "Still to come" row mentions it. Specification only: nothing is built, no code changed. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_011NDCKtu1QcLwawbdzwmFA1
…eview the Stacked (depth) arrangement
Two more changes from the owner, added to DESIGN.md section 35 (spec only, nothing built):
- The viewer shows the drawing Qwen-Image made beside the vector, with Download drawing.
Checked first: the drawing is kept on disk as <idx>-source.png but no route serves it and no
payload names it. New route /api/vectors/{id}/drawing; it goes with its version through the bin.
- A depth arrangement. Measured with the real engine on a constructed picture: today's Stacked
is already cumulative (5184/1694/166 mm2 against 3444/1469/144 side by side), so N layers
make N levels. The owner chose "today's Stacked, made clear": named Stacked (depth), a
stack_order choice for which colour is at the back, a Height column, an exploded stack view
with a Sheets shown control, a per-layer SVG route, and bleed 0 for flush edges.
Adds rules 10-12, choices 13-18, criteria 202-210, and updates decision 54, the 1.18 row, the
README and the note under 31.12.3 item 3.
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_011NDCKtu1QcLwawbdzwmFA1
… Upscale, up to 8 The owner asked whether a picture can be pasted from the clipboard into the prompt area and added as if uploaded, for a new image and for an edit. Checked first: paste works only in Edit, only with the cursor in the prompt box, and Generate refuses a picture (a 1.6 choice). Decided by the owner's answers: a picture pasted or dropped in Generate is taken and the card becomes Edit (pictures plus a prompt that make a new picture are what Edit is); paste works anywhere on the page and on Upscale a picture...; up to 8 pictures are specified while the default stays 4 until the Spark has measured 6 and 8. Proposed for veto (section 36.5): an Undo on the switch, text winning over a picture in other text fields, Upscale taking a paste only while focused, no Paste button (needs https). Page-only change: no server, schema or contract change. Adds section 36, decision 55, criteria 211-220, a Spark measurement (36.7), and amends 21.4, 21.11, decision 26, the 1.18 row, the header and the README. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_011NDCKtu1QcLwawbdzwmFA1
The owner asked for a Prompt builder tab: type a rough idea and an LLM hosted in Ollama asks questions to build an image prompt; save prompts and flesh them out; group prompts and their pictures in projects; keep the conversation memory in the database; and a button that takes a prompt to the Images tab. Asked two rounds of questions and wrote the answers in. Decided by the owner's answers: Use in Images and Generate now; memory = every conversation, standing preferences and similar past prompts; the same projects, pictures following the prompt; every version kept; tap-to-answer chips, Surprise me / Skip, Write it now, Detail level; settings that fit, several wordings, a quick-try thumbnail, Revise from a result; Send to Vector and Music, help writing edits, a prompt from a picture; tags/search/favourites, Compare versions and preferences per project. Export/import was not chosen. Checked first: projects exist for runs but not prompts; the server has never made an outbound call; memory on the Spark is shared. Ollama's API facts (chat with pictures, format as a JSON schema, keep_alive, unload with an empty chat and keep_alive 0, tags, show) were read from its API reference. The LLM address and model are still to come from the owner (37.9). Adds section 37 (schema 9, /api/builder routes, prompt_ref on runs, the LLM's instructions and answer contract, 32 acceptance criteria 221-252, a Spark/Ollama check list), decision 56, the 1.19 row, and pointers where the Prompt builder replaces the old R3/M5e rewriter plan. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_011NDCKtu1QcLwawbdzwmFA1
…s not used The owner gave the Ollama address and the model (qwen3.8:27b), agreed to the small choices of 37.6, said yes to withdrawing the prompt rewriter (R3, M5e) and no to using Hermes' LLM server. The address is kept out of the repository (settings default empty, placeholder in .env.example). Read from Ollama's library page and thinking reference: qwen3.8:27b is an 18 GB file with a 256K context and vision, tools and thinking capabilities; the chat call has a think setting, and the reference does not say how thinking and a structured answer (format) behave together. So: STUDIO_OLLAMA_THINK (off by default), reasoning text never shown or stored, a Thinking indicator, and a Spark check that compares thinking off and on. No second vision model is needed. Marks 37.6 choices 1-13 agreed and adds 14 (thinking off) and 15 (address not in the repository); adds criteria 253-254; rewrites 37.9 as settled / still waiting (is the address the Spark itself?); turns the R3/M5e pointers from "proposed to withdraw" into "withdrawn". Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_011NDCKtu1QcLwawbdzwmFA1
The owner said Ollama is on the Spark itself, chose thinking on by default (changing choice 14), and said the address goes in their own .env (choice 15, unchanged in substance). Because thinking is on, a reply may take a minute or more before its first visible word (by the usual arithmetic: an 18 GB model, about 15 tokens a second; to be measured). So the spec adds: a Think On/Off switch on each message, a live "Show thinking" view that is dropped when the reply ends (not stored, not sent back), a silence timeout (120 s) with a total cap (900 s) instead of a first-word timeout, a 16384 default context, and a second ask with thinking off when a structured answer fails to parse. The memory sharing with the image model is now a settled fact, not a question; the one open question is whether the studio may unload Ollama's model by itself. Adds choices 16-19, criteria 255-257, rule 18; updates 37.1, 37.2, 37.4, 37.5, 37.8, 37.9 and decision 56. The address is still nowhere in the repository. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_011NDCKtu1QcLwawbdzwmFA1
The owner decided: button and hint only. Choice 17 is now decided; 37.9 lists the settled items and leaves only choices 16, 18 and 19 (show thinking but do not keep it, silence as the main timeout, a 16384 context) for the owner's veto. Decision 56 notes it. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_011NDCKtu1QcLwawbdzwmFA1
The owner decided to show the thinking live without storing it (16) and to use a 120-second silence timeout with a 900-second cap (18). Asked what "16K context" means, so choice 19 now says in plain words what the context window is, what counts toward it, why it is 16384 and what a bigger one costs. Only choice 19 is left for the owner's veto. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_011NDCKtu1QcLwawbdzwmFA1
The owner chose 32768 over the recommended 16384, so long chats and several pictures fit without trimming. Choice 19 now says what the context window is, what counts toward it, and the price: memory on top of the 18 GB model on the same pool as Qwen-Image and Hermes. The Spark check measures it, with 16384 as the fallback. Every question in section 37 is now answered. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_011NDCKtu1QcLwawbdzwmFA1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this is
Specification only. No code changes: two files change,
docs/DESIGN.mdandREADME.md. Nothing here is built; the 1.18 build follows on a separate branch.What is specified
1.18 (
docs/DESIGN.md§35 and §36, decisions #54 and #55, acceptance criteria 185 to 220)stack_order), a Height column, an exploded stack view and a per-layer SVG route.1.19 (§37, decision #56, criteria 221 to 257)
qwen3.8:27b, on the Spark itself) through short questions with tap-to-answer chips..env, not in the repository.Every question that came up was put to the owner and answered; the decisions are recorded in the tables of §35 to §37.
Notes for review
STUDIO_MAX_INPUT_IMAGESandSTUDIO_EDIT_WARN_UNITSkeep their shipped defaults (4 and 8).Generated by Claude Code