MechaCat02
e7c0485dbf
feat(modules): GroupFilesService + files::shared_collection handle (§11.6 files C3)
- shared/group_files: GroupFilesService trait (mirror FilesService, no
group id arg — owner resolved from cx.app_id), GroupFilesError (clone of
FilesError + CollectionNotShared) with From<FilesError>, Noop.
- services: group_files field + with_group_files setter (default Noop).
- group_files_service: GroupFilesServiceImpl — owning_group via the
registry resolver (kind=files) → CollectionNotShared; reads open
(script_gate), writes fail closed (script_gate_require_principal);
reuses validate_files_collection + the NewFile/FileUpdate validators +
sanitize_stored_content_type + the per-file size cap; no events.
- sdk/files: GroupFilesHandle + files::shared_collection(name) + the
create/head/get/update/delete/list group methods (Blob in/out).
- picloud: construct FsGroupFilesRepo (sharing the files root + size cap)
+ GroupFilesServiceImpl, .with_group_files(...).
Unit tests: off-chain → CollectionNotShared; anon read OK / anon write
Forbidden; oversize → TooLarge.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 19:46:39 +02:00
..
2026-06-07 20:51:20 +02:00
2026-06-07 19:54:37 +02:00
2026-05-30 18:43:03 +02:00
2026-06-07 20:02:19 +02:00
2026-06-30 08:04:30 +02:00
2026-06-07 20:02:19 +02:00
2026-06-30 19:46:39 +02:00
2026-06-03 20:23:18 +02:00
2026-06-26 07:17:33 +02:00
2026-06-29 22:26:43 +02:00
2026-06-24 20:59:23 +02:00
2026-06-07 20:02:19 +02:00
2026-06-07 11:02:22 +02:00
2026-06-07 11:02:22 +02:00
2026-06-07 20:02:19 +02:00
2026-06-13 09:59:24 +02:00
2026-06-24 20:59:23 +02:00