Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
317 commits
Select commit Hold shift + click to select a range
9a8eedd
spec015 Phase 3 (T013-T017): public API surface tests RED
RaviPidaparthi May 30, 2026
509aee9
spec015 Phase 3 GREEN: drop & rename retired surface (T018-T027b)
RaviPidaparthi May 30, 2026
0e3db4e
spec015 Phase 4 RED (T028, T029): retry_attempt durability tests
RaviPidaparthi May 30, 2026
b9a3584
spec015 Phase 4 GREEN (T030-T034): retry_attempt durability impl
RaviPidaparthi May 30, 2026
367d39d
spec015 Phase 5 RED (T035-T036): metadata namespace tests
invalid-email-address May 30, 2026
7510cc5
spec015 Phase 5 GREEN (T037-T042): metadata named namespaces
RaviPidaparthi May 30, 2026
ef55e5f
spec015 Phase 6 RED (T043-T045): responses-side contract tests
RaviPidaparthi May 30, 2026
86d0934
spec015 Phase 6 GREEN (T046-T052): responses-package adapted to new p…
RaviPidaparthi May 30, 2026
f217118
spec015 Phase 6 docs+CHANGELOG (T053-T056b): close-out the responses …
RaviPidaparthi May 30, 2026
22ec18c
spec015 Phase 7 RED (T057-T058): dev-guide review meta-test
RaviPidaparthi May 30, 2026
0805307
spec015 Phase 7 GREEN (T059-T063): consolidated dev guide + meta-test…
RaviPidaparthi May 30, 2026
77bbfcf
spec015 Phase 8 RED (T064-T067): durable invocation sample structural…
RaviPidaparthi May 30, 2026
59ad1f6
spec015 Phase 8 GREEN (T068-T073): invocation samples conform to refi…
RaviPidaparthi May 30, 2026
e0683b6
spec015 Phase 9 RED (T074-T075): shippable-bar + install-independence…
RaviPidaparthi May 30, 2026
cd77218
spec015 Phase 9 GREEN (T076-T083): per-sample READMEs + manifests
RaviPidaparthi May 30, 2026
a466f28
Spec 015 Phase 10 (T084-T087): CHANGELOG sweep + close out audit
RaviPidaparthi May 30, 2026
013925a
Spec 015 Phase 11 (T026, T088-T094): mark EtagConflict advanced + ver…
invalid-email-address May 30, 2026
fc8566a
[agentserver] core: tighten dev-guide to remove SDK-internal leakage
invalid-email-address May 30, 2026
b412e10
[agentserver] core: fix accuracy bugs and residual leakage in durable…
invalid-email-address May 30, 2026
f29756c
[agentserver] core: drop non-recovery-safe per-call kwargs from Task.…
RaviPidaparthi May 30, 2026
ef8b27c
[agentserver] core: drop title/tags/stale_timeout from Task.run/start…
RaviPidaparthi May 30, 2026
6bcb688
[agentserver] core: drop migration framing from changelog/dev-guide; …
RaviPidaparthi May 30, 2026
5abd36b
[agentserver] docs: correct TaskResult(status='superseded') output se…
RaviPidaparthi May 30, 2026
5084210
[agentserver] docs: clarify cooperative-cancellation handler strategi…
RaviPidaparthi May 30, 2026
5df2921
[agentserver] spec 016: expand scope to also fix steering surface
RaviPidaparthi May 30, 2026
04dfcc2
[agentserver] spec 016: add task API azure.core pipeline migration
RaviPidaparthi May 30, 2026
baf1c26
[agentserver] spec 016: codify metadata auto-flush invariant across a…
RaviPidaparthi May 30, 2026
7e354cc
[agentserver] spec 016: cancel signal carries reason; per-turn timeou…
RaviPidaparthi May 30, 2026
bc7e017
[agentserver] spec 016: durable wall-clock per-turn timeout; recovery…
RaviPidaparthi May 30, 2026
2e7aa2f
[agentserver] spec 016: refresh Docs Loop section for full scope
RaviPidaparthi May 30, 2026
e4cca88
[agentserver] spec 016: close 4 constitutional review gaps
RaviPidaparthi May 30, 2026
a28c9cc
[agentserver] spec 016: start cancel-surface proposal doc for iteration
RaviPidaparthi May 30, 2026
7f74291
[agentserver] spec 016: cancel-surface proposal — Strategy C ends wit…
RaviPidaparthi Jun 1, 2026
94a894c
[agentserver] spec 016 + cancel proposal: remove TaskRun.terminate() …
RaviPidaparthi Jun 1, 2026
6ecd409
[agentserver] spec 016: add FR-037 ctx.exit_for_recovery() for shutdo…
RaviPidaparthi Jun 1, 2026
5e161a0
[agentserver] cancel-surface proposal: lock in Proposal E (independen…
RaviPidaparthi Jun 1, 2026
a8ec9e7
[agentserver] cancel-surface proposal: replace ctx.pending_inputs (Se…
RaviPidaparthi Jun 1, 2026
00cd1d5
[agentserver] cancel-surface proposal: fix missed ctx.pending_inputs …
RaviPidaparthi Jun 1, 2026
95ddb3d
[agentserver] cancel-surface proposal: fix was_steered, drop ctx.stee…
RaviPidaparthi Jun 1, 2026
63dbe29
[agentserver] spec 016: fold in Proposal E (independent boolean cance…
RaviPidaparthi Jun 1, 2026
4cdbfab
[agentserver] spec 016: coherence rewrite + second-pass cleanup
RaviPidaparthi Jun 1, 2026
e99262b
[agentserver] spec 016: add Conformance Test Map (non-duplication; ci…
RaviPidaparthi Jun 1, 2026
7e2d9c1
[agentserver] spec 016: include agent name in stable lease owner (FR-…
RaviPidaparthi Jun 1, 2026
5ff0a15
[agentserver] spec 016: catch derive_lease_owner Behavior-changed bul…
RaviPidaparthi Jun 1, 2026
f5dc085
[agentserver] /speckit.plan: fill plan + Phase 0 + Phase 1 artifacts …
RaviPidaparthi Jun 1, 2026
e141424
[agentserver] spec 016 plan: address 5 nits from code review (APPROVE…
RaviPidaparthi Jun 1, 2026
686bc92
[agentserver] /speckit.tasks: generate tasks.md for spec 016 (111 tas…
RaviPidaparthi Jun 1, 2026
297de50
[agentserver] spec 016 tasks: add 11 continuous code review tasks (T1…
RaviPidaparthi Jun 1, 2026
45a4440
[agentserver] constitution: add Principle XIII (Continuous Code Revie…
RaviPidaparthi Jun 1, 2026
c206847
[agentserver] spec 016: address 9 /speckit.analyze findings (1 CRITIC…
Copilot Jun 1, 2026
af16196
[agentserver] spec 016 Phase 1: resolve T002/T003/T004 + create confo…
Copilot Jun 1, 2026
665c22d
[agentserver] spec 016 Phase 2: foundational docs + meta-test invaria…
Copilot Jun 1, 2026
ad33e12
[agentserver] spec 016 Phase 3: US9 transport migration to azure.core…
Copilot Jun 1, 2026
6b3f253
[agentserver] spec 016 Phase 4: US1 stale_timeout removal (T025..T032)
Copilot Jun 1, 2026
2dbb83e
[agentserver] spec 016 Phase 6 partial: FR-004a lease-owner agent+ses…
Copilot Jun 1, 2026
054d1c6
[agentserver] spec 016 tasks: add rolling progress status (38/122 don…
Copilot Jun 1, 2026
a199e57
[agentserver] spec 016 Phase 5: US2 split-brain eviction integration …
Copilot Jun 1, 2026
fce1919
[agentserver] spec 016 Phase 6: US3+US4 three-layer recovery (T043..T…
Copilot Jun 1, 2026
dda570a
[agentserver] spec 016 Phase 8: US5 steering as plain multi-turn (T06…
Copilot Jun 2, 2026
38348ef
[agentserver] spec 016 Phase 9: US6 cancel-cause booleans + terminate…
Copilot Jun 2, 2026
f360b93
[agentserver] spec 016 Phases 10+11: per-turn timeout + exit_for_reco…
Copilot Jun 2, 2026
66b3fe5
[agentserver] spec 016 Phase 12: polish + sample updates + gap-list a…
Copilot Jun 2, 2026
832890d
[agentserver] spec 016 Phase 13: code-review fixes (BLOCKING + HIGH a…
Copilot Jun 2, 2026
ed20701
[agentserver] spec 016 US7: per-turn durable timeout end-to-end (T086…
Copilot Jun 2, 2026
019fea4
[agentserver] spec 016 US8 extended: T094(b) recovery re-entry + T096…
Copilot Jun 2, 2026
625846c
[agentserver] spec 016 complete: all 123 tasks done; Phase 13 reviews…
Copilot Jun 2, 2026
3df9c5b
[agentserver] core+responses: fix stale spec-016-touched tests + samp…
Copilot Jun 2, 2026
5c11009
[agentserver] split PR: remove responses/demo/speckit; restore optimi…
RaviPidaparthi Jun 2, 2026
d8e5bc6
Merge remote-tracking branch 'origin/main' into feature/agentserver-d…
RaviPidaparthi Jun 2, 2026
519ddd9
[agentserver] invocations: drop demo-preserved test (demo split out)
RaviPidaparthi Jun 2, 2026
7dbc8f0
[agentserver] reframe durability as new feature launch in changelog +…
RaviPidaparthi Jun 2, 2026
cea253b
[agentserver] core: pre-commit cleanup — pylint/mypy/pyright clean
RaviPidaparthi Jun 2, 2026
24dc2c5
Merge remote-tracking branch 'origin/main' into feature/agentserver-d…
RaviPidaparthi Jun 2, 2026
7dfbd7a
[agentserver] address feedback: tags internal, single shutdown-grace …
RaviPidaparthi Jun 2, 2026
dd4923e
[agentserver] invocations: drop sample MDs in favor of module docstrings
RaviPidaparthi Jun 2, 2026
a2c9a1f
[agentserver] core: drop unused aiohttp production dependency
RaviPidaparthi Jun 2, 2026
17af169
[agentserver] core: send Foundry-Features header on task-store requests
RaviPidaparthi Jun 2, 2026
a555f72
[agentserver] core: make TaskRun awaitable (return .result())
RaviPidaparthi Jun 2, 2026
10d9440
[agentserver] core: rename FOUNDRY_TASK_API_ENABLED → AGENTSERVER_TAS…
RaviPidaparthi Jun 2, 2026
98f0d59
[agentserver] core: auto-on hosted task API + wheel build script + @t…
RaviPidaparthi Jun 3, 2026
7052b22
[agentserver] core: move skill out of .github/, check in @task previe…
RaviPidaparthi Jun 3, 2026
7bacb85
[agentserver] core: co-locate skill with dev guide + wheel doc + scri…
RaviPidaparthi Jun 3, 2026
8997815
[agentserver] core: add unified streaming subpackage (spec 017 Phase …
RaviPidaparthi Jun 4, 2026
ed7abf7
[agentserver] core: conformance tests for streaming subpackage (spec …
RaviPidaparthi Jun 4, 2026
bdddffc
[agentserver] spec 017 Phase 1: delete legacy stream surface, migrate…
RaviPidaparthi Jun 4, 2026
f9e70e1
[agentserver] core: refresh @task preview wheels with spec 017 stream…
RaviPidaparthi Jun 4, 2026
ca7f62c
[agentserver] core: relax input_id precondition to idempotency-only w…
RaviPidaparthi Jun 4, 2026
2a1c028
[agentserver] core: handle hosted-store etag conflicts on every CAS w…
RaviPidaparthi Jun 4, 2026
4621d2b
[agentserver] core: workaround hosted-store etag-comparison bug + nor…
RaviPidaparthi Jun 4, 2026
1ca9d74
[agentserver] core: normalize If-Match to RFC 7232 strong-validator f…
RaviPidaparthi Jun 5, 2026
2324eb8
[agentserver] task-primitive efficiency + sample maturity + e2e tests
RaviPidaparthi Jun 6, 2026
57927d8
[agentserver] copilot sample: real subscribe-before-start + fix delta…
RaviPidaparthi Jun 6, 2026
464c42a
[agentserver] research sample: AZURE_AI_CREDENTIAL=cli override + cra…
RaviPidaparthi Jun 6, 2026
e31a318
[agentserver] core: remove etag quote-strip + drop-If-Match fallbacks…
RaviPidaparthi Jun 8, 2026
acbe6cc
Revert "[agentserver] core: remove etag quote-strip + drop-If-Match f…
RaviPidaparthi Jun 8, 2026
adb4cff
[agentserver] core: remove etag quote-strip + drop-If-Match fallbacks…
RaviPidaparthi Jun 8, 2026
f3c5dfa
[agentserver] core: task attachments — per-input payloads up to 2 MB …
RaviPidaparthi Jun 9, 2026
d12325b
[agentserver] core: spec 018 TDD-gap fill — add 7 missing-coverage tests
RaviPidaparthi Jun 9, 2026
64fdb72
[agentserver] core: scrub user-facing docs of internal attachment/pro…
RaviPidaparthi Jun 9, 2026
b4d89f5
[agentserver] core: add task-and-streaming design spec + dev-doc tidies
Jun 11, 2026
09cc8a6
[agentserver] specify: recover constitution.md + whitelist in gitignore
Jun 11, 2026
2971d25
[agentserver] core: spec 019 — task & streams reconciliation (spec ph…
RaviPidaparthi Jun 11, 2026
8e8a9ac
[agentserver] core: spec 019 T-2.0 — extend completeness meta-tests (…
RaviPidaparthi Jun 11, 2026
79b473c
[agentserver] core: spec 019 T-2.1 — Area A tests RED (etag CAS / wri…
RaviPidaparthi Jun 11, 2026
0912ae6
[agentserver] core: spec 019 T-2.2 — Area B test RED (recovery source…
RaviPidaparthi Jun 11, 2026
adc8746
[agentserver] core: spec 019 T-2.3 — Area D tests RED (errors / flush…
RaviPidaparthi Jun 11, 2026
f9781ff
[agentserver] core: spec 019 T-2.4 — Area C tests RED (Task.get + out…
RaviPidaparthi Jun 11, 2026
c896ac1
[agentserver] core: spec 019 T-2.5 — Area E tests RED (Gone→NotFound …
RaviPidaparthi Jun 11, 2026
fb8b091
[agentserver] core: spec 019 T-3.1 — Area A impl (etag CAS + write qu…
RaviPidaparthi Jun 11, 2026
0f5ed06
[agentserver] core: spec 019 T-3.1 — Area A follow-up (close T-5.1 BL…
RaviPidaparthi Jun 11, 2026
1f8405a
[agentserver] core: spec 019 T-3.2 — Area B impl (recovery scan sourc…
RaviPidaparthi Jun 11, 2026
ab21d9e
[agentserver] core: spec 019 T-3.3 — Area D impl (errors / flush_all …
RaviPidaparthi Jun 11, 2026
b2b2661
[agentserver] core: spec 019 T-5.3 — close LOW finding (stale :class:…
RaviPidaparthi Jun 11, 2026
2adbdb4
[agentserver] core: spec 019 T-3.4 — Area C impl (Task.get + TaskSnap…
RaviPidaparthi Jun 11, 2026
4146f71
[agentserver] core: spec 019 T-5.4 — close BLOCKING-1 + MEDIUM-1/-2/L…
RaviPidaparthi Jun 11, 2026
7c545d9
[agentserver] core: spec 019 T-3.5 — Area E impl (streaming Gone→NotF…
RaviPidaparthi Jun 11, 2026
7291f62
[agentserver] core: spec 019 T-5.5 — close BLOCKING + HIGH + MEDIUM +…
RaviPidaparthi Jun 11, 2026
ea08355
[agentserver] core: spec 019 T-5.6 — close 3 HIGH + 2 LOW findings fr…
RaviPidaparthi Jun 11, 2026
d5066de
[agentserver] core: dev-guide internal-leakage audit — clean up 12 le…
RaviPidaparthi Jun 11, 2026
8d6cc1d
[agentserver] core: dev-guide framing pass — rewrite from developer p…
RaviPidaparthi Jun 11, 2026
78e2ffd
[agentserver] durable_research sample: emit terminal SSE frame on Tas…
RaviPidaparthi Jun 11, 2026
d2b7a11
[agentserver] core: remove samples/ directory
RaviPidaparthi Jun 11, 2026
a23fe51
[agentserver] spec 020 (SOT update): local-provider ↔ service parity
RaviPidaparthi Jun 11, 2026
6938629
[agentserver] spec 020 Phase 1: conformance tests (RED first)
RaviPidaparthi Jun 12, 2026
8b89408
[agentserver] spec 020 Phase 2 (Workstream A): LocalFileTaskProvider …
RaviPidaparthi Jun 12, 2026
cf303cf
[agentserver] spec 020 Phase 2 (Workstream B): hosted classifier serv…
RaviPidaparthi Jun 12, 2026
ca895af
[agentserver] spec 020 Phase 2c: framework translation layer (no _Hos…
RaviPidaparthi Jun 12, 2026
5a22a05
[agentserver] spec 020 Phase 4: code-review fixes (3 BLOCKING + 4 HIG…
RaviPidaparthi Jun 12, 2026
843a21d
[agentserver] core: `started_at` immutable after first `in_progress` …
RaviPidaparthi Jun 13, 2026
f32008d
[agentserver] spec 022: Phase 0+1 — speckit + RED-first conformance t…
RaviPidaparthi Jun 13, 2026
b46c0ed
[agentserver] spec 022 Phase 2: class split + new symbols + decorator…
RaviPidaparthi Jun 13, 2026
5500481
[agentserver] spec 022 Phase 2: LastInputIdPreconditionFailed new shape
RaviPidaparthi Jun 13, 2026
d1cb8c5
[agentserver] spec 022 Phase 7: migrate invocations durable samples
RaviPidaparthi Jun 13, 2026
2f74449
[agentserver] spec 022: tasks.md status snapshot
RaviPidaparthi Jun 13, 2026
4f6fee0
[agentserver] spec 022 Phase 3: multi-turn raise → suspended (FR-010/…
RaviPidaparthi Jun 13, 2026
d2195d1
[agentserver] spec 022 Phase 4: no output/error persistence for multi…
RaviPidaparthi Jun 13, 2026
db676a7
[agentserver] spec 022 Phase 5 partial: TaskRun.input_id attribute (F…
RaviPidaparthi Jun 13, 2026
7f751c0
[agentserver] spec 022 Phase 6: TaskDeferred from exit_for_recovery (…
RaviPidaparthi Jun 13, 2026
c4421f8
spec 022 Phase 5: TaskRun slim shape (T-5.1, T-5.4)
RaviPidaparthi Jun 13, 2026
e8c0cc8
spec 022 Phase 5: exception taxonomy slim (T-5.5/T-5.6/T-5.7)
RaviPidaparthi Jun 13, 2026
bfe7912
spec 022: T-2.3 handler-arg, T-2.5 auto-task_id, T-3.5 metadata reser…
RaviPidaparthi Jun 13, 2026
9f4c4fd
spec 022 Phase 6: TaskContext.input_id + skip legacy tests
RaviPidaparthi Jun 13, 2026
ee5eebf
spec 022: bare exception signatures + JSONValue forward refs
RaviPidaparthi Jun 13, 2026
7d740d2
spec 022 small fixes: TaskCancelled message, MultiTurnTask requires t…
RaviPidaparthi Jun 13, 2026
062f7b9
spec 022 multi-turn drain wiring: refresh current_result_future + inp…
RaviPidaparthi Jun 13, 2026
0713af6
spec 022 T-6.6 MultiTurnTask.delete full impl (FR-024/FR-061)
RaviPidaparthi Jun 13, 2026
e749ee9
spec 022 FR-027/FR-030: no interim error PATCH between retries + retr…
RaviPidaparthi Jun 13, 2026
6c149d2
spec 022: drop is_suspended assertions in legacy tests; always-unwrap
RaviPidaparthi Jun 13, 2026
57d3602
spec 022 FR-007/FR-013: multi-turn success path unwraps Output + prom…
RaviPidaparthi Jun 13, 2026
8a17d9c
spec 022: more legacy result.output / is_suspended cleanup + inline_r…
RaviPidaparthi Jun 13, 2026
2571e12
spec 022: eager Task decorator registration into live TaskManager
RaviPidaparthi Jun 13, 2026
36c4016
spec 022 FR-015/FR-077: structured failure log + bare TaskCancelled()…
RaviPidaparthi Jun 13, 2026
072dc5b
spec 022: tasks.md status snapshot — 58/69 tasks done, 690/704 tests …
RaviPidaparthi Jun 13, 2026
d3eccd4
spec 022 honest T-0.2/T-5.1/T-5.2/T-5.3/T-7.1 — delete _result.py + _…
RaviPidaparthi Jun 13, 2026
d8c684f
spec 022: T-7.6 dev guide rewrite + T-8.2 SC-009 downstream audit + T…
RaviPidaparthi Jun 13, 2026
3047fd9
spec 022: address cross-area review findings (B1/B2/B4/L1/L2/M1-M4/H6)
RaviPidaparthi Jun 13, 2026
d29474e
spec 022: clean standalone dev guide + drop SOT supersedence preamble…
RaviPidaparthi Jun 13, 2026
657004d
spec 022 SOT: surgical section rewrites (§11, §26, §32, §33, §34, §35…
RaviPidaparthi Jun 13, 2026
f12539d
spec 022 SOT: comprehensive inline cleanup — §12/§13/§15/§16/§20/§22/…
RaviPidaparthi Jun 13, 2026
a778d7c
spec 021 conformance: hard-reject @task(steerable=|ephemeral=), delet…
RaviPidaparthi Jun 13, 2026
485230a
spec 021 Appendix A.5: remove TaskContext.suspend() from public surface
RaviPidaparthi Jun 13, 2026
875841b
spec 021 conformance: address all BLOCKING + HIGH findings from cross…
RaviPidaparthi Jun 13, 2026
01d711e
spec 022: M2/M3 cleanup — strip FR/spec-N references from samples + d…
RaviPidaparthi Jun 13, 2026
776ed16
fix(agentserver): remove output-persistence dead code (SOT §11/§20 dr…
Jun 14, 2026
2fc7a88
fix(agentserver): resolve all SOT-vs-impl drift items (D-1 .. D-4)
Jun 14, 2026
60aaedb
Merge remote-tracking branch 'origin/main' into feature/agentserver-d…
Jun 14, 2026
e09d5ba
agentserver: finalize feature branch — scrub internal-spec refs, vers…
Jun 14, 2026
b35483c
agentserver: refresh @task preview wheels for 2.0.0b7 / 1.0.0b6
Jun 14, 2026
d026cf6
agentserver: spec 022 final — zero skips, zero legacy, all tests green
Jun 14, 2026
b6b9b43
[agentserver] core: unified storage_paths + AGENTSERVER_TASKS_BACKEND…
RaviPidaparthi Jun 15, 2026
b30018e
[agentserver] core: refresh 2.0.0b7 preview wheels (storage_paths + A…
RaviPidaparthi Jun 15, 2026
1cab231
[agentserver] core CHANGELOG: add storage_paths + AGENTSERVER_TASKS_B…
RaviPidaparthi Jun 15, 2026
09a42d2
[agentserver] core: black formatter pass on storage_paths + _manager …
RaviPidaparthi Jun 15, 2026
ecb1a10
[agentserver] core: refresh 2.0.0b7 wheels post-black format
RaviPidaparthi Jun 15, 2026
57ca8f7
[agentserver] invocations: propagate agent_session_id into request.st…
RaviPidaparthi Jun 15, 2026
bcd1267
[agentserver] invocations: refresh 1.0.0b6 wheels with session_id pro…
RaviPidaparthi Jun 15, 2026
f98402b
[agentserver] invocations: regression tests for agent_session_id prop…
RaviPidaparthi Jun 15, 2026
ae1895a
[agentserver] invocations: source session_id for cancel/get from env …
RaviPidaparthi Jun 15, 2026
8577e85
[agentserver] invocations: refresh 1.0.0b6 wheels with env-var sessio…
RaviPidaparthi Jun 15, 2026
036dca6
[agentserver] core: move sdk/agentserver/wheels/ off durable-tasks br…
RaviPidaparthi Jun 15, 2026
5207960
[agentserver] core: move standalone skill files off durable-tasks branch
RaviPidaparthi Jun 15, 2026
10918e3
fix(core/durable): track post-reclaim etag on cold-start recovery
RaviPidaparthi Jun 16, 2026
17437a1
Sync durable_research sample to unified .durable storage path
RaviPidaparthi Jun 16, 2026
4bc5c96
test(durable): RED conformance for pending_input_count + steering wri…
RaviPidaparthi Jun 18, 2026
352b6c4
fix(durable): wire pending_input_count + serialize steering writes (s…
RaviPidaparthi Jun 18, 2026
f8cd2b4
fix(durable): finish spec 031 — drain conflict recovery, metadata ret…
RaviPidaparthi Jun 18, 2026
d351a44
test(durable): faithful local-provider lease rule exposes hosted drai…
RaviPidaparthi Jun 18, 2026
af72411
fix(durable): steering drain flips suspended->in_progress so the stee…
RaviPidaparthi Jun 18, 2026
e8d8fc1
docs(durable): SOT — steering drain flips suspended->in_progress; lea…
RaviPidaparthi Jun 18, 2026
042ef86
Merge remote-tracking branch 'origin/main' into feature/agentserver-d…
RaviPidaparthi Jun 19, 2026
5fe5b8c
fix(core-streaming): reopen FileBackedReplayEventStream after compact…
RaviPidaparthi Jun 19, 2026
2674f7a
feat(core): public platform-contract surface for composed protocol la…
RaviPidaparthi Jun 24, 2026
b56ce6e
refactor(core): reframe durable->resilient terminology (spec 034 Phas…
RaviPidaparthi Jun 25, 2026
2cc45a6
refactor(core): storage-prose accuracy in reframe (Spec 034 §2.9a)
RaviPidaparthi Jun 25, 2026
14287d6
docs(constitution): reframe durable->resilient terminology (Spec 034 …
RaviPidaparthi Jun 25, 2026
9a863bb
docs(core): drop fake "Resilient Functions" product name from reframe…
RaviPidaparthi Jun 25, 2026
d23b123
fix(core): correct logger namespace mis-swap from reframe (Spec 034)
RaviPidaparthi Jun 25, 2026
4b15a8a
refactor(invocations): move durable->resilient sample/test reframe to…
RaviPidaparthi Jun 25, 2026
d294849
fix(samples): invocation-id dedup for resilient_copilot (fixes stuck …
RaviPidaparthi Jun 25, 2026
40174e4
fix(samples): make Copilot history the source of truth for resilient_…
RaviPidaparthi Jun 25, 2026
477b7c3
fix(samples): close resilient_copilot SSE stream after turn completes
RaviPidaparthi Jun 25, 2026
f879e16
fix(samples): close SSE stream producer-side when invocation completes
RaviPidaparthi Jun 25, 2026
03127a4
docs(samples): correct stream-close rationale comment
RaviPidaparthi Jun 25, 2026
738a7b6
docs(samples): use raw docstrings so usage curl commands copy-paste c…
RaviPidaparthi Jun 25, 2026
1db2edd
chore(agentserver): remove formatting churn and rewrite changelogs
RaviPidaparthi Jun 25, 2026
5b4a6af
fix(agentserver-core): resolve pylint/mypy/pyright findings in tasks …
RaviPidaparthi Jun 26, 2026
4a0c94c
Merge remote-tracking branch 'origin/main' into feature/agentserver-d…
RaviPidaparthi Jun 26, 2026
0626e4b
refactor(agentserver-core): fold state-path resolution into _config, …
RaviPidaparthi Jun 26, 2026
ceddd92
feat(tasks): add TaskManagerNotInitialized typed exception
RaviPidaparthi Jun 26, 2026
dd72380
docs(tasks-spec): correct LocalFileTaskProvider on-disk paths
RaviPidaparthi Jun 29, 2026
54a95ae
test(core-tasks): RED — RetryPolicy hard caps + module preset parity …
RaviPidaparthi Jul 1, 2026
1928359
feat(core-tasks): RetryPolicy hard caps (<=10 attempts, <=1h delay) +…
RaviPidaparthi Jul 1, 2026
1471338
test(core-tasks): RED — required name, timeout default/cap, input_id …
RaviPidaparthi Jul 1, 2026
118de5f
feat(core-tasks): required task name + 1-day timeout default/cap + in…
RaviPidaparthi Jul 1, 2026
9768b1c
test(core-tasks): RED — per-attachment cap raised to 10 MiB (spec 037…
RaviPidaparthi Jul 1, 2026
25bbf00
feat(core-tasks): raise per-attachment cap 2 MiB -> 10 MiB (spec 037 …
RaviPidaparthi Jul 1, 2026
fbc2a3a
docs(core-tasks): align task()/multi_turn_task() docstrings + overloa…
RaviPidaparthi Jul 1, 2026
fca2920
test(core-streaming): RED — terminal sentinel without emit_time + fil…
RaviPidaparthi Jul 1, 2026
4facb49
feat(core-streaming): durable terminal sentinel + stream-id filename …
RaviPidaparthi Jul 1, 2026
632e187
feat(core-streaming): ergonomic defaults for use_file_backed_replay (…
RaviPidaparthi Jul 1, 2026
83cea06
test(core-streaming): use_file_backed_replay ergonomic defaults (spec…
RaviPidaparthi Jul 1, 2026
a568f8d
docs(core): remove stale timeout-watchdog known-gap + clarify per-tur…
RaviPidaparthi Jul 1, 2026
8f3bcf5
fix(invocations-sample): remove unreachable 410 branch + adopt file-b…
RaviPidaparthi Jul 1, 2026
ff837f6
fix(core-tasks): keep two @overload defs (name required in both) so m…
RaviPidaparthi Jul 1, 2026
3836b19
fix(spec037 review): mark async input_id tests + close _safe_stream_f…
RaviPidaparthi Jul 1, 2026
94af4a7
Merge remote-tracking branch 'origin/main' into feature/agentserver-d…
RaviPidaparthi Jul 1, 2026
04b0a3d
feat(core-tasks): task-record schema cleanup — drop `_` key prefixes,…
RaviPidaparthi Jul 3, 2026
36e87df
docs(core): complete Spec 038 wire-key update in task-streaming SOT (…
RaviPidaparthi Jul 3, 2026
89f994f
fix(core-tasks): Spec 038 code-review remediation (pre-push gate + re…
RaviPidaparthi Jul 3, 2026
01352c2
docs(core): document retry hard caps in tasks-guide; drop stale qualn…
RaviPidaparthi Jul 3, 2026
b22a196
fix(core): normalize payload.turn_started_at to +00:00 offset (Spec 0…
RaviPidaparthi Jul 14, 2026
aaac966
core+invocations: PY-1/PY-2 file-backed replay parity + delete copilo…
RaviPidaparthi Jul 15, 2026
f93cef4
samples(invocations): fix resilient_langgraph crash-recovery integrat…
RaviPidaparthi Jul 15, 2026
cb0988c
docs(core): add LangGraph fork / checkpoint_ns FAQ to tasks-guide (Sp…
RaviPidaparthi Jul 15, 2026
3c63318
core(tasks): auto-generate per-turn input_id for multi-turn tasks (Sp…
RaviPidaparthi Jul 15, 2026
76ccb83
Merge remote-tracking branch 'origin/main' into feature/agentserver-d…
RaviPidaparthi Jul 15, 2026
1eabb19
chore(agentserver): bump versions post main-merge (b7/b6/b8 already r…
RaviPidaparthi Jul 15, 2026
65265fc
feat(agentserver-core): expose resolve_state_subdir on public core su…
RaviPidaparthi Jul 16, 2026
bee217e
fix(agentserver): unblock+correct api.md generation (core, invocations)
RaviPidaparthi Jul 16, 2026
0952c12
Merge main into feature/agentserver-durable-tasks
shanmukha1200 Jul 22, 2026
5bcd35c
Bump agentserver invocations to 1.0.0b8
shanmukha1200 Jul 22, 2026
0768b7a
Merge remote-tracking branch 'origin/main' into pr-46997
Jul 23, 2026
9b33453
fix(agentserver-core): use asyncio.get_running_loop() in tasks runtime
Jul 23, 2026
dd17a99
fix(agentserver): correct resilient samples and harden green-when-bro…
Jul 23, 2026
7e84959
test(agentserver): skip Windows-incompatible tests on non-POSIX
Jul 23, 2026
fa6b579
fix(agentserver-core): resolve Verify Links, cspell, Sphinx and api.m…
Jul 23, 2026
0c2d7a5
fix(agentserver): resolve Build Analyze failures (verifysdist + pylint)
Jul 23, 2026
400706c
Merge branch 'main' into feature/agentserver-durable-tasks
Nathandrake229 Jul 24, 2026
1ec2b36
fix(agentserver-core): address PR review feedback (docs + typing)
Jul 27, 2026
dfaa113
chore(agentserver-core): regenerate api.md for MultiTurnTask.run retu…
Jul 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions sdk/agentserver/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,7 @@
specs/
.specify/
.github/
.vscode/

# Demo session state — regenerated each time the demo runs
.demo-session
17 changes: 15 additions & 2 deletions sdk/agentserver/azure-ai-agentserver-core/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,25 @@

### Features Added

### Breaking Changes
- Task-record schema cleanup: framework-reserved wire keys in the persisted task record no longer carry a leading `_` (e.g. the `task_name` tag; the `schema_version` / `last_input_id` / `turn_started_at` / `retry_attempt` / `steering` payload keys; the `input` / `steering_input_<seq>` / `output` attachment keys) — only the `__attachment_ref__` discriminator keeps its marker. The `source` stamp now includes `hosting_environment` (from `FOUNDRY_HOSTING_ENVIRONMENT`), and the payload now carries a `schema_version` (currently `"1"`). Tasks persisted before this change (lacking `payload.schema_version`) are deleted rather than recovered by the recovery scan.

### Bugs Fixed
- Added a **resilient task primitive** for building long-running agents that survive container restarts, out-of-memory kills, and redeployments. Decorate an async function with `@task` (one-shot) or `@multi_turn_task` (multi-turn conversations); the framework persists task state to a task store and automatically recovers and re-invokes in-flight work after a crash. Available from `azure.ai.agentserver.core.tasks`, with `TaskContext`, `TaskRun`, configurable retries (`RetryPolicy`), cancellation, steering, and a typed exception set (`TaskFailed`, `TaskCancelled`, `TaskConflictError`, `TaskManagerNotInitialized`, and others). See the [Resilient Task Developer Guide](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/agentserver/azure-ai-agentserver-core/docs/tasks-guide.md).
- Added an **event streaming** API (`azure.ai.agentserver.core.streaming`) for publishing incremental task output to one or more subscribers, with in-memory and file-backed buffering and live or replay delivery. This makes it straightforward to serve Server-Sent Events (SSE) responses that a client can disconnect from and resume. See the [Streaming Developer Guide](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/agentserver/azure-ai-agentserver-core/docs/streaming-guide.md).
- Exposed `resolve_state_subdir(name)` on the public `azure.ai.agentserver.core` surface. It resolves an on-disk state subdirectory (e.g. `"tasks"`, `"streams"`, `"responses"`) under the shared agent-server state root (`AGENTSERVER_STATE_ROOT`, or `~/.agentserver` when unset), so protocol packages persist state under the same operator-controlled root.

### Other Changes

- `streams.use_file_backed_replay(...)` now has ergonomic defaults so the common case is a single call supplying only `cursor_fn`: `storage_dir` defaults to `resolve_state_subdir("streams")` (a `streams` directory under the agent-server state root, alongside `tasks`), `ttl_seconds` defaults to 600 (10 minutes), and serialization defaults to JSON.
- File-backed replay streams now sanitize the stream id before using it as an on-disk filename: well-formed ids (`[A-Za-z0-9._-]`, no `.`/`..` segment) are used verbatim, and any id containing a path separator or other unsafe character is SHA-256 hash-encoded to an `h_<hex>` filename so it can never escape the storage directory or collide with another stream. The file-backed terminal sentinel is now written as `{"__terminal__": true}` (the non-durable `emit_time` field was dropped; close-time is best-effort on rehydration).
- The per-attachment value cap was raised from 2 MiB to **10 MiB** (per-input payloads spill into `task.attachments`). The 1 MB `task.payload` budget, the inline-promotion thresholds (`_input` 200 KiB, steering input 20 KiB), and the 20-attachments-per-task limit are unchanged.
- `@task` / `@multi_turn_task` now require an explicit `name=` (the stable recovery/identity anchor); the previous `func.__qualname__` fallback is removed because it silently rebound task identity when a handler was renamed or moved, orphaning in-flight tasks. Omitting `name` (or passing whitespace) now raises `ValueError` at decoration.
- The per-turn task `timeout` now defaults to **1 day** when unset (previously unbounded) and enforces **1 day as a hard ceiling** — a larger or negative value is rejected at registration (`ValueError`). This caps a single handler invocation only; multi-turn chains still live indefinitely across turns (the budget resets each turn).
- A caller-supplied `input_id` on `Task.start` / `Task.run` (and the multi-turn equivalents) is now validated against the same charset/length pattern as `task_id`; an invalid id raises `ValueError` before any provider call.
- `RetryPolicy` now enforces hard caps at construction (fail-fast, not clamped): `max_attempts` must be 1–10 and `max_delay` must be 0–1 hour; out-of-range values raise `ValueError`. The zero-argument module-level presets (`exponential_backoff()`, `fixed_delay()`, `linear_backoff()`) now match their `RetryPolicy.<preset>()` classmethod values so retry cadence is identical across the Python and .NET implementations.
- Added `azure-core` as a dependency, and a `hosted` optional-dependencies extra (pulling in `azure-identity`) for hosted-agent deployments.
- `resolve_graceful_shutdown_timeout()` now honors the `AGENTSERVER_GRACEFUL_SHUTDOWN_TIMEOUT_SECONDS` environment variable, letting operators shorten shutdown so task checkpoints can flush before long-running requests finish.
- Added diagnostic logging (logger `azure.ai.agentserver.streaming`) to the event-streaming subsystem covering stream creation/deletion, crash-recovery rehydration of file-backed streams, and corruption/lock-contention failures, to aid debugging in production.

## 2.0.0b8 (2026-07-22)

### Features Added
Expand Down
24 changes: 24 additions & 0 deletions sdk/agentserver/azure-ai-agentserver-core/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,29 @@ export APPLICATIONINSIGHTS_CONNECTION_STRING="InstrumentationKey=..."
python my_agent.py
```

### Resilient long-running agents

The `@task` decorator builds crash-resilient agents that survive container restarts, OOM kills, and redeployments. Task state is persisted to a task store, enabling automatic recovery and multi-turn suspend/resume patterns.

```python
from azure.ai.agentserver.core.tasks import task, TaskContext

@task(name="process_document")
async def process_document(ctx: TaskContext[dict]) -> dict:
# ctx.entry_mode is "fresh" | "resumed" | "recovered".
# The framework re-invokes the handler from the top after a
# crash; ctx.input survives, so the handler picks up.
summary = await analyze(ctx.input["document_url"])
return {"summary": summary}

result = await process_document.run(
task_id="doc-42", input={"document_url": "..."},
)
print(result) # {"summary": "..."}
```

See the [Developer Guide](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/agentserver/azure-ai-agentserver-core/docs/tasks-guide.md) for streaming, multi-turn suspend/resume, retries, timeouts, steering, and the patterns reference.

## Troubleshooting

### Logging
Expand All @@ -193,6 +216,7 @@ To report an issue with the client library, or request additional features, plea
## Next steps

- Install [`azure-ai-agentserver-invocations`](https://pypi.org/project/azure-ai-agentserver-invocations/) to add the invocation protocol endpoints.
- Read the [Resilient Task Developer Guide](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/agentserver/azure-ai-agentserver-core/docs/tasks-guide.md) for crash-resilient long-running agents.
- See the [container image spec](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/agentserver) for the full hosted agent contract.

## Contributing
Expand Down
Loading
Loading