Decision records
Architecture decision records: the context, the decision and what was discarded. Newest numbers are the most recent decisions; two records share the number 0012.
- 0001. Agent Kit is the only turn engine
- [0002. > Superseded by 0004.](/architecture/adr/0002-defer-distributed-run-leases/)
- 0003. Durable, sequenced thread event log
- 0004. Resume a dead run under a fenced lease
- 0005. The browser follows the log, and the request stops streaming the turn
- 0006. A gallery item owns a public copy of its files, and a remix owns a private copy
- 0007. A frame edit is a list of ops, rebased by the server onto the latest head
- 0008. Auto layout is a field on a parent clip, resolved into plain boxes before render
- 0009. The native app is one Tauri 2 shell that loads the hosted app, over a PWA baseline
- 0010. A shape mask is a track matte with a named source
- 0011. A free canvas element is a chromeless frame
- 0012. Frame elements stay in the revision JSON; poster parts are derived from data
- 0012. Media generation is one port, many providers; Kie.ai is a discount route, never a peer
- 0013. One chat drives the canvas and its frames
- 0014. The canvas page is served over bearer by its own handlers, answering status and body
- 0015. Native sign-in hands Supabase an ID token; the redirect flow stays as fallback
- 0016. One domain: the app and the marketing site both live on feega.app
- 0017. One entitlement ledger, fed by Stripe and by the app stores
- 0018. Mobile is the web UI in a Capacitor shell, with a few native capabilities
- 0019. A full GPU renderer reads the motion doc, not the composed page
- 0020. The infinite canvas is a display list drawn by the core
- 0021. Desktop is Electron, mobile is Capacitor; the canvas goes native through gpu-core