[EPIC] feat: Context-Aware Part Subscription System - Silo-client #2
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context-Aware Part Subscription System — Client Library
Repository:
silo-clientType: Feature
Depends on:
siloserver endpointsBlocks:
silo-modworkbench UI and syncSummary
Add workstation identity, subscription CRUD, checkpoint upload, edit session locking, sync diffing, and file download support to
silo-client. This is the transport and data layer with no FreeCAD or Qt dependencies.The key additions beyond basic subscription support are the checkpoint client and the edit session client. Together they implement the full context-transition lifecycle: acquire lock on context entry → push checkpoint + release lock on context exit → subscribers receive update.
1. Workstation Identity
silo_client/workstation.py2. Data Models
silo_client/models.py3. SiloClient API Methods
Workstations
Subscriptions
Sync
Edit Sessions
Checkpoints
File Download
4. Local Path Helper
5. SSE Event Constants
6. Acceptance Criteria
Workstation Identity
get_or_register_workstation()caches after first callEdit Sessions
acquire_edit_session()returnsEditSessionResulton successacquire_edit_session()raisesHardInterferenceErroron 409release_edit_session()explicit release worksget_edit_sessions()returns typed list of active sessionsrequest_handoff()sends requestCheckpoints
push_checkpoint()handles upload + metadata + session release in one callsession_idparameter triggers atomic session releaseSubscriptions & Sync
get_sync_diff()returns checkpoint metadata in entriesack_sync()acceptsis_checkpointflagGeneral
HardInterferenceErroris a proper exception class