diff --git a/.github/workflows/label-merged-issues.yaml b/.github/workflows/label-merged-issues.yaml
new file mode 100644
index 00000000..cc6159e6
--- /dev/null
+++ b/.github/workflows/label-merged-issues.yaml
@@ -0,0 +1,47 @@
+name: Label Merged Issues
+
+on:
+ pull_request:
+ types: [closed]
+ branches:
+ - 'release/**'
+
+jobs:
+ label-issues:
+ if: github.event.pull_request.merged == true
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Label linked issues as merged
+ uses: actions/github-script@v7
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ const prBody = context.payload.pull_request.body || '';
+ const prTitle = context.payload.pull_request.title || '';
+
+ // Match issue references like #123, fixes #123, closes #123, resolves #123
+ const issuePattern = /(?:close[sd]?|fix(?:e[sd])?|resolve[sd]?)?[\s:]*#(\d+)/gi;
+ const issueNumbers = new Set();
+
+ // Search in PR body and title
+ const textToSearch = `${prTitle} ${prBody}`;
+ let match;
+ while ((match = issuePattern.exec(textToSearch)) !== null) {
+ issueNumbers.add(parseInt(match[1]));
+ }
+
+ // Apply 'merged' label to each linked issue
+ for (const issueNumber of issueNumbers) {
+ try {
+ await github.rest.issues.addLabels({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ issue_number: issueNumber,
+ labels: ['merged']
+ });
+ console.log(`Added 'merged' label to issue #${issueNumber}`);
+ } catch (error) {
+ console.log(`Failed to label issue #${issueNumber}: ${error.message}`);
+ }
+ }
diff --git a/Daybreak.slnx b/Daybreak.slnx
index e0afa7da..f57ddef1 100644
--- a/Daybreak.slnx
+++ b/Daybreak.slnx
@@ -8,12 +8,12 @@
+
-