Every move, logged

Changelog.

Follows Keep a Changelog and SemVer. The raw file lives in CHANGELOG.md.

0.28.0 2026-08-08

Added

  • Proof branches by default. branch save --rationale snapshots a small candidate with a durable, project-bound, byte-verified proof bundle; ambitious release requires 2–3 content-distinct proofs, exact expansion lineage, and only one approved winner. Concurrent same-name publication is compare-and-swap safe, and restores retain proof-time CLI overrides.
  • Pilot visibility gate. shots --motion --proof fails when sampled evidence is predominantly near-black or absent.
  • Real creativity A/B. Eight same-model pilots compare with/without Narova guidance; the documented result is honest about conceptual convergence.

Changed

  • Genuinely raw canvas. Both bundled renderers no longer reserve or constrain the zero-style frame; safeLayout restores guardrails explicitly, and restored pre-0.28 projects retain historical geometry.
  • Medium-neutral intent. The creative brief leads with intended effect, representation, temporal behavior, evidence, and rejection criteria. Camera/depth/light are conditional.
0.27.0 2026-08-08

Added

  • Creative confidence loop. New projects scaffold competing directions, a visual contract, beat map, three-shot pilot gate, and rejection criteria in creative-brief.md.
  • Beat-level visual review. narova shots --beats samples the arrival and resolved state of narration groups, both sides of markers, and useful coverage for silent scenes.

Changed

  • Fail-before-render release gate. build --release preflights before synthesis, then rechecks measured timing before compose/render, and requires an approved brief for non-trivial productions.
  • Camera-aware cinematic critique. Persistent raw Three.js worlds are assessed by their internal directed camera cuts and moves, not just their top-level scene count.

Fixed

  • Duration provenance. Creative gating distinguishes fallback and authored runtime, then trusts measurements only with a scene-topology-aware timing fingerprint.
  • Complete variant preflight. Base and selected/all variants are checked before any release write begins.
  • Raw 3D shot accounting. Helper, direct timeline, inline callback, and named callback cuts combine without double counting implementations.
0.26.1 2026-08-07

Fixed

  • HF selective-render timing (pixel-verified). Isolated per-scene renders of a non-first scene now match a clean full render at the decoded-frame level (new equivalence test). The scene's Three.js canvas now animates, marker-triggered elements appear, karaoke overlays show, and turn cues fire on time — global-to-local rebasing was incomplete before.
  • captions:false invalidation. Toggling the caption band now changes the render-cache key, so captioned pixels can no longer be served for a captions-off build.
  • scene.cssFile now applies. It was accepted by the schema but silently ignored; now merged into the stylesheet and hashed.
  • Branch restore round-trips. Scene file refs and imports restore at their original project-relative paths; the saver uses Narova's real ESM/CJS config loader, not a regex parser.
  • LRU retention bounds the count. Cache pruning no longer leaves the cache over budget when kept spans are the oldest entries.
  • Subtitle preset is genuinely neutral. No speaker colors, no glow, no equalizer/label by default; karaoke/slam/pop/rise keep the richer look.
  • Manifest theme defaults agree with runtime. Legacy teal/navy defaults removed in favor of the v0.26 monochrome palette.

Changed

  • Selective-render safety gate. Projects with project-global behavior (choreography, .js imports) transparently take a whole-video render for HyperFrames, with a stated reason, instead of attempting an unsafe isolate. no-browser is unaffected.
  • Docs. Product position is "deterministic scene-scripted video with exceptionally strong narration synchronization, but narration is optional"; the fixed male/female duet casting prescription was removed.
0.26.0 2026-08-07

Changed

  • Chrome off by default. Topbar, counter, and progress bar are off unless explicitly enabled. The absence of chrome is now the baseline.
  • Neutral default palette. Monochrome gray base replaces the navy/teal identity. Light mode is similarly neutral. Narova no longer has an accidental house style.
  • Subtitles as default captions. Plain text timed to speech — no per-word color highlights or animation by default. Karaoke, slam, pop, rise remain available as explicit presets.
  • Skill instructions de-anchored. Concept branching uses orthogonal creative dimensions instead of fixed archetypes. Craft rules ("hook in first 2s," "one idea per video," mandatory CTA) moved to optional narova critique profiles.

