Changelog

Everything we shipped.
Version by version.

Append-only release log. Newest at the top. Honest about what landed, what's outstanding and which PR closed it.

v0.19.1 2026-05-17 release PR #25

Loom Alpha · Sprint L3 polish — templates, duplicate, cost preview, empty state.

  • Prefab workflow catalogue: 4 templates (Concept brief · Texture base · Reference variations · Style sheet · save 4 angles) accessible from a new 'From template' picker in the canvas toolbar. Endpoint: GET /api/v1/loom/templates + POST /api/v1/projects/{id}/workflows/from-template/{slug}.
  • Duplicate workflow: POST /api/v1/workflows/{id}/duplicate clones into the same project under '<name> (copy)'. UI button appears in the toolbar once a workflow is loaded.
  • Cost preview: POST /api/v1/loom/estimate-cost walks the graph and sums estimated USD per image_generator node from the per-model price table in ai_providers._MODEL_ESTIMATED_USD. Canvas calls it on every node / connection / data change with a 200ms debounce. Result shown in the status strip ('Estimated next run: $0.003') plus a chip embedded in the Run button.
  • Empty state hero overlaid on the canvas when no nodes exist: gradient sparkles icon, 'Bring your idea to a canvas.' copy, two CTAs ('Pick a template' opens the picker, 'Start blank' seeds a 3-node starter graph).
  • Toolbar gains the From template / Duplicate / cost chip controls without breaking the existing Drawflow event wiring (mutation handlers debounce-schedule the estimate refresh).
  • 8 new tests in test_v019_loom — template catalogue shape, create-from-template persists the prefab graph, unknown slug 404, duplicate flow, estimate for concept_brief + reference_variations + empty graph + per-model price ordering.
  • Suite 214/220 (6 preexisting failures untouched).
v0.19 2026-05-17 release PR #23

Loom — generative-AI nodal canvas (Sprint L1 + L2 · Alpha).

  • New surface: per-project Loom tab — a Drawflow-based nodal canvas for AI-generated assets. Drag nodes from the left, connect ports, hit Run.
  • 4 node types in Alpha: Text prompt, Image generator (Replicate · FLUX schnell by default, FLUX 1.1 pro / SD 3.5 / Ideogram available), Preview (inline image render), Save to project (promotes the output to an AssetVersion in the project).
  • Backend (Sprint L1): 3 new tables (Workflow, WorkflowRun, WorkflowAsset), provider abstraction (BaseProvider + ReplicateProvider + MockProvider with deterministic 1px PNG for CI), topological execution engine in services/loom.py with cycle detection, REST API (CRUD + run + streaming blob).
  • Frontend (Sprint L2): _tab_loom.html with Drawflow vanilla JS via CDN, custom node templates respecting Quiet Luxury palette, drag-from-sidebar, save/run toolbar, recent-runs drawer.
  • Cost mirrored to Event(event_type='loom.run', cost_usd=…) so /command-center attributes the spend to the right project. AuditEvent on every workflow mutation + run.
  • RBAC: new 'loom' section under PLATFORM group. Granted by default to TECHNICAL_ART, ARTIST_3D, CONCEPT, LEAD, DIRECTOR, PRODUCTION, FOUNDER, ADMIN. External clients always 403.
  • Roadmap surfaced in the canvas left rail as disabled cards: Upscale (Magnific), Inpaint, Video (Runway), Audio (ElevenLabs), 3D (Tripo), Push to Vault, Send to DCC, ControlNet, Batch, LoRA selector, real-time collab, shared studio templates.
  • 11 new tests with MockProvider (CRUD, full run, asset streaming, cycle → failed, RBAC). Full dashboard suite remains green.
v0.18 2026-05-17 release

Production Suite landing + commercial rebrand.

  • Landing page redesigned end-to-end following the Production Suite direction (WebGL hero with stylised cinema camera, magnetic cursor, scrubbable day-in-the-studio timeline, spotlight feature cards).
  • Commercial positioning flipped to turnkey / white-glove. All mentions of self-hosting, $20/mo VPS, source-available and free-to-run removed.
  • New sections: Founders, LLM & generative-AI emphasis on the integration constellation, dedicated /changelog page.
  • Required CTAs: Request access on the nav, hero, mid-page and final block.
  • CLAUDE.md: landing + changelog declared canonical protected surfaces.
v0.17 2026-05-17 release PR #21

Fase I — Documentation + commercial pitch + first landing rewrite.

  • New docs/ surface: STUDIO_FEATURES.md (16-section capability catalogue), USER_GUIDE.md (manual per role), INSTALL.md (infrastructure + DCC install), PITCH.md (commercial pitch with replaces-table).
  • First landing rewrite covering all 14 pilares shipped through Fase H.
  • Cross-links between docs and the in-app sidebar.
