Epic #705. PUT /api/blog/posts/{id} + BlogService.updateBlogPost(dto) exist, but authors can't edit anything after publishing — no edit affordance on the card or anywhere else. Typos are forever (or a delete-and-repost).
Shape: edit action next to the owner-delete button (#420 pattern: isOwner gate) → reuse the blog-create form prefilled (/blog/edit/:id route, auth-guarded). Decide moderation semantics: does editing a published post re-enter pendingReview for minors' accounts (mirror the create-time DeterminePostStatus logic)?
Note the update endpoint currently has no [Authorize]/ownership check server-side — same class as the create-provenance fix (backend #423); harden it as part of this.
Epic #705. `PUT /api/blog/posts/{id}` + `BlogService.updateBlogPost(dto)` exist, but authors can't edit anything after publishing — no edit affordance on the card or anywhere else. Typos are forever (or a delete-and-repost).
**Shape:** edit action next to the owner-delete button (#420 pattern: `isOwner` gate) → reuse the blog-create form prefilled (`/blog/edit/:id` route, auth-guarded). Decide moderation semantics: does editing a published post re-enter pendingReview for minors' accounts (mirror the create-time `DeterminePostStatus` logic)?
Note the update endpoint currently has no `[Authorize]`/ownership check server-side — same class as the create-provenance fix (backend #423); harden it as part of this.
Verified 2026-08-07 against spikersoft-angular@8e5a4048, and live against the deployed learn.spikersoft.com bundle (main-KZKZUOSX.js).
Status: not started — The whole Angular surface: /blog/edit/:id auth-guarded route, an owner-gated edit affordance next to the delete button, the prefilled create form, and the moderation-semantics decision (does editing a published post re-enter pendingReview for minors?).
Closing here. Work now lives in the repo that holds the fix, so fixes #628 in a PR will auto-close it on merge. The umbrella tracker keeps cross-repo epics only (parent epic #705 is untouched).
— Opus 5 Agent
Migrated to **spikerj/spikersoft-angular#628** as part of the umbrella-tracker breakup.
Verified 2026-08-07 against `spikersoft-angular@8e5a4048`, and live against the deployed `learn.spikersoft.com` bundle (`main-KZKZUOSX.js`).
Status: not started — The whole Angular surface: `/blog/edit/:id` auth-guarded route, an owner-gated edit affordance next to the delete button, the prefilled create form, and the moderation-semantics decision (does editing a published post re-enter pendingReview for minors?).
Closing here. Work now lives in the repo that holds the fix, so `fixes #628` in a PR will auto-close it on merge. The umbrella tracker keeps cross-repo epics only (parent epic #705 is untouched).
— Opus 5 Agent
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Epic #705.
PUT /api/blog/posts/{id}+BlogService.updateBlogPost(dto)exist, but authors can't edit anything after publishing — no edit affordance on the card or anywhere else. Typos are forever (or a delete-and-repost).Shape: edit action next to the owner-delete button (#420 pattern:
isOwnergate) → reuse the blog-create form prefilled (/blog/edit/:idroute, auth-guarded). Decide moderation semantics: does editing a published post re-enter pendingReview for minors' accounts (mirror the create-timeDeterminePostStatuslogic)?Note the update endpoint currently has no
[Authorize]/ownership check server-side — same class as the create-provenance fix (backend #423); harden it as part of this.Migrated to spikerj/spikersoft-angular#628 as part of the umbrella-tracker breakup.
Verified 2026-08-07 against
spikersoft-angular@8e5a4048, and live against the deployedlearn.spikersoft.combundle (main-KZKZUOSX.js).Status: not started — The whole Angular surface:
/blog/edit/:idauth-guarded route, an owner-gated edit affordance next to the delete button, the prefilled create form, and the moderation-semantics decision (does editing a published post re-enter pendingReview for minors?).Closing here. Work now lives in the repo that holds the fix, so
fixes #628in a PR will auto-close it on merge. The umbrella tracker keeps cross-repo epics only (parent epic #705 is untouched).— Opus 5 Agent