Fixed

  • HF selective-render equivalence. Transitions, markers, choreography, overlays, and chrome now render identically in per-scene and full renders.
  • Cache dependency model. All global render inputs (markers, patterns, chrome, theme, captions, series) now correctly invalidate cached spans.
  • Complete branch snapshots. Scene file references, imports, and generated-media specs preserved in releases.
  • Bounded cache retention. LRU pruning keeps recent creative alternatives around instead of deleting them immediately.
0.25.0 2026-08-07

Added

  • Per-scene HyperFrames render cache. HyperFrames now renders each scene as its own independent project — same per-scene caching architecture no-browser has had. Only changed scenes re-render; the rest reuse cached spans via ffmpeg concat. "Try five versions of scene 4" is cheap on both renderers.
  • Named time markers. config.markers = { reveal: 2.5 } creates author-defined time anchors. Use data-cue="marker:reveal" or at: { marker: "reveal" }. Decouples timing from narration turns.
  • Creative branch system. narova branch set|list|show with rationale, status, and parentage metadata.
  • LLM creativity benchmark framework. 10 adversarial briefs + diversity scorer. Fixture-based CI; LLM-adapter substitution for real evaluation.
  • narova critique command. Opt-in craft heuristics by profile: social-short, explainer, presentation, accessibility, or all.

Changed

  • Zero-style defaults. patterns: false by default. No decorative grid. Craft checks separated from correctness.
  • Better error messages. No-browser and schema errors point to available escape hatches.
0.24.0 2026-08-07

Added

  • Scene-level render cachenarova build reuses previously rendered output instead of re-rendering the whole video every time. Each rendered span is keyed on a hash of its scene content, measured word/turn timings, and the shared render context (theme, format, fps, quality, voices, assets, choreography), so a span is reused only when reproducing it would yield perceptually-identical pixels. no-browser gets full per-scene caching (only changed scenes re-render, concatenated with the single full audio track); hyperframes gets whole-video caching (reuses the MP4 when nothing changed). Missing, empty, or wrong-duration spans are re-rendered; any cache failure falls back to a full render — caching can never fail a build. --reuse (TTS) is a separate, unaffected layer.
  • Per-scene sceneHash covers author JS — the manifest's per-scene hash now includes choreographyFile, scriptFile, and threeModule contents (matching the check determinism scan), so editing one of those files invalidates only that scene's cached span.

Changed

  • HyperFrames engine pinned to 0.7.96 (was 0.7.64).
  • build --plan shows the cache reuse decision — the same per-scene plan the real build uses, so change scope is legible before any work runs.
0.22.0 2026-08-07

Added

  • scene.threeModule — the raw Three.js / WebGL escape hatch beneath declarative scene.three. A project-relative JS file inlined into the deterministic 3D bootstrap with THREE, scene, camera, renderer, tl (GSAP timeline), seed, size, duration, assets(), onRender(), and narova helpers in scope. Custom shaders, procedural geometry, post-processing, and particle systems now have a deterministic home — the largest creative-ceiling lift in the release.
  • Generated-media provenancenarova generate writes a .gen.json spec sidecar next to every clip (provider, model, prompt, params, artifact hash). --regenerate <mp4> re-runs a shot from its spec; --model / --size / --duration capture or override. Generated clips are now editable creative source, not opaque output.
  • build --plan — print what a revision will rebuild (per-scene scope) before doing the work. Advisory only; never changes behavior. Reduces fear of disturbing approved scenes.
  • Determinism scan covers all author JS — per-scene choreographyFile, scriptFile, and threeModule are now linted for wall-clock / random / rAF / setTimeout / fetch hazards (previously only project choreography was scanned).

