Changelog¶
All notable changes to this project will be documented here.
This project follows Conventional Commits and Keep a Changelog conventions.
For the full changelog, see CHANGELOG.md in the repository root.
Unreleased¶
Breaking Changes¶
LangGraphApp(auth_level=...)now defaults toAuthLevel.FUNCTION(wasAuthLevel.ANONYMOUS). Deployed endpoints require a function key by default. Existing code that relied on the anonymous default must passauth_level=func.AuthLevel.ANONYMOUSexplicitly. (#240)- Opting into
AuthLevel.ANONYMOUSat the app level now emits an unconditionalUserWarning(previously only whenAZURE_FUNCTIONS_ENVIRONMENTwas set). The warning fires in tests, CI, and local runs so accidental anonymous deployments are always loud. The environment-gated codepath and theos/loggingimports it required have been removed. (#240)
Added¶
- Pluggable
ThreadLockprotocol underazure_functions_langgraph.locks(ThreadLock,InProcessThreadLock,AzureBlobLeaseThreadLock) — swap the native invoke/stream thread lock for a distributed backend in multi-instance deployments. (#241) LangGraphApp(thread_lock=...)argument (defaults toInProcessThreadLock, preserving previous behaviour). (#241)AZFUNC_LANGGRAPH_LOCK_BACKENDenvironment variable as a fail-fast safety guard: setting it todistributed(or any non-empty value other thaninprocess) whilethread_lockresolves toInProcessThreadLockraisesRuntimeErrorat construction, catching multi-instance deployments that forgot to wire a distributed backend. (#241)
Changed¶
- README banner across all locales (
README.md,README.ko.md,README.ja.md,README.zh-CN.md) now says Alpha Notice to match the existingDevelopment Status :: 3 - Alphaclassifier inpyproject.toml. Documentation now explicitly points at the classifier as the source of truth for maturity. (#242) docs/{security,production-guide,configuration,faq,installation}.mdupdated to reflect the FUNCTION default and the ANONYMOUS opt-in warning. (#240)examples/openapi_bridge,examples/platform_compat_sdk,examples/sqlite_checkpoint_local,examples/persistent_agent_blob_tablenow include inline comments explaining the ANONYMOUS opt-in and its unconditional warning. (#240)handle_invoke/handle_streamin_handlers.pynow require an explicitthread_lock: ThreadLockkeyword argument (previously module-level_thread_locks);LangGraphAppwires this automatically. External callers that invoked handlers directly must passthread_lock=self.thread_lock. (#241)
Documentation¶
- README (en/ja/zh-CN): new Distributed thread locking subsection with backend matrix and safety-guard guidance. (#241)
docs/production-guide.md: new Distributed thread locking section under Concurrency & Scale, with scale-out matrix and interaction notes for Platform-compatible runs. (#241)
Migration¶
# Before (implicit ANONYMOUS default — no auth required)
app = LangGraphApp()
# After (implicit FUNCTION default — function key required)
app = LangGraphApp()
# To preserve the old behavior explicitly (emits UserWarning):
app = LangGraphApp(auth_level=func.AuthLevel.ANONYMOUS)
0.5.0 (2026-04-07)¶
Breaking Changes¶
- Removed deprecated
GET /api/openapi.jsonendpoint and internal_build_openapi()method. Useazure-functions-openapi-pythonwithregister_with_openapi()bridge instead.
Added¶
- Metadata API with immutable dataclass-based snapshots (
GraphMetadata,AppMetadata) - OpenAPI bridge module for
azure-functions-openapi-pythonecosystem integration CloneableGraphprotocol for explicit clone support in threadless runs- SDK compatibility policy and contract tests
- Production hardening guide (auth, observability, timeouts, concurrency, storage)
- Step-by-step deployment guide with real Azure-verified output
- Choose-a-plan hosting guide for developers new to Azure Functions
- 695+ tests, 91%+ coverage
Changed¶
- Production warning when
auth_level=ANONYMOUSin non-local environments - Platform routes split into
threads.py,runs.py,assistants.pyresource modules - All documentation rewritten for general-developer friendliness
Fixed¶
- Mermaid fence format for correct rendering
- Bandit B311 false positive
- MkDocs strict-mode nav, anchor, and link failures
0.4.0 (2026-04-05)¶
Added¶
- Thread update, delete, search, and count endpoints
- Assistants count endpoint
- Threadless runs (stateless execution without thread)
- Thread state update and history endpoints
- Azure Blob Storage checkpointer (
AzureBlobCheckpointSaver) - Azure Table Storage thread store (
AzureTableThreadStore) - Persistent storage integration tests
- 645 tests, 91% coverage
0.3.0 (2026-04-05)¶
Added¶
- Platform API compatibility layer (full
langgraph-sdk-compatible HTTP surface) - Thread store protocol and in-memory implementation
- SSE streaming with platform event sequence
- Input validation and request size limits
- SDK compatibility tests
- 427 tests, 96% coverage
0.2.0 (2026-04-05)¶
Added¶
- State endpoint for retrieving thread state
- Per-graph auth level override
- Release automation
- 105 tests, 98%+ coverage
0.1.0a0 (2026-04-02)¶
Added¶
- Initial release with
LangGraphApp, invoke/stream/health endpoints - Protocol-based graph registration
- Pydantic v2 contracts
- Example simple agent