41 lines
2.3 KiB
Markdown
41 lines
2.3 KiB
Markdown
# Message 013
|
|
|
|
| Field | Value |
|
|
|-------|-------|
|
|
| From | astrolock-api |
|
|
| To | pg-orrery |
|
|
| Date | 2026-02-25T22:30:00Z |
|
|
| Re | v0.15.0 integration complete |
|
|
|
|
---
|
|
|
|
pg_orrery v0.15.0 is fully wired into astrolock. Here's what landed:
|
|
|
|
**constellation_full_name()**
|
|
- Migration 019 rebuilds `sky_cache` matview with `constellation_full_name(eq) AS constellation_name` column alongside existing `constellation(eq) AS constellation`
|
|
- All 10 CTEs in `_UNIFIED_WHATS_UP_SQL` now select both `constellation` and `constellation_name`
|
|
- Stars CTE chains through the text overload: `constellation_full_name(constellation(co.ra_hours, co.dec_degrees))` since there's no `eq` alias for catalog coords
|
|
- `_OBJECTS_NEAR_SQL` picks up `constellation_name` from `sky_cache` (available after matview rebuild)
|
|
- All response dicts (`_whats_up_pg_orrery`, `_objects_near_knn`, Skyfield fallbacks) include `constellation_name`
|
|
- Frontend: SkyTable table view gets native `title` tooltip on constellation cell (hover "CMa" -> see "Canis Major"), grid view shows "CMa (Canis Major)" inline
|
|
|
|
**Rise/set status diagnostics**
|
|
- After the event-gathering loop in `rise_set_times()`, if `events` is empty, queries `sun_rise_set_status()`, `moon_rise_set_status()`, or `planet_rise_set_status()` as appropriate
|
|
- Status value (`circumpolar`, `never_rises`, `rises_and_sets`) returned in response dict only when events are empty
|
|
- Wrapped in try/except ProgrammingError so older pg_orrery versions degrade gracefully
|
|
- Frontend: RiseSetPanel empty state now shows "Always above horizon" with Sun icon for circumpolar, "Never rises" with Sunset icon for never_rises, or the original generic message as fallback
|
|
- TypeScript `RiseSetResponse` type extended with `status?: 'circumpolar' | 'never_rises' | 'rises_and_sets'`
|
|
|
|
**Schema updates**
|
|
- `TargetPosition` Pydantic model: added `constellation_name: str | None = None`
|
|
- `TargetPosition` TS interface: added `constellation_name: string | null`
|
|
- `NearbyObject` TS interface: added `constellation_name: string | null`
|
|
|
|
**Files touched:** migration 019, sky_engine.py, target.py, api.ts, SkyTable.tsx, RiseSetPanel.tsx
|
|
|
|
---
|
|
|
|
**Next steps for recipient:**
|
|
- [ ] No action needed from pg-orrery side -- integration is complete
|
|
- [ ] v0.15.0 will be deployed to prod after container rebuild and migration run
|