fix: prevent QThread crash and Unknown command warnings on startup
Some checks failed
Build and Test / build (push) Has been cancelled

InitGui.py: Store SiloAuthDockWidget reference on the QDockWidget to
prevent Python from garbage-collecting it while its 30-second QTimer is
still running. The lost reference caused 'QThread: Destroyed while
thread is still running' followed by abort.

ztools InitGui.py: Move addWorkbenchManipulator() call from module-level
into Initialize(), after command modules are imported. The manipulator
references ZTools_DatumCreator, ZTools_DatumManager, ZTools_EnhancedPocket,
and ZTools_RotatedLinearPattern, which don't exist until the imports run.

Also updates README.md and submodule pointers.
This commit is contained in:
forbes
2026-02-01 19:52:10 -06:00
parent 1fea7c3d2e
commit af31594e24
4 changed files with 82 additions and 23 deletions

View File

@@ -17,8 +17,8 @@ Kindred Create is a fork of FreeCAD 1.0+ that integrates custom workbenches and
**Key additions over base FreeCAD:**
- **ztools Workbench** - Unified interface consolidating part design, assembly, and drawing tools with custom engineering features
- **Silo Integration** - Parts database system for tracking, versioning, and managing CAD files across teams
- **Catppuccin Mocha Theme** - Dark theme optimized for extended work sessions
- **Silo Integration** - Parts database system for tracking, versioning, and managing CAD files across teams, with an interactive browsing panel for searching, opening, and inspecting parts directly from the dock
- **Catppuccin Mocha Theme** - Dark theme with spanning tree branch indicators, optimized for extended work sessions
Kindred Create is maintained by [Kindred Systems LLC](https://www.kindred-systems.com).
@@ -112,6 +112,7 @@ Silo is a parts database system designed for managing CAD files, part numbers, a
- Open, save, and commit files directly to Silo
- Pull latest revisions and push changes
- View item metadata and revision history
- **Database Activity Panel** - Interactive dock panel for browsing, searching, and opening parts without leaving the 3D viewport. Includes search filtering, type filtering (part/assembly), a details pane showing metadata (part number, description, type, revision, projects), and direct open/info actions.
Silo documentation is available in the `mods/silo/` directory.
@@ -126,6 +127,7 @@ A comprehensive dark theme using the [Catppuccin Mocha](https://github.com/catpp
- Spreadsheet backgrounds and text
- Property editor and tree view
- All dialog and widget styling
- Tree view branch indicators using spanning lines (`├`, `└`, `│`) instead of disclosure arrows
The theme is automatically applied when using Kindred Create.
@@ -135,7 +137,7 @@ The theme is automatically applied when using Kindred Create.
### Prebuilt Binaries
Prebuilt packages for Linux are available on the [releases page](https://github.com/anthropics/create-0070/releases).
Prebuilt packages for Linux are available on the [releases page](https://git.kindred-systems.com/kindred/create/releases).
#### Debian/Ubuntu (.deb)
@@ -152,11 +154,51 @@ Or install directly with apt:
sudo apt install ./kindred-create_*.deb
```
#### AppImage
Download the `.AppImage` file from the releases page, make it executable, and run:
```bash
chmod +x KindredCreate-*.AppImage
./KindredCreate-*.AppImage
```
After installation, launch Kindred Create from your application menu or run `kindred-create` from the terminal.
### Building from Source
Kindred Create uses the same build system as FreeCAD. Build instructions for each platform:
Kindred Create uses [pixi](https://pixi.sh) for dependency management and CMake for building. Pixi handles all build dependencies automatically via conda packages.
#### Prerequisites
- [pixi](https://pixi.sh) (conda-based package manager)
- Git with submodule support
#### Build Steps
```bash
git clone --recursive ssh://git@git.kindred-systems.com:2222/kindred/create.git
cd create
pixi run configure
pixi run build
pixi run install
```
To launch the built application:
```bash
pixi run freecad
```
#### Platform Support
CMake presets are available for:
- **Linux** (x86-64, aarch64) - Clang compiler
- **macOS** (Intel, Apple Silicon) - Clang compiler
- **Windows** - MSVC compiler
See `CMakePresets.json` for platform-specific configuration. For general FreeCAD build guidance:
- [Linux](https://wiki.freecad.org/Compile_on_Linux)
- [Windows](https://wiki.freecad.org/Compile_on_Windows)
@@ -194,7 +236,13 @@ Configure the FreeCAD workbench with environment variables:
```
kindred-create/
├── src/ # FreeCAD core source
├── Mod/ # FreeCAD modules
├── App/ # Core application logic
│ ├── Base/ # Base classes and utilities
│ ├── Gui/ # GUI framework
│ │ └── Stylesheets/ # Theme stylesheets and assets
│ ├── Mod/ # FreeCAD modules (PartDesign, Assembly, Sketcher, etc.)
│ │ └── Create/ # Kindred Create module (loads addon workbenches)
│ └── 3rdParty/ # Vendored dependencies (OndselSolver, GSL)
├── mods/ # Kindred Create addon modules (git submodules)
│ ├── ztools/ # ztools workbench
│ │ ├── ztools/ # Workbench package
@@ -202,13 +250,20 @@ kindred-create/
│ │ │ └── ztools/ # Commands and resources
│ │ └── CatppuccinMocha/ # Theme preference pack
│ └── silo/ # Silo parts database
│ ├── cmd/ # Go entry points
│ ├── internal/ # Go packages
│ ├── pkg/freecad/ # FreeCAD workbench
── deployments/ # Docker configuration
└── resources/ # Branding and preferences
├── branding/ # Splash screens and logos
── preferences/ # Default preference packs
│ ├── cmd/ # Go server entry points
│ ├── internal/ # Go API, database, storage packages
│ ├── pkg/freecad/ # FreeCAD workbench (Python)
── deployments/ # Docker configuration
│ └── migrations/ # PostgreSQL migrations
├── resources/ # Branding and preferences
── branding/ # Splash screens and logos
│ ├── preferences/ # Default preference packs
│ └── icons/ # Application icons (16x16 to 512x512)
├── package/ # Packaging (debian, AppImage)
├── .gitea/workflows/ # CI/CD workflows (build, release)
├── CMakeLists.txt # Root CMake configuration
├── CMakePresets.json # Platform-specific CMake presets
└── pixi.toml # Pixi environment and dependency definition
```
The `mods/ztools` and `mods/silo` directories are git submodules. After cloning, initialize them with:
@@ -221,7 +276,9 @@ git submodule update --init --recursive
## Reporting Issues
When reporting issues:
Report issues at [git.kindred-systems.com/kindred/create/issues](https://git.kindred-systems.com/kindred/create/issues).
When reporting:
1. Specify whether the issue is with Kindred Create additions (ztools, Silo, theme) or base FreeCAD functionality
2. Include version info from `Help > About FreeCAD > Copy to clipboard`

View File

@@ -115,6 +115,8 @@ def _setup_silo_auth_panel():
panel = QtWidgets.QDockWidget("Database Auth", mw)
panel.setObjectName("SiloDatabaseAuth")
panel.setWidget(auth.widget)
# Keep the auth object alive so its QTimer isn't destroyed while running
panel._auth = auth
mw.addDockWidget(QtCore.Qt.RightDockWidgetArea, panel)
except Exception as e:
FreeCAD.Console.PrintLog(f"Create: Silo auth panel skipped: {e}\n")