Date: 2026-07-24
- Official NuGet v3 feeds reported the latest stable versions of both
TenonAdminandTenonAdmin.Templatesas0.3.0. - TenonAdmin tag
v0.3.0dereferences to commitac84cad325bb808e67321b7b1b4c8b37d6fa94bd. tenon-example.csprojcontains the exact package referenceTenonAdmin0.3.0.web/package.jsonreports0.3.0, andweb/was extracted withnpx degit Tenon-Net/TenonAdmin/web#v0.3.0 web.- Public consumer repository:
https://github.com/Tenon-Net/tenon-example.
| Gate | Evidence |
|---|---|
| Restore | dotnet restore exited 0. |
| Release build | Exited 0 with 0 warnings and 0 errors. |
| First SQLite startup | CodeFirst created 25 entities; first-run seed inserted 181 rows; the SQLite database became ready. |
| Random administrator credential | The first-run banner created superAdmin and printed a one-time random password. The password is intentionally not recorded. |
| Real HTTP login | POST /api/v1/auth/login returned envelope code 0 and issued access and refresh tokens. Tokens are intentionally not recorded. |
| Health | /health and /health/ready returned HTTP 200 with Healthy. |
| OpenAPI | /openapi/v1.json returned HTTP 200 and exposed the login endpoints plus the consumer sample endpoints. |
| Dependencies | npm install added 272 packages and completed successfully. |
| API generation | npm run gen:api generated web/src/api/schema.d.ts from the running consumer host. |
| Type check | npm run typecheck exited 0. |
| Lint | npm run lint exited 0. |
| Browser login | Playwright Chromium submitted the real Vue login form and navigated from /login to /module. |
The desktop-control CLI was not installed in the execution environment, so the real browser gate used the repository's Playwright dependency. Backend and frontend validation were run sequentially except for the bounded end-to-end browser session, where both servers are necessarily online.
A disposable empty sibling directory repeated the README path:
- Installed exact template package
TenonAdmin.Templates::0.3.0. - Generated a fresh
tenon-appconsumer. - Extracted
web/fromv0.3.0. - Restored and built Release with 0 warnings and 0 errors.
- Reproduced CodeFirst, random-admin creation, HTTP 200 health, and HTTP 200 OpenAPI.
- Repeated
npm install,npm run gen:api,npm run typecheck, andnpm run lintsuccessfully.
dotnet new tenon-appreports that no project is configured for the template's restore post-action, even though the generated project restores and builds manually. This is a reusable template bootstrap issue.- .NET 10 warns that the
Package::versioninstall separator is deprecated in favor ofPackage@version. The exact version still installs correctly. npm installconsistently reports five advisories: three high and two moderate. They affect transitive@redocly/openapi-core,brace-expansion, andjs-yaml, plus directechartsandvue-echarts; fixes are reported as available. No release-pinned dependency was changed during P0.- npm reports deferred install-script approval for
esbuild@0.25.12andvue-demi@0.13.11; API generation, type checking, linting, and Vite still completed in this environment. - The exact
v0.3.0frontend source has threegit diff --checkfindings: trailing whitespace in two design HTML files and a blank line at EOF insrc/views/personal/password.vue.
Reusable template findings are tracked in TenonAdmin#22; application-specific P1–P4 work remains in this repository.