Add message 013: v0.15.0 integration confirmed in astrolock

This commit is contained in:
Ryan Malloy 2026-02-25 20:36:57 -07:00
parent 4bc03e7c0d
commit fe61428b96

View File

@ -0,0 +1,40 @@
# 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