026ed0cb8ac7074c877deaec8487e24fbbc36048
Add server mode awareness to the FreeCAD client. The mode (normal, read-only, degraded, offline) is fetched from the /ready endpoint on each status refresh and updated in real-time via SSE server.state events. Changes: - Add _server_mode global and _fetch_server_mode() helper that queries /ready and maps response status to mode string - Add server_mode_changed signal to SiloEventListener, handle server.state SSE events in _dispatch() - Add mode banner to SiloAuthDockWidget: colored bar shown when server is not in normal mode (yellow=read-only, orange=degraded, red=offline) - Update _refresh_status() to fetch mode and update banner - Disable write commands (New, Save, Commit, Push) when server is not in normal mode via IsActive() checks Closes #4
silo-mod
FreeCAD workbench for the Silo parts database. Provides item management, revision control, BOM editing, and file synchronization within Kindred Create.
Structure
silo-mod/
├── silo-client/ [submodule] shared Python API client
├── freecad/ FreeCAD workbench package
│ ├── Init.py Console initialization (adds silo-client to sys.path)
│ ├── InitGui.py Workbench registration
│ ├── silo_commands.py 14 commands + SiloSync + auth dock widget
│ ├── silo_origin.py FileOrigin adapter for unified origin system
│ ├── package.xml Workbench metadata
│ └── resources/icons/ SVG icons (Catppuccin Mocha palette)
├── Makefile Install/uninstall targets
└── LICENSE
Installation
For standalone use (outside Kindred Create):
git clone --recurse-submodules https://git.kindred-systems.com/kindred/silo-mod.git
cd silo-mod
make install-freecad
Within Kindred Create, this repo is included as a submodule at mods/silo/ and loaded automatically by src/Mod/Create/Init.py.
License
MIT
Languages
Python
99.2%
Makefile
0.8%