Files
create/docs/ARCHITECTURE.md
forbes a2200b4042
Some checks failed
Build and Test / build (pull_request) Has been cancelled
docs: split REPOSITORY_STATE.md into topic files
Replace the monolithic REPOSITORY_STATE.md with four focused files:

- OVERVIEW.md: metadata, submodule pins, doc index
- ARCHITECTURE.md: bootstrap flow, source layout
- COMPONENTS.md: ztools, Silo, Origin commands, theme, icons
- KNOWN_ISSUES.md: bugs, incomplete features, next steps

Updates reflected in the split:
- Silo auth: corrected from 'not implemented' to 'local auth
  complete; LDAP/OIDC pending infrastructure'
- CSRF: corrected from 'not implemented' to 'implemented (nosurf)'
- Silo commands: 14 (was 13, added Silo_Auth)
- New Origin commands section (5 C++ commands)
- New icon infrastructure section with missing icon tracking
- New issues: Newton-Raphson convergence fix (#12), Assembly
  restore crash fix (#13), missing Silo icons (#11)
- Updated submodule pins (silo 27e112e, OndselSolver 5d1988b)
2026-02-06 10:43:34 -06:00

2.7 KiB
Raw Blame History

Architecture

Bootstrap flow

FreeCAD startup
  └─ src/Mod/Create/Init.py
       └─ setup_kindred_addons()
            ├─ exec(mods/ztools/ztools/Init.py)
            └─ exec(mods/silo/pkg/freecad/Init.py)

  └─ src/Mod/Create/InitGui.py
       ├─ setup_kindred_workbenches()
       │    ├─ exec(mods/ztools/ztools/InitGui.py)
       │    │    ├─ registers ZToolsWorkbench
       │    │    └─ installs _ZToolsPartDesignManipulator (global)
       │    └─ exec(mods/silo/pkg/freecad/InitGui.py)
       │         └─ registers SiloWorkbench
       └─ Deferred setup (QTimer):
            ├─ 1500ms: _setup_silo_auth_panel()    → "Database Auth" dock
            ├─ 2000ms: _setup_silo_menu()           → SiloMenuManipulator
            ├─ 3000ms: _check_silo_first_start()    → settings prompt
            └─ 4000ms: _setup_silo_activity_panel() → "Database Activity" dock

Key source layout

src/Mod/Create/              Kindred bootstrap module (Python)
  ├── Init.py                Adds mods/ addon paths, loads Init.py files
  └── InitGui.py             Loads workbenches, installs Silo manipulators

src/Gui/FileOrigin.h/.cpp           FileOrigin base class + LocalFileOrigin
src/Gui/CommandOrigin.cpp            Origin_Commit/Pull/Push/Info/BOM commands
src/Gui/OriginManager.h/.cpp        Origin lifecycle management
src/Gui/OriginSelectorWidget.h/.cpp  UI for origin selection

mods/ztools/                 [submodule] ztools workbench
  ├── ztools/InitGui.py      ZToolsWorkbench + PartDesign manipulator
  ├── ztools/ztools/
  │   ├── commands/          Datum, pattern, pocket, assembly, spreadsheet
  │   ├── datums/core.py     Datum creation via Part::AttachExtension
  │   └── resources/         Icons, theme utilities
  └── CatppuccinMocha/       Theme preference pack (QSS)

mods/silo/                   [submodule] Silo parts database
  ├── cmd/                   Go server entry points
  ├── internal/              Go API, database, auth, storage packages
  ├── pkg/freecad/           FreeCAD workbench (Python)
  │   ├── InitGui.py         SiloWorkbench
  │   ├── silo_commands.py   Commands + SiloClient API
  │   └── silo_origin.py     FileOrigin backend for Silo
  ├── pkg/calc/              LibreOffice Calc extension (Python)
  ├── deployments/           Docker compose configuration
  └── migrations/            PostgreSQL schema migrations (001010)

src/Gui/Stylesheets/         QSS themes and SVG assets
resources/preferences/       Canonical preference pack (KindredCreate)

See INTEGRATION_PLAN.md for architecture layers and phase status.