Attachment 가 경계를 건너
범위 잡힌 작업이 text 안에 다 안 들어갈 때가 있어. spreadsheet, screenshot, export, source packet 이 executor 가 봐야 할 증거일 수 있지. attachment 는 delegation package 에 속하지만 작업장을 구현한 source repository 에 속하진 않아.
engine-owned material store 가 별도 생애주기를 줘. metadata 는 delegation 과 함께 살아. original name, media type, byte size, digest, storage key 같은 것들. blob 은 Git 밖에서 limit 와 access rule 아래 살고. brief 는 manifest 를 담아서 byte 를 prose 에 박지 않고도 author 가 뭐가 있는지 알게 해.
upload 와 replacement 는 queued-only mutation 이야. take 는 manifest 와 byte 를 같이 얼려. 아직 queued 인 delegation 을 지우면 material 도 없앨 수 있지만, taken, landed, abandoned record 는 session 이 뭘 봤는지 설명해야 하니 package 를 지켜.
attachment 를 serve 할 때는 좁은 identifier 와 authorization 이 필요해. raw filesystem path 는 API 를 건너지 않아. request 는 delegation 과 attachment key 를 resolve 하고, ownership 과 state 를 확인하고, 안전한 content type 과 filename 으로 stored byte 를 stream 해.
byte 보다 manifest 먼저
session 이 manifest 를 먼저 보게 해. name, size, type, digest 를 보고 directory 를 뒤지거나 private path 를 추측하지 않고 어떤 file 을 열지 고를 수 있어.
생애주기를 matrix 로 검증해. upload, replace, take, read, delegation delete, retention 을 다 봐. happy-path download 하나는 경계를 거의 증명하지 못해.