Conversation
Blog posts, README, and docs/index.html updated for v1.2.0. Reviewed and approved by Aragorn.
Fixes 3 review blockers identified in PR #126 review: - docs/index.html: npm run css:watch → npm run tw:watch (matches root package.json) - README.md + kickoff blog post: Aspire 13.2.2 → 13.2.3 (matches Directory.Packages.props) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
## Summary
Adds `workflow_dispatch` trigger to `squad-mark-released.yml` so the
Done → Released project board migration can be run manually.
## Problem
When v1.2.0 was published, `squad-mark-released.yml` did not fire —
likely because the release event and workflow landing on `main` had a
timing race. With no manual trigger, the only recovery path was direct
GraphQL mutations.
## Changes
- Add `workflow_dispatch: {}` trigger
- Update job `if` condition to always run on manual dispatch (skip the
pre-release/draft guard for `workflow_dispatch` events)
- Use `context.payload.release?.tag_name ?? 'manual dispatch'` to
prevent null-ref in the summary notice
## Testing
After merge to `dev` → `main`, the workflow will appear under **Actions
→ Squad Mark Released → Run workflow** for manual recovery use.
---
> ⚠️ This PR should be fast-tracked to `main` so `dev` and `main` stay
in sync.
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Boromir <boromir@squad.dev>
Closes #130 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Closes #133 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
🏗️ PR Added to Squad Triage QueueThis PR has been labeled with Next steps:
|
There was a problem hiding this comment.
Pull request overview
Updates the repository’s public-facing documentation and release/blog automation to reflect the current “training project” positioning and the new dev blog workflow.
Changes:
- Refresh docs landing page and README to reflect current architecture (Aspire + Blazor Server + MongoDB + Redis + CQRS/MediatR) and add badges/blog/release sections.
- Add dev blog index + initial posts and wire them into the docs site.
- Extend/adjust GitHub Actions automation around milestone/release blog briefs and “mark released” project-board movement.
Reviewed changes
Copilot reviewed 11 out of 14 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/index.html | Updates GitHub Pages landing content (overview, features, structure, dev blog/release links, setup commands). |
| docs/blog/index.md | Adds the dev blog index used by automation to populate README. |
| docs/blog/2026-04-24-release-v1-2-0.md | Adds release recap blog post for v1.2.0 (Redis caching). |
| docs/blog/2026-04-24-release-v1-1-0.md | Adds release recap blog post for v1.1.0 (theming/testing). |
| docs/blog/2026-04-20-sprint-3-e2e-tests-ci-hardening.md | Adds sprint recap blog post (E2E + CI hardening). |
| docs/blog/2026-04-20-sprint-2-cqrs-mediatr.md | Adds sprint recap blog post (CQRS/MediatR). |
| docs/blog/2026-04-20-release-v1-0-0.md | Adds release recap blog post for v1.0.0 (semver transition). |
| docs/blog/2026-04-18-myblog-project-kickoff.md | Adds kickoff blog post (Sprint 1 foundation). |
| docs/SQUAD-COMMANDS.md | Adds/updates Squad command reference including Review PR #{N} shorthand. |
| README.md | Expands README content, adds badges, blog table, and release history. |
| .github/workflows/squad-mark-released.yml | Adds manual dispatch support and makes notice message safe when no release payload exists. |
| .github/workflows/release-blog.yml | Tweaks blog-brief issue body formatting/content. |
| .github/workflows/milestone-release-decision.yml | Tweaks comment/brief text formatting for release vs blog-only path. |
| .github/workflows/milestone-blog.yml | Tweaks milestone review issue body formatting (table + sections). |
| ### Instructions | ||
| - Write the post to \`docs/blog/${PUBLISH_DATE}-${SLUG}.md\` | ||
| - Update \`docs/blog/index.md\` to add the new post at the top of the Recent Posts table | ||
| - Follow existing post style (see \`docs/blog/2026-04-04-release-v0-7-0.md\`) |
There was a problem hiding this comment.
The blog-only brief instructions reference docs/blog/2026-04-04-release-v0-7-0.md as an example post, but that file does not exist in the repo. Update it to an existing post so the guidance is actionable.
| - Follow existing post style (see \`docs/blog/2026-04-04-release-v0-7-0.md\`) | |
| - Follow existing post style by reviewing recent posts linked from \`docs/blog/index.md\` |
| | 2026-04-24 | [Release: v1.2.0 — Redis Caching and L1/L2 Cache Strategy](./2026-04-24-release-v1-2-0.md) | release, v1.2.0, redis, caching, aspire, sprint-5 | | ||
| | 2026-04-24 | [Release: v1.1.0 — Blazor Theme System with TailwindCSS v4](./2026-04-24-release-v1-1-0.md) | release, v1.1.0, blazor, tailwind, theme, testing, sprint-4 | | ||
| | 2026-04-20 | [Release: v1.0.0 — Semantic Versioning and Production Readiness](./2026-04-20-release-v1-0-0.md) | release, semver, ci, devops | | ||
| | 2026-04-20 | [Sprint 3: E2E Testing and CI Hardening](./2026-04-20-sprint-3-e2e-tests-ci-hardening.md) | e2e, aspire, ci, testing, sprint-3 | | ||
| | 2026-04-20 | [Sprint 2: CQRS and MediatR Deep Dive](./2026-04-20-sprint-2-cqrs-mediatr.md) | cqrs, mediatr, testing, domain, sprint-2 | | ||
| | 2026-04-18 | [MyBlog Project Kickoff: Building with .NET 10 and Clean Architecture](./2026-04-18-myblog-project-kickoff.md) | aspire, blazor, clean-architecture, sprint-1 | | ||
|
|
||
| ## By Sprint | ||
|
|
||
| ### Sprint 1: Foundation | ||
| - [MyBlog Project Kickoff: Building with .NET 10 and Clean Architecture](./2026-04-18-myblog-project-kickoff.md) | ||
|
|
||
| ### Sprint 2: CQRS & MediatR | ||
| - [Sprint 2: CQRS and MediatR Deep Dive](./2026-04-20-sprint-2-cqrs-mediatr.md) | ||
|
|
||
| ### Sprint 3: Testing & CI | ||
| - [Sprint 3: E2E Testing and CI Hardening](./2026-04-20-sprint-3-e2e-tests-ci-hardening.md) | ||
|
|
||
| ### Sprint 4: Theme System | ||
| - [Release: v1.1.0 — Blazor Theme System with TailwindCSS v4](./2026-04-24-release-v1-1-0.md) | ||
|
|
||
| ### Sprint 5: Caching | ||
| - [Release: v1.2.0 — Redis Caching and L1/L2 Cache Strategy](./2026-04-24-release-v1-2-0.md) | ||
|
|
||
| ## Release Timeline | ||
|
|
||
| | Release | Date | Focus | | ||
| |---------|------|-------| | ||
| | [v1.0.0](./2026-04-20-release-v1-0-0.md) | 2026-04-20 | Semantic versioning, production readiness | | ||
| | [v1.1.0](./2026-04-24-release-v1-1-0.md) | 2026-04-24 | Blazor theme system, test reorganization | | ||
| | [v1.2.0](./2026-04-24-release-v1-2-0.md) | 2026-04-24 | Redis caching, distributed cache strategy | |
There was a problem hiding this comment.
The blog-readme-sync workflow rewrites relative links in docs/blog/index.md by prefixing them with docs/blog/, so links written as (./2026-...md) will become (docs/blog/./2026-...md) in the generated README section. Consider removing the leading ./ in these links (or update the workflow rewrite regex) to keep README links clean and stable.
| | 2026-04-24 | [Release: v1.2.0 — Redis Caching and L1/L2 Cache Strategy](./2026-04-24-release-v1-2-0.md) | release, v1.2.0, redis, caching, aspire, sprint-5 | | |
| | 2026-04-24 | [Release: v1.1.0 — Blazor Theme System with TailwindCSS v4](./2026-04-24-release-v1-1-0.md) | release, v1.1.0, blazor, tailwind, theme, testing, sprint-4 | | |
| | 2026-04-20 | [Release: v1.0.0 — Semantic Versioning and Production Readiness](./2026-04-20-release-v1-0-0.md) | release, semver, ci, devops | | |
| | 2026-04-20 | [Sprint 3: E2E Testing and CI Hardening](./2026-04-20-sprint-3-e2e-tests-ci-hardening.md) | e2e, aspire, ci, testing, sprint-3 | | |
| | 2026-04-20 | [Sprint 2: CQRS and MediatR Deep Dive](./2026-04-20-sprint-2-cqrs-mediatr.md) | cqrs, mediatr, testing, domain, sprint-2 | | |
| | 2026-04-18 | [MyBlog Project Kickoff: Building with .NET 10 and Clean Architecture](./2026-04-18-myblog-project-kickoff.md) | aspire, blazor, clean-architecture, sprint-1 | | |
| ## By Sprint | |
| ### Sprint 1: Foundation | |
| - [MyBlog Project Kickoff: Building with .NET 10 and Clean Architecture](./2026-04-18-myblog-project-kickoff.md) | |
| ### Sprint 2: CQRS & MediatR | |
| - [Sprint 2: CQRS and MediatR Deep Dive](./2026-04-20-sprint-2-cqrs-mediatr.md) | |
| ### Sprint 3: Testing & CI | |
| - [Sprint 3: E2E Testing and CI Hardening](./2026-04-20-sprint-3-e2e-tests-ci-hardening.md) | |
| ### Sprint 4: Theme System | |
| - [Release: v1.1.0 — Blazor Theme System with TailwindCSS v4](./2026-04-24-release-v1-1-0.md) | |
| ### Sprint 5: Caching | |
| - [Release: v1.2.0 — Redis Caching and L1/L2 Cache Strategy](./2026-04-24-release-v1-2-0.md) | |
| ## Release Timeline | |
| | Release | Date | Focus | | |
| |---------|------|-------| | |
| | [v1.0.0](./2026-04-20-release-v1-0-0.md) | 2026-04-20 | Semantic versioning, production readiness | | |
| | [v1.1.0](./2026-04-24-release-v1-1-0.md) | 2026-04-24 | Blazor theme system, test reorganization | | |
| | [v1.2.0](./2026-04-24-release-v1-2-0.md) | 2026-04-24 | Redis caching, distributed cache strategy | | |
| | 2026-04-24 | [Release: v1.2.0 — Redis Caching and L1/L2 Cache Strategy](2026-04-24-release-v1-2-0.md) | release, v1.2.0, redis, caching, aspire, sprint-5 | | |
| | 2026-04-24 | [Release: v1.1.0 — Blazor Theme System with TailwindCSS v4](2026-04-24-release-v1-1-0.md) | release, v1.1.0, blazor, tailwind, theme, testing, sprint-4 | | |
| | 2026-04-20 | [Release: v1.0.0 — Semantic Versioning and Production Readiness](2026-04-20-release-v1-0-0.md) | release, semver, ci, devops | | |
| | 2026-04-20 | [Sprint 3: E2E Testing and CI Hardening](2026-04-20-sprint-3-e2e-tests-ci-hardening.md) | e2e, aspire, ci, testing, sprint-3 | | |
| | 2026-04-20 | [Sprint 2: CQRS and MediatR Deep Dive](2026-04-20-sprint-2-cqrs-mediatr.md) | cqrs, mediatr, testing, domain, sprint-2 | | |
| | 2026-04-18 | [MyBlog Project Kickoff: Building with .NET 10 and Clean Architecture](2026-04-18-myblog-project-kickoff.md) | aspire, blazor, clean-architecture, sprint-1 | | |
| ## By Sprint | |
| ### Sprint 1: Foundation | |
| - [MyBlog Project Kickoff: Building with .NET 10 and Clean Architecture](2026-04-18-myblog-project-kickoff.md) | |
| ### Sprint 2: CQRS & MediatR | |
| - [Sprint 2: CQRS and MediatR Deep Dive](2026-04-20-sprint-2-cqrs-mediatr.md) | |
| ### Sprint 3: Testing & CI | |
| - [Sprint 3: E2E Testing and CI Hardening](2026-04-20-sprint-3-e2e-tests-ci-hardening.md) | |
| ### Sprint 4: Theme System | |
| - [Release: v1.1.0 — Blazor Theme System with TailwindCSS v4](2026-04-24-release-v1-1-0.md) | |
| ### Sprint 5: Caching | |
| - [Release: v1.2.0 — Redis Caching and L1/L2 Cache Strategy](2026-04-24-release-v1-2-0.md) | |
| ## Release Timeline | |
| | Release | Date | Focus | | |
| |---------|------|-------| | |
| | [v1.0.0](2026-04-20-release-v1-0-0.md) | 2026-04-20 | Semantic versioning, production readiness | | |
| | [v1.1.0](2026-04-24-release-v1-1-0.md) | 2026-04-24 | Blazor theme system, test reorganization | | |
| | [v1.2.0](2026-04-24-release-v1-2-0.md) | 2026-04-24 | Redis caching, distributed cache strategy | |
| ``` | ||
| Review PR #131 | ||
| Aragorn review PR #128 | ||
| Aragorn wait for the gh review on PR #126 the review |
There was a problem hiding this comment.
The example command includes a duplicated phrase (the review) which makes the shorthand unclear; remove the extra words so it matches the command pattern described above.
| Aragorn wait for the gh review on PR #126 the review | |
| Aragorn wait for the gh review on PR #126 |
| [](https://github.com/mpaulosky/MyBlog/actions/workflows/squad-ci.yml) | ||
| [](https://github.com/mpaulosky/MyBlog/releases/latest) | ||
|
|
||
| [](https://github.com/mpaulosky/MyBlog/actions/workflows/squad-ci.yml) | ||
| [](https://github.com/mpaulosky/MyBlog/actions/workflows/squad-test.yml) | ||
|
|
There was a problem hiding this comment.
This PR changes more than the PR description indicates (it updates README, multiple docs/blog posts, and several GitHub Actions workflows). Please update the PR description/change list so reviewers understand the full scope and risk (it’s not docs-only once workflows change).
| │ ├── AppHost.Tests/ # Aspire AppHost + E2E tests | ||
| │ ├── Web.Tests/ # Web layer unit tests | ||
| │ ├── Web.Tests.Bunit/ # Blazor component tests (bUnit) | ||
| │ └── Web.Tests.Integration/# Web integration tests |
There was a problem hiding this comment.
In the project tree, Web.Tests.Integration/ is missing a space before the inline comment marker, which makes the structure harder to read and inconsistent with the surrounding lines.
| │ └── Web.Tests.Integration/# Web integration tests | |
| │ └── Web.Tests.Integration/ # Web integration tests |
| ### Instructions | ||
| - Write the post to \`docs/blog/${PUBLISH_DATE}-release-${SLUG}.md\` | ||
| - Update \`docs/blog/index.md\` to add the new post at the top of the Recent Posts table | ||
| - Follow existing post style (see \`docs/blog/2026-04-04-release-v0-7-0.md\`) |
There was a problem hiding this comment.
The generated blog-brief instructions reference docs/blog/2026-04-04-release-v0-7-0.md as an example post, but that file does not exist in the repo. Update the reference to an existing post so the brief doesn’t point contributors to a dead example.
| - Follow existing post style (see \`docs/blog/2026-04-04-release-v0-7-0.md\`) | |
| - Follow existing post style by reviewing a recent post in \`docs/blog/\` and matching its front matter, headings, and table entry format |
|
Closing — replaced by direct squad branch PR due to dev/main history divergence from squash merges. |
Promotes dev → main with Squad Commands shorthand addition.
Changes
Checklist
Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com