Changed

  • Real correctness category in check — the correctness: warning prefix is wired to genuine determinism / reproducibility issues (e.g. infinite CSS animation). Previously the helper existed but no rule used it, so correctness and quality were indistinguishable.
  • Honest 3D escape-hatch docs — removed the false "component-custom escape hatch" claim (no such mechanism existed). The real hatch is scene.threeModule, documented in full.
0.21.0 2026-08-07

Added

  • captions: false — disable the visual caption band entirely. Caption DOM, CSS padding, and presets are cleanly omitted. SRT/VTT sidecars always export.
  • config.patterns — control built-in layout classes. Defaults to true for backward compat. Set patterns: false to define your own visual language.
  • scene.scriptFile — per-scene raw JavaScript escape hatch for Three.js/WebGL/canvas. Inlined into scene animation context with timeline, DOM, and Three.js globals in scope. Same determinism contract as project choreography.
  • Per-scene content hashes — every scene carries a hash field in the manifest. narova plan shows per-scene hash diffs. Foundation for scene-level render caching.

Changed

  • Layout patterns separated from production CSS — 30+ built-in layout classes extracted to opt-in patternsCss(). Default CSS is now neutral infrastructure only: background, chrome, captions, walkthrough, marks, typography. A blank project is a canvas.
  • Default background neutralized — removed accent/pink/gold radial gradient glow blobs. Default is flat var(--stage) with subtle grid.
  • Default scaffold neutralizedinit uses plain inline styles, not layout classes. Documents captions, chrome, and patterns options.
  • Hook/CTA enforcement is context-aware — skipped for silent projects and captions: false. Warnings tagged craft: vs correctness:.

Fixed

  • Documentation honestyscene.three documented as declarative (not "unlimited"). Creative-diversity eval reframed as schema conformance test.
  • Removed .grad / .hairline from default CSS.
0.20.0 2026-08-07

Fixed

  • Theme token preservation — custom theme tokens (stage, deep, halo, colw, user-defined) now survive the full manifest round-trip. Previously only accent and bg were preserved.
  • Measured cue timing for 3D{ at: { cue: N } } now resolves to actual measured turn start times from timings.json, not cue * 2.
  • Semantic action validationdraw/speak/react/follow/transform now fail validation with clear errors. Supported: appear, disappear, move, rotate, scale, orbit, revolve.
  • Deterministic particle randomness — mulberry32 seeded PRNG replaces Math.random() in particle generation. Same scene + object identity → identical layouts across builds.
  • data-grow / data-mark highlight — transformOrigin is now pre-seeded via tl.set() before tween, avoiding the HyperFrames sub-composition timeline breakage.
  • GSAP vendored locally — GSAP 3.14.2 ships in vendor/gsap/. Generated compositions have zero CDN dependencies at render time.
  • Release restore + --reuse — releases now save fingerprint and timings so --reuse works after restore.
  • Version consistency — all 7 version sources (root pkg, tool pkg, SKILL.md, README, SPEC.md, CLI, docs) now fail CI when they drift.

Added

  • Creative modularity — 6 file-reference types per scene (bodyFile, cssFile, choreographyFile, threeFile, elementsFile, visualFile). config.imports for reusable project-level modules. All file contents hashed for deterministic build invalidation.
  • Expanded variant model — kind tags (hook, visual, narration, pacing, captions), sceneOverrides, theme/captions/timing overrides per variant. Backward-compatible.
  • Concept branching — SKILL.md encourages sketching 2-3 distinct creative directions before committing to the final project.
  • Creative-diversity eval suite — 10 radically different briefs, 11 convergence metrics, human review checklist. Run via node skills/narova/tool/evals/creative-diversity-eval.js.
  • 476 tests pass (470 unit + 6 eval) — revision guarantee tests, planner accuracy tests, version consistency CI test.

Changed

  • Skill restructured into hard invariants, optional craft heuristics, and creative mandate — encouraging custom HTML/CSS/SVG/Three.js over built-in templates.
  • Project scaffold is now neutral — one narrator, no default palette, replace-everything design.
