Skip to content

Release 0.19.0 - #1198

Open
dkackman wants to merge 114 commits into
masterfrom
develop
Open

dkackman wants to merge 114 commits into
masterfrom
develop

Conversation

@dkackman

@dkackman dkackman commented Nov 3, 2026

Copy link
Copy Markdown
Owner

Release PR for 0.19.0: develop at 15a5b2e, CI green (run 41648305927).

Notes are drafted in docs/RELEASING.md under 0.19.0; paste them into the release body after the tag publishes. The 0.18.0 draft there was never pasted into v0.18.0 either.

Review findings fixed in this PR's tail

  • guide_noise's paired encode was E(noisy) under one seed: now one encode per guide, same latents, docs corrected (#1166 stage 2: H3 fixed guide noise (guide_noise, paired encode) #1174).
  • Workspace refetch failure no longer wipes a landed listing.
  • face_drift loop shadowing, check-script compound join order.
  • Both architecture ratchets re-greened by splits (h3_anchor_stats, pipeline_h3, chain_spill, flowChain.ts, FlowSegments.svelte); modules baseline 237 -> 243.

Security: the full diff was reviewed; no findings. GHSA-x44h (latent_anchor paths) and GHSA-fc77 (stills_to_video images) are both fixed in this range; set their patched version to 0.19.0 and publish after the tag.

Before merge: scripts/preflight.sh on a GPU box (the real-model integration tests).

After merge: scripts/release.sh 0.19.0 --next 0.20.0-alpha.1, paste the notes, deploy lem and mini-ai.

🤖 Generated with Claude Code

dkackman and others added 30 commits November 1, 2026 22:16
…nsionless asset_name

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…nd Klein compile tables

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e key, not camera_move

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… images confined at validate

- The clip carries a silent mono 48 kHz track of its own length instead of
  none: assemble-and-score's world step (resample_audio on the joined cut)
  refused a video with no track (C-F645)
- 'images' is a media argument, so each entry that names a file is confined
  at validate_workflow like concat_videos' 'videos' (SE-F060)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ent or mono-duplication warning

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Ran static, dolly in, dolly out, truck left, crane up and orbit on H3,
LTX-2.5 and Kandinsky 6 at seed 42 on one fixed subject, judged each clip
by its frames, and recorded the 18 verdicts: the cinematography skill's
table, a measured column in each compile-*.md move table, and the job ids
and frame evidence in docs/proposals/audits/2026-11-higgsfield/move-trial.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Opt-in SHA-256 over the decoded samples (native dtype, interleaved,
little-endian, trimmed to the container duration) in probe_media and
_AudioAccumulator, with sample_format and frames; the gallery_metadata
route always asks for it, list_gallery and the save-time check never do.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Design record in docs/proposals/complete/cinematic-controls-complete.md
(stages #1142-#1148: what was built, deviations, bounces, the move-trial
verdicts, what was deferred) and a todo.md "Shipped" entry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…re all silent_by_design

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… chain probe

Co-Authored-By: Claude Opus 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>
… uses audio_qc's

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…exture_bands

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… docs

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
dkackman and others added 30 commits November 2, 2026 16:36
…tion, control)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e in the pacing audit

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…; C verdict reads 1 of 2 seeds

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… blocks removes the lead-in; action prose between blocks is not a pacing rule

From the stage A record (docs/proposals/audits/2026-11-h3-dialogue-pacing-probes.md,
pacing rows 1-3). check-script line in SKILL.md: pass each <d> block's contents,
never the prose between blocks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ntry

Close-out of #1180 (stages #1184, #1185). Enhancer follow-up filed as #1186.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d encode was E(noisy)

E(clean) + (E(noisy) - E(clean)) under one encode seed is E(noisy), so the
clean encode was a wasted video-VAE pass per guide per segment and the
docstrings described arithmetic the code did not do. Same latents, one
encode. Tests, guide, map row and the design record say so.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…d join checks bounds first

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…lock never imports its importer

`h3_anchor_steps` read `channel_statistics` and `match_channel_statistics`
from `h3_anchor`, which lazily imports the block in `anchor_block()`: grimp
counts the lazy edge, so the pair was an import cycle. The arithmetic now
lives in `h3_anchor_stats.py` (torch only), `h3_anchor` re-exports it and the
block imports from there - the layering `h3_mask_cells` set.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…as a Pipeline mixin

pipeline.py had grown past the 1,100-line ceiling. `_with_held_audio`,
`_with_guides`, `_with_guide_noise`, `_with_latent_anchor`, `_with_mask` and
`_check_refine`, with `latent_anchor_source`, are one group - the per-call
H3 argument checks - and now sit in `H3Arguments`, which `Pipeline` mixes in,
so `Pipeline._with_guides` and the rest are still named from there and the
log lines are unchanged.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…n_chain hands its result to _stitched

chain.py had passed the 1,100-line ceiling and run_chain the 150-line
function limit. `SegmentSpill`, `SegmentedFrames`, `SavedFrames` and the
spilled-frames replay are one group - a chain's segments on disk - and now
live in `chain_spill.py`, re-exported from `chain` where result.py,
previous_results.py and assess.py import them. The AudioVideo a chain hands
back is built by `_stitched`, taking the tail off `run_chain`.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
flow.ts was over the 600-line ceiling and chainSummary at complexity 16.
The chain group (ChainSummary, the engine defaults, the summary) is its
own module, and the summary is split into a block reader, one helper per
continuity mode, the seam label and the count, none above 10. Its tests
move with it and run against chainSummary directly; flow.test.ts keeps
the one that the node carries the summary.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
FlowView.svelte was over the 600-line ceiling. The chained step's
segment chips - the summary line, the chips, the seams and the anchor
tag, with the segment-state rule and their styles - are a child drawn in
the SVG namespace inside the node's <g>, so the DOM FlowView.test.ts
reads is unchanged. The design rule allows --live in it, as in FlowView.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
checkWorkspaceExists refetches the listing once for a name the cache
lacks. The catch wiped a listing that had landed and cleared `listed`,
so a transient failure on that refetch emptied the sidebar and the
missing name was never redirected. A failed refetch now keeps the names
and calls the name missing against them; only the first fetch failing
falls back to the default alone. The test drives applyRouteWorkspace
directly: the routers earlier tests imported still listen on hashchange
and would take the rejection.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…sembly to _assemble_loaded

load_component had passed the 150-line function limit. Registering the
block configs and reused components, pulling a modular pipeline's weights,
dropping the declared-gone blocks and inserting the MiniMax-H3 blocks is one
step - finishing a loaded component before placement - and is now
`_assemble_loaded`, in the same module, so every patch target stays put.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…e through _provenance

gallery_metadata had passed the 150-line function limit. Where a name lives
and which run made it - the asset branch with its kept provenance, the
output branch with the run manifest and listing annotations - is now
`_provenance`, in the same module; the route body is the probe and the
response.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…and chain_spill

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

# Conflicts:
#	docs/ARCHITECTURE.md
Three shipped with #1173/#1174/#1160 (h3_anchor, h3_anchor_steps,
texture_bands) and three are the release-prep splits that cleared the
size, length and cycle ratchets (h3_anchor_stats, pipeline_h3,
chain_spill). Every other metric is at or under its baseline.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…tch fix

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant