Skip to content

RunWay 2.0: the dashboard in Way.Shell - #4

Merged
jacalapa merged 9 commits into
mainfrom
next
Oct 17, 2026
Merged

jacalapa merged 9 commits into
mainfrom
next

Conversation

@jacalapa

Copy link
Copy Markdown
Contributor

The changes for RunWay 2.0, released together with the rest of the Way family on Way.Shell.

  • The dashboard is a Way.Shell module (Kododo.Way.Shell 2.0.0-preview.1 from NuGet, @kododo-dev/way-shell from npm): layout, theme, language, API client and session handling come from the shell; UseRunWayDashboard() mounts it with MapWay. MUI 9, Vite 8, MUI X Data Grid 9 and Lab 9 pre-releases.
  • Breaking: outside Development the dashboard answers 403 until the host calls RequireAuthorization() or AllowAnonymous() on what UseRunWayDashboard() returns. The demo allows anonymous access.
  • EF Core and Npgsql follow the target framework (8, 9, 10): code built against EF Core 8 did not run on EF Core 10. On EF Core 10, RunWay.SqlServer sends lists as one JSON parameter, which avoids deadlocks between polling and updating runners.
  • The chart and the data grid pages load lazily: the module goes from 266 to 7 KB after gzip.
  • Jobs are always ordered (id last); the job/recurrence relationships are configured explicitly (model unchanged).
  • Reiho 2.1.1, Testcontainers 4.16.0, build fails on packages with known vulnerabilities.

Checked locally: 61 tests × net8/9/10, PostgreSQL and SQL Server tests, browser scenarios of the demo in Chrome, Edge, Firefox and WebKit.

Jacek Łapiński added 9 commits October 16, 2026 20:39
Brings SSH.NET 2026.0.0 instead of the vulnerable version.
Requests to the dashboard's API are strict: unknown fields and missing non-nullable values return 400.
NuGet audit warnings are errors, as in the other Kododo libraries.
RunWay.Storage.Tests only holds base classes for the PostgreSQL and SQL Server tests.
The dashboard is a Way.Shell module: layout, theme, language, API client and
session handling come from the shell, and UseRunWayDashboard() mounts it with
MapWay. Outside Development the dashboard answers 403 until the host calls
RequireAuthorization() or AllowAnonymous() on what UseRunWayDashboard()
returns. MUI 7 -> 9, Vite 7 -> 8, MUI X Data Grid 9 and Lab 9 pre-releases.
EF Core 10 is not binary compatible with code built against EF Core 8
(ExecuteUpdate's SetPropertyCalls is gone), so an app on EF Core 10 could not
run RunWay. EF Core and Npgsql now follow the target framework (8, 9, 10);
RunWay.SqlServer references the patched System.Security.Cryptography.Pkcs.
On EF Core 10, RunWay.SqlServer sends lists as one JSON parameter, as EF Core
8 and 9 do: one parameter per item gave a plan that deadlocks runners polling
for jobs with runners updating them.
recharts, MUI X Data Grid and Lab were in the dashboard's module, which every
page waited for. They now load with the page that uses them: way.js goes from
266 to 7 KB after gzip.
Pages of jobs without a sorting were unordered, and jobs with equal values in
the sorted field could move between pages; the id now comes last. The two
relationships between jobs and recurrences are configured explicitly instead
of with [ForeignKey] on both navigations, which EF Core warned about. The
model is unchanged.
-p:UseLocalWayShell=true still builds against ../WayShell.
@jacalapa
jacalapa merged commit d61ee0f into main Oct 17, 2026
3 checks passed
@jacalapa
jacalapa deleted the next branch October 17, 2026 13:31
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