Skip to content

v3.9.0

Choose a tag to compare

@dong845 dong845 released this 22 Jul 04:33

Since v3.8.0. This release makes the direction gate show real styles and carry the chosen look through the whole deck — and keeps bold, bespoke design first-class.

Design capability, verified: a picked preset fixes only the register; the boldness/signature-move gate still fires, and a bespoke register invented for the content is a first-class peer of a preset. Confirmed by a 12-agent integration workflow (pass) and a security scan.

Changed — the direction gate is PRESET-DRIVEN (real styles, not colour schemes)

  • The gate now shows the best-fit named presets rendered with their own DNA (signature motif), not three synthesised palette/font combos — fixing "the options were just different colours". archetypes_html.preset_directions([names]) + _dna_cover() render each preset's motif (Swiss ghost numeral, Ink-wash 印 seal, Blueprint grid, Bauhaus triad, …).
  • 4 new presets → 18 total: bauhaus, midcentury, terminal, synthwave (all code-only, full guard/when/image_prompt parity), chosen from a design-movement web sweep.

Added — the chosen style runs through EVERY slide, not just the cover (的风格要走所有页)

  • _dna_ambient() renders a quiet register signature (corner mark / edge rule / faint grid-scanline / recurring numeral-seal) on every interior slide, behind content. Self-verify item (q) enforces it end-to-end via a new interior register: contract field + a register_interiors critic check + a PRE-FLIGHT tick — a deck styled only on the bookends is now a finding.
  • The quiet register (repeats every slide = SYSTEM) is distinguished from the loud signature motif (dosed 2–3, never stamped) across every gate, so the new behaviour doesn't trip the block-sameness rules.

Changed — branch-aware gate count + bespoke registers are first-class

  • No image tool → 4 rendered directions (3 DNA presets + 1 pure colour-scheme direction); with image tool → 3. build_directions_html auto-letters "describe your own" (D on a 3-up, E on a 4-up).
  • A direction dict may carry cover_motif + ambient_motif so a bespoke register renders its OWN real DNA in the preview — presets are the floor you beat, not the menu you satisfy.

Changed — generated imagery must FUSE style AND stay topical

  • New 🔴 FUSION gate: every generated hero/plate must be both unmistakably on-style and depict the deck's subject; on-style-but-generic filler fails and is regenerated.

Security

  • Hardened a docs API-key placeholder (sk-...$(cat ~/.openai_key) / DUMMY_KEY). Investigation confirmed no real key was ever hardcoded or committed — scripts read from env vars; re-scan clean.