Changelog — 2026-05-19

By ·

Window: 2026-05-18T14:00:24Z → 2026-05-19T14:00:24Z (UTC) · Branch: main · PRs merged: 15

Features

#611 — feat(piecesets): pre-fill currency from user DefaultCurrency on Create (#550)

by @jdooley-clt · 2026-05-18

SetsController already prefills MSRPCurrency from the user's DefaultCurrency on both Create GET and Edit GET (when blank), shipped as part of Epic #453 Set parity. The remaining gap was the sweep item in #550: PieceSetsController.Create GET constructed a fresh PieceSetEditViewModel + FinancialsEditViewModel with no currency, forcing use…

#612 — feat(admin-feedback): make status summary cards clickable filter pills (#551)

by @jdooley-clt · 2026-05-18

The Beta Feedback admin list already met two of the three asks from #551: the default filter hid Closed items via showClosed=false, the toggle switch persisted state through the URL query string, and a row of count cards above the table showed Total / Submitted / Acknowledged / Accepted / Closed / Open. The remaining gap was the issue''s "Click a…

#613 — feat(pieces): fall back to ScaleModel image on QR printout when Piece has none (#554)

by @jdooley-clt · 2026-05-18

The QR Code Share card on /Pieces/Details now renders a small product thumbnail above the QR code. Image-resolution order:

#614 — feat(admin-feedback): inline-render image attachments with PhotoSwipe (#560)

by @jdooley-clt · 2026-05-18

Image attachments on /Admin/FeedbackDetails now render inline in a responsive Bootstrap grid (col-6 col-md-4 col-lg-3) at the bottom of the feedback card. Clicking opens PhotoSwipe via the existing wwwroot/js/lightbox.js wrapper that the Albums detail view already uses. Non-image attachments keep their existing outline-secondary download bu…

#615 — feat(pieces): pre-fill currency from user DefaultCurrency on Create

by @jdooley-clt · 2026-05-18

Follow-on to #550. PiecesController.Create GET constructed PieceEditViewModel + FinancialsEditViewModel with no currency, so users had to edit USD to their preference on every new piece. Mirrors the same fix just applied to PieceSetsController, and the existing ScaleModel/Set pattern.

Bug Fixes

#619 — fix(ci): diagnostic raw-SQL probe after EF PieceSets.ExecuteDelete

by @jdooley-clt · 2026-05-18

Symptom

#616 — fix(uploads): tier request-size limit by admin status (closes #188, #189)

by @jdooley-clt · 2026-05-18

Both DocumentsController.Upload and ImagesController.Upload used a static [RequestSizeLimit(50 * 1024 * 1024)] attribute, so Kestrel would buffer up to 50 MB from any authenticated caller. Non-admins were rejected post-parse via the file.Length check against GetMaxFileSizeBytes(isAdmin) / GetMaxDocumentSizeBytes, which is fine for data…

#617 — fix(admin): preserve User Management accordion on search submit (closes #548)

by @jdooley-clt · 2026-05-18

The User Management search form was missing asp-fragment="user-management". Submitting the form (Enter key or Search button) reloaded /Admin without a fragment, which scrolled to the top of the page and collapsed the accordion.

#618 — fix(sets): block catalog Set deletion when a user owns it as a PieceSet

by @jdooley-clt · 2026-05-18

Deleting a catalog Set whose row was already added to any user''s collection (via PieceSet) crashed the request with an EF Restrict FK violation, leaving the admin staring at a 500 page with no explanation.

Documentation

#610 — docs(AGENTS): refresh Docs editor entry after shared partial rollout (#591)

by @jdooley-clt · 2026-05-18

The AdminDocs/Edit.cshtml block in AGENTS.md still described the pre-partial hand-rolled toolbar, Ctrl+B/I/K shortcuts, debounced preview timing, and the stale docEditorToastContainer id. All three admin Edit views (Blog, Docs, Albums) now consume the shared _MarkdownEditor.cshtml partial backed by EasyMDE + markdown-editor.js, and the to…

Other

#621 — Add RLS-bypass diagnostic to PieceSets clear (issue #620)

by @jdooley-clt · 2026-05-18

Why

#622 — Add 'Stay logged in' option on login form

by @jdooley-clt · 2026-05-18

Summary

#623 — Fix #199: set-based username PII backfill + CONCURRENTLY index

by @jdooley-clt · 2026-05-18

Closes #199.

#624 — Fix #216: batch notification fan-out via CreateManyAsync

by @jdooley-clt · 2026-05-18

Closes #216.

#625 — Fix #223: perf pass — eliminate N+1s in top-owned, invite reconcile, ContributionScore

by @jdooley-clt · 2026-05-18

Closes #223.


Generated 2026-05-19T14:00:24Z UTC by scripts/generate-changelog.ps1. Summaries: github-models (openai/gpt-4o-mini).