0.19.0 2026-08-06

Added

  • 3D visual system — declarative scene.three and scene.elements for cameras, lights, primitives, models, GSAP-driven animations, and tone-mapped output (ACES filmic default). Three.js upgraded from the deprecated r149 UMD to r185 ESM (esbuild-bundled global script with GLTFLoader included).
  • Character abstraction — built-in presets (cat, mouse, robot) compile to THREE.Group assemblies of relative parts. One line per character; config.characters for custom ones. Group-level actions (move, rotate, appear) cascade to all descendants.
  • InstancedMesh + geo/material cacheinstances: [...] renders N copies in one draw call; identical primitives share buffers and programs.
  • narova generate — AI clip generation via Sora/Runway APIs, downloaded to assets/ for use as scene.clip.
  • canvas3d/model3d node types in the portable visual tree.
  • Choreography hook — optional project-level choreography: "choreo.js" file with custom GSAP timeline code inlined into the composition. tl, DATA, gsap, and cueTime in scope; turn-anchored tweens are exactly as seek-safe as the built-in vocabulary. check lints for determinism (warns on Date, Math.random, rAF, setTimeout, fetch).

Changed

  • Current correction: the non-rendering canvas3d/model3d placeholders were retired; use the fully managed scene.three or raw scene.threeModule surfaces.
  • Three.js upgraded from r149 UMD to r185 ESM — the old UMD was deprecated after r149 and removed at r161. Shipped as a global script opaque to HyperFrames' compiler.
  • Tone mapping now configurable (aces, agx, neutral, linear) at scene.three.toneMapping; ACES filmic is the default for video.

Fixed

  • Group/character appear/disappear no longer targets .material on a THREE.Group (the old code silently killed the scene).
  • Material-cache opacity bleed: tweening one mesh's opacity no longer fades every same-colored sibling.
  • Animation from values honored via tl.fromTo instead of dropped.
  • Boot poll bounded to 200 retries + error surface instead of polling forever.
  • GLTF models load deterministically via prefetch + parseAsync, gated before frame 0.
0.17.0 2026-08-03

Added

  • Two free local renderers — HyperFrames keeps the complete browser/HTML/CSS surface; Narova No-Browser adds deterministic browserless Skia + FFmpeg rendering.
  • Portable visual trees — stacks, groups, type, shapes, paths, raster/SVG assets, local fonts, RTL text, full-frame video, keyframes, transitions, captions, and snapshots work without a browser.
  • Renderer CLI — choose with --renderer hyperframes|no-browser, then inspect capabilities and requirements with narova renderers list|doctor.
  • Complex no-browser eval — a real four-scene production proof covers custom narration, audio processing/mixing, product playback, multilingual visuals, cartoon motion, captions, snapshots, and MP4 validation.

Changed

  • Renderer identity and scene.visual now survive config, manifests, variants, builds, deliverables, preview, checks, and QA. HTML-only scenes fail clearly under no-browser instead of degrading silently.
  • Custom narrator word timings now feed SRT/VTT and both renderers through one normalized timing contract.

Fixed

  • Current FFmpeg voice compression parameters, raster/video RGBA transfer, mixed external narration selection, and long caption wrapping.
0.16.0 2026-08-03

Added

  • Optional OpenAI companion — a dependency-free Speech API worker with environment-only authentication, direct validated WAV output, and the generic narova-tts-provider/v1 protocol.
  • Current speech controls — steerable gpt-4o-mini-tts by default, the latest fixed snapshot, legacy speed/quality models, 13 built-in voices, existing custom voice IDs, delivery instructions, speed, and multilingual guidance.
  • Full provider tests — model and option validation, credentials, request mapping, voice listing, output safety, and no-retry billing behavior are part of npm test.

Changed

  • README, specification, skill guidance, CLI reference, and landing page now present OpenAI and ElevenLabs as peer optional providers while Narova stays local-first.

Security

  • .env.local is ignored; credentials never enter project configuration, cache identity, protocol output, or generated artifacts.
0.15.0 2026-08-01

Changed

  • Skill context re-engineered — SKILL.md reduced from 339 to 127 lines (−62%) based on Anthropic's context engineering best practices for Claude 5 models. Overly prescriptive intake scripts, redundant hard rules, and example dialogues replaced by progressive disclosure through the existing references/ files.
  • Ten hard rules → four key gotchas — only genuinely non-inferrable rendering details remain upfront (no looping CSS, SVG namespacing, output hygiene, sourcing vs. balance). Discoverable rules (voice defaults, narrator counts, theme mode conventions) now live in reference docs.
  • Workflow compressed — eight detailed step sections condensed to a numbered one-line-per-step list with file-pointer references.

Added

  • AGENTS.md — lightweight repo-level project guidance (CLAUDE.md symlinks to it). Six gotchas specific to the narova project.
0.14.0 2026-08-01

Added

  • External narrationconfig.narration.file lets you use pre-recorded audio instead of TTS. No voices or TTS backend needed.
  • External karaoke captionsnarration.wordTimings accepts a JSON file of word-timed cues. Narova injects word-level karaoke overlays into every scene at compose time — the spoken word highlights in gold with no caption HTML in your scene bodies.
  • Auto bed/SFX mixing for external narration — when bed or sfx are configured alongside narration.file, narova mixes them with the external audio using ffmpeg. No TTS venv needed.
  • Voice processing for external narrationnarration.process with optional highpass, lowpass, compressor, and loudness settings.
  • narova karaoke generate — transcribe an audio file to word-timed karaoke JSON + SRT using faster-whisper or whisper-cpp. --transcript maps a clean transcript onto Whisper timings.
  • narova retime — auto-derive scene durations from word timing data. --apply rewrites the config in-place.
  • WhatsApp export presetwhatsapp-compressed: 540×960, rate-controlled H.264 encode under 16 MB for messaging apps.
  • Port auto-detection for previewnarova preview finds the next available port instead of silently failing on conflicts.

Changed

  • narova check now reports "external" backend (not "silent") when config.narration is set, and estimates duration from explicit scene dur values.
  • narova check detects HyperFrames-reserved class names used as CSS selectors in theme.css — previously only checked HTML class attributes.
  • Hook checks (lead-in silence, on-screen text warnings) are skipped when using external narration.
0.13.0 2026-07-30

Added

  • Real product walkthroughs — narration-timed semantic clicks, typing, waits, scrolling, evidence screenshots, and agent-readable exploration through optional agent-browser sessions.
  • Generated browser-window and full-bleed layouts retain Narova voiceover, word-synced captions, overlays, and platform exports.
  • Content-addressed capture manifests track action drift, media metadata, and config/synthesis/timing/media/evidence hashes; incomplete or stale takes fail composition and release checks.
  • A real browser-to-MP4 eval validates interactive capture, 1280×720 output, retained audio, and black-frame safety.
  • An 83-second narrated showcase demonstrates project creation, configuration, search, task assignment, automation, and teammate invitation in one 24-operation browser take.

Changed

  • narova plan now models capture as its own stage, recapturing only when actions or narration timing change.
  • Walkthrough renders use lossless PNG frame extraction so product text stays sharp.
  • The isolated walkthrough cursor is reinstalled in agent-browser's fresh recording context, and semantic clicks emit a short expanding ripple that fades and is removed after each click.

Security

  • Capture is always explicit; builds never replay browser actions. Typed values and URL queries are redacted, while embedded URL credentials are rejected and stripped defensively.
0.12.0 2026-07-29

