Migrate ztools and Silo to kindred-addon-sdk #250

Closed
opened 2026-02-16 17:13:05 +00:00 by forbes · 0 comments
Owner

Summary

Migrate ztools and Silo from direct FreeCADGui.* calls to the kindred_sdk API for context registration, theme access, and manifest declarations.

Scope

ztools changes

  • Replace Gui.addWorkbenchManipulator() usage with _ZToolsPartDesignManipulator with SDK-managed context injection if SDK wraps it (evaluate)
  • Replace hardcoded Catppuccin hex values in resources/theme utilities with kindred_sdk.get_theme_tokens()
  • Add <kindred> element to package.xml declaring SDK version, dependencies (sdk), and registered contexts

Silo changes

  • Replace FreeCADGui.registerEditingOverlay() call with kindred_sdk.register_overlay()
  • Replace deferred dock panel setup (QTimer scheduling) with kindred_sdk.dock.register_deferred_panel() if dock helper is provided
  • Add <kindred> element to package.xml declaring SDK version, dependencies (sdk, silo-client)
  • Confirm silo-client submodule remains independent of SDK (it should — silo-client is pure HTTP, no FreeCAD dependency)

Affected repos

  • kindred/ztools (submodule at mods/ztools)
  • kindred/silo-mod (submodule at mods/silo)

Acceptance criteria

  • ztools loads and functions identically after migration
  • Silo loads and functions identically after migration
  • Neither addon imports FreeCADGui.registerEditingOverlay or Gui.addWorkbenchManipulator() directly
  • Both addons declare sdk_version in their package.xml
  • Both addons gracefully fail if SDK is missing (log error, skip load)
  • silo-client submodule has zero dependency on kindred_sdk

Dependencies

  • Depends on: #2 (kindred-addon-sdk exists)

Notes

This is a refactor, not a feature change. Behavior should be identical before and after. The WorkbenchManipulator pattern (Gui.addWorkbenchManipulator()) may or may not be wrapped by the SDK — if it's stable across upstream rebases, leaving it as a direct call is fine. Evaluate during #2.

## Summary Migrate ztools and Silo from direct `FreeCADGui.*` calls to the `kindred_sdk` API for context registration, theme access, and manifest declarations. ## Scope ### ztools changes - Replace `Gui.addWorkbenchManipulator()` usage with `_ZToolsPartDesignManipulator` with SDK-managed context injection if SDK wraps it (evaluate) - Replace hardcoded Catppuccin hex values in resources/theme utilities with `kindred_sdk.get_theme_tokens()` - Add `<kindred>` element to `package.xml` declaring SDK version, dependencies (sdk), and registered contexts ### Silo changes - Replace `FreeCADGui.registerEditingOverlay()` call with `kindred_sdk.register_overlay()` - Replace deferred dock panel setup (`QTimer` scheduling) with `kindred_sdk.dock.register_deferred_panel()` if dock helper is provided - Add `<kindred>` element to `package.xml` declaring SDK version, dependencies (sdk, silo-client) - Confirm `silo-client` submodule remains independent of SDK (it should — silo-client is pure HTTP, no FreeCAD dependency) ## Affected repos - `kindred/ztools` (submodule at `mods/ztools`) - `kindred/silo-mod` (submodule at `mods/silo`) ## Acceptance criteria - [ ] ztools loads and functions identically after migration - [ ] Silo loads and functions identically after migration - [ ] Neither addon imports `FreeCADGui.registerEditingOverlay` or `Gui.addWorkbenchManipulator()` directly - [ ] Both addons declare `sdk_version` in their `package.xml` - [ ] Both addons gracefully fail if SDK is missing (log error, skip load) - [ ] silo-client submodule has zero dependency on kindred_sdk ## Dependencies - **Depends on:** #2 (kindred-addon-sdk exists) ## Notes This is a refactor, not a feature change. Behavior should be identical before and after. The WorkbenchManipulator pattern (`Gui.addWorkbenchManipulator()`) may or may not be wrapped by the SDK — if it's stable across upstream rebases, leaving it as a direct call is fine. Evaluate during #2.
forbes added the enhancement label 2026-02-16 17:13:05 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kindred/create#250