v0.16 2026-05-17 release PR #21

Fases C-H — Production Flow, Client portal, HR Pro, Admin & Finance, AI Agents, Vault v1.

  • Fase C — Production Flow data model: Episode/Sequence/Shot, Asset library, AssetVersion (sha-256 content-addressed), ShotAssetBreakdown, PipelineStep, Review + ReviewComment with timestamp_ms + frame_number, Delivery + DeliveryItem + DeliveryFeedback. blob_store service shared across phases.
  • Fase D — External client portal: sandboxed /client routes. CLIENT_VIEWER reads overview + deliveries, CLIENT_REVIEWER can comment + decide acknowledged/approved/changes_requested. Hard guarantees the portal never returns hourly_rate, budget_*, cost_usd, member lists, payroll or vendors.
  • Fase E — HR Professional: Employee, EmployeeContract, SalaryBand, PerformanceReview, OneOnOneNote (private_flag), Skill catalogue, TimeOffRequest + TimeOffBalance with auto-decrement on approval, HRPosition.
  • Fase F — Admin & Finance: Vendor, PurchaseOrder workflow (draft → pending_approval → approved → sent → received → paid), Expense flow, PayrollPeriod auto-computing entries from TimeEntry × hourly_rate, P&L per project (revenue − AI cost − labour − approved POs), ExchangeRate scaffold.
  • Fase G — AI Agents runtime: Agent template, AgentMission (4 triggers: on_demand / when_online / scheduled / live), AgentRun 4-state board, lazy-pull dispatcher via plugin polling /agent-jobs/poll + /result.
  • Fase H — Vault v1: VaultRepo + VaultBranch + VaultCommit + VaultFile, REST API with optimistic-concurrency commits, streaming blob fetch, parent-walk commit log.
  • 18 new smoke tests across the six phases. Full dashboard suite 195/201 (6 preexisting failures untouched).
v0.15.B 2026-05-17 release PR #20

Sprints 6/7/8 — Multi-DCC plugin core, SSE real-time presence, DCC adapters.

  • Sprint 6 — nodeforge_core namespace as a stable facade re-exporting DashboardClient, ClaudeClient, CostTracker, TaskContext, ask_with_fallback, parse_claude_response, config. DashboardClient now carries software + software_version on every event/metric/ping. Dashboard ingest opens or refreshes a WorkSession per (user, software, project) triple with a 3-min revive window.
  • Sprint 7 — Real-time presence via SSE (sse-starlette). services/presence.py with online_sessions, sweep_stale_sessions, presence_kpis. New routes /api/v1/presence/{now,kpis,stream}. UI: _live_presence.html partial embedded in Live Team tab and CEO Command Center.
  • Sprint 8 — DCC adapters: nodeforge_maya (userSetup.py drop-in, main menu, executeDeferred heartbeat), nodeforge_nuke (~/.nuke/menu.py drop-in), nodeforge_substance (Painter plugin lifecycle), nodeforge_zbrush (tier-2 bridge process — ZBrush has no in-process Python).
  • 31 new tests (9 namespace, 8 ingest, 11 presence, 12 adapter headless). Plugin suite 466/467 + dashboard suite 172/178 (preexisting only).
v0.15.A 2026-05-17 release PR #19

Fase A — Studio OS foundations.

  • Pilar 1 — SQLite hardening (WAL, busy_timeout, foreign_keys, synchronous=NORMAL) + schema v2 (5 new tables, 6 new User columns, 4 new Studio columns, 2 new client roles CLIENT_VIEWER + CLIENT_REVIEWER).
  • Pilar 2 — RBAC v2 with lead-grants. effective_sections() = role_default ∪ granted - denied. lead_can_grant() with hard-coded ungrantable sections (business/admin/keys/settings).
  • Pilar 3 — Daily check-in 'Say hello'. /me redirects to /me/checkin on first hit of the day. Upsert by UNIQUE(user_id, date).
  • Pilar 10 stage 1 — CEO Command Center MVP at /command-center with revenue MTD/QTD/YTD, AI cost, payroll estimate, headcount, top projects, backup-stale banner.
  • Pilar 14.2 — audit() / audit_login() / diff_model() helpers writing AuditEvent + LoginEvent.
  • Pilar 14.10 — Setup wizard /onboarding/setup (single-page studio identity → first project → invites → optional demo seed).
  • Pilar 14.11 — 2FA staff TOTP (optional opt-in) at /me/security with QR enrolment + 10 single-use bcrypt-hashed backup codes.
  • Pilar 14.13 — Public /status page with 7 health checks (DB, disk, backup, secret, audit freshness, login failure rate, plugin ingest).
  • 47 new tests across the 5 commits. Full dashboard suite 153/159 (6 preexisting failures untouched).

Want a heads-up when the next version lands?

Request access