Skip to content

Show the check run on the set view and submit an open set - #2607

Merged
pournasserian merged 1 commit into
v2from
2603-set-checks
Oct 19, 2026
Merged

pournasserian merged 1 commit into
v2from
2603-set-checks

Conversation

@pournasserian

Copy link
Copy Markdown
Member

Closes #2603

What

A follow-up to the set view (#2574) in F-DSK (#2422). The set view shows the check results that #2575 now stores with each set (CHK-03, DSK-03), and a person can submit an open set.

  • Checks card (IChangeSetChecks.GetAsync):
    • The latest run's overall status, number, whether it ran on submit or in the background, when it finished and its model cost.
    • Each checked item with every check's status (passed, warning, failed, needs review) and whether it blocks or warns. Failures come first. Each finding has its message, field pointer and excerpt.
    • Problems that kept the engine from checking an item.
    • While the run is still going, the job's progress, such as "3 of 10 items done".
    • Before a submission, it says the checks run when the set is submitted.
  • Submit for checks (shortcut S) on an open set calls IChangeSetChecks.SubmitAsync. A small deterministic set is checked on the request and the page shows the result. Anything else is checked by the job. The action has the same moved-on guard and hidden placeholder form as the other actions.

Why

Tests

  • bUnit:
    • A failed run lists the failing check first with its finding's message, pointer and excerpt, and shows the run's problems.
    • A run in progress shows the job's progress.
    • An open set offers Submit, all five action forms are on the page, and the shortcuts dialog lists S.
  • Integration, host: with an active terms check, submitting a person's open set with a failing entry moves it to checks failed. The page shows the failed run, the check's fail status, the /headline pointer and the excerpt.

dotnet build -warnaserror, the unit and bUnit suite, and the full integration suite on SQLite with the browser tests pass locally. A full local PostgreSQL run on an overloaded machine (24 minutes) failed in 33 unrelated classes. The desk classes passed on a rerun against a cleaned container, and CI runs the full PostgreSQL suite. No new package and no new project reference.

Checklist

  • Linked to an issue a maintainer has confirmed
  • Targets v2
  • Tests or docs updated where behaviour changed
  • No tool-generated co-author trailers or footers

@pournasserian pournasserian added this to the M1 Governance core milestone Oct 19, 2026
@pournasserian pournasserian added type:feature New capability v2 FluentCMS v2 (v2 branch) area:desk Review desk (DSK) labels Oct 19, 2026
@pournasserian
pournasserian merged commit 06620a8 into v2 Oct 19, 2026
2 checks passed
@pournasserian
pournasserian deleted the 2603-set-checks branch October 19, 2026 08:03
pournasserian added a commit that referenced this pull request Oct 20, 2026
…iew (#2658)

Closes #2628

## What

Follow-ups from the independent review of #2607 (F-DSK, #2422).

- **The checks card reads the job's state:**
  - A job that is queued or running shows its progress.
- A set in checks running whose job ended without a run says the check
run ended without a result. The person who opened it gets "Run the
checks again", which calls `IChangeSetChecks.SubmitAsync`. Its recovery
fails the set, so the set can be reopened.
  - An open set says the checks run when it is submitted.
- A set past open with no stored run says that no check results are
stored for it.
- **Submit, and running the checks again, are offered only on sets a
person opened.** Agents submit their own sets by tool, so pressing S on
an agent's open set no longer splits its work in two. The handler
applies the same rule, whatever a post claims.
- **Finding messages, pointers and excerpts sit in `<bdi>`,** so a
right-to-left override in a judgement's text can't reorder the other
parts.

## Tests

- **Host, on SQLite and PostgreSQL:**
- A set whose check job died shows the ended note and "Run the checks
again", and running them again moves the set to checks failed.
- A failing run from an active terms check shows its finding, its
severity and the isolated parts.
- **bUnit:**
  - A person's open set offers Submit, and an agent's offers none.
- A job that ended as dead, failed or succeeded reads as ended, and its
opener can run the checks again.
  - A passed run with no results shows that it passed.
  - A set past open with no run says so.
  - Both severities show their label: blocks and warns.
  - A finding's parts are each in `<bdi>`.
- **Browser:** the axe check renders a set with a failing run, in both
directions and themes.

`dotnet build -warnaserror`, the unit and bUnit suite, and the set view,
review, keyboard and accessibility tests pass locally, on SQLite and on
PostgreSQL. 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:desk Review desk (DSK) type:feature New capability v2 FluentCMS v2 (v2 branch)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Show the check run on the set view and submit an open set

1 participant