Skip to main content
The chat attachment flow is implemented in src/lib/chatAttachments.ts and the routes below. An attachment records its identity, filename, MIME type, storage URI, lifecycle state, and ownership scope. A completed attachment is registered as an independent direct source and sealed into the job’s immutable source manifest only after its source-rights authorization passes src/lib/sourceRights.ts. Uploaded bytes belong in the configured asset store. The browser does not mint workflow authority, and a filename or MIME declaration is not proof of rights or content integrity.
Last modified on September 14, 2026