Repository navigation
Releases: Azure/agent-app-ui
Release list
v3.3.1
Fixed
- Deploy Container Apps, registry operations and deployment identities to
AZURE_APP_RESOURCE_GROUPfrom Azure App Configuration underagent-lz. - Preserve the legacy
AZURE_RESOURCE_GROUPfallback only for confirmed missing or empty application-group settings. Configuration access failures stop deployment. - Keep host deployment-script tests separate from installed runtime acceptance.
Validation
- Source unittest suite, non-editable installed-wheel acceptance and ephemeral Linux-container acceptance.
- Protected lint, typing, architecture, exception, policy and aggregate quality checks.
v3.3.0
Changed
- Optional-ingestion upload capability. Honor
DEPLOY_INGESTION_CONTAINER_APPindependently of the chat backend:falsehides standalone and Entra Copilot upload controls and rejects attachments before ingestion URL or Dapr resolution. - Missing preserves legacy upload eligibility;
trueretains existing authentication and conversation checks; malformed boolean values fail with a configuration error. Anonymous Copilot uploads remain disabled. - Text chat and retrieval are unchanged; no native Foundry IQ conversation upload path is introduced.
- Component README and embedding documentation describe the capability and its compatibility behavior.
Validation
- Offline only; no Azure acceptance claim. No live Azure checks or reads, Azure deployments, cloud builds, environment changes, or manually triggered deployment workflows were performed.
- Feature PR Azure/agent-app-ui#151 and release PR Azure/agent-app-ui#152 passed the existing CI without bypasses or quality-policy changes.
python .github/scripts/run-unittest.py --base-ref <protected-base-sha> --report .artifacts/unittest.json: 576 source tests passed, including 11 non-editable installed-package acceptance tests and their 506 installed-wheel behavioral tests.- Ephemeral Linux-container acceptance: 506 behavioral tests passed offline, plus installed-origin, staged-resource, and startup checks. No image or package was published.
- Protected lint, typing, architecture, exceptions, and policy checks each passed with zero findings; aggregate
quality-gatepassed. python .github/scripts/validate-agentic-assets.py: passed.- Release CI and source-bound JSON evidence.
- Exact released-main CI and source-bound JSON evidence passed at
858ed4205d866b7bfbff43ca9ed20ab812baa24e. - The release changes only
VERSIONandCHANGELOG.mdrelative to the validated feature tree. The released main tree is identical to the validated release branch.
Compatibility and documentation
- Backward-compatible UI minor release using an existing configuration capability; no new backend wire contract. A missing setting preserves legacy behavior.
- This is a UI source release, not certification of a new platform-wide pinned combination. Central platform documentation and manifest adoption remain in the subsequent coordinated platform/docs change.
VERSIONis3.3.0;CHANGELOG.mdrecordsv3.3.0dated2026-10-14and retains exactly one emptyUnreleasedsection according to UI conventions.
Rollback
- Consumers may retain or restore the previous UI pin
v3.2.2through the reviewed platform process. No deployment is performed by this release. - Preserve published tags and history; use a reviewed corrective release for source changes rather than moving or replacing this tag.
v3.2.2
Changed
- Include
api-version=v1in Hosted invocations and support both the currentresponse.conversation.idand legacyresponse.conversation_idenvelopes, rejecting malformed or conflicting IDs. - Register classic Dapr-backed conversation history only for the orchestrator backend. Hosted context remains session-scoped; OAuth, feedback and classic authenticated history are preserved.
- Incorporate the previously reviewed technical exception-registry validation policy without weakening source-bound evidence, expiry, protected tools or fail-closed aggregation.
Validation
- Installed-wheel unit acceptance and the offline Linux container checks passed.
- A genuine post-adoption reference pull request passed lint, typing, architecture, exceptions, policy and the aggregate quality gate against the adopted protected
mainevaluator. - Azure environment validation and deployment were intentionally omitted at the maintainer's request.
v3.2.1
Changed
- Upgrade Chainlit to 2.12.0, aiohttp to 3.14.3, and setuptools to 83.0.0 to resolve Dependabot security alerts; add the
get_favorite_stepsdata-layer callback required by Chainlit 2.12.
Validation
- 550 UI unit tests and 54 quality-policy tests passed; all five quality checks passed with zero findings.
v3.2.0
Removed
- Legacy
gpt-ragApp Configuration label fallback andGPT_RAG_key fallback (Azure/agent-landing-zone#695). The app now reads only its app label, thenagent-lz, then no label.
Validation
- Unit test suite passed locally and in CI.
v3.1.1
Fixed
- Fail early with a clear error when
NETWORK_ISOLATION=true,BUILD_MODE=acr-taskandACR_TASK_AGENT_POOL_NAMEis missing (Azure/agent-landing-zone#741).
v3.1.0
Added
- Keyless service-to-service auth to the orchestrator (ADR-0019). The UI
acquires a Microsoft Entra token with its managed identity (scope from
ORCHESTRATOR_AUTH_AUDIENCE) and sends it inX-Service-Authorization,
keepingAuthorizationfor the user's OBO token. API key and Dapr remain
opt-in fallbacks.
v3.0.0
Changed
- Agent Landing Zone dual-read and rebrand (Azure/agent-landing-zone#695). App
Configuration now loads theagent-lzlabel, which overrides the legacy
gpt-raglabel;AGENTLZ_*keys are read before legacyGPT_RAG_*keys.
Tracer names use theagentlz.prefix. Visible branding (assistant name,
welcome title, release footer) now reads "Agent Landing Zone". Existing
gpt-ragdeployments keep working unchanged.
Fixed
- Retry failed classic-chat uploads without losing attachments. Restore the
previous session conversation ID when a failed upload allocated a new one.
Reattached files are ingested under a fresh conversation before the question
runs; existing conversation ownership checks remain unchanged. - Stop questions after unconfirmed ingestion. False results and raised
failures finalize a reference-bearing retry notice without sending the
question or claiming successful file processing. Only confirmed batches
update uploaded-document bookkeeping. - Keep OpenAPI failures retryable and truthful. Failed schema generation
propagates instead of returning a successful metadata-only schema; later
requests retry generation and cache only success. - Expose owner-index repair needs without weakening panel access. A failed
optional index write logs that repair is required while the turn continues;
missing ownership rows still hide panel listings and deny read, feedback,
and delete operations.
Changed
-
Preserve dependency failures without masking implementation defects.
Narrow configuration, HTTP/JSON, Blob, JWT, logging and VERSION handlers to
their concrete failure contracts. Fix the unbound retry notification and
avoid retrying absent in-memory settings. Record retained application
boundaries individually as unapproved proposals with failure-test evidence. -
Separate Chainlit history adaptation from history operations. Put the
data-layer callbacks, factory and consume-once session bridge inapi.history;
keep history authorization, orchestrator operations and the single user cache
inservices.historywith explicit context. Preserve legacy exports and
ownership-before-session-selection ordering without a storage rewrite. -
Canonical UI runtime package with legacy adapters. Move runtime ownership
intosrc/gpt_rag_ui, share citation rendering between chat and restored
history, and separate callback registration from reusable operations. Keep
uvicorn main:app, existing configuration/defaults and externally staged
Chainlit assets; install the package in the existing container build.
Added
-
Isolate protected quality-tool execution. Run static tools without
candidate module shadowing or candidate package/build-backend installation
in the evaluator; analyze the explicit source graph in an isolated worker.
Add executable shadowing and installation-isolation regression fixtures. -
Proposed protected-base Python quality gates. Add pinned development-only
Ruff, mypy and import tooling, individual typing debt records, full static
dependency checks, an explicit broad-handler inventory and a fail-closed
quality-gateaggregate alongside unittest. Initial handler approvals,
bootstrap review and administrator activation remain outstanding; this
change does not claim required merge enforcement is active. -
Exact quality policy and executed failure evidence. Validate closed
governance schemas, stable move/debt identities, annotation/suppression sites,
adapter exports and dynamic imports. Bind exception approvals to distinct
protected operations and same-run, non-skipped unittest results. Require
protected aggregation and ephemeral offline Linux-image acceptance without
publishing an image or changing repository settings. -
Close binding and namespace quality-check bypasses. Detect qualified
suppression decorators on untyped functions, invalidate exception records
when effective catch bindings change, and reject unresolved catches.
Discover root namespace modules and retain their full typing/import identity
without changing application imports or exception behavior.
v3.0.0-preview.2
Changed
- Deploy scripts read App Configuration settings from the
agent-lzlabel with fallback to the legacygpt-raglabel.
Pre-release for Agent Landing Zone v4.0.0-preview.2.
v3.0.0-preview.1
Changed
- Agent Landing Zone rebrand: dual-read of
AGENTLZ_*settings with temporarygpt-ragfallback. - Audit telemetry prefix
agentlz.audit.*(contract v2).
Pre-release for Agent Landing Zone v4.0.0-preview.1.