# Slopify 1.0 to 2.0

Versions 1.0.1 to 2.0.0, released 14 to 25 September 2026.

After 1.0, the work went into three things: running Slopify in Docker without giving up the Claude Code, Codex and Gemini logins you already have, narration that sounds right and says names correctly, and a way back from a failed run that doesn't make you review costs you already accepted. 2.0.0 closes the stretch with a redesign of the whole app into a fixed frame, which moved some addresses (listed under "Changes to know about").

## Highlights

- A Slopify Docker image for Linux, and a small host helper so Claude Code, Codex and Gemini CLI run on your machine with your own logins while Slopify runs in the container.
- Codex as an image provider for slideshow images and thumbnails.
- Model lists for the CLIs come from what you have installed.
- Narration preparation (optional): your text model adds delivery cues for Inworld TTS-2 without changing a word of what is said.
- Pronunciation glossary: the IPA in your article's glossary is sent to Inworld, so names come out right. Captions and transcripts keep the written words.
- The article writer gets every original research report as well as the editor's summary.
- Resume retries unfinished work straight away, and every section has its own Rerun.
- The 2.0 console: one sticky header, the Library in tabs, Settings one section at a time, and a project page built around a single progress strip.

## What's new

### Docker
- An official image on GitHub Container Registry, for linux/amd64 and linux/arm64, with ffmpeg ready on first start.
- `npx @gentbajko/slopify@latest --docker` sets it up.
- The host CLI bridge: a helper installed as your own systemd user service runs Claude Code, Codex and Gemini on the host through a private, authenticated socket. Slopify never copies your CLI credentials into the container.
- A request that was already sent is never replayed through the bridge, so a dropped connection can't charge you twice.
- Settings explains which providers the host manages.
- Project files are saved to an ordinary folder on your machine, `~/Slopify/Projects` by default (`--projects-dir` to change it). The database and keys stay in the private `slopify-data` volume.
- Existing Docker installs move their projects there with a verified copy, and roll back if anything fails.
- Folder actions show the host path of current and older outputs.

### Providers and models
- Claude Code, Codex and Gemini CLI list the models your installed version offers, natively and through Docker.
- Codex as an image provider, chosen separately from your text provider, sharing the Codex install and login.
- Research reports go to the editor and the article writer as they were written, alongside the editor's notes. CLIs read them through a private, read-only folder that is deleted after the call.
- A CLI that needs you to sign in fails once with that message instead of retrying.

### Narration
- Narration preparation, under Audio, is off by default. For Inworld TTS-2, your text model marks sentences with delivery cues; the spoken text stays exactly as written.
- Use pronunciation glossary, under Audio, is on for new projects and off for existing ones. It reads the glossary at the end of the article and sends each term's English IPA to Inworld, leaving the readable text, captions and transcripts unchanged.
- Narration text no longer carries Markdown escapes such as `D\&D`.

### Recovering from a failed run
- Resume retries unfinished work for the saved version without asking you to review costs again.
- Research, Article, Audio, Images, Thumbnail and Video each have a Rerun with a one-line confirmation. Earlier outputs stay in History.
- A retried request keeps its identity, so a lost response never starts a second paid request.
- A failed rebuild shows its reason next to Start, keeping your consent and the request.

### The 2.0 console
- One sticky header holds Projects, Play, Library and Settings, the running total, the support links, the update button and the tutorial.
- Messages appear in reserved status lines or toasts instead of pushing the page down. Save and Start stay pinned at the bottom of editing screens.
- Library: Prompts, Intros & Outros, Templates and Schedules are four tabs of one page. Template and schedule forms open in a side drawer.
- Settings shows one section at a time: Providers, Voices, Models, Playback & appearance, Backup & storage, Usage. Each provider is one row; CLI paths sit behind Change path.
- The project page has a rundown strip with overall progress and every stage in one row, and Output, Edit, History and Checkpoints tabs. The Checkpoints tab counts held items.
- A failed stage shows one line with Retry stage, plus Re-run section in its menu.
- Play has Content, Outputs and Style tabs and a readiness rail. Review opens in a drawer with Start run pinned, and checkpoints are set there.
- Advanced audio options (chunking, intro and outro, narration preparation, pronunciation glossary) are folded under one disclosure.
- Large image sets show two rows until you expand them.

## Changes to know about

- `/usage` now redirects to `/settings?section=usage`, and `/library` opens Prompts.
- The floating update button moved into the header.

## Fixes

- Deleting a template or discarding a Play draft removes it from the list straight away.
- Model discovery finds Gemini CLI bundles and the installed Claude Code version.
- Model discovery and host bridging in Docker return the right models.
- Starting or rebuilding with host-managed CLIs no longer fails a path check meant for native installs.
- Codex images are collected from where the Codex CLI saves them.
- Retrying a project made before research documents upgrades its old requests instead of failing.
- The free caption model download retries up to three times after an interruption instead of failing the video.
- A restart after a hard shutdown no longer refuses to start on its own leftover lock in Docker, where the app is always process 1.
- Docker updates no longer refuse to run when rollback containers from older launchers still use the data volume.
- Articles no longer keep paragraphs that are only whitespace after Markdown is removed.
