You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: AGENTS.md
+7-1Lines changed: 7 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,6 +21,7 @@ This file defines how AI agents work in this solution.
21
21
- Solution root: `.` (`DotPilot.slnx`)
22
22
- Projects or modules with local `AGENTS.md` files:
23
23
-`DotPilot`
24
+
-`DotPilot.ReleaseTool`
24
25
-`DotPilot.Tests`
25
26
-`DotPilot.UITests`
26
27
- Shared solution artifacts:
@@ -141,7 +142,11 @@ For this app:
141
142
-`global.json` pins the .NET SDK and Uno SDK version used by the app and tests
142
143
-`DotPilot/DotPilot.csproj` keeps `GenerateDocumentationFile=true` with `CS1591` suppressed so `IDE0005` stays enforceable in CI across all target frameworks without inventing command-line-only build flags
143
144
- GitHub Actions workflows must use descriptive names and filenames that reflect their purpose; do not use a generic `ci.yml` catch-all because build validation and release automation are separate operator flows
144
-
- GitHub Actions must be split into at least one validation workflow for normal builds/tests and one release workflow for version bumping, release-note generation, desktop publishing, and GitHub Release publication
145
+
- GitHub Actions must be split into at least one validation workflow for normal builds/tests and one release workflow for CI-driven version resolution, release-note generation, desktop publishing, and GitHub Release publication
146
+
- the release workflow must run automatically on pushes to `main`, build desktop apps, and publish the GitHub Release without requiring a manual dispatch
147
+
- desktop release versions must use the `ApplicationDisplayVersion` value in `DotPilot/DotPilot.csproj` as a manually maintained two-segment prefix, with CI appending the final segment from the build number (for example `0.0.<build-number>`)
148
+
- the release workflow must not take ownership of the first two version segments; those remain manually edited in source, while CI supplies only the last numeric segment and matching release tag/application version values
149
+
- for CI and release automation in this solution, prefer existing `dotnet` and `MSBuild` capabilities plus small workflow-native steps over Python or adding a separate helper project for simple versioning and release-note tasks
145
150
- prefer MIT-licensed GitHub and NuGet dependencies when they materially accelerate delivery and align with the current architecture
146
151
- prefer official `.NET` AI evaluation libraries under `Microsoft.Extensions.AI.Evaluation*` for response-quality, tool-usage, and safety evaluation instead of custom or third-party evaluation stacks by default
147
152
- prefer `Microsoft Agent Framework` telemetry and observability patterns with OpenTelemetry-first instrumentation and optional Azure Monitor or Foundry export later
@@ -313,6 +318,7 @@ Ask first:
313
318
### Likes
314
319
315
320
- Follow the canonical MCAF tutorial when bootstrapping or upgrading the agent workflow.
321
+
- Commit cohesive code-change batches promptly while debugging, especially before switching focus or starting long verification runs, so the branch state stays inspectable and pushable.
316
322
- Keep the root `AGENTS.md` at the repository root.
317
323
- Keep the repo-local agent skill directory limited to current `mcaf-*` skills.
318
324
- Keep the solution file name cased as `DotPilot.slnx`.
Copy file name to clipboardExpand all lines: docs/ADR/ADR-0002-split-github-actions-build-and-release.md
+12-12Lines changed: 12 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,7 @@ That shape no longer matches the repository workflow:
16
16
17
17
- normal validation should stay focused on build and test feedback
18
18
- release publishing has different permissions, side effects, and operator intent
19
-
- the release path now needs version bumping in`DotPilot/DotPilot.csproj`
19
+
- the release path now needs CI-derived version resolution from`DotPilot/DotPilot.csproj`
20
20
- desktop releases must publish platform artifacts and create a GitHub Release with feature-oriented notes
21
21
22
22
Keeping all of that in one catch-all workflow makes the automation harder to reason about, harder to secure, and harder to operate safely.
@@ -30,23 +30,22 @@ We will split GitHub Actions into two explicit workflows:
30
30
- runs on normal integration events
31
31
- does not publish desktop artifacts or create releases
32
32
2.`release-publish.yml`
33
-
- runs only from explicit release intent through `workflow_dispatch`
34
-
- may run only from `main` or `release/*`
35
-
- bumps `ApplicationDisplayVersion` and `ApplicationVersion` in `DotPilot/DotPilot.csproj`
36
-
- tags the release, publishes desktop outputs for macOS, Windows, and Linux, and creates the GitHub Release
33
+
- runs automatically on pushes to `main`
34
+
- resolves the release version from the two-segment `ApplicationDisplayVersion` prefix in `DotPilot/DotPilot.csproj` plus the GitHub Actions build number
35
+
- publishes desktop outputs for macOS, Windows, and Linux, and creates the GitHub Release
37
36
- prepends repo-owned feature summaries and feature-doc links to GitHub-generated release notes
38
37
39
38
## Decision Diagram
40
39
41
40
```mermaid
42
41
flowchart LR
43
42
Change["Push or pull request"]
44
-
ReleaseIntent["Manual release dispatch"]
43
+
ReleaseIntent["Push to main"]
45
44
Validation["build-validation.yml"]
46
45
Release["release-publish.yml"]
47
46
Quality["Format + build + analyze"]
48
47
Tests["Unit + coverage + UI tests"]
49
-
Version["Version bump in DotPilot.csproj"]
48
+
Version["Version resolved from DotPilot.csproj prefix + CI build number"]
50
49
Publish["Desktop publish matrix"]
51
50
GitHubRelease["GitHub Release with feature notes"]
52
51
@@ -72,7 +71,7 @@ This keeps unrelated concerns coupled and makes ordinary CI runs carry release-s
72
71
73
72
Rejected.
74
73
75
-
The repository needs the release version recorded in `DotPilot/DotPilot.csproj`, not only in Git tags or GitHub Release metadata.
74
+
The repository still needs a manual source-of-truth prefix in `DotPilot/DotPilot.csproj`, but the final build segment should be CI-derived so every `main` release is unique without generating a release-only source commit.
76
75
77
76
### 3. Store release notes entirely as manual workflow input
78
77
@@ -85,19 +84,20 @@ That makes release quality depend on operator memory instead of repo-owned histo
85
84
### Positive
86
85
87
86
- Validation runs are easier to understand and remain side-effect free.
88
-
- Release automation has a clear permission boundary and operator trigger.
87
+
- Release automation has a clear permission boundary and automatic `main` trigger.
89
88
- Desktop publish artifacts move to the workflow that actually needs them.
90
89
- Release notes now combine GitHub-generated notes with repo-owned feature context.
90
+
- Release numbers stay predictable: humans own the major/minor prefix in source and CI owns the last segment.
91
91
92
92
### Negative
93
93
94
-
- Release automation now depends on branch write permissions for the workflow token or an equivalent release credential strategy.
95
-
- The repository gains dedicated helper scripts for version bumping and release-note generation that must stay aligned with `DotPilot.csproj`.
94
+
- Release automation now depends on the GitHub Actions run number remaining a suitable build-number source for releases.
95
+
- The repository gains workflow-owned release logic that must stay aligned with `DotPilot.csproj`, git history, and `docs/Features/`.
96
96
97
97
## Implementation Impact
98
98
99
99
- Rename the old validation workflow to `build-validation.yml`.
100
-
- Add `release-publish.yml`plus repo-owned scripts for version bumping and release-summary generation.
100
+
- Add `release-publish.yml`with workflow-native `dotnet`/`git` steps for release-version resolution and release-summary generation.
101
101
- Update `docs/Architecture.md` and root governance rules to reference the split workflow model.
Copy file name to clipboardExpand all lines: docs/Architecture.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ This file is the required start-here architecture map for non-trivial tasks.
10
10
-**Current product shell:**[../DotPilot/](../DotPilot/) already contains the visual workbench concepts that future work must preserve: a left navigation shell, a central session surface, a right-side inspector, and a separate agent-builder surface.
11
11
-**Target runtime direction:** the planned product architecture uses an embedded `Orleans` silo, `Microsoft Agent Framework` orchestration, provider adapters for external agent runtimes, local runtime adapters, `MCPGateway` for tool federation, `RagSharp` for repo intelligence, and OpenTelemetry-first observability.
12
12
-**Planning artifacts:** the control-plane direction is captured in [ADR-0001](./ADR/ADR-0001-agent-control-plane-architecture.md), the CI/release workflow split is captured in [ADR-0002](./ADR/ADR-0002-split-github-actions-build-and-release.md), and the operator experience is captured in [agent-control-plane-experience.md](./Features/agent-control-plane-experience.md).
13
-
-**Automated verification today:**[../DotPilot.Tests/](../DotPilot.Tests/) contains in-process `NUnit` tests, [../DotPilot.UITests/](../DotPilot.UITests/) contains browser-driven `Uno.UITest` UI coverage, GitHub Actions `Build Validation` gates normal changes, and `Desktop Release`owns version bumping, desktop publishing, and GitHub Release publication.
13
+
-**Automated verification today:**[../DotPilot.Tests/](../DotPilot.Tests/) contains in-process `NUnit` tests, [../DotPilot.UITests/](../DotPilot.UITests/) contains browser-driven `Uno.UITest` UI coverage, GitHub Actions `Build Validation` gates normal changes, and `Desktop Release`runs automatically on pushes to `main` to publish desktop artifacts and create the GitHub Release.
14
14
15
15
## Scoping
16
16
@@ -161,7 +161,8 @@ flowchart TD
161
161
- The preferred runtime direction is an embedded `Orleans` host with `Microsoft Agent Framework`.
162
162
- Provider integrations are SDK-first where viable.
163
163
- Evaluation should use `Microsoft.Extensions.AI.Evaluation*`, and observability should be OpenTelemetry-first.
164
-
- GitHub Actions now separates validation from release so normal CI stays fast and side-effect free while release automation owns versioning, desktop publishing, and GitHub Release publication.
164
+
- GitHub Actions now separates validation from release so normal CI stays fast and side-effect free while release automation owns desktop publishing and GitHub Release publication on `main`.
165
+
- Desktop release versions are derived from the two-segment `ApplicationDisplayVersion` prefix in `DotPilot.csproj` plus the CI build number as the final segment.
0 commit comments