Repository navigation
Add the desk as the landing page with the six queues - #2568
Merged
Merged
Conversation
This was referenced Oct 19, 2026
pournasserian
added a commit
that referenced
this pull request
Oct 19, 2026
… page (#2647) Closes #2631 ## What A Low finding from the independent review of #2568 (F-DSK, #2422). A `page` that didn't parse, such as `abc` or `99999999999`, answered an empty 500 on the desk and on `/security`. - The desk and the security view read `page` as text and parse it with `int.TryParse`. A value that doesn't parse shows the first page, as 0 and negative values already did. ## Why - **Text, not `int?`.** Blazor throws while binding a query value that doesn't parse, before the page can fall back. Reading text keeps the fallback in the page. ## Tests - bUnit: `page=abc`, `page=99999999999` and an empty `page` show the first page on both views. - Host: the same addresses answer 200 on both views. `dotnet build -warnaserror`, the unit and bUnit suite and the desk host tests pass locally. No new package and no new project reference. ## Checklist - [x] Linked to an issue a maintainer has confirmed - [x] Targets `v2` - [x] Tests or docs updated where behaviour changed - [x] No tool-generated co-author trailers or footers
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #2562
What
The first slice of F-DSK (#2422): the desk is the landing page after sign-in (DSK-01) and shows the six queues with their counts (DSK-02).
FluentCMS.Core.ChangeSets):IChangeSetLists, separate fromIChangeSetDirectory.ListAsync(ChangeSetListQuery)returns one page ofChangeSetSummaryand the total, andCountAsyncreturns only the total.ChangeSetListQuerynames the states, an optionalEnteredSince, newest or oldest first, an offset and a limit (1 to 200). A bad window fails withoffset_invalidorlimit_invalid, and no states withlist_states_missing.ChangeSetSummaryhas the id, rationale, initiator, state, item count, the set it reverts,OpenedAtandStateSince.FluentCMS.Core.Desk):DeskQueueandIDeskQueues, which define each queue once, for this screen and for the agents' desk tools in a later slice.IEntityFacts.StaleAsync()from Flag stale facts when they are read #2550.ChangeSetListsin its own file.ChangeSetDirectoryis untouched.Desk.razorat/replaces the placeholder home page./?queue=checks-failed&page=2) and the current one hasaria-current="page".Why
Choices worth a look:
ChangeSetDirectoryto its lane. The query is SQL because EF Core will not compare or order aDateTimeOffseton SQLite.AuditReaderandAgentActivityalready rely on stored UTC text sorting in time order./agentsand/users. The set view's diff will be an interactive island when it needs progressive rendering.DeskQueues.RecentWithinis the one place to change it.Tests
Unit:
DeskQueuesTests: each change set queue selects its state, window and order. The counts cover all six queues. Stale facts are paged in their order. A failed fact read fails the counts. Stale facts is not a queue of change sets.DeskTests:Integration, each on SQLite and PostgreSQL:
Integration, host:
/with the six queues and their counts, and the sets awaiting review are listed. A queue with nothing in it says so.dir="rtl".dotnet build -warnaserrorand the full suite pass locally against apostgres:17container as well as SQLite. No new package and no new project reference.Checklist
v2