Commit Graph

12 Commits

Author SHA1 Message Date
3c16dd4275 feat(core): add FeedController orchestration layer
Adds orchestration for feed reconciliation with context-driven updates:

- FeedController: holds context, debounces updates, reconciles sources
- ContextBridge: bridges context providers to controller
- ContextProvider: reactive + on-demand context value interface
- Branded ContextKey<T> for type-safe context keys

Moves source files to src/ directory and consolidates tests into
integration test.

Co-authored-by: Ona <no-reply@ona.com>
2026-01-18 00:58:29 +00:00
482c1c8b0f Resolve bun.lock conflict
Co-authored-by: Ona <no-reply@ona.com>
2026-01-17 11:50:41 +00:00
51749ad811 Include response body in API error messages
Co-authored-by: Ona <no-reply@ona.com>
2026-01-17 01:18:06 +00:00
6cf147989f Refactor WeatherKit client to injectable interface
- Add WeatherKitClient interface and DefaultWeatherKitClient class
- WeatherKitDataSource accepts either client or credentials
- Simplify tests by injecting mock client directly
- Update fixture generation script to use new client class

Co-authored-by: Ona <no-reply@ona.com>
2026-01-17 01:14:18 +00:00
850d1925b6 Add query() tests with mocked API response
Tests transformation logic including:
- Feed item type assignment
- Hourly/daily limits
- Timestamp from context
- Unit conversion (metric/imperial)
- Priority assignment
- Unique ID generation

Co-authored-by: Ona <no-reply@ona.com>
2026-01-17 01:09:39 +00:00
ceb9dbd576 Fix flaky test assertion on condition code
Co-authored-by: Ona <no-reply@ona.com>
2026-01-17 00:40:28 +00:00
494e211844 Add fixture generation instructions to README
Co-authored-by: Ona <no-reply@ona.com>
2026-01-17 00:38:15 +00:00
06c568ad69 Minify fixture and fix lockfile
Co-authored-by: Ona <no-reply@ona.com>
2026-01-17 00:37:22 +00:00
785cbefce4 Add WeatherKit data source package
Implements @aris/data-source-weatherkit for fetching weather data from
Apple WeatherKit REST API.

- WeatherKitDataSource class implementing DataSource interface
- Feed items: current, hourly, daily, and alerts
- Priority adjustment based on weather conditions and alert severity
- Unit conversion (metric/imperial)
- Response validation with arktype
- Test fixtures from real API responses

Co-authored-by: Ona <no-reply@ona.com>
2026-01-17 00:34:46 +00:00
c2f0b03924 Minify fixture JSON
Co-authored-by: Ona <no-reply@ona.com>
2026-01-17 00:07:22 +00:00
8ec8b9a13e Add @aris/data-source-tfl package
TfL data source for tube, overground, and Elizabeth line alerts.

- Fetches line statuses and filters to minor/major delays and closures
- Sorts alerts by severity, then by proximity to user location
- Caches station data after first fetch
- Uses arktype for API response validation
- Supports API injection for testing

Co-authored-by: Ona <no-reply@ona.com>
2026-01-16 23:57:29 +00:00
90fd137b77 initial commit 2026-01-16 00:56:55 +00:00