You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Read platform/filestorage/ports.py first — the four-method ObjectStore protocol is the entire contract; the engine depends on nothing else. Fake stores are enough for most work.
The credential deny-list in syncable.py is a security boundary. Any change touching it, or what push() walks, must keep the planted-secret tests green in tests/filestorage/test_remote_sync.py (LEAKED_SECRET / canary in integrations.json must appear in no stored object).
Surfaces share platform.filestorage.operations — put behavior there; keep CLI / /remote-sync / gateway thin. Slash and gateway replies are an external surface: never echo str(exc) / provider detail into chat (CWE-209). Local CLI may show detail.
Prefer StrEnum for new closed vocab (see platform/filestorage/enums.py). Env var names stay in config/constants/filestorage.py.
Org-scoped gateway turns currently refuse on purpose — do not re-enable org sync without the namespaced-keys issue (Advanced Feature/tools refactor #13).
Source: community contribution ideas after merge of feat/laptop-s3-sync. Engine contract: platform/filestorage/ports.py.
Complexity
Intermediate — needs more product judgment or multi-file design. Still largely testable with fakes; live cloud optional unless noted.
Context
providers/aws.pyhas no retry — a dropped connection fails the whole run.Done when
NoSuchBucket,AccessDenied) fail immediately.Worth repeating in every issue
platform/filestorage/ports.pyfirst — the four-methodObjectStoreprotocol is the entire contract; the engine depends on nothing else. Fake stores are enough for most work.syncable.pyis a security boundary. Any change touching it, or whatpush()walks, must keep the planted-secret tests green intests/filestorage/test_remote_sync.py(LEAKED_SECRET/ canary inintegrations.jsonmust appear in no stored object).platform.filestorage.operations— put behavior there; keep CLI //remote-sync/ gateway thin. Slash and gateway replies are an external surface: never echostr(exc)/ provider detail into chat (CWE-209). Local CLI may show detail.StrEnumfor new closed vocab (seeplatform/filestorage/enums.py). Env var names stay inconfig/constants/filestorage.py.Source: community contribution ideas after merge of feat/laptop-s3-sync. Engine contract:
platform/filestorage/ports.py.