Skip to content

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 --follow for live build tail, saif pipeline open, saif pipeline logs <build-id>, and build URL support in saif pipeline monitor (426722b2 | #796, 0d27e5a6 | #794, 0f8bfc66 | #795, 26c7da81 | #773)
  • service catalog - saif service search and saif 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 auth and saif otel (81ad7bf0 | #874)

Smithy & SDK

  • Expose saif CLI 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.Sdk leaf 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 enableSlotDeployment pipeline 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) throughout SAIF.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 --name to a positional arg and enforce non-nullable Query (2c1f45e4 | #854)
  • saif pipeline monitor now returns a non-zero exit code for failed builds (4aa05276 | #792)
  • Surface PublishResult errors/warnings, fix pipeline creation, idempotent publish (cf58e950 | #782)
  • Bound saif service search Graph paging for broad queries (3ae51e7d | #817)

Terraform

  • Source APIM display_name from 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_permissions module 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 status from ProblemDetails base 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 and App.* 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