πŸ“‹ What was this drill?

Drill: 8 states: one table component, all 8 states (loading skeleton, empty, error, partial, filtered-empty, sorted, selected, overflow). Each state must be correct.

Interpretation: Built as Fenris, a satellite ground-station contact schedule for a 12-sat smallsat constellation (station GC-3 Reykjavik) β€” an identical 8-column contract across all 8 state panels, with shape-divorced status vocabulary (filled dot / ring / pulsing dot / rotated square across only 2 hues) and dropout rows that preserve failure context (lost-time + % of pass completed). Light dev-tool operator aesthetic: Inter + JetBrains Mono, 13px body, hairline dividers, one indigo accent; mobile prunes columns via triple-hide and re-surfaces them as a mono subline under each satellite name.

Fenris Ground Segment Β· GC-3 ReykjavΓ­k Β· 64.13Β°N 21.90Β°W

Contact Schedule

Satellite passes assigned to station GC-3. Times UTC, derived from TLE epoch 2026-09-04 22:31.

Scheduler v14.2 Β· dish D2-A Β· S/X/Ka
next AOS 11:03:18 Β· 22 contacts planned today
State 01 Β· Loading

Fetching schedule

First paint after station handover. Skeleton mirrors the live column contract β€” no layout shift when rows land.

syncing 3 of 8 feeds
Contact Window Max el Β° Band Rate Mb/s Size GB Status
State 02 Β· Empty

No contacts scheduled

What a fresh station looks like before the planner assigns traffic β€” not an error, just nothing yet.

Contact Window Max el Β° Band Rate Mb/s Size GB Status
Empty station Β· 0 of 22 passes assigned

GC-3 has no assigned contacts yet

Not an error β€” the constellation is passing, but Fenris Ops hasn't assigned traffic to this station yet. The planner re-runs every 4 hours from the latest TLE set and prefers GC-3 for high-el S-band windows.

State 03 Β· Error

Contact list failed to load

Cause first, reassurance second, recovery third. The table stays honest β€” nothing is rendered from cache.

State 04 Β· Partial

Schedule with stale ephemeris

Partial data is data β€” the banner explains what's hidden, the rows prove what survived.

Contact Window Max el Β° Band Rate Mb/s Size GB Status
FENRIS-4
54234 Β· 2025-045D
34.2Β° Β· S Β· 1.4 GB
06:12:40 β†’ 06:27:55 34.2S2.41.4
Downlinked
06:27 Β· 100%
HLO-2 (hosted)
54891 Β· 2026-014C
61.7Β° Β· X Β· 7.8 GB
07:41:03 β†’ 07:56:11 61.7X9.67.8
Tracking
on air Β· 61%
FENRIS-9
54239 Β· 2025-045J
27.8Β° Β· S Β· 0.9 GB
08:18:22 β†’ 08:29:47 27.8S2.40.9
Dropout
lost 08:23 Β· 41%
FENRIS-1
54231 Β· 2025-045A
48.0Β° Β· X Β· 6.2 GB
08:55:10 β†’ 09:11:36 48.0X9.66.2
Downlinked
09:11 Β· 100%
FENRIS-11
54241 Β· 2025-045L
39.5Β° Β· Ka Β· 18.4 GB
10:03:58 β†’ 10:19:14 39.5Ka50.018.4
Scheduled
auto-start
Showing 14 of 22 contacts Β· 8 hidden pending TLE refresh
State 05 Β· Filtered Empty

No matches for these filters

The empty result names the exact filter chain, offers the likely fix, and always leaves an exit.

Band Ka Status Downlinked
Contact Window Max el Β° Band Rate Mb/s Size GB Status
0 of 22 contacts match Β· 2 filters active

No Ka-band downlinks completed this week

Commissioning traffic is riding S-band right now; the first Ka downlinks are queued for the 09-07 pass set. Try Band Β· S, or clear filters to see all 22 contacts.

State 06 Β· Sorted

Sorted by max elevation

Header caret states the axis; the removable chip restates it and offers the escape hatch.

