github hugohe3/ppt-master v4.3.0

5 hours ago

v4.2.0 pushed a narrated deck all the way to video. This release turns attention back to the deck itself — how fast you can get one, what language it speaks, and how much of the authored picture actually survives the trip into PowerPoint.

Two things headline it. Quick Generate is now a real route: for a fact-sufficient request you can skip the Strategist, the confirmation UI, and the whole spec/lock apparatus, hand-author svg_output/, pass a lockless final check, and export — with the ordinary export capabilities still on the table. And a deck now carries one confirmed language contract end to end, from the font selector in the confirmation UI through complex-script slots, RTL runs, tables, charts, notes, and document metadata.

Quick Generate

  • A lockless generation route. Explicit quick/fast requests skip Strategist, Confirm UI, Design Spec/Spec Lock, the first-page gate, and finalize. The disposable-test and fixed-page-roster restrictions from the unreleased flag are gone — this is a normal way to produce a deck, not a debug path.
  • Resource preparation is preserved, strategy is not. Source conversion, factual research, images, icons, formulas, and provenance all remain; the current agent resolves routine choices without confirmation artifacts. Unresolved resource states block, and preview/package requests that need the full pipeline are routed back to it.
  • Export capability stays intact behind one gate. A Quick-specific final checker mode ignores planning artifacts and enforces flat structure; a current passing report is required before export. Notes, object motion, narration, native objects, tracing, metadata, backup, and postflight remain available as opt-ins rather than being hard-disabled.
  • Minimal workspaces. An init flag creates only svg_output/, keeping source and resource directories conditional.

Language & typography

  • One language contract, propagated. Staged BCP-47 values are canonicalized and carried through text, tables, charts, notes, and document metadata, including complex-script font slots and mixed-direction RTL. Old locks and single-pass confirmation stay compatible.
  • Language-aware font selectors in the Confirm UI. Deck primary language is now distinct from the UI language: English decks get primary-only controls, everything else gets primary plus English. The catalog spans CJK, Latin, Arabic, Hebrew, Devanagari, and Thai common PowerPoint faces, tracks Office cloud and Windows language-feature availability, and remains a manual selector rather than a recommendation whitelist — generated typography recommendations stay open, with distinct pairings validated.
  • Font choices must be executable. Categories remain design rationale, but a custom choice now collects concrete heading and body faces; legacy prose-only choices reopen for structured repair before final confirmation. Every supported script also gets at least one target-approved safe candidate.
  • Traditional Chinese system fonts recognized as PPT-safe (thanks @kevindesuyo, #244), with a maintainer follow-up classifying Heiti TC, Kaiti TC, and MingLiU_HKSCS as East Asian so they route to the intended DrawingML slot instead of silently falling back to Microsoft YaHei.

Native fidelity

  • Picture shadows and glows survive both directions. One registered SVG shadow or glow maps to native picture effects on export and restores on import, with a private crop carrier keeping cropped-image previews unclipped and flattening back to a single editable picture.
  • Clipped-picture effects are a closed authoring form. The filter goes on an exact single-picture carrier and the clip-path on the image; the carrier may be a direct Master/Layout atom, but placeholder, binding, and native-replacement ownership stay outside it. Filter and clip-path on the same element is rejected.
  • Radial gradient point focus preserved. The effective SVG focus maps into DrawingML fillToRect and restores on import for the reversible point-focus subset; authored focus outside the canonical centered circle is rejected, and imported out-of-circle focus is normalized with a diagnostic.
  • Authored line breaks survive by default. New explicit preserve / reflow / split text-flow modes emit real DrawingML line breaks in one editable frame; ordinary preserve-mode frames use native auto-fit so they follow later PowerPoint edits, while exact imported frames and structured multiline carriers stay fixed. Narrated exports no longer need --no-merge.
  • Text as a Boolean operand. Resolvable SVG text is shaped with exact font and style matching and materialized into native editable Boolean geometry, failing closed for unsupported text.
  • Lossy imports become diagnostics. Non-neutral outer-shadow transforms and nested group rotation are rejected on PPTX import rather than silently simplified.

Animations

  • Multi-effect object timelines. Backward-compatible effects[] rows give one SVG group several effects with independent Start and timing settings; repeated shape targets are allowed and native behavior trees are validated on readback, with recorded narration kept click-free.
  • Motion chosen by slide semantics. The catalog is now a relationship- and lifecycle-driven selection guide — canonical transitions mapped to concrete adjacent-slide relationships, entrance/emphasis/path/exit/static duties distinguished — with Strategist handing off semantic lifecycle duties and Executor picking effects and timing. Motion remains opt-in.

Visual authoring

  • Advanced techniques are routed by visual job, not browsed as a catalog. SVG effects gained a baseline → surface → selection → integration → stop procedure, page-level back-to-front stacks for covers, dividers, evidence, comparisons, and closing pages, each with an explicit stop condition. The effects authority is now loaded before SVG decisions in both Default and Quick, and stays non-quota.
  • Image composition split by responsibility. Layout, crop/reveal, tone/contrast, and framing/depth now have distinct ownership under hierarchical P/M/A/C pattern IDs, with a composition playbook for turning vocabulary into deliberate combinations. Every image-bearing page runs an explicit treatment opportunity pass and must earn a real image/content or image/shape relationship — plain placement is still a valid answer when it communicates better, and a named primary structure is a skeleton, not a no-effect instruction.
  • Cross-page visual motif has an owner. Strategist chooses or inherits one motif through the existing Theme field, Executor preserves its invariant while varying realization by page role, and Quick resolves the same choice transiently. Executor may omit or adapt a motif with no supporting job; a second recurring identity is still forbidden.

Confirmation UI

  • Chat fallback surfaces before the blocking wait. The UI launches and health-checks first, then posts the actual URL, the current Stage 1 summary, and the direct-chat fallback — so headless and Linux hosts are not stuck behind a wait. --wait-only --wait-stage stage1 supports the detached waiter.
  • The user's chosen surface wins. The confirmation surface is decided before any daemon or wait command, a running UI is stopped and cleaned up before continuing a stage in chat, and recovery/beautify align with UI-result and visible-chat evidence.
  • Fallback AI rendering choices are reachable through a compact preset selector plus a separate editable custom-style card, with image planning loaded after a confirmed none-to-image override.
  • Stage 2 previews use fixed role copy again, keeping visual comparisons stable while remaining language-aware.

Tooling & structure

  • 100+ page decks stay in authored order. Numeric filename ordering is centralized and applied across export, validation, preview, animation, notes, and audio consumers.
  • Internals moved behind stable script shims for project management and SVG quality, with 21 state-free checks extracted into an svg_contracts domain module. Public command paths, import surfaces, and validation order are unchanged — no validation policy changes.
  • Planning reference paths anchored to the skill root, so agents stop probing project-local template directories first.

Full changelog: v4.2.0...v4.3.0

Don't miss a new ppt-master release

NewReleases is sending notifications on new releases.