feat: native Qt start panel + kindred:// URL scheme #169

Merged
forbes merged 2 commits from feat/native-start-panel-167 into main 2026-02-10 16:38:51 +00:00
Owner

Summary

Replaces the QWebEngineView-based start page with a rich native Qt panel that fetches data directly from the Silo REST API. QWebEngineView (PySide6.QtWebEngineWidgets) is not available on conda-forge for Qt6, so the start page was always falling back to a bare offline widget showing only a status banner and recent files.

Also adds kindred:// URL scheme support so users can open items in Create from a web browser.

Changes

Native Start Panel (mods/silo/freecad/silo_start.py)

  • Database Items list with debounced search — fetches from SiloClient.list_items()
  • Recent Files panel from FreeCAD preferences
  • Real-time Activity Feed via SSE (SiloEventListener signals)
  • Context menu: Open in Create, Open in Browser, Copy Part Number
  • Open in Browser button via QDesktopServices.openUrl()
  • Catppuccin Mocha dark theme styling
  • Removed dead QWebEngineView / _SiloPage code paths

kindred:// URL Scheme

  • silo_commands.py: Added handle_kindred_url() — parses kindred://item/{part_number} and calls _sync.open_item()
  • kindred-create.desktop: Changed %F%U, added x-scheme-handler/kindred MIME type
  • MainWindow.cpp: Extended processMessages() to detect kindred:// URLs in IPC messages and dispatch to Python
  • InitGui.py: Added startup hook for cold-start kindred:// URL arguments

Submodule Note

The mods/silo submodule points to branch feat/native-start-panel-167 on silo-mod — that branch must be merged first or simultaneously.

Testing

  1. Launch Kindred Create → Start page shows database items, recent files, and activity feed
  2. Type in the search field → items list filters with 300ms debounce
  3. Double-click an item → opens in Create
  4. Right-click → context menu with Open in Create / Open in Browser / Copy Part Number
  5. Open in Browser button → launches system browser to Silo web UI
  6. SSE events → activity feed updates in real-time
  7. kindred-create kindred://item/PN-001 from terminal → opens item (running instance via IPC, or cold start)

Closes #167

## Summary Replaces the QWebEngineView-based start page with a rich native Qt panel that fetches data directly from the Silo REST API. `QWebEngineView` (`PySide6.QtWebEngineWidgets`) is not available on conda-forge for Qt6, so the start page was always falling back to a bare offline widget showing only a status banner and recent files. Also adds `kindred://` URL scheme support so users can open items in Create from a web browser. ## Changes ### Native Start Panel (`mods/silo/freecad/silo_start.py`) - **Database Items** list with debounced search — fetches from `SiloClient.list_items()` - **Recent Files** panel from FreeCAD preferences - **Real-time Activity Feed** via SSE (`SiloEventListener` signals) - **Context menu**: Open in Create, Open in Browser, Copy Part Number - **Open in Browser** button via `QDesktopServices.openUrl()` - Catppuccin Mocha dark theme styling - Removed dead `QWebEngineView` / `_SiloPage` code paths ### `kindred://` URL Scheme - **`silo_commands.py`**: Added `handle_kindred_url()` — parses `kindred://item/{part_number}` and calls `_sync.open_item()` - **`kindred-create.desktop`**: Changed `%F` → `%U`, added `x-scheme-handler/kindred` MIME type - **`MainWindow.cpp`**: Extended `processMessages()` to detect `kindred://` URLs in IPC messages and dispatch to Python - **`InitGui.py`**: Added startup hook for cold-start `kindred://` URL arguments ### Submodule Note The `mods/silo` submodule points to branch `feat/native-start-panel-167` on `silo-mod` — that branch must be merged first or simultaneously. ## Testing 1. Launch Kindred Create → Start page shows database items, recent files, and activity feed 2. Type in the search field → items list filters with 300ms debounce 3. Double-click an item → opens in Create 4. Right-click → context menu with Open in Create / Open in Browser / Copy Part Number 5. `Open in Browser` button → launches system browser to Silo web UI 6. SSE events → activity feed updates in real-time 7. `kindred-create kindred://item/PN-001` from terminal → opens item (running instance via IPC, or cold start) Closes #167
forbes added 1 commit 2026-02-10 16:37:51 +00:00
feat: native Qt start panel + kindred:// URL scheme (#167)
Some checks failed
Build and Test / build (pull_request) Has been cancelled
8b2ce4b73a
Replace QWebEngineView-based start page with a rich native Qt panel.
QWebEngineView (PySide6.QtWebEngineWidgets) is not available on
conda-forge for Qt6, so the start page was always falling back to a
bare offline widget.

Start panel (silo_start.py):
- Database Items list with search from Silo REST API
- Recent Files from FreeCAD preferences
- Real-time Activity Feed via SSE (SiloEventListener)
- Context menu: Open in Create, Open in Browser, Copy Part Number
- 'Open in Browser' button via QDesktopServices
- Catppuccin Mocha dark theme

kindred:// URL scheme:
- Desktop file registers x-scheme-handler/kindred MIME type
- MainWindow::processMessages() dispatches kindred:// URLs to Python
- handle_kindred_url() in silo_commands.py opens items by part number
- InitGui.py handles kindred:// URLs on cold start via QTimer

Closes #167
forbes added 1 commit 2026-02-10 16:38:39 +00:00
Merge branch 'main' into feat/native-start-panel-167
Some checks failed
Build and Test / build (pull_request) Has been cancelled
c822fad5e1
forbes merged commit 460a1e9038 into main 2026-02-10 16:38:51 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kindred/create#169