Skip to content

Core and CLI: drop activations whose end has passed - #203

Merged
FrodeHus merged 2 commits into
mainfrom
fix/lapsed-activations-core-cli
Sep 24, 2026
Merged

FrodeHus merged 2 commits into
mainfrom
fix/lapsed-activations-core-cli

Conversation

@FrodeHus

Copy link
Copy Markdown
Owner

Part of #202 (Core and CLI parity for #201). The Windows app part of #202 remains open.

Changes

  • Elevate.Core (C#): ActiveAssignment.HasLapsed(DateTimeOffset now): Active or Scheduled with an end at or before now; pending approval, provisioning and failed never lapse. Mirrors the Swift hasLapsed(at:).
  • CLI: ElevateSession.DropLapsedAssignments(now); elevate watch calls it before every redraw, so a failed re-read (a sign-in it cannot renew silently, a dropped network) no longer leaves ended activations in the table.
  • elevate status needed nothing: each run starts with no rows and lists only what it reads.

Tests

  • New LapsedAssignmentTests (Core) and SessionTests.DropLapsedAssignmentsRemovesOnlyRowsWhoseEndHasPassed (CLI).
  • Core 565 passing (golden state files unchanged: a method is not serialised), CLI 225 passing, all run on macOS.
  • Not verified by hand: elevate watch across a real failed re-read.

Note

Both this PR and #201 add a ### Fixed block under ## [Unreleased] in CHANGELOG.md; whichever merges second needs the two merged into one block.

Port of the macOS fix in #201. ActiveAssignment.HasLapsed in the C# Core;
ElevateSession.DropLapsedAssignments, called by 'elevate watch' before every
redraw, so a failed re-read no longer leaves ended activations in the table.
@FrodeHus
FrodeHus merged commit de628d8 into main Sep 24, 2026
17 checks passed
@FrodeHus
FrodeHus deleted the fix/lapsed-activations-core-cli branch September 24, 2026 05:10
FrodeHus added a commit that referenced this pull request Sep 24, 2026
* Core and CLI: drop activations whose end has passed

Port of the macOS fix in #201. ActiveAssignment.HasLapsed in the C# Core;
ElevateSession.DropLapsedAssignments, called by 'elevate watch' before every
redraw, so a failed re-read no longer leaves ended activations in the table.

* Windows: drop activations whose end has passed on the clock tick

Port of the macOS fix in #201, using ActiveAssignment.HasLapsed from #203. A
refresh that cannot read a tenant keeps its known rows; the 30 s clock tick
now drops rows a minute past their end, stops their propagation watches and
reschedules the toasts.

* Windows: show a tenant that needs a sign-in to refresh with a caution warning

Port of the macOS change in #201. The hint shared the grey info glyph with
plain limitations, so a tenant whose rows had gone stale looked fine; it now
shows the warning triangle in the caution colour, and the screen reader says
"Sign-in needed".

* Changelog: Windows sign-in hint

* Windows: use the macOS orange for the sign-in hint

Fluent's caution colour turns yellow in dark mode; an app theme brush with the
macOS system orange keeps the warning the same on both platforms.

* Windows: state what the sign-in hint shows in high contrast

On the VM the header glyph renders in the window text colour in high contrast
whatever brush is set (a literal magenta did not show), so the entry now names
that colour instead of the highlight colour it never displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant