feat(create): server integration for silo viewer widgets #274

Merged
forbes merged 1 commits from feat/server-integration into main 2026-02-19 01:42:01 +00:00
Owner

Wire live data fetching, SSE subscriptions, and server write-back into the History, Metadata, and Dependency viewer widgets.

Changes

Server helpers (silo_viewers.py)

  • Lazy silo_commands import with offline fallback
  • _is_online(), _get_part_number(), offline banner helpers

SiloHistoryViewer

  • Refresh button: fetches live revisions via SiloClient.get_revisions()
  • SSE: revision_created signal auto-refreshes cards
  • Offline: banner shown, refresh disabled

SiloMetadataEditor

  • Server write-back: Save pushes via update_metadata, patch_lifecycle, patch_tags
  • SSE: item_updated refreshes form (skipped if local edits pending)
  • Offline: banner shown, save still works locally

SiloDependencyTable

  • Server resolution: resolve_dependencies() for UUID → availability check
  • Download button: fetches unresolved items via SiloSync.download_file()
  • Three-state icons: ✓ resolved, ↓ downloadable, ✗ missing
  • Refresh button: re-checks resolution status

Submodule bump

  • mods/silofeat/kc-metadata-api tracking silo-client PR kindred/silo-client#19
  • New SiloClient methods: get_metadata, update_metadata, patch_lifecycle, patch_tags, resolve_dependencies

Closes kindred/silo-mod#43

Wire live data fetching, SSE subscriptions, and server write-back into the History, Metadata, and Dependency viewer widgets. ## Changes ### Server helpers (`silo_viewers.py`) - Lazy `silo_commands` import with offline fallback - `_is_online()`, `_get_part_number()`, offline banner helpers ### SiloHistoryViewer - **Refresh button**: fetches live revisions via `SiloClient.get_revisions()` - **SSE**: `revision_created` signal auto-refreshes cards - **Offline**: banner shown, refresh disabled ### SiloMetadataEditor - **Server write-back**: Save pushes via `update_metadata`, `patch_lifecycle`, `patch_tags` - **SSE**: `item_updated` refreshes form (skipped if local edits pending) - **Offline**: banner shown, save still works locally ### SiloDependencyTable - **Server resolution**: `resolve_dependencies()` for UUID → availability check - **Download button**: fetches unresolved items via `SiloSync.download_file()` - **Three-state icons**: ✓ resolved, ↓ downloadable, ✗ missing - **Refresh button**: re-checks resolution status ### Submodule bump - `mods/silo` → `feat/kc-metadata-api` tracking silo-client PR kindred/silo-client#19 - New SiloClient methods: `get_metadata`, `update_metadata`, `patch_lifecycle`, `patch_tags`, `resolve_dependencies` Closes kindred/silo-mod#43
forbes added 1 commit 2026-02-19 01:36:20 +00:00
feat(create): server integration for silo viewer widgets
All checks were successful
Build and Test / build (pull_request) Successful in 29m45s
264e82179d
Wire live data fetching, SSE subscriptions, and server write-back into
the History, Metadata, and Dependency viewer widgets.

Changes:
- Add server integration helpers (_init_server, _is_online,
  _get_part_number, offline banner) with lazy silo_commands import
- SiloHistoryViewer: Refresh button fetches live revisions via
  SiloClient.get_revisions(); SSE revision_created auto-refreshes
- SiloMetadataEditor: Save pushes to server (update_metadata,
  patch_lifecycle, patch_tags); SSE item_updated refreshes form
  when no local edits pending; offline banner
- SiloDependencyTable: Server-side UUID resolution via
  resolve_dependencies(); Download button for unresolved items;
  Refresh re-checks status; three-state icons (resolved/
  downloadable/missing)
- All viewers show 'Offline — showing cached data' banner when
  disconnected and disable server-dependent controls

Bump silo submodule to track new silo-client API methods:
  get_metadata, update_metadata, patch_lifecycle, patch_tags,
  resolve_dependencies (silo-client PR #19)

Closes kindred/silo-mod#43
forbes merged commit 967e434607 into main 2026-02-19 01:42:01 +00:00
forbes deleted branch feat/server-integration 2026-02-19 01:42:01 +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#274