Skip to content

v0.1.0 — first release

Choose a tag to compare

@mpge mpge released this 12 Sep 15:16
· 53 commits to main since this release
662b140

The first published release of Escalated for ASP.NET Core.

0.1.0 rather than the 1.0.0 the csproj previously declared: 1.0.0 promises a stable API, nothing has consumed this package, and CREATE TABLE escalated_agent_skill failed outright on PostgreSQL until this release. Nothing was ever published at 1.0.0, so this corrects metadata rather than withdrawing a version.

Fixed

CREATE TABLE escalated_agent_skill failed on PostgreSQL. The check constraint spelled Proficiency unquoted, and PostgreSQL folds an unquoted identifier to lower case — so it asked for a column named proficiency, which does not exist. The package could not create its own schema on one of the two providers it ships an EF Core driver for. SQLite compares identifiers case insensitively and never noticed.

The tests run on a real database now

They ran on the EF Core InMemory provider — no SQL, no column types, no constraints, no foreign keys. It has nothing to get wrong, so nothing was ever checked.

SQLite is the default now, and ESCALATED_TEST_DATABASE=postgres runs the same tests against a server, each with a schema of its own. Two test bugs surfaced at once, both things InMemory cannot enforce: a delivery row referencing a webhook that was never saved, and a mention violating the unique index on (ReplyId, UserId).

384 tests green on SQLite and PostgreSQL 17, both legs in CI.

Also in this release

A database of Escalated's own. EscalatedDbContext has its own connection string, so its tables go wherever ConnectionStrings:Escalated points — a different database, and a different provider if you want. Host users arrive through IUserDirectory, which you implement against your own DbContext; Ticket.RequesterId and friends are plain unconstrained columns with no foreign key, so the two databases need never meet. Tests fail the build if an entity maps to a host-owned table, declares a foreign key to one, or any raw SQL names one.

Publishing

Not yet on NuGet — dotnet nuget push needs an API key held by the maintainer.