log · 2026

What we shipped.

Every deploy lands here. Features, fixes, design moves, and the occasional breaking change called out in capitals so you can plan around it.

features

10

fixes

2

design

4

breaking

1

v2.0.02026-05-18designfeaturebreaking

PrintAIr v2.0 — studio control room

Full redesign. Cream + ink + single orange accent. Newsreader serif for editorial copy, Geist sans for UI, JetBrains Mono for every numeric signal. The operator app moves to a DAW-style shell: left rail with workspace nav, top transport bar, panel grid as the workspace, bottom status bar with live service health, and a collapsible console drawer with Activity / Render / SSE / Errors tabs. Marketing lands a 12-section editorial home with a live embedded studio demo. BREAKING: the v1 cream-cards layout retires; existing pages are visually re-platformed.

v1.10.22026-05-18featuredesign

Diegetic audio with sidechain ducking

Custom-engine story videos now mix the AI's per-scene generated audio underneath the narration. A sidechain compressor ducks the diegetic track whenever narration is speaking (threshold 0.05, ratio 8, attack 5ms, release 250ms) and lets it rise back during quiet moments. Orchestra prompts get orchestra ambience; café prompts get café ambience.

v1.10.12026-05-18fix

Custom stitcher no longer truncates to narration length

The final stitch's `-shortest` flag was cutting 30s plans down to ~19s when narration audio was shorter than the video timeline. Narration is now padded with silence to each scene's planned duration before concat — final video plays for the full requested length end-to-end.

v1.10.02026-05-17feature

Custom story video engine + music pass

Multi-stage pipeline as an alternative to the single-call Faceless engine. LLM scene planner → per-scene image + image-to-video + kokoro TTS → ffmpeg stitch with subtitle burn-in. Optional background-music pass via wiro/video-background-music-gen. Engine toggle in the story-video form; scene mode (parallel / chained) and music toggle as Custom-engine knobs.

v1.9.02026-05-17designfeature

Post detail v2 — Stage + Brief + Drafts + Details

Redesigned post detail surface. Master asset gets a real video player with sound, scrub, and fullscreen. Brief panel renders the LLM's interpretation alongside the original prompt + scene plan for story videos. Drafts list is text-first with character counts; device-frame mocks live behind a toggle. Generation details collapse to a three-tab panel (Pipeline / Costs / Raw tasks).

v1.8.02026-05-15feature

Multi-account social roster + persona pool per workflow

Each platform can now hold multiple connected accounts (e.g. two LinkedIn handles). Workflows pin a persona pool — the worker picks one at random per tick. Variants ship per-account: two LinkedIn accounts each get their own draft.

v1.7.02026-05-10feature

Story video templates + 10-language TTS

Four templates land: viral_hook · product_intro · history_narrative · listicle. Each template seeds the planner with a different narrative shape. Kokoro TTS gains 9 languages (Turkish narrates via an English voice with a warning chip).

v1.6.32026-05-08fix

Faceless async-wait robust to premature socket events

The Faceless model emits `task_postprocess_end` on the websocket early — at the planner stage, not after final stitch. The orchestrator now races socket against polling and accepts the first authoritative pexit signal.

v1.6.02026-05-04featuredesign

Admin panel — audit, costs, health, system settings

Separate admin shell with eight surfaces. System-wide default models for users without a profile pick. Audit log of every state-changing action. Wiro cost rollups per user and per workflow.

v1.5.02026-04-30feature

Persona system — voices, photos, training

Personas replace the old mascot generator. Each persona carries description + physical characteristics + mood + speaking tone + a photo set. Generation prepends persona context to every LLM call; image models consume the photos as multi-ref.

v1.4.02026-04-22feature

Workflow templates + cron scheduler

Custom workflows with topic pools + per-template scheduling. The worker's scheduler ticks every 60s and dispatches based on per-template cadence (rival_pulse = 15min, viral_hook = 6h, etc.).

v1.0.02026-04-01feature

PrintAIr launches

Initial release. One prompt → brief → master image → per-platform rewrites across 13 channels. Telegram approval bot. Better Auth + Drizzle + Postgres + RabbitMQ + Redis + MinIO. MIT-licensed.

earlier entries archived on github → view full history

Changelog · PrintAIr