Releases: pseudosavant/azwi
Release list
v1.1.0
azwi 1.1.0
This backward-compatible feature release adds project metadata, an about command, and managed installation of the new $azure-workitem agent skill.
What's new
- Added
azwi --aboutwith version, project URL, summary, and license. - Added the project URL and MIT license to root and fetch help.
- Added
azwi install-skillandazwi remove-skill. - Added the managed
$azure-workitemskill under~/.agents/skillsby default. - Added
--skills-dirfor custom skill installation locations. - Added guarded skill removal with
--forcesupport for unmanaged content.
$azure-workitem
The new skill can:
- Fetch work items by numeric ID.
- Extract the organization and work item ID from Azure DevOps Cloud URLs.
- Parse azwi's JSON output and summarize relevant work item context.
- Fetch work item comments and linked pull request metadata.
- Include PR review comments when explicitly requested.
- Download all or selected attachments.
- Use
./azwi-<id>-attachmentswhen no attachment destination is provided. - Download rendered images when explicitly requested.
v1.0.0
azwi 1.0.0 is the first production-stable release of the agent-first Azure DevOps work item fetcher.
This release adds first-class attachment support, opt-in pull request review comments, and expanded deterministic JSON and Markdown output.
Attachments
- Added
attachmentsas a standard output section. - Added
--download-attachments DIRfor explicit attachment downloads. - Added repeatable
--attachment-name NAMEand--attachment-url URLexact-match selectors. - Attachment download and selector options automatically include the attachment section.
- Selector mismatches fail clearly instead of silently returning partial results.
- Downloaded attachment paths are rendered relative to the output file or current working directory when possible.
- Requesting attachment metadata alone does not download files.
Pull request comments
- Added
--include-pr-commentsfor linked Azure DevOps PR review threads. - PR comments remain opt-in to control API usage and context volume.
- Added
--pr-comment-status active|all. - Active threads are returned by default.
allincludes active and resolved review threads.- Added
--include-pr-system-commentsfor explicitly requesting system-generated comments. - PR comments include useful thread context such as file paths and line numbers.
Output and CLI behavior
- Added attachment data to both JSON and Markdown output.
- Preserved deterministic section ordering and stable output contracts.
- Updated root and fetch help with attachment and PR-comment options.
- Added directly copyable examples for attachment downloads and PR review comments.
- Continued to keep stdout payload-only and diagnostics on stderr.
v0.9.3
Improved the CLI help to make the primary azwi <work_item_id> happy path more obvious for agents.
Changed
- Reworked
azwi --helpto highlight the default fetch flow first - Reworked
azwi <id> --helpto make it clearer that the work item ID is usually the only required argument - Grouped fetch options into a more agent-readable layout with concise sections, env vars, section names, and exit codes near the top
v0.9.2
azwi 0.9.2
This release improves interactive CLI behavior and completes the release pipeline setup for PyPI publishing.
Highlights
- Added simple interactive progress updates on
stderrduring fetch operations - Kept non-interactive runs quiet so agent and piped usage still get deterministic output only on
stdout - Added test coverage for interactive progress behavior
Release pipeline
- Configured the GitHub release workflow to use the
pypienvironment for Trusted Publishing - Disabled
setup-uvcaching in the release workflow to remove the cache invalidation warning during publish runs
Verification
python -m unittest discover -s tests -vuv build --no-sources
v0.9.1
azwi 0.9.1
This release changes azwi to default to JSON output for direct agent and tool consumption.
Highlights
- Changed the default
--formatfrommarkdowntojson - Kept Markdown output available explicitly with
--format markdown - Updated CLI help, tests, README, and spec to match the new default
- Added
.venv/to.gitignore
Upgrade note
If you want the previous default behavior, pass:
azwi <work_item_id> --format markdown
0.9.0
This is the first tagged azwi release: an agent-first Azure DevOps work item CLI focused on deterministic Markdown and JSON output.
Highlights
- Added the primary fetch interface:
azwi <work_item_id> [options] - Added structured section selection with repeatable
--section - Added both Markdown and JSON output via
--format - Added explicit context controls with
--comment-limitand--pr-status - Added field override flags and repeatable
--extra-field - Added explicit image localization with
--download-images DIR
Configuration
- Added
~/.azwi/config.tomlsupport for non-secret defaults - Added
azwi config show - Added
azwi config set-defaults --org ... --project ... - Added
azwi config set-fieldfor global and project-specific field mappings - Added
azwi config add-extra-field - Added layered config resolution for defaults, org-specific overrides, project overrides, and CLI overrides
- Kept PAT handling out of config files; authentication uses
AZWI_PAT
Azure DevOps behavior
- Direct work item fetch is organization-scoped with
--org - Follow-up project-scoped behavior resolves from the fetched work item’s
System.TeamProject - Added
azwi fields --type ...for work item field discovery - Added retry handling for throttling and transient Azure DevOps failures
- Added mention resolution in comments where comment metadata provides identity mappings
Packaging and release
- Added a standard
pyproject.tomlpackage layout undersrc/azwi - Added a thin root
azwi.pywrapper with PEP 723 metadata foruv run ./azwi.py ... - Added console-script packaging for
azwi - Added a GitHub Actions release workflow for build-and-publish automation
Quality
- Added automated tests for CLI behavior, config resolution, rendering, PR parsing, mention handling, and image rewriting
- Verified
uv run ./azwi.py --help - Verified
uv build --no-sources
Notes
- Success-path stdout is reserved for output only; logs go to stderr
- PyPI/
uvx azwisupport is packaged and ready once the project is published