Max el β€” highest first
Contact Window Max el Β°β–Ό Band Rate Mb/s Size GB Status
HLO-2 (hosted)
54891 Β· 2026-014C
07:41:03 β†’ 07:56:11 82.4X9.67.8
Tracking
on air Β· 61%
FENRIS-1
54231 Β· 2025-045A
08:55:10 β†’ 09:11:36 61.7X9.66.2
Downlinked
09:11 Β· 100%
FENRIS-11
54241 Β· 2025-045L
10:03:58 β†’ 10:19:14 55.0Ka50.018.4
Scheduled
auto-start
FENRIS-4
54234 Β· 2025-045D
06:12:40 β†’ 06:27:55 43.8S2.41.4
Downlinked
06:27 Β· 100%
FENRIS-9
54239 Β· 2025-045J
08:18:22 β†’ 08:29:47 27.8S2.40.9
Dropout
lost 08:23 Β· 41%
State 07 Β· Selected

3 contacts selected

Tri-state header checkbox, mixed-status selection honestly summarized β€” the on-air contact is locked, not actionable.

Contact Window Max el Β° Band Rate Mb/s Size GB Status
FENRIS-9
54239 Β· 2025-045J
08:18:22 β†’ 08:29:47 27.8S2.40.9
Dropout
lost 08:23 Β· 41%
FENRIS-6
54236 Β· 2025-045F
31.6Β° Β· S Β· 1.1 GB
09:34:51 β†’ 09:48:02 31.6S2.41.1
Scheduled
auto-start
HLO-2 (hosted)
54891 Β· 2026-014C
07:41:03 β†’ 07:56:11 82.4X9.67.8
Tracking
on air Β· 61%
FENRIS-12
54242 Β· 2025-045M
11:03:18 β†’ 11:21:44 38.1X9.64.7
Scheduled
auto-start
FENRIS-4
54234 Β· 2025-045D
34.2Β° Β· S Β· 1.4 GB
06:12:40 β†’ 06:27:55 34.2S2.41.4
Downlinked
06:27 Β· 100%
3 contacts selected Β· 1 on-air (locked) Β· 2 actionable
State 08 Β· Overflow

Full-day schedule, 148 contacts

Honest range, fixed page size, ellipsis pagination β€” no infinite scroll pretending the list ends.

12 rows / page
Contact Window Max el Β° Band Rate Mb/s Size GB Status
FENRIS-2
54232 Β· 2025-045B
29.4Β° Β· S Β· 1.0 GB
05:47:12 β†’ 06:01:3829.4S2.41.0
Downlinked
06:01 Β· 100%
FENRIS-4
54234 Β· 2025-045D
34.2Β° Β· S Β· 1.4 GB
06:12:40 β†’ 06:27:5534.2S2.41.4
Downlinked
06:27 Β· 100%
FENRIS-7
54237 Β· 2025-045G
22.6Β° Β· S Β· 0.7 GB
06:58:19 β†’ 07:10:0222.6S2.40.7
Dropout
lost 07:03 Β· 33%
HLO-2 (hosted)
54891 Β· 2026-014C
82.4Β° Β· X Β· 7.8 GB
07:41:03 β†’ 07:56:1182.4X9.67.8
Tracking
on air Β· 61%
FENRIS-9
54239 Β· 2025-045J
27.8Β° Β· S Β· 0.9 GB
08:18:22 β†’ 08:29:4727.8S2.40.9
Dropout
lost 08:23 Β· 41%
FENRIS-1
54231 Β· 2025-045A
48.0Β° Β· X Β· 6.2 GB
08:55:10 β†’ 09:11:3648.0X9.66.2
Downlinked
09:11 Β· 100%
FENRIS-6
54236 Β· 2025-045F
31.6Β° Β· S Β· 1.1 GB
09:34:51 β†’ 09:48:0231.6S2.41.1
Scheduled
auto-start
FENRIS-10
54240 Β· 2025-045K
36.9Β° Β· X Β· 5.4 GB
09:57:44 β†’ 10:12:0936.9X9.65.4
Scheduled
auto-start
FENRIS-11
54241 Β· 2025-045L
55.0Β° Β· Ka Β· 18.4 GB
10:03:58 β†’ 10:19:1455.0Ka50.018.4
Scheduled
auto-start
FENRIS-3
54233 Β· 2025-045C
25.3Β° Β· S Β· 0.8 GB
10:26:37 β†’ 10:39:5025.3S2.40.8
Scheduled
auto-start
FENRIS-12
54242 Β· 2025-045M
38.1Β° Β· X Β· 4.7 GB
11:03:18 β†’ 11:21:4438.1X9.64.7
Scheduled
auto-start
FENRIS-5
54235 Β· 2025-045E
30.8Β° Β· S Β· 1.2 GB
11:44:02 β†’ 11:58:2730.8S2.41.2
Scheduled
auto-start
Showing 1–12 of 148 contacts Β· page 1 of 13