v0.8.0¶
Release Date: 2026-07-25
Overview¶
This release adds support for reading and updating a release's theme —
the rich-text field Aha! displays as a release's description — and fixes a
decoding bug where Feature, Epic, Goal, Product, Requirement, and
StrategicModel descriptions failed to parse because the OpenAPI schema
declared description as a plain string when the API actually returns a
DescriptionObject.
Highlights¶
- Release.Theme -
GetReleaseandListProductReleasesnow populateTheme, the field the Aha! UI shows as a release's description - WithReleaseTheme - new functional option for
UpdateReleaseto set a release's theme - DescriptionObject decoding fix -
Feature,Epic,Goal,Product,Requirement, andStrategicModelnow correctly extract description text instead of failing to decode
Installation¶
What's New¶
Release.Theme¶
Aha! calls a release's descriptive rich-text field "theme" rather than
"description" — it's the field shown as the release's description in the
Aha! UI. Release.Theme decodes theme.body from the API, the same
pattern used for Idea/Feature description:
Use WithReleaseTheme to update it:
release, err := client.UpdateRelease(ctx, "PROD-R-1",
aha.WithReleaseTheme("Focus on performance and reliability improvements."),
)
Bug Fixes¶
Description decoding across entities¶
Feature.description (and the equivalent field on Epic, Goal,
Product, Requirement, and StrategicModel) is a DescriptionObject in
the real API, like Idea/Initiative already declared — but the OpenAPI
schema had it typed as a plain string, so GetFeature and related calls
failed to decode entirely as soon as the API returned a description. The
schema now declares description as DescriptionObject for all affected
entities, and featureFromAPI, epicFromAPI, goalFromAPI,
productFromAPI, requirementFromAPI, and strategicModelFromAPI now
read Description.Body accordingly.
Fixing that surfaced a second, related bug: several fields the API returns
as null weren't marked nullable, so decoding still failed once
description was fixed. Feature/Requirement assigned_to_user,
Epic/Goal progress, and Requirement original_estimate/
remaining_estimate/work_done are now nullable, matching live API
responses verified across dozens of features, epics, goals, and
requirements.
fetchup dependency pin¶
fetchup is pinned to v0.2.4 for compatibility with go-rod v0.116.2;
newer fetchup versions have breaking API changes that broke the build.
New SDK Methods¶
| Method/Field | Description |
|---|---|
Release.Theme |
New field decoded from the API's theme.body, shown as the release's description in the Aha! UI |
WithReleaseTheme |
UpdateReleaseOption to set a release's theme |
Upgrade Notes¶
This is a backward-compatible release. No breaking changes from v0.7.0.
Callers that read Feature/Epic/Goal/Product/Requirement/
StrategicModel descriptions will start seeing populated values where
decoding previously failed silently or errored.
Commits¶
| Hash | Description |
|---|---|
5cf6074 |
fix(deps): pin fetchup v0.2.4 for go-rod compatibility |
450302d |
test: add regression coverage for description/nullable-field decoding |
aacc9fb |
fix(decode): extract description body from DescriptionObject across entities |
8c97ddb |
feat(api): regenerate client - fix description and nullable field schemas |
0c08c1c |
feat(release): support reading and updating a release's theme |
0d9c3f9 |
feat(api): regenerate client for release theme field |
2ee114a |
chore(deps): Bump github.com/grokify/prism-roadmap from 0.14.1 to 0.16.0 |