Skip to content

Update dev from main#444

Merged
marc-romu merged 35 commits into
devfrom
main
May 3, 2026
Merged

Update dev from main#444
marc-romu merged 35 commits into
devfrom
main

Conversation

@marc-romu
Copy link
Copy Markdown
Member

No description provided.

marc-romu and others added 30 commits March 24, 2026 23:05
Add a two-layer GitHub Actions design:
- Generic Mistral AI Chat Completions API wrapper action
- Release-notes-specific action with domain prompts from
  .windsurf/workflows/release-notes.md

Wire into release-3-pr-to-main-closed.yml to generate AI-powered
release titles and notes, with GitHub auto-generated notes preserved
in a collapsed details block.
…s, and other CI improvements

- Add concurrency controls to prevent race conditions across 5 workflows
- Paginate listReleases in release-promotion.yml using github.paginate()
- Add auto-discover, include-main-branches, exclude-branches inputs to patch-propagate.yml
- Add summary/notification job to patch-propagate.yml for failed cherry-picks
- Add promotion: freeze label check in release-promotion.yml
- Auto-create promotion-blocked issue when release >30 days but blocked
- Add version-format validation before branch cleanup in stabilization-2-complete.yml
- Dereference annotated tags in stabilization-0-init.yml
- Post-filter issue search results in check-issues-for-version/action.yml
- Target stabilization branch for hash PR in release-4-build.yml
- Create required labels (automation, needs-attention, promotion: freeze/blocked, has-conflicts)
- Update RELEASE_WORKFLOW.md documentation
Hash PRs must target main for GitHub Pages deployment.
Added guideline for new components to use a zeroed GUID.
Copilot AI review requested due to automatic review settings May 3, 2026 09:27
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR is a broad workflow-and-guidance sync from main into dev, mainly updating GitHub Actions release/stabilization automation and refreshing Windsurf rules/docs to match the current SmartHopper development process.

Changes:

  • Adds a new stabilization/patch-propagation release flow across GitHub Actions, plus related supporting actions.
  • Refactors release automation around manifest updates, release-note generation, Yak upload triggering, and branch/milestone handling.
  • Refreshes internal docs/rules and minor metadata files to document the new workflows and conventions.

Reviewed changes

Copilot reviewed 62 out of 62 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
src/SmartHopper.Infrastructure/SmartHopper.Infrastructure.csproj Removes BOM/header formatting difference.
hashes/1.4.2-beta.json Adds generated provider hash manifest for 1.4.2-beta.
docs/index.md Adds Development docs links.
docs/Development/patch-propagation.md Documents new multi-branch patch propagation workflow.
CHANGELOG.md Adds unreleased note about rules/workflows clarification.
.windsurf/workflows/pr-description.md Fixes wording/formatting in PR description workflow doc.
.windsurf/workflows/new-branch.md Clarifies branch creation workflow text.
.windsurf/workflows/fix-compilation-messages.md Refines compiler-fix workflow wording.
.windsurf/workflows/docs-update.md Updates docs workflow scope and output paths.
.windsurf/workflows/commit-message.md Clarifies Conventional Commit guidance.
.windsurf/workflows/code-style.md Rewrites style-cleanup instructions with clearer rules.
.windsurf/workflows/changelog-review.md Clarifies changelog review wording.
.windsurf/rules/windsurf-rules.md Updates how Windsurf rule files should be edited.
.windsurf/rules/webchat-cdn.md Removes old CDN-specific rule file.
.windsurf/rules/webchat-architecture.md Adds consolidated WebChat architecture rule.
.windsurf/rules/tool-result-envelope.md Adds tool JSON envelope rule.
.windsurf/rules/testing-and-build.md Adds build/test expectations for platform constraints.
.windsurf/rules/target-platform-and-frameworks.md Clarifies target TFMs/platforms.
.windsurf/rules/solution-structure.md Expands solution structure guidance.
.windsurf/rules/refactor-stop-and-confirm.md Clarifies stop-and-confirm refactor policy.
.windsurf/rules/provider-authentication.md Adds provider auth/secrets handling rule.
.windsurf/rules/infrastructure-aitools.md Refreshes AI tools infrastructure guidance.
.windsurf/rules/infrastructure-aiprovider.md Refreshes provider architecture guidance.
.windsurf/rules/infrastructure-aicall.md Rewrites AICall architecture overview.
.windsurf/rules/general-guidelines.md Updates general SmartHopper development guidance.
.windsurf/rules/documentation-and-changelog.md Clarifies docs/changelog expectations.
.windsurf/rules/data-tree-processing.md Adds Grasshopper data-tree processing rule.
.windsurf/rules/component-conventions.md Expands component conventions.
.windsurf/rules/code-dedup-architecture.md Minor wording cleanup.
.windsurf/rules/architecture-thinking.md Clarifies architecture-first workflow guidance.
.windsurf/rules/ai-tool-conventions.md Expands AI tool conventions.
.windsurf/rules/ai-provider-conventions.md Expands AI provider conventions.
.github/workflows/stabilization-2-complete.yml Adds stabilization completion/backport workflow.
.github/workflows/stabilization-1-cancel.yml Adds stabilization cancellation workflow.
.github/workflows/stabilization-0-init.yml Adds stabilization branch initialization workflow.
.github/workflows/release-promotion.yml Reworks staged-release promotion logic around stabilization milestones.
.github/workflows/release-auto-upload-yak.yml Removes old standalone Yak auto-upload workflow.
.github/workflows/release-5-deploy-pages.yml Switches Pages deploy trigger to hash pushes on main.
.github/workflows/release-4-build.yml Adjusts build checkout/PR assignment and moves Yak trigger here.
.github/workflows/release-3-pr-to-main-closed.yml Extends release creation to main-* and AI-generated release notes.
.github/workflows/release-2-pr-to-dev-closed.yml Extends dev→main PR automation to stabilization branches.
.github/workflows/release-1-milestone.yml Makes release-prep target stabilization branches and update manifest text.
.github/workflows/pr-version-validation.yml Extends PR version validation to main-*/dev-*.
.github/workflows/pr-validation.yml Extends general PR validation to stabilization branches.
.github/workflows/pr-manifest-validation.yml Extends manifest validation and reuses shared manifest-text action.
.github/workflows/pr-delete-auto-branches.yml Adds patch/ branches to auto-delete list.
.github/workflows/pr-build-hash-validation.yml Extends build/hash validation to stabilization branches.
.github/workflows/patch-propagate.yml Adds manual multi-branch cherry-pick propagation workflow.
.github/workflows/dev-update-manifest.yml Switches dev manifest updates to shared manifest-text action.
.github/workflows/ci-dotnet-tests.yml Extends CI to stabilization branches.
.github/workflows/RELEASE_WORKFLOW.md Documents new stabilization and patch-propagation flows.
.github/actions/versioning/update-manifest-text/action.yml Adds reusable manifest note text update action.
.github/actions/versioning/promote-version/action.yml Removes old promote-version composite action.
.github/actions/versioning/move-milestone-items/action.yml Makes milestone-item moves stabilization-aware.
.github/actions/versioning/manage-milestones/action.yml Simplifies milestone management behavior.
.github/actions/versioning/check-issues-for-version/action.yml Tightens version-label matching for promotion checks.
.github/actions/versioning/README.md Updates versioning action docs for new behavior.
.github/actions/milestone/assign-pr/action.yml Adds optional explicit version input for milestone assignment.
.github/actions/documentation/generate-release-notes/action.yml Adds AI-powered release-note generation action.
.github/actions/cherry-pick-to-branch/action.yml Adds reusable cherry-pick-and-open-PR action.
.github/actions/cherry-pick-to-branch/PR_TEMPLATE.md Adds PR template for propagated patches.
.github/actions/ai/mistral-chat/action.yml Adds generic Mistral chat wrapper action.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

git config --local user.name "github-actions[bot]"
git add yak-package/manifest.yml
git commit -m "chore: update manifest text to ${{ steps.manifest_text.outputs.type }} version [skip ci]"
git commit -m "chore: update manifest text to ${{ steps.manifest_text.outputs.release-type }} version [skip ci]"
with:
pr-number: ${{ steps.hash-pr.outputs.hash_pr_number }}
token: ${{ secrets.GITHUB_TOKEN }}
version: ${{ needs.prep.outputs.version }}
json=$(echo "$raw" \
| tr ',' '\n' \
| sed 's/^[[:space:]]*//; s/[[:space:]]*$//' \
| grep -v '^$' \
Comment on lines +197 to +207
if (propagateResult === 'failure') {
// Create issue for manual attention
await github.rest.issues.create({
owner: context.repo.owner,
repo: context.repo.repo,
title: `\ud83c\udf52 Patch propagate needs attention (run #${context.runNumber})`,
body: `One or more cherry-picks had conflicts or failures.\n\n` +
`**Run:** [#${context.runNumber}](${runUrl})\n` +
`**SHAs:** \`${shas}\`\n` +
`**Source branch:** \`${{ inputs.source-branch }}\`\n\n` +
`Please review the workflow run and resolve any draft PRs with conflict markers.`,
Comment on lines +207 to +208
`Please review the workflow run and resolve any draft PRs with conflict markers.`,
labels: ['automation', 'needs-attention']
Comment on lines +101 to +119
// For each stabilization path, find the current staged release
// Priority: rc > beta > alpha (promote the most advanced stage that exists)
const stagePriority = ['rc', 'beta', 'alpha'];

for (const milestone of stabilizationMilestones) {
const base = milestone.title; // e.g. "1.4.2"
let currentStaged = null;

for (const stage of stagePriority) {
const candidate = `${base}-${stage}`;
if (releaseTags.has(candidate)) {
currentStaged = candidate;
console.log(`Stabilization path ${base}: current staged release is ${candidate}`);
break;
}
}

if (currentStaged) {
versionsToCheck.push(currentStaged);
Comment on lines +172 to +174
const frozen = issues.some(i =>
i.labels.some(l => l.name.startsWith(`version: ${baseVersion}`))
);
Comment on lines +401 to +402
`- This issue will NOT be auto-closed \u2014 close it manually once resolved`,
labels: ['automation', 'promotion: blocked']
@marc-romu marc-romu merged commit 11463cd into dev May 3, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants