Skip to content

[P2][Deferred][Manim] production durable RenderSessionをfreezeし退役する #716

Description

@Hosi121

Parent / dependencies

Decision — 2026-08-19

RenderSession is not the canonical preview/export architecture and will not receive a successor aggregate.

Consumer Decision
.py export KEEP as an independent Manim adapter capability; it does not depend on RenderSession
local/Vite/Electron real-Manim preview KEEP temporarily as an optional authoritative oracle for imported Manim
local preview cancel/discard/video KEEP with the local in-memory manager
source commit/undo REMOVE without a successor; non-destructive .poietra.py export + re-import is the supported loop
new production durable RenderSession FREEZE for every project origin
existing durable session read/video/actions KEEP only for drain
PostgreSQL session/artifact/retention machinery REMOVE after historical drain
SourceCommitTransaction / ExecutionJob replacement DO NOT BUILD without a newly approved production consumer

This keeps local product work moving while preventing the SaaS path from accumulating more ownership around a legacy aggregate.

Current state

PR #737 froze Studio-native session creation in the UI capability layer. Production durable start() can still create rows: mainのAPI ingressにはmanager.start()呼び出しが2経路残っているため、freezeはまだ完了していない。

Minimal implementation when this deferred task resumes

One small freeze PR:

  • reject production durable RenderSession creation before source reads, blob writes, or quota reservation
  • use an explicit server-render-retired-style reason
  • do not change the local ManimRenderManager
  • preserve existing production read/video/action paths only for historical drain
  • add no SQL trigger, migration, replacement aggregate, or compatibility framework

Later cleanup, after drain:

  • remove source commit/undo UI and mutation APIs
  • remove durable worker/repository/retention/table ownership
  • keep .py export independent
  • delete the compatibility lane rather than migrating it

Exit criteria

  • Studio UI does not start a new native RenderSession
  • every consumer has a keep/freeze/remove decision
  • no generic successor table is planned without a caller
  • production API rejects every new durable RenderSession before side effects
  • source commit/undo is removed after the non-destructive local export/re-import flow is confirmed
  • historical durable sessions are drained and the storage path is deleted

Scheduling

Deferred until the active local-product Epic #921 is complete. It does not block local preview, local WebCodecs export, or the current local-product milestone.

Non-goals

  • changing local imported-Manim preview behavior now
  • moving Python/source safety rules into Rust core
  • adding a new state machine, table, or migration for an unapproved consumer

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/renderRender pipeline and Manim integrationarea/sourceSource import, analysis, and loweringpriority/P2Follow-up or polishsize/MMedium scoped changestatus/deferredIntentionally postponed; does not block the active local-product milestonetype/refactorBehavior-preserving architecture work

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions