Captures the non-obvious operational knowledge (deploy via Unraid+NPM, Gitea
runner config, CI registry auth, and gotchas like the SQLite DateTimeOffset
ordering limit) so a fresh session starts informed.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
Track the project backlog in-repo and preserve the original pre-implementation
design with a note on where the build diverged.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
SQLite can't translate ORDER BY on DateTimeOffset columns, so loading the
wishlists/invites pages threw NotSupportedException. Order by the autoincrement
Id (same newest-first result) instead. Add a regression test that exercises the
owned/shared list queries against SQLite.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
Same root cause as the .gitignore fix, but for the Docker build context:
`**/Data/` stripped the DbContext, entities and migrations out of the image
build, so `docker publish` failed (WishNinja.Data not found). Narrow it to
runtime artifacts only.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
The auto-provided GITEA_TOKEN was rejected by the container registry
(unauthorized). Use github.actor + a REGISTRY_TOKEN PAT secret for docker login.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
The ignore rule `src/WishNinja/Data/` accidentally excluded the EF Core
DbContext, entities, and migrations from the repo, breaking the CI build
(WishNinja.Data namespace not found). Narrow the rule to ignore only the
runtime artifacts (db/keys/uploads) and commit the missing source.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
The auto-provided GITEA_TOKEN needs explicit package-write permission to push
to the Gitea container registry.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
ASP.NET Core Blazor (.NET 10) + EF Core/SQLite + Identity. Features:
- Wishlists & items with local image storage (upload, clipboard paste,
or URL fetched and stored locally)
- Owner-hidden claims (enforced at the query layer) to preserve surprises
- Admin-invite-only onboarding with email-based password resets
- All state under /data; ships as a single Docker image
Includes Dockerfile, docker-compose, Gitea Actions CI (test + push image),
Unraid template, and xUnit tests (claim privacy, invite lifecycle, image validation).
Co-Authored-By: Claude Opus 4.8 <[email protected]>