Repository navigation
Conversation
get_task's summary and the generate-speech template description named no model beyond the Bark default, so a field agent concluded dw has no TTS but Bark and ran Kokoro locally. Name Bark, MMS/VITS and SpeechT5 with the voice control each takes in the docstring summary, the template description and the lead of TASKS.md's Speech Generation section. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
forget_workspace retires every row to a '<name> (deleted)' workspace instead of deleting unkept ones, so get_job / get_job_workflow still answer; unscoped history listings skip retired rows. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…tch x width x height Calibrated on an RTX 3090 with offload: model (15.8 GiB at 4x1344x768). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…t is unpriced Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…onse model Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ntermediate when in intermediate/ or read by a later run Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…lder role, then rule 4, in dw/roles.py Moves the fallback out of the gallery route into listed_role, the owner the map names, so the listing and the metadata route agree. Updates the roles docstring, the map row, and the role wording in the tool and API docs; regenerates the OpenAPI document. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…fusal names output:<name> for an own output Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…output_reference and references.make_ref Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… (patch-target ratchet) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…und beside the workflow, naming output:<name> validate joined the bare name onto the workflow directory, which is contained by construction, so it passed; the run's check_script reads the raw string against the server's working directory and refuses it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…that resolves nowhere, hint only for own outputs Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…5 dB of the last word, so a score bed is not a clip Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ls under their cap SURFACE_BUDGET was a ratchet raised to each measurement plus <1 token, so every docstring change paid for itself by trimming another tool's text, and at least once the trim took a pointer agents needed (#574 re-broke #282). It is now a fixed 16_000 with a stated policy: move narrative to a guide and leave a pointer before raising it. tests/test_guide_pointers.py checks that every guide pointer in the MCP instructions, tool descriptions, skills and references opens a real section, and that the tools pointing at a guide today keep their pointer. The three skills within ~100 bytes of the 12 KiB cap move situational detail into references, linked from SKILL.md with when to read them: minimax-h3 staging rules, minimax-music3 memory check, series-episodes cross-episode loudness. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…paint configuring templates/inpaint Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ole, note, starred and version for the listing and the metadata route gallery_metadata now reports starred. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…s from one (column, getter) table; parity test against the live Job Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…tion differs from the calibrated template Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ct removal; removal and outpaint stay on templates/inpaint (FLUX.1 Fill) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ory serves the same entries as a live job Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…history holds them Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…stereo spans of the vocal stem Calibrated on two-minds Always On take A (AlwaysOnStems 494d1a7469b7): chorus 1:19-1:34 windows corr -0.276..0.251, side/mid 0.609..1.682; verse 1 corr 0.656..0.969, side/mid 0.016..0.208; verse 2 0.663..0.964, 0.018..0.208. Chosen: STACK_CORRELATION_MAX 0.45, STACK_SIDE_RATIO_MIN 0.4. Intro hum (0:08-0:12) decorrelates like the chorus (corr -0.06..0.21) but sits 16.5 dB or more under the stem's level; STACK_LEVEL_BELOW_DB 14 excludes it. Flags 1:19-1:34 and 1:59-2:09 (both choruses), nothing before 1:19. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… the separate_stems path; TASKS.md names the warning Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ate_stems Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…pdate JobsPage to use it
…e and ModelsPage to use them
…st word is not clipped ab163e4 shortened the trailing voiced block to keep the #970 tail rule quiet, which ended the file 0.1 s after "echo" while still voiced, so line_clipped_at_end (#953) fired. Silence to the end of shot B satisfies both rules. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e run Builds the real H3 modular pipeline from tiny random-weight components on CPU and compares a native run with a one-segment run_chain, default and continuity guide: frames torch.equal, audio equal to the native prefix (the chain trims codec padding by design). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…080p past a 24 GB card is refused at validate Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e cap, VRAM tile mode and guide section Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…graph swap in the Rule Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…cale-clip, estimate for restore-deblur/-decompression Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…s carry 24 fps; no per-tile decoding phase - target_size_problems: the 16 px grid and 1920x1088 cap rule, shared by upscale_h3_latents' static_check (validate) and target_latent_size (run) - run_tiled_refine returns videos as FrameList(fps=24), so pair_audio and the writer play them at H3's rate rather than 8 fps - decoded_later(): a tile's denoise loop ending no longer emits 'decoding'; the one canvas decode does - guide: the 768p section names the 1920x1088 cap Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…1 frames (481 OOMs on 24 GB) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…use it; map row Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… runner
resolve_device sends 'mps' to the CPU on a machine without it, so the
test failed on Linux CI ('cpu' == 'mps') and develop's CI had been red
since at least 1075788. Use the all_backends_available fixture the
placement tests already use, so the named device reaches the command
unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…#100) Dev-only transitive dependency of jsdom (vitest's DOM), so nothing that ships was exposed. Lockfile-only: jsdom already allows ^8.11.2. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…without it 192557c let the named device reach the remover, but the image and mask tensors then went to 'mps' too, and the CI runner's torch has no mps build ('PyTorch is not linked with support for mps devices'). The test checks the device the remover is loaded on, so keep the tensors on the CPU in this test alone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ame-pair labels Job 16c15bbff9d9 (base -> up -> refine -> mux, base also feeding refine and mux) drew its skipping edges straight through the boxes between, and three labels landed on one spot. One line per producer/consumer pair now carries every argument it feeds; an edge skipping a column runs in its own lane above the boxes; ports spread along each box side; the column gap widens to the longest adjacent label; labels draw last with a halo. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rver lem's `devices` setting names cuda:0,cuda:1; with one card out the startup check refused (exit 2) and systemd's Restart=on-failure looped it. An absent entry in a list of several is now dropped with a warning and the server starts on the rest; a list with no card present, or a single absent card, still refuses. The unit stops on exit 2 (RestartPreventExitStatus) since a refused configuration cannot be fixed by restarting. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…refine-clip; skill 481 -> 401 frames Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
….5 + 64.16 B/voxel); agreement test allows a template-specific formula Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… split three oversized modules, fix review findings Ratchet: both baselines were red since 2026-10-20 with no named rise. - import_cycles 1 -> 0: validate_weight_name moves to dw/security.py and the registry reaches image_utils' processor hook by registration (register_weights_fallback), so weights.py and registry.py no longer close the locations/registry/image_utils ring; HELD_LATENTS_OUTPUT moves beside its siblings in h3_rules.py so h3_hold/h3_hold_steps stay one-way. - modules_over_size_ceiling 3 -> 0: dw/plan_downloads.py (download sources, out of plan.py 1,188 -> 869), dw/tasks/script_take.py (take side, out of script_check.py 1,141 -> 1,038), dw/pipeline_processors/ mag_calibration.py (MagCache calibration, out of components.py 1,101 -> 962). - functions_over_150_lines 1 -> 0: script_check.check split into _line_pass/_line_entry/_shot_rules phases. - complex_functions 3 -> 2: h3_rules._tile_problems split into four rule-family helpers (cc 20 -> 3). - UI: FlowView.svelte 617 -> 420 with the layout in ui/src/lib/editor/ flowLayout.ts (named functions under 60 lines / cc 10). - Baseline raised for two counts only, as the rule requires naming: modules 220 -> 226 (h3_tiles, remove_object, weights from the range plus the three splits above) and test_dw_patch_targets 309 -> 316 (the range's new task/engine tests; measured 316 before this pass). Review findings: - transformers no longer loads into the server's validate path: segment, audio_transcription, text_generation, background_remover and depth_estimator import it inside the function (module-level wrappers keep the tests' patch targets). - H3 tiled refine encodes the held soundtrack once per refine: tile 0 returns the encode and later tiles carry it (EncodedAudioReference). - The write-only `kept` job_history column and mark_kept are retired (#944 retires every row); existing databases keep the physical column. - gallery_metadata reads notes.json once (output_annotations returns run_note); _stamp_roles no longer reads notes it discards (with_run_state(note=False)). - Jobs page filters follow the hash: navigating to the bare jobs route clears them. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…e URL asked for SE-F036 could not tell a refused hop from an upstream error: a hop refused by the scheme rule read only 'Invalid URL: URL scheme not allowed: file'. _follow now wraps any hop refusal as "Refusing a redirect to '<target>' (from '<url>'): <rule>". The per-hop re-check itself was already sound and pinned; the suite's 403s were httpbin.org refusing internal targets on its own. First-hop upstream statuses are reported unchanged. Pinned on the local 127.0.0.1 redirector in test_outbound.py; SECURITY docs state the shape. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… reports; guide's keep-the-544p recipe corrected An H3 base step handed `videos` on as bare frame lists; only the tiled refine wrapped its in FrameList(24). pair_audio on previous_result: base.videos fell back to 8 fps, fit measured 124 frames as 15.5 s and padded the 5.17 s track by 10.32 s, and result.fps re-timed the picture afterwards - the guide recommended that knob, which runs too late. - dw/output_extraction.py attach_video_frame_rate (from _run_once beside attach_audio_sample_rate) rates `videos` off the pipeline's own `fps` (MiniMaxH3ModularPipeline.fps = 24); dw/media_types.py rated_videos is the one helper, used by the tiled refine too. pair_audio_with_frames carries the frames' rate onto the AudioVideo. - pair_audio's video_fps_defaulted warning and docs name the step's `fps` argument, not result.fps, as the remedy. - Guide recipe drops result.fps; TASKS and the map row updated. - Reproducer: test_modular_output_properties ...pairs_at_its_own_rate_with_ no_padding; seam pinned by test_pipeline_components::TestVideoFrameRate. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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.
Summary
develop -> master for 0.16.0: 137 commits since v0.15.0. Notes are drafted in
docs/RELEASING.mdunder 0.16.0 (paste into the release body after the tag publishes).Headlines:
refine_tiles, idea: tiled stage-2 refine for H3 (upscale, low-sigma refine in feathered tiles) - the #471 refine pass #1043/#1043 stage A: engine refine_tiles + upscaler cap 1920x1088 + guide #1048), with the held soundtrack encoded once per refine and pipeline frames carrying their rate (M-F176: guide's keep-the-544p pair_audio recipe writes a 15.5 s, 3x-slow, silence-padded intermediate #1056).remove_object(LaMa),templates/remove-objectandsegment-and-remove,models/z-image-inpaint(idea: a prompt-free object-removal task (LaMa-style) that fills a mask from the surrounding image #956, #956 stage A: the remove_object task (LaMa, prompt-free) #973, #956 stage B: removal routing docs and the remove-object templates #974, No inpaint model smaller than FLUX.1 Fill (54 GB) in the catalog; object removal unusable on lem #946).downloads_required, bound acknowledgement, observed-median estimates, calibrated LTX-2.5 and Z-Image VRAM ceilings (plan.downloads_required misses model-backed task weights (upscale, restore_faces, remove_object) #975-downloads_required misses load_components.pretrained_model_name_or_path overrides #981, validate_workflow: inherited H3 for_each estimate over-quotes ~1.8x (16.3 min quoted, 9.1 min run), every episode #1037, run_workflow 409 rebind says basis unknown / minutes null where validate_workflow quotes observed 0.1 for the same fingerprint #1038, validate_workflow: no VRAM warning for ltx2/upscale-clip at 1920x1088, run OOMs on 3090 #1050-LTX templates: calibrate vram_estimate for reference-sheet, keyframes, two-stage, refine-clip (split from #1052) #1054).stacked_vocals, limiter warnings.Verification
scripts/preflight.shon the Mac: ruff clean, 15,652 unit tests passed, 5 integration tests passed on mps, ratchet clean, UI check/lint/build, 698 unit + 109 e2e passed. One unit failure,test_download_watch.py::test_publishing_a_blob_to_the_shared_store_does_not_shrink_the_total, sampled 7 of 8 MB under full-machine load; it passes 5/5 in isolation, is untouched since v0.15.0, and was green in CI on the same code.After merge
Deploy needs a server restart (persistent worker) and a reinstall of
scripts/dw-serve.service(RestartPreventExitStatus=2).🤖 Generated with Claude Code