Skip to content

feat(webconfig): show claim status above the activity log#31

Merged
d4rken merged 1 commit into
devfrom
feat/claim-status-header
May 19, 2026
Merged

feat(webconfig): show claim status above the activity log#31
d4rken merged 1 commit into
devfrom
feat/claim-status-header

Conversation

@d4rken

@d4rken d4rken commented May 19, 2026

Copy link
Copy Markdown
Member

The Claim activity panel was a bare journalctl -u airplanes-claim.service tail. With airplanes-live/feed#100 (merged on the feed dev branch) the post-claim retry timer now stops, so the journal stays empty on already-claimed feeders and the panel renders (no log entries yet) — visually indistinguishable from a broken feeder.

This PR adds a Claim status header card above the journal stream, sourced from GET /api/identity. The endpoint now carries two new fields — claim_secret_updated_at (RFC3339 UTC mtime of the secret file) and claim_secret_version (from the version sidecar) — so the UI can render "Claimed ✓ — Last updated … — Version vN" without depending on journal retention. Both fields ship with stable zero values for unclaimed feeders rather than being omitted, so downstream consumers don't have to distinguish absence from empty.

The status card polls /api/identity every 5 s for the lifetime of the panel, with overlap and navigate-during-poll guards so a stale response can't clear the next panel's timer or trigger a stray auth redirect. The journal stream below is unchanged; logViewer was refactored into a small streamLog(slug) helper that both the generic log view and the new panel reuse.

The Claim activity panel was just a journalctl tail. Once feed PR #100's timer-stop ships, the journal becomes empty on already-claimed feeders, and the panel looks broken ("no log entries yet") even though the feeder is fine.

Add a Claim status header card sourced from GET /api/identity, which now carries the secret-file mtime + version sidecar so the UI can render "Claimed ✓, last updated …, version vN" without depending on journal retention. Polls every 5s for the lifetime of the panel with overlap + lifecycle guards so a stale response can't clear the next panel's timer or trigger a stray auth redirect.
@d4rken d4rken added the enhancement New feature or request label May 19, 2026
@d4rken d4rken merged commit b98459a into dev May 19, 2026
8 checks passed
@d4rken d4rken deleted the feat/claim-status-header branch May 19, 2026 09:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant