AppSurface Search
Release

Release 0.2.0-preview.8

Coordinated AppSurface release 0.2.0-preview.8, prepared on 2026-08-22 for maintainer review.

Source of truth

View source Edit this page

Last updated

Status

Prepared

This release sidecar is prepared for maintainer review and is not yet tag-backed for AppSurface 0.2.0-preview.8.

Safe To Consume

Scope: Repository-wide. Packages, CLI tooling, examples, and docs-facing behavior ship in one coordinated version.

Freshness: Prepared on 2026-08-22. Treat it as provisional until its verified annotated tag exists.

Record

The matching compact ledger entry lives in CHANGELOG.md.

  • Release artifacts were generated by ./eng/release prepare.
  • Package release note paths are recorded in packages/package-index.yml.
  • Final tagged metadata is derived only from a verified annotated tag.

This is the release note for AppSurface 0.2.0-preview.8 after 0.2.0-preview.7. It stays provisional until the next tag is cut.

What is taking shape

  • ForgeTrust.AppSurface.Docs adds the fixed AppSurfaceLight preset. Hosts can select a complete light Docs shell and, when needed, override only the existing validated accent and link roles. The preset emits its resolved token graph and color-scheme: light before package stylesheets, freezes that payload into static exports, and does not enable visitor-controlled appearance storage or scripts. The same guide explains the light-preset recipe and when a shared theme pair or full layout override is the better fit.

Included in the next coordinated version

Release and docs surface

JavaScript singleton class contracts

Independent Docs products in one host

  • AppSurface Docs now lets a host register and map several independent Docs products, such as public documentation at /docs and contributor documentation at /internal/docs. Each product owns its source boundary, route family, identity, theme, search index, harvest state, and version catalog; hosts retain ownership of authentication, authorization policy, and middleware. Map every returned product handle, apply the host policy where needed, and finalize the set once. The executable public/internal ConsumerFixture demonstrates the complete public-read, internal-challenge, authenticated-contributor proof while keeping its header authentication mechanism explicitly test-only.

Coverage cleanup

  • appsurface coverage clean lets maintainers preview and then remove private coverage artifacts left by test runs. Its default mode cleans only files in an AppSurface-owned output directory; --all --root . provides a separate, explicit sweep of exact TestResults directories in one worktree. Both modes require --apply to delete, the broad sweep keeps its scan root, and neither mode follows linked paths, so unrelated build outputs and link targets remain outside the command's reach.

DevAuth persona recovery targets

  • ForgeTrust.AppSurface.Auth.AspNetCore.DevAuth now lets a seeded local persona declare an optional safe-rooted LandingUrl. Selection honors an explicit host returnUrl first, then the selected persona landing URL, then the existing control-page or marker fallback. Invalid configured landing URLs fail registration with ASDEV007; they never silently redirect to /. Clear-persona behavior, cookies, endpoints, status JSON, and production-auth boundaries are unchanged.

Packaged coverage semantic proof

  • Package maintainers can now use verify-packages to prove that the packed CLI selected the intended Smoke.Tests coverage report, observed a covered Smoke.Calculator.Sign branch before merge, and retained those facts after merge. The proof accepts only regular manifests up to 16 KiB and emits one bounded, public-safe coverage-cli-consumer-proof.evidence.json companion next to its private diagnostic report, while the CLI coverage guide distinguishes this packaged semantic guarantee from local readiness and the MSBuild compatibility path.

Package and docs surface

  • AppSurface now includes EvidenceHost: contract-first, explicit-diff policy planning for CI evidence. The public appsurface evidence command family creates a safe starter, diagnoses consumer prerequisites, explains selected obligations before execution, emits canonical plan/manifest/summary artifacts, and verifies their digest binding. Explicit no-evidence profiles can close only reviewed low-risk rules; skipped or filtered tests, unavailable capabilities, failed producers, and incomplete profiles never become a gate-eligible claim.
  • ForgeTrust.AppSurface.Evidence.Aspire provides a separate explicit lifecycle for consumer-owned Aspire readiness and E2E producers. It requires direct registrations, enforces deadlines and cleanup, keeps test composition out of normal application startup, and labels accepted v1 release envelopes as validated but not independently attested.

Conflict-free release-note composition

  • appsurface release compose lets any consumer project keep concurrent change descriptions in isolated, filename-sorted Markdown entries and preview or explicitly write one deterministic release note. It validates template-owned sections and bounded paths, never overwrites the template or source entries, and leaves changelog rollover, tags, package publication, and AppSurface's repository-owned ./eng/release cockpit outside the public command.

Migration watch