Added

  • External TTS provider protocol — explicitly registered executable workers speak versioned narova-tts-provider/v1 JSON Lines without placing provider code in Narova core.
  • narova providers add|list|doctor|remove plus generic external voice listing through narova voices list --backend <provider>.
  • Optional ElevenLabs companion skill — isolated HTTP worker, environment-only API key, voice IDs, provider options, WAV conversion, and mocked tests with no paid calls.
  • Provider protocol/version/options are included deterministically in audio fingerprints and sentence-cache identity.
  • Urdu sentence punctuation — native full stops (۔) and question marks (؟) now split speech and timing groups consistently in Python synthesis and Node manifest processing.
  • Urdu voice direction — Narova’s skill instructions now delegate meaningful Urdu dialogue polishing to the optional urdu-voice-director skill while keeping caption text free of provider-specific performance tags.

Changed

  • Narova remains local-first: Piper is still the default, and external workers run only after explicit registration.
  • The website now covers the current provider architecture, planning and release workflow, export profiles, Urdu-aware dialogue, and accessibility improvements.
0.11.0 2026-07-29

Added

  • Clear URL-to-video boundary: agents interpret sources and write the story; narova ingest performs the mechanical HTML, image, and screenshot pass.
  • Complete CLI documentation for --deliverables and --safe-area-guides.

Changed

  • Export behavior now documents scale-and-pad limitations, canonical platform presets, and when HyperFrames receives an explicit resolution.
0.10.0 2026-07-29

Added

  • narova check --strict verifies detected claims against claims.md; check --release fails builds with remote dependencies, missing evidence, unsupported markup, or empty frames.
  • Voice-less silent projects, claims-ledger table parsing, and YouTube as a first-class platform.

Fixed

  • Release asset gating, visual-content detection, platform duration behavior, and Pexels authentication documentation.
0.9.0 2026-07-28

Added

  • Complete audio fingerprints for safe --reuse, asset-content hashing, and five-stage rebuild planning.
  • Manifest-first pipeline, canonical export preset registry, YouTube profiles, named project release snapshots, and exact preset dimensions.

Changed

  • Portable manifest paths and authoring-only safe-area guides keep projects reproducible without leaking machine-local paths.
0.8.3 2026-07-28

Added

  • Render-path CSS compatibility lint, automatic looping for short b-roll clips, and long-video wipe warnings.

Fixed

  • Built-in b-roll styling and WebM looping now stay on HyperFrames’ fast, compatible render path.
0.8.2 2026-07-28

Changed

  • timeline.json became the canonical manifest.json.

Added

  • Content hashes, narova plan, and named manifest releases under ~/.narova/releases/.
0.8.1 2026-07-28

Added

  • Comprehensive YouTube, TikTok, Reels, Shorts, LinkedIn, X, and Narova-standard export profiles with ffmpeg encoding, loudness targets, safe-area metadata, and thumbnails.
0.8.0 2026-07-28

Added

  • Versioned timeline IRnarova compile produces out/timeline.json (schema v1.0), a self-contained JSON document with project metadata, format, voices, scenes, assets, deliverables, and variants. Auto-written by synth/compose/build and enriched with word timings post-synthesis.
  • Timeline validation: narova key required, schema version compatibility enforced, structural integrity checks.
  • mergeTimings with correct sentence-to-turn distribution and no double-offset on turn start times.
  • Full asset tree walk for timeline inventory.
  • 31 unit tests for compilation, validation, merge, and round-trip.

Changed

  • Variants now carry full scene definitions (body, VO, transition) in the timeline.
  • SPEC.md updated with timeline IR documentation section.
0.7.11 2026-07-28

Added

  • XTTS language support — per-turn and per-voice lang now flows through to coqui-tts against 17 supported languages.
  • Release automation: scripts/sync-version.js keeps all version surfaces in sync.

Changed

  • Documentation remediation: narrowed "any URL", restructured frontmatter, qualified platform/offline claims, read-only update check.

Fixed

  • Version drift across five surfaces.
0.7.10 2026-07-28

Added

  • npx retry with exponential backoff for DNS failures.
  • Stock assets reference documentation.

Changed

  • Doctor command now reports mismatched tool versions and venv health.
0.7.0 2026-07-26

