From 54b2e140ccea59b508604977d60798c278e30e3f Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 23 Jan 2026 17:11:53 +0000 Subject: [PATCH] chore: Prepare 0.4.0 release - Consolidate changelog entries from 0.4.0-0.5.2 into single 0.4.0 release - Update pyproject.toml version to 0.4.0 - Add Unreleased section to changelog for future development - Update uv.lock https://claude.ai/code/session_016YPnt3NbKETi7iXrbCaKBC --- CHANGELOG.md | 70 ++++++++++++++++++++++++-------------------------- pyproject.toml | 2 +- uv.lock | 2 +- 3 files changed, 36 insertions(+), 38 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a6a3ce0..9f7239cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,46 +5,17 @@ All notable changes to DeepWork will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [0.5.2] - 2026-01-22 +## [Unreleased] -### Fixed -- Fixed COMMAND rules promise handling to properly update queue status - - When an agent provides a promise tag for a FAILED command rule, the queue entry is now correctly updated to SKIPPED status - - Previously, FAILED queue entries remained in FAILED state even after being acknowledged via promise - - This ensures the rules queue accurately reflects rule state throughout the workflow - -## [0.5.1] - 2026-01-22 - -### Fixed -- Fixed quality criteria validation logic in skill template (#111) - - Changed promise condition from AND to OR: promise OR all criteria met now passes - - Changed failure condition from OR to AND: requires both criteria NOT met AND promise missing to fail - - This corrects the logic so the promise mechanism properly serves as a bypass for quality criteria - -## [0.5.0] - 2026-01-20 +### Added ### Changed -- **BREAKING**: Renamed `document_type` to `doc_spec` throughout the codebase - - Job.yml field: `document_type` → `doc_spec` (e.g., `outputs: [{file: "report.md", doc_spec: ".deepwork/doc_specs/report.md"}]`) - - Class: `DocumentTypeDefinition` → `DocSpec` (backward compat alias provided) - - Methods: `has_document_type()` → `has_doc_spec()`, `validate_document_type_references()` → `validate_doc_spec_references()` - - Template variables: `has_document_type` → `has_doc_spec`, `document_type` → `doc_spec` - - Internal: `_load_document_type()` → `_load_doc_spec()`, `_doc_type_cache` → `_doc_spec_cache` -### Added -- Comprehensive tests for generator doc spec integration (9 new tests) - - `test_load_doc_spec_returns_parsed_spec` - Verifies doc spec loading - - `test_load_doc_spec_caches_result` - Verifies caching behavior - - `test_load_doc_spec_returns_none_for_missing_file` - Graceful handling of missing files - - `test_generate_step_skill_with_doc_spec` - End-to-end skill generation with doc spec - - `test_build_step_context_includes_doc_spec_info` - Context building verification +### Fixed -### Migration Guide -- Update job.yml files: Change `document_type:` to `doc_spec:` in output definitions -- Update any code importing `DocumentTypeDefinition`: Use `DocSpec` instead (alias still works) -- Run `deepwork install` to regenerate skills with updated terminology +### Removed -## [0.4.0] - 2026-01-20 +## [0.4.0] - 2026-01-23 ### Added - Doc specs (document specifications) as a first-class feature for formalizing document quality criteria @@ -67,12 +38,39 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - New `OutputSpec` dataclass in parser for structured output handling - Comprehensive doc spec documentation in `doc/doc-specs.md` - New test fixtures for doc spec validation and parsing +- Comprehensive tests for generator doc spec integration (9 new tests) + - `test_load_doc_spec_returns_parsed_spec` - Verifies doc spec loading + - `test_load_doc_spec_caches_result` - Verifies caching behavior + - `test_load_doc_spec_returns_none_for_missing_file` - Graceful handling of missing files + - `test_generate_step_skill_with_doc_spec` - End-to-end skill generation with doc spec + - `test_build_step_context_includes_doc_spec_info` - Context building verification ### Changed +- **BREAKING**: Renamed `document_type` to `doc_spec` throughout the codebase + - Job.yml field: `document_type` → `doc_spec` (e.g., `outputs: [{file: "report.md", doc_spec: ".deepwork/doc_specs/report.md"}]`) + - Class: `DocumentTypeDefinition` → `DocSpec` (backward compat alias provided) + - Methods: `has_document_type()` → `has_doc_spec()`, `validate_document_type_references()` → `validate_doc_spec_references()` + - Template variables: `has_document_type` → `has_doc_spec`, `document_type` → `doc_spec` + - Internal: `_load_document_type()` → `_load_doc_spec()`, `_doc_type_cache` → `_doc_spec_cache` - `Step.outputs` changed from `list[str]` to `list[OutputSpec]` for richer output metadata - `SkillGenerator.generate_all_skills()` now accepts `project_root` parameter for doc spec loading - Updated `deepwork_jobs` to v0.6.0 with doc spec-related quality criteria +### Fixed +- Fixed COMMAND rules promise handling to properly update queue status + - When an agent provides a promise tag for a FAILED command rule, the queue entry is now correctly updated to SKIPPED status + - Previously, FAILED queue entries remained in FAILED state even after being acknowledged via promise + - This ensures the rules queue accurately reflects rule state throughout the workflow +- Fixed quality criteria validation logic in skill template (#111) + - Changed promise condition from AND to OR: promise OR all criteria met now passes + - Changed failure condition from OR to AND: requires both criteria NOT met AND promise missing to fail + - This corrects the logic so the promise mechanism properly serves as a bypass for quality criteria + +### Migration Guide +- Update job.yml files: Change `document_type:` to `doc_spec:` in output definitions +- Update any code importing `DocumentTypeDefinition`: Use `DocSpec` instead (alias still works) +- Run `deepwork install` to regenerate skills with updated terminology + ## [0.3.1] - 2026-01-20 ### Added @@ -180,8 +178,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 Initial version. -[0.5.0]: https://github.com/anthropics/deepwork/releases/tag/0.5.0 -[0.4.0]: https://github.com/anthropics/deepwork/releases/tag/0.4.0 +[Unreleased]: https://github.com/anthropics/deepwork/compare/0.4.0...HEAD +[0.4.0]: https://github.com/anthropics/deepwork/compare/0.3.1...0.4.0 [0.3.1]: https://github.com/anthropics/deepwork/releases/tag/0.3.1 [0.3.0]: https://github.com/anthropics/deepwork/releases/tag/0.3.0 [0.1.1]: https://github.com/anthropics/deepwork/releases/tag/0.1.1 diff --git a/pyproject.toml b/pyproject.toml index 1c5f8e02..d84e3edb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "deepwork" -version = "0.5.2" +version = "0.4.0" description = "Framework for enabling AI agents to perform complex, multi-step work tasks" readme = "README.md" requires-python = ">=3.11" diff --git a/uv.lock b/uv.lock index 474e30f9..cd4110a3 100644 --- a/uv.lock +++ b/uv.lock @@ -126,7 +126,7 @@ toml = [ [[package]] name = "deepwork" -version = "0.5.2" +version = "0.4.0" source = { editable = "." } dependencies = [ { name = "click" },