Commit Graph
47 Commits
Author SHA1 Message Date
Benjiyaya 59188a5b00 refactor: remove FirstMotion/NextMotion latent chain 2026-08-29 03:34:41 +08:00
Benjiyaya 4d1d38a542 fix: space stacked panels on settings tabs 2026-08-29 01:37:56 +08:00
Benjiyaya 5673914d61 chore: drop obsolete electron entries from root gitignore 2026-08-29 01:37:56 +08:00
Benjiyaya b87888f82b docs: changelog 2026-08-29, README updates, sub-folder gitignores 2026-08-29 01:37:56 +08:00
Benjiyaya aa30055e7a feat: report export fps in progress and thread voted rate 2026-08-29 01:14:20 +08:00
Benjiyaya 97d275d390 feat: export conforms to clip majority fps 2026-08-29 01:10:34 +08:00
Benjiyaya 10dacd840a feat: parse clip fps and vote export target rate 2026-08-29 01:03:25 +08:00
Benjiyaya acc1952e78 feat: model-per-agent picker in Settings agent tab 2026-08-29 00:54:09 +08:00
Benjiyaya 1d38f45ee5 feat: resolve agent LLM per role at client construction 2026-08-29 00:49:46 +08:00
Benjiyaya 290bc0dd74 feat: accept agent_llm_assignments in settings API 2026-08-29 00:31:05 +08:00
Benjiyaya 4943079cca feat: store per-agent LLM role assignments in config 2026-08-29 00:23:41 +08:00
Benjiyaya 22658f6147 Merge PR 25 locally for testing 2026-08-27 11:50:18 +08:00
BenjiandGitHub 75028b3e7c Merge pull request #26 from stefanljosbra/main
Upload button on Assets and multiple LLM endpoints in Settings
2026-08-27 10:56:00 +08:00
Stefán Einarsson af9ee8d00e Revert unwanted changes in README file 2026-08-26 21:30:40 +02:00
Justo Stoll 8bc3659bf2 Paint a first frame in clip previews: '#t=0.1' media fragments
With preload="metadata" browsers paint NOTHING until playback, so the Video
tab's hero monitor and every filmstrip thumbnail sat black — clips looked
missing while their audio played fine ('no picture, but sound'). The media
fragment makes the browser seek and paint the frame at 0.1 s without playing.
Verified in-browser: fresh load paints hero + all thumbnails; selecting a
scene paints its first frame immediately.

(cherry picked from commit a81280b1543b9f6aa913be8373f0a390d3db5871)
2026-08-26 21:24:57 +02:00
Justo Stoll fb7c2204d4 Name the exception type in sub-agent failure messages; keep the traceback
Some exceptions stringify EMPTY (httpx.ReadTimeout/ReadError, TimeoutError):
a sub-agent killed mid-stream by a backend restart reported 'Sub-agent
failed: ' with nothing after the colon, and no traceback was logged anywhere
(observed live 2026-08-25). The handler now logger.exception()s and formats
'Type: message' (or bare 'Type' when the message is empty).

(cherry picked from commit ff138a9a01a93714dc6d8d2bce3ee57ace03647d)
2026-08-26 21:24:57 +02:00
Justo Stoll 1ec5348f42 Gate generate-story/script append mode; add beat CRUD tools
The destructive guard only gated replace=true — an unconfirmed
generate_story(replace=false) on a non-empty project silently APPENDED a
duplicate 25-beat set (25 -> 50, observed live 2026-08-25), and the guard's
own message recommended exactly that escape. Both modes are now gated on a
non-empty project with mode-specific messages that point at the granular
tools; 'append' joins the confirmation cues.

And the granular tools now exist for beats: add_beat (insert-with-shift, or
append when order_index omitted), update_beat (project-scoped id check),
delete_beat (destructive-flagged; later beats renumber to close the gap) —
before this, bulk regeneration was the only way to change a beat, which is
what boxed the story sub-agent into the append in the first place. The story
role's allowlist gains all three.

(cherry picked from commit 14ca52f5c02d1e8dd52e0f58e5fd0b8593816c9b)
2026-08-26 21:24:57 +02:00
Justo Stoll dfb82264bf get_workspace sections + teaching truncation note + assets-role editors
On a large project (43 scenes with full action paragraphs) get_workspace
serializes past the 4000-char tool-result cap, so the tail-chop landed
mid-beats and characters/locations/items were ALWAYS below the waterline —
observed live: an assets sub-agent re-called get_workspace in a loop, blind
to the sections it needed, with no editor tools in its allowlist anyway.

- get_workspace gains sections=[beats|characters|locations|items|scenes];
  project + stats always included; omitted sections listed; invalid sections
  error names the valid set; no-arg call unchanged (back-compat).
- All three truncation sites share TRUNCATE_NOTE, which names the way out
  (sections=[...], scoped tools) instead of a bare '[truncated]'.
- The assets role gains update_character / update_location / update_item
  (deletes deliberately excluded).

(cherry picked from commit 9460b6c2e398bad5403ff73e4e8e7d2a96478821)
2026-08-26 21:24:57 +02:00
Justo Stoll d8fe088ce4 Add unlink_project: the way out of the linked-session one-way door
Once a session linked to a project, the agent could neither create a fresh
project (create_project is sandbox-only) nor switch (link_project is
sandbox-only) — and no unlink existed. Observed live: a linked agent burned
three failed tool calls and ~7 minutes of reasoning discovering the box, then
overwrote the linked project as its only option.

unlink_project (linked-only) clears the session binding and nothing else; the
blind_only rejection message now points to it, so the model recovers in one
step; link_project's description documents the switch path.

(cherry picked from commit f4fc7cde6461529177563d58383c5c50287026e1)
2026-08-26 21:24:57 +02:00
Stefán Einarsson d44e0302dc Test for multiple LLM profiles 2026-08-25 22:48:40 +02:00
Stefán Einarsson 4e480f6195 Add a button on Assets to upload or replace an image 2026-08-25 22:46:46 +02:00
stefanljosbraandGitHub 9a28a6d679 Update README.md
add special section to the extension
2026-08-25 21:32:31 +02:00
Stefán Einarsson 34487703b4 Allow multiple LLM endpoints in Settings and pick which one is active. 2026-08-25 21:13:13 +02:00
Benjiyaya cfc13f4aee Stop offering a Windows zip while Create Project 404s.
The packaged FastAPI static mount returned JSON 404 for /project/{id}. Serve the SvelteKit fallback page for client routes, and point README at source until a zip is trustworthy.
2026-08-25 20:12:08 +08:00
BenjiandGitHub 0e0ee540e0 Remove Windows EXE installation section
Removed Windows installation instructions from README.
2026-08-25 20:03:46 +08:00
BenjiandGitHub 337bb7d6fe Merge pull request #21 from justostoll/feat/stream-internal-llm-client
Stream-internal LLMClient: extend the 1.2.1 Agent-loop fix to every LLM caller
2026-08-25 05:09:41 +08:00
Justo Stoll ffc1424566 Stream-internal LLMClient: chat()/chat_with_tools() consume chat_stream
Extends the 1.2.1 Agent-loop fix to every LLM caller: with completions
streamed internally, the 120 s httpx timeout bounds the gap BETWEEN chunks
(liveness) instead of total generation time, so a thinking model that
streams reasoning_content can legitimately work past 120 s while a dead
server still fails fast. chat_stream gains response_format= with an
in-stream HTTP-400 drop-ladder (response_format first, then tools); servers
that reject stream:true entirely fall back to one plain blocking POST.
A reasoning-only stream (zero content accumulated) raises ValueError so
generate_structured's json_object retry fires instead of returning blank.
2026-08-24 07:05:35 +02:00
Benjiyaya 7f2c6dce66 Bump version to 1.2.1 for the Windows zip release. 2026-08-24 04:33:27 +08:00
Benjiyaya 71bed77095 Add tabbed video ref picker, stricter agent HITL, and item attach.
Playground creates a new misc. item instead of overwriting one; item generate jobs persist the image path. Notes in docs/changelogs/2026-08-23.md.
2026-08-24 04:29:49 +08:00
BenjiandGitHub e87a7d3180 Replace old screenshots with updated ones
Updated images in README with new screenshots.
2026-08-24 04:14:40 +08:00
BenjiandGitHub 9a7ec6b8d5 Merge pull request #14 from justostoll/feat/generate-all-batch
Video tab: "Generate all" button to queue every scene's clip in sequence
2026-08-23 15:54:45 +08:00
BenjiandGitHub 23c9c50242 Update README with more screenshots
Added additional images to enhance the README.
2026-08-23 15:46:49 +08:00
BenjiandGitHub 6cf6d3e028 Remove outdated screenshot from README
Removed an outdated screenshot from the README.
2026-08-23 15:40:25 +08:00
BenjiyayaandCursor b587c56ce3 Keep Agents welcome chips on a newly created session.
Empty chats still offer Create a film, Draft a storyline, and Write a script.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-23 15:39:20 +08:00
BenjiyayaandCursor d79c9f4aba Merge origin/main: keep chain-from-prev-clip with H3 motion context
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-23 15:32:33 +08:00
BenjiyayaandCursor a1e329c9ef Calliope 1.2.0: agents, misc items, motion context, and queue timeout
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-23 15:29:44 +08:00
BenjiandGitHub 97192592cc Merge pull request #15 from justostoll/feat/chain-from-prev-clip
Script tab: per-scene "Chain from prev clip" toggle — start a clip from the previous scene's last frame
2026-08-23 15:20:25 +08:00
Justo StollandClaude Fable 5 d243e0a1ab Video tab: Generate-all button to queue every scene's clip in sequence
Queues clips one POST at a time in timeline order rather than a single
all-scenes request: the H3 prompt rewrite runs synchronously inside each
generate-videos request (~1-3 min per scene on local models), so one bulk
request for a long timeline would sit for many minutes and risk a client
timeout. The label is state-aware - 'Generate all (n)' targets only scenes
without a clip (skipping done and in-flight scenes), flipping to 'Regenerate
all' when the timeline is complete. A scene that fails to queue toasts and
the loop continues. Rendering itself stays serialized by the queue worker.