Added

  • Music bed + spot SFXmusic: {file, volume, fadeIn, fadeOut} and sfx: [{file, scene, at, volume}] mixed into narration via ffmpeg. Music changes don't require re-synthesis.
  • Caption style presets + keyword emphasiscaptions: {preset: karaoke|slam|pop|rise, emphasis: [...]}.
  • Per-platform size presets + duration-band lintplatform: tiktok|reels|shorts|linkedin|x picks frame size and duration-band lint. SRT + WebVTT sidecars.
  • Forced word alignmentalign: true | {engine}. Measured word timings replace estimates; per-scene graceful fallback.
  • Chatterbox v3 — multilingual voice cloning with per-voice lang, watermarked output.
  • Scene transitions + hand-drawn annotationstransition: fade|wipe|slide|zoom; data-mark="underline|circle|box|highlight".
  • Hook-variant generationvariants: [{id, scene}]; narova build --variant <id> renders A/B hook tests.
  • narova ingest <url> — fetches page, downloads images, takes headless screenshot, appends sources.md, seeds claims.md.
  • Hook enforcement in narova check — warns on lead-in silence >200ms, scene 1 missing visible text, missing saveable end-card.
  • B‑roll per sceneclip: "assets/bg.mp4" on any scene plays a looped video behind the HTML overlay.
  • Series/multi‑part modeseries: {part, total} adds a “Part 2 / 5” badge overlay for multi-episode scripts.
  • Voice sample managementnarova voice sample add/list/remove for chatterbox clone samples.
  • Interactive landing page (this site) and changelog subpage.
  • Demo GIF, CHANGELOG.md, references/audio.md.

Changed

  • README restructured around the demo: hook, GIF, why-bullets, install, quickstart.
  • SPEC updated to the 0.7.0 contract; stale examples/ references repointed to generated/.

Fixed

  • Slam caption overlapfromTo scale tween parked every upcoming word at the from-state; rewritten as .to() tweens only.
0.6.0 2026-07-21

Added

  • Photo motion, scene transitions, XTTS voice cloning, and Qwen instruct control.
  • Chatterbox voice-cloning TTS backend.
  • narova skill showcase reel.

Fixed

  • Session friction from the us-iran-standoff build: motion glitches, scene ids, QA workflow, CLI edges.
  • Loud clone-path errors, drift lint, chatterbox validation and cache identity.
0.5.0 2026-07-21

Added

  • Example intro videos: Folio3, Careem, DeepLearning.AI, US–Iran standoff briefing.
  • Hardening against the failures found in the bazaartech retrospective.
  • Skill exposed to .agents-standard agents at project scope.

Changed

  • Aligned versions and hardened config/argument edges from the skill review.

Removed

  • Legacy examples superseded by the generated intro projects.
0.4.0 2026-07-21

Added

  • Source-aware, asset-native pipeline: any URL becomes verified source material.
  • Iteration-consistent synthesis: unchanged turns keep byte-identical audio across revisions.
  • Prompt-to-video craft references and anti-template visual-variety rules.
  • Qwen3-TTS backend and theme-from-intent skill rules.

Changed

  • Breaking: narova IS the skill — tool bundled under the standard skills/ layout.
  • Docs rewritten in plain language; tests moved into the skill.
0.3.0 2026-07-21

Changed

  • Breaking: build/preview run on the HyperFrames render engine; the old player/capture/assemble/serve pipeline is deleted.

Added

  • narova compose — HyperFrames composition generator.
  • audio/full.wav — the concatenated narration track.
  • Zero-dependency test suite for schema, lints, compose, and timings.
  • Claude Code agent skill + installer.
0.2.0 2026-07-20

Added

  • narova check — fast config validation with no synth or capture.
  • vkf-upgrade example: a 7-scene 1:1 social announcement.

Fixed

  • py/ and scripts/ now ship in the published package files.
0.1.0 2026-07-15

Added

  • Initial release: a script-to-narrated-kinetic-video toolkit.