3.8.0¶
Release Date: July 8, 2026
This release brings CLI-native pipeline observability with saif pipeline logs, saif pipeline open, and saif pipeline monitor, a searchable service catalog with saif service search and saif service describe, and deep Smithy/SDK investment - the Forge agent now speaks real Azure DevOps REST and exposes CLI commands and templates directly to consumers. Terraform gains a dedicated Front Door route for the event service and default health checks for web/API services.
✨ New Features¶
CLI¶
- pipeline observability -
saif pipeline logs --followfor live build tail,saif pipeline open,saif pipeline logs <build-id>, and build URL support insaif pipeline monitor(426722b2| #796,0d27e5a6| #794,0f8bfc66| #795,26c7da81| #773) - service catalog -
saif service searchandsaif service describe <name>, later showing deployed image tags, build numbers, and slots (ed07ffa3| #797,011607cc| #807,6f568d3d| #870) - doctor - update global tools to the latest available version (
cb4b2f18| #900) - observability - Dynatrace integration for
saif authandsaif otel(81ad7bf0| #874)
Smithy & SDK¶
- Expose
saifCLI commands and templates to the Forge agent (b8926cca| #861) - Implement real Azure DevOps REST in
DevOpsAgent(21f7aee5| #858) - Add SDK service catalog with on-behalf-of identity (
4d89f29e| #849) - Move documentation into the SDK with tiered Smithy-brokered search (
2898a739| #844) - Scaffold
SAIF.Platform.CLI.Sdkleaf library with auth seam (fb6634f2| #841) - Add bundled CLI knowledge manifest and reader (
fbafa454| #860) - Add MCP Inspector dev harness to
Smithy.AppHost(27245f8e| #830) - Add OpenTelemetry GenAI diagnostics (
9cce801b| #826)
Terraform¶
- Add dedicated Front Door route for the event service (
1bdbfaa3| #905) - Enable health checks by default for web and API services (
f4c6e11b| #855)
Templates¶
- Add the
enableSlotDeploymentpipeline parameter and expand the PR slot deployment guide (33f41405| #868) - Add PR slot deployment routing and a standalone slot routing extension (
2eb5c18d| #866) - event-subscription - add app settings config to the subscription template (
88da2fad| #768) - docs site - fix trailing-slash redirect and add owner to
saif-feature-docs-site(d85c3315| #839)
🔧 Enhancements¶
CLI¶
- Standardize CLI JSON handling on
System.Text.Json(54700a85| #886) - Centralize output formatting (JSON/table/markdown) across commands (
9149860f| #865) - Invert catalog auth seam and split repository host into SCM + pipeline axes (
2588cacf| #834) - Cut startup time with update-check caching and lazy command init (
3311412d| #806) - Adopt shared AzureDevOps context resolver in pipeline run/list/approve (
43ae453d| #793)
Smithy & SDK¶
- Extract shared
AzureDevOpsRestClient(7d295b70| #857) - Move service catalog into
SAIF.Platform.Sdk(223afe33| #842) - Remove Teams/M365 integration, leaving an MCP-only agent (
c5a54e6c| #827) - Add
ConfigureAwait(false)throughoutSAIF.Platform.Sdk(9fbe014b| #884) - Remove null-forgiving operator usages in CLI and SDK (
36e46dcf| #882)
Skills¶
- Relocate release tooling into the release-management skill (
116605bb| #837) - Relocate sole-caller tools into skill
scripts/dirs (d5b3e85d| #836)
🐛 Bug Fixes¶
CLI¶
- Resolve
Commands/_deprecated/audit finding - all commands verified live, not dead code (97b94806| #887) - Remove blocking
Wait()calls in doctor cache resets and document swallowed catch (1b79b7de| #885) - Convert
repo search --nameto a positional arg and enforce non-nullableQuery(2c1f45e4| #854) saif pipeline monitornow returns a non-zero exit code for failed builds (4aa05276| #792)- Surface
PublishResulterrors/warnings, fix pipeline creation, idempotent publish (cf58e950| #782) - Bound
saif service searchGraph paging for broad queries (3ae51e7d| #817)
Terraform¶
- Source APIM
display_namefrom the OpenAPI spec title (03d0324e| #890) - Route prod diagnostic logs to the prod Dynatrace event hub (
618a28ac| #853) - Connect function apps to the function app service plan (
f2024c24| #876) - Bump
application_permissionsmodule to~> 4.12.0(d4fba054| #840)
Templates¶
- Remove dead port symbol and align health-check description (
da05514e| #888) - Move generated port ranges off the reserved band 22921-23020 (
1cbeaa93| #809)
Other¶
- typespec - remove
statusfromProblemDetailsbase for Kiota codegen (d3849f5d| #904) - kiota - fall back to client credentials when no user token is present (
02299eff| #871) - dotnet - wire orphaned CLI and AspNetCore tests into
Forge.sln(1add14c3| #878) - smithy - resolve NuGet restore failures in CI (
1d8f8bc0| #825)
📚 Documentation¶
- Add Platform Economics section to the platform overview and fix Azure App Service cost figures (
4dcd43e0| #864,436e5ac8| #896) - Correct deployment target in the platform overview (
b944fe5f| #810) - Document how a service maps to its Azure resources (
52c7136b| #872) - Consolidate the auth permission model to
Client.*scopes andApp.*roles (1ee452ec| #780) - Remove deprecated CLI commands from documentation (
08e5f4dd| #877)
📦 Dependencies¶
Routine dependency maintenance via Dependabot: 25 PRs across NuGet and npm/yarn workspaces, including a security-relevant bump of Microsoft.Identity.Client and 3 related packages (d02e580d | #852). See the full commit range for the complete list.
🔄 Breaking Changes¶
None in this release ✅
📋 Additional Notes¶
- Total commits: 98
- Files changed: 606
- Contributors: Aaron Morgulis, dependabot[bot], Emmitt Johnson, Jason Coria Corona Yue
Support¶
- 📧 Teams Support Channel: Support