Problem
Agents often hold a bundle (repo export, docs folder) as one ZIP; today every member must be uploaded individually.
Open design questions — decide via a short ADR before implementation
- Fan-out contract: one upload → many documents breaks
DocumentUploadMessage (one document per event, contracts v1.0.0). Child documents with parent_document_id? New event?
- Dedup: member-level
content_hash vs archive-level.
- Limits: member count, nesting depth (zip-in-zip), zip-bomb guards (compression-ratio cap).
- Partial failure semantics: 3 of 10 members fail — parent status? Must respect the compensation rules (mark-failed via
compensation.py, no state/response divergence).
Proposal
Acceptance criteria
- ADR merged under
docs/adr/.
- Implementation issue(s) filed from the ADR decisions.
Depends on #117.
Problem
Agents often hold a bundle (repo export, docs folder) as one ZIP; today every member must be uploaded individually.
Open design questions — decide via a short ADR before implementation
DocumentUploadMessage(one document per event, contracts v1.0.0). Child documents withparent_document_id? New event?content_hashvs archive-level.compensation.py, no state/response divergence).Proposal
metadata(never silently dropped).Acceptance criteria
docs/adr/.Depends on #117.