feat(sdk): KCSDK v1.0.0 — complete SDK implementation (#346) #366
Reference in New Issue
Block a user
Delete Branch "feat/kcsdk-finalize"
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?
Summary
Complete implementation of the KCSDK epic (#346), phases 1–8. This PR brings the Kindred SDK from a pure-Python wrapper to a full C++/pybind11 module with stable v1.0.0 API.
Commits (9)
#350— Scaffold KCSDK shared library + kcsdk pybind11 module#351— Migrate editing context API to kcsdk (7 C++ bindings)#352, #353— Add panel provider (IPanelProvider) and theme engine (ThemeEngine)#354— AddIToolbarProviderinterface to kcsdk#355— AddIMenuProviderinterface andregister_command()wrapper#356— Add status bar widget wrapper and origin query bindings#357— Remove fallbacks, add deprecation warnings, bump v1.0.0Architecture
Python API (kindred_sdk v1.0.0)
All wrappers now require the kcsdk C++ module (fallbacks removed):
context.py— 7 editing context functionsdock.py— dock panel registrationtoolbar.py— toolbar provider registrationmenu.py— menu provider registrationcommand.py—register_command()convenience wrapperstatusbar.py— status bar widget registration (pure Python)origin.py— origin queries via kcsdk; register/unregister still via FreeCADGuitheme.py— palette and token queries via ThemeEngineDeprecation
11 superseded
FreeCADGui.*methods now emitBase::Console().warning()but continue working.addOrigin/removeOriginare excluded (not yet superseded).Testing
pixi run test-kindred: all 39 Tier 1 tests passCloses #346, #350, #351, #352, #353, #354, #355, #356, #357