- Add docs/src/reference/cpp-file-origin.md: full API reference for the
FileOrigin abstract interface, OriginType/ConnectionState enums,
LocalFileOrigin behavior, and ownership detection algorithm
- Add SUMMARY.md entry under new 'C++ API Reference' section
- Add tests/test_kindred_pure.py: 78 pure-logic unit tests covering
update_checker, datum_commands, spreadsheet_commands, silo_commands,
silo_start, and silo_origin (no FreeCAD binary required)
- Add tests/run_kindred_tests.py: two-tier test runner with CI exit codes
- Add pixi task 'test-kindred' for running addon tests
- Add CI/CD step in build.yml to run addon tests before build
Closes#130
git sparse-checkout fails on individual files (README.md, ROADMAP.md)
with 'is not a directory' error. A shallow clone is simpler and the
silo repo is small enough that it's fine.
- Change runs-on from ubuntu-latest to docs
- Use internal gitea:3000 URLs for clone and push
- Remove unnecessary apt-get/CA cert steps (docs runner has access)
- Fix push to use authenticated URL via RELEASE_TOKEN
Points mods/silo to silo-mod@8937cb5 which includes the Silo-aware
start page (silo_start.py + InitGui.py override). The previous ref
pointed to a commit from the wrong repo (kindred/silo instead of
kindred/silo-mod), causing checkout failures.
The job containers don't trust the Cloudflare origin cert by
default. Install and update ca-certificates as the first step
so git can clone over HTTPS before actions/checkout runs.
Replace all GitHub action URLs with self-hosted mirrors at
git.kindred-systems.com/actions/:
- checkout@v4
- cache/restore@v4, cache/save@v4
- upload-artifact@v3
- download-artifact@v3
This removes the external GitHub dependency from CI/CD workflows.
Updates the silo submodule to include the new dual-mode start page:
- Online: QWebEngineView loads the Silo web app
- Offline: native Qt fallback with recent files and connectivity status
The Start_Start command is overridden from the Silo mod's InitGui.py,
keeping the upstream Start module untouched for easier rebasing.
mdBook v0.5 upgraded from Font Awesome 4 to 6 (SVG-based).
The old fa-code-branch class no longer exists. Use fas-code-fork
as recommended by the mdBook docs for non-GitHub repos.
The act_runner and gitea containers share the git_default Docker
network. Use http://gitea:3000 (container DNS name) instead of
localhost, which resolves to the runner container itself.
The docs runner is on the same host as Gitea, so clone via
http://localhost:3000 instead of the public HTTPS URL which
fails to connect (port 443 unreachable from the runner).
The docs runner is a bare host without Node.js, so actions/checkout@v4
fails with 'Cannot find: node in PATH'. Replace with a plain git
fetch/checkout that works without Node.
- Add docs/book.toml with coal theme, repo link, and custom CSS
- Add docs/src/SUMMARY.md with navigation structure
- Create 16 content pages across guide/, architecture/, development/, reference/
- Add docs/theme/kindred.css with minimal sidebar overrides
- Add .gitea/workflows/docs.yml for auto-deploy on push to main
- Add docs/book/ to .gitignore
Pages are populated with real content from the codebase where possible.
Remaining pages have TODO markers for future content.
Add support for missing datum and origin object types in the Assembly
solver's findPlacement() function:
- App::Plane: handle XY/XZ/YZ origin planes with correct rotations
- App::Point: handle origin point (identity placement)
- PartDesign::Line: extract edge midpoint and direction from shape
- PartDesign::Point: extract vertex position from shape geometry
instead of returning raw obj.Placement
- Add obj.Shape.isNull() validation to all PartDesign datum branches
- PartDesign::Plane falls back to obj.Placement on invalid shape
instead of falling through to App.Placement()
Closes#55
- Add QGroupBox::indicator styles matching QCheckBox::indicator for
consistent checkbox appearance in checkable group boxes (#44)
- Add QLabel[haslink] color rule using Catppuccin lavender (#b4befe)
so hyperlinks render correctly in the dark theme (#43)
- Add checkLogging and checkShowReportViewOnError defaults to the
KindredCreate preference pack (#41)
Closes#41, closes#43, closes#44