Skip to content

Latest commit

 

History

History
142 lines (107 loc) · 4.72 KB

File metadata and controls

142 lines (107 loc) · 4.72 KB

v0.9.0 - Remote Source Intelligence

Theme

Enable users to discover, validate, and manage multiple remote data sources with intelligent health checking and collection browsing.

Features

ID Feature Complexity Status
F-045 Remote Source Health Check Medium ✅ Complete
F-046 Collection Discovery UI Medium ✅ Complete
F-047 Remote Source Management Medium ✅ Complete
F-062 Collection Statistics Summary Small ✅ Complete
F-063 Collection Export Medium ✅ Complete

Overview

This milestone transforms itemdeck from a single-source viewer into a multi-source collection browser:

  1. Health Checking - Validate sources before loading with accessibility and schema checks
  2. Collection Discovery - Browse available collections from repository manifests
  3. Source Management - Add, remove, and switch between multiple data sources
  4. Collection Statistics - Display collection composition insights
  5. Collection Export - Export collection data in multiple formats

Key Changes

Before v0.9.0

  • Single hardcoded data source
  • No pre-load validation
  • Schema errors at runtime
  • No collection browsing
  • No source persistence

After v0.9.0

  • User-managed source list (persisted)
  • Health check before load
  • Schema compatibility warnings
  • Collection browser from manifest
  • Quick source switching

Architecture

New Files

src/
├── hooks/
│   ├── useSourceHealth.ts      # F-045
│   └── useManifest.ts          # F-046
├── stores/
│   └── sourceStore.ts          # F-047
├── services/
│   ├── sourceHealth.ts         # F-045
│   └── sourceValidation.ts     # F-047
├── components/
│   ├── SourceHealth/           # F-045
│   │   └── SourceHealth.tsx
│   ├── CollectionBrowser/      # F-046
│   │   ├── CollectionBrowser.tsx
│   │   ├── CollectionCard.tsx
│   │   └── CollectionSwitcher.tsx
│   └── SourceManager/          # F-047
│       ├── SourceManager.tsx
│       ├── SourceList.tsx
│       └── AddSourceDialog.tsx
└── types/
    └── manifest.ts             # F-046

Modified Files

  • src/config/dataSource.ts - Add CDN URL builders
  • src/hooks/useCollection.ts - Integrate health check
  • src/components/Sidebar/ - Add source management
  • src/components/SettingsPanel/ - Add source settings

Dependencies

  • Requires: v0.7.0 (Schema v2 with schemaVersion)
  • Requires: v0.8.0 (if any prerequisites defined)
  • Optional: None

Key Decisions

  • CDN First: jsDelivr as primary, raw GitHub as fallback
  • Public Only: No authentication for private repos (scope limited)
  • localStorage: Source list persisted client-side
  • 5-Minute Cache: Health check results cached briefly

Success Criteria

  • Sources persist across sessions
  • Health check completes in <500ms
  • Schema compatibility shown before load
  • Collection browser displays all manifest collections
  • Source switching works seamlessly
  • No breaking changes to existing functionality

Draft Release Notes

Added

  • Source health checking with accessibility and schema validation
  • Collection browser for discovering collections from repository manifests
  • Source management panel for adding, removing, and switching sources
  • Quick source switcher in header/sidebar
  • Health status indicators (healthy/degraded/unavailable)
  • jsDelivr CDN integration for faster, rate-limit-free fetching
  • Collection statistics bar showing counts, ranges, and distributions
  • Collection export to JSON, CSV, and Markdown formats

Changed

  • Default to CDN URLs instead of raw GitHub URLs
  • Collection loading preceded by health check
  • Settings panel includes source management section

Technical

  • useSourceHealth hook for health checking
  • useManifest hook for manifest discovery
  • sourceStore Zustand store for source persistence
  • SourceHealth component for status display
  • CollectionBrowser component for collection discovery
  • SourceManager component for source CRUD

Related Documentation


Status: Complete