🦞🎬 StoryFlow Progress Log

flowchart LR
  P1["Wiki First"] --> M1["Move 1: Protocol"]
  M1 --> M2["Move 2: Registry"]
  M2 --> M3["Move 3: Shell"]
  M3 --> M4["Move 4: Gateway"]
  M4 --> M5["Move 5: Face"]
  M5 --> M6["Move 6: Grammar"]
  M6 --> M7["Move 7: Panel"]
  M7 --> M8["Move 8: QA & Ledger"]
  M8 --> M9["Move 9: Approvals"]
  M9 --> M10["Move 10: Molt"]
  M10 --> Finish["Serve & Route"]

Milestone Log

  • 2026-09-20T09:15:00Z — Phase 1: Wiki First Initialized

    • Run initialized: run 607b57d3, seat “Storyflow Studio Forge”, HEAD b85813ebd023e8c7915d8b0bf88c4a9d95333198.
    • Evidence directory created: evidence/2026-09-20-d134-storyflow-607b57d3.
    • Model verification: .omp/config.yml confirmed untouched; Gemini 3.8 Flash (light) and Gemini 3.1 Pro (heavy) active.
    • Quartz vault established at /home/loca/dev/wikis/stfl/.
    • Core pages authored: index.md, bible.md, plan.md, architecture.md, decisions.md, progress.md, verification.md.
  • 2026-09-20T14:50:00Z — Move 1 Complete: packages/protocol

    • Implemented Zod schemas for Production, Shot, Job, Asset, Provenance, UIRequest, UIResponse, PluginManifest, SnapshotData, and Envelope (v=2).
    • Added fixture set in packages/protocol/test/fixtures.json consuming all models.
    • Verification: 10/10 tests pass via bun test packages/protocol/test.
  • 2026-09-20T14:55:00Z — Move 2 Complete: Registry Probes & capabilities.yml

    • Executed live host probes (omp usage, omp models --json, which ffmpeg yt-dlp google-chrome).
    • Emitted capabilities.yml with 76 models filtered to omp-native auth (Antigravity, Codex, xAI, Anthropic, Zai).
    • Computed Cast: Director (google-antigravity/gemini-3.1-pro:high), Writers’ Room, Refuters, Crew, Media.
    • Verification: capabilities.yml emitted and verified against live host environment.
  • 2026-09-20T15:00:00Z — Move 3 Complete: Supervised Shell & Stub Channels

    • Implemented ShellDaemon with heartbeat turns: inbox -> cron -> productions.
    • Stub channels (Telegram, Discord, iMessage, Webhook): inbound text handled strictly as data.
    • Verification: Messaging the stub inbox returns the live capability list (Director, Cast, Active Providers, Binaries). Tests pass 3/3.
  • 2026-09-20T15:10:00Z — Move 4 Complete: Bun Gateway & RPC v2 Bridge

    • Implemented Bun Gateway on port 7540 (127.0.0.1:7540) with single WebSocket route and 20s keepalive ping.
    • Implemented RpcFrameDecoder with rpc_chunk reassembly supporting up to 64 MiB payloads.
    • Implemented OmpRpcBridge with negotiate_protocol v2, switch_session resume, storyflow:// host scheme, and extension_ui_request dialog support.
    • Implemented StoryFlowDb SQLite SSOT with WAL mode for productions, shots, jobs, assets, and events.
    • Implemented JobQueue with provider concurrency, retry backoff, and pre-flight cost calculation.
    • Verification: apps/gateway/test/gateway.test.ts passes 4/4 tests: kill omp mid-run triggers session resume; 2.2 MiB base64 image frame arrives intact.
  • 2026-09-20T15:20:00Z — Move 5 Complete: Face SPA & Ship Gate Green

    • Implemented apps/face using SvelteKit 2.x adapter-static with SPA fallback.
    • Integrated Svelte 5 runes, Tailwind 4.3 + daisyUI 5 with @source "../../packages/ui/src".
    • Reusable components in packages/ui: The Wall, ShotCard, QueueItem, ApprovalModal, Palette (⌘K).
    • Dark Dailies theme with strict 4.5:1 text and 3:1 control contrast.
    • Esc key unwinds exactly one layer (Palette -> Approval -> Panel).
    • Verification: scripts/verify-face.mjs walked all states and navigation views in headless Chrome; 0 console errors; §4.1 ship gate green.
  • 2026-09-20T15:30:00Z — Move 6 Complete: Grammar & Film Adapter

    • Defined roles.yaml covering grammar DAG, human gates, and cast roles (Director, Writer, Refuter, Crew, Film Adapter).
    • Implemented @storyflow/plugin-film with storyflow.plugin.json contribution manifest and lattice validator.
    • Verification: .omp/agents/ generated from roles.yaml (5 agents: director, writer, refuter, crew, film-adapter); .omp/config.yml confirmed untouched.