Activity files go through the shared record-asset pipeline
Context
Supporting files have both activity associations and an external storage lifecycle. Those two lifecycles cannot share database rollback semantics.
Decision
The save path computes asset changes, prepares new permanent references and attaches the retained or prepared file list during persistence. Shared cleanup owns physical removal after release.
Alternatives Considered
The structured alternatives describe concrete competing designs and their tradeoffs. Where the origin records an existing ruling, it remains the authority; an observed implementation does not establish Product’s rejection of every alternative.
Consequences
Record ownership checks constrain attachment references. Storage can retain unused copies beyond a transaction, with no locally established maximum cleanup delay.