Workflow resolution matches the per-scene Generate button (session pick ->
scene's stored workflow -> first enabled video workflow), which also heals
scenes whose stored workflow was deleted - without it they enqueue a job
doomed to 'No workflow found for job'.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-23 00:39:37 +02:00
Justo StollandClaude Fable 5 882a345caf Script tab: per-scene 'Chain from prev clip' toggle - start a clip from the previous scene's last frame
Adds scenes.chain_from_prev (additive migration, same pattern as the existing
ones) with a toggle chip on every Script-tab scene card except the first.

The frame is resolved at JOB RUN time, not enqueue time: when queueing a whole
timeline the previous scene has not rendered yet at enqueue, but the worker is
sequential, so by the time scene N runs the clip for N-1 exists. The worker
finds the nearest earlier scene with a clip, extracts its last frame (ffmpeg,
already a runtime dependency for export), and swaps it into whichever ref slot
held the location image - located by value match against the enqueue-time
location path, so it works for any workflow layout (generic ref slots or
role-tagged), with the location-role node as fallback. No previous clip or a
failed extraction falls back to the scene's own refs with an event-bus notice,
never a hard failure.

On reference-style video workflows this yields scene-to-scene continuity (the
frame acts as the scene reference); on workflows with a pinned first-image
slot it opens frame-exact.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-23 00:39:37 +02:00
BenjiandGitHub 931edde012 Update README.md 2026-08-20 16:22:37 +08:00
BenjiyayaandCursor 152234ac9b Fix LM Studio JSON mode failure and malformed LLM JSON parsing (v1.1.1)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 01:09:22 +08:00
BenjiyayaandCursor 210e8998b8 Add MIT license and link it from README
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 00:21:38 +08:00
BenjiandGitHub 5377a8cef7 Clean up FUNDING.yml by removing comments
Removed commented-out funding model platforms.
2026-08-19 05:46:14 +08:00
BenjiandGitHub 18256c1064 Update funding configuration with Patreon username
Added Patreon username for funding support.
2026-08-19 05:45:31 +08:00
BenjiandGitHub eeab98abf5 Update README with images and Windows installation guide
Added images and installation instructions for Windows.
2026-08-19 04:09:36 +08:00
Benjiyaya 170dc0695d Calliope 1.1.0: publish backend, web, and example workflows 2026-08-19 03:53:29 +08:00
Benjiyaya 83784ff4dc Calliope 1.0 2026-07-28 05:29:46 +08:00