Skip to content

Release Agently 4.1.4.4 - #332

Merged
Maplemx merged 17 commits into
mainfrom
dev
Jul 25, 2026
Merged

Release Agently 4.1.4.4#332
Maplemx merged 17 commits into
mainfrom
dev

Conversation

@Maplemx

@Maplemx Maplemx commented Jul 25, 2026

Copy link
Copy Markdown
Collaborator

Release

  • Version: 4.1.4.4
  • Level: patch
  • Dev head: 395ffa67
  • Release-candidate commit: 704fcc11
  • Current PyPI package before promotion: 4.1.4.3
  • Status: draft pending human release-note review and final promotion confirmation

User-visible changes

Structured output

  • Project Pydantic v2 requiredness, nullability, enum/literal, string/list length, numeric range, pattern, and format constraints into supported structured-output prompts.
  • Feed bounded field-level Pydantic validation failures into the existing retry path.
  • Preserve accepted typed results across object, data, and text readers.
  • Correct public overload typing for optional ensure_keys.

TriggerFlow recovery

  • Add opt-in terminal digest projection for eligible completed interrupt/resume values while keeping pending recovery complete.
  • Keep projection separate from RuntimeEvent compaction.
  • Make the built-in local RecordStore keep the latest three execution snapshot versions per run_id by default.
  • Add provider configuration, execution-level override, and explicit execution-bound prune.
  • Preserve schema-v1 load compatibility, restart recovery, and resume-request idempotency.

Release validation

  • Remove live Ollama dependencies from default pytest.
  • Keep deterministic OpenAI-compatible protocol tests.
  • Use explicitly configured online models for final release evidence; local Ollama is supplementary only.

Coverage-first acceptance

Requirement Evidence Result
Pydantic constraints reach prompts and final validation prompt-generator, validation, result-reuse, and typing tests accepted
Invalid typed data enters bounded correction deterministic invalid-first-attempt/retry tests accepted
#331 snapshot growth is materially reduced without losing recovery 1,307,086 B default vs 106,782 B digest projection; load/resume/idempotency checks accepted, opt-in
Physical snapshot versions are bounded/configurable retention/override/provider tests and durable-recovery example accepted
Default pytest is independent of Ollama clean-worktree full suite accepted
Real online structured output satisfies the declared contract one DeepSeek deepseek-v4-flash request accepted
Docs, package, compatibility, and companion guidance agree bilingual notes/README/manifests plus AgentEra/Agently-Skills#8 accepted

Validation

  • Python: 3.10.13
  • Source Pyright over agently/, tests/, and examples/: 0 errors
  • Clean-worktree default pytest: 2,438 passed, 27 skipped in 245.49 s
    • 25 skips are maintainer-local nested-spec runner checks; all 25 passed separately
    • 2 skips require an optional Anthropic Skills checkout
  • Focused release, compatibility, public-typing, and workflow gates: 20 passed
  • Release-pinned deterministic usage scripts: 3 passed
  • TriggerFlow durable-recovery example: passed; load, latest-N retention, explicit prune, idempotent resume, and durable-event effects observed
  • Source distribution and wheel: built successfully
  • Wheel SHA-256: a8978a1f2088ef8bcbaaa2f3cd3f5fdb4299d271f1e181d3611b5c79bf8cda49
  • sdist SHA-256: 08d81e8c17269b81fc2ddd7b96aa8df5abcfb9c1add1a2cd8b66f209907f1669
  • Fresh Python 3.10 wheel install:
    • ordinary Agently, Agent, and TriggerFlow startup passed
    • py.typed present
    • intentional missing optional dependency returned lazy_import.dependency/v1
    • installed-package Pyright: 0 errors

Online-model evidence

Accepted bounded run:

  • Provider/model: DeepSeek / deepseek-v4-flash
  • Model requests: 1
  • External requests: 1
  • Tool requests: 0
  • Elapsed: 2.806 s
  • Usage: 255 prompt + 241 completion = 496 tokens
  • Parsed result: original Pydantic ReleaseTicket
  • Priority, labels, title length, summary length, collection count, and numeric range: all satisfied
  • The output separated the prior snapshot-duplication problem from the implemented resolution and preserved requested priority/labels

Deterministic tests, not this single model run, remain the acceptance evidence for invalid-first-attempt correction and retry reuse.

Compatibility and companions

  • Release manifest: compatibility/releases/4.1.4.4.json
  • Python: >=3.10
  • DevTools recommendation remains agently-devtools >=0.1.10,<0.2.0
  • Runtime/observation protocol is unchanged; no Agently-Devtools code change is required
  • Skills authoring protocol remains agently-skills.authoring.v2
  • Companion guidance PR: Align guidance with Agently 4.1.4.4 Agently-Skills#8

Issue and PR disposition

Deferred scope and residual risk

  • Snapshot projection is opt-in; full values remain the compatibility default.
  • last_signal, pending payloads, and application state may still be large; there is no whole-snapshot byte ceiling.
  • Distributed providers must implement and prove retention separately.
  • Two optional Anthropic Skills checkout tests were not run.
  • PyPI 4.1.4.3 exists without a matching GitHub tag/release; promotion bookkeeping should explicitly reconcile that historical gap.

Required human review before merge

  • Confirm the English and Chinese 4.1.4.4 release notes describe the actual shipped scope and limitations.
  • Confirm the intentional local RecordStore default retention change is acceptable.
  • Confirm the historical 4.1.4.3 GitHub release/tag gap handling.
  • Confirm companion PR Bugfix #8 promotion timing.
  • Merge only when publishing 4.1.4.4 is intended: the main-branch version change triggers the PyPI workflow.

Post-merge

  1. Verify the PyPI publish workflow and installed 4.1.4.4 package.
  2. Create/verify the GitHub v4.1.4.4 tag and release.
  3. Merge/promote companion PR Bugfix #8.
  4. Comment on TriggerFlow 4.1.4.3 snapshots multiply completed interrupt/resume payloads and provide no bounded retention API #331 with the published version/commit/validation and add solved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant