You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PyPI 0.5.1 was published from the pre-review commit (the first v0.5.1 tag push),
and PyPI versions are immutable, so the corrected build can't reuse 0.5.1. Ship
the review-hardened code from main as 0.5.2.
- openai.py: recovery stream that errors after emitting text now preserves the
streamed text in its terminal DONE result (review finding #2).
- RELEASE_NOTES.md: the agent-layer nudge is a user-role message, not a system
message (review finding #1); add v0.5.2 notes.
- version 0.5.2 across pyproject.toml, src/hive/__init__.py, uv.lock; CHANGELOG.md
and docs/changelog.md 0.5.2 entries (folds in Phase 3, already on main).
- .github/workflows/release.yml: skip publishing when the version already exists
on PyPI, so a moved/re-pushed tag can't trigger a conflicting re-upload.
- tests: recovery-stream-error-preserves-streamed-text.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,16 @@
1
1
# Changelog
2
2
3
+
## [0.5.2] — 2026-05-31
4
+
5
+
### Fixed
6
+
-**Hardened no-tools recovery** (review follow-up to 0.5.1) — streaming recovery now fires only when the `tool_use_failed` occurs *before* any text reaches the caller (no duplicated output), and a recovery stream that errors after emitting text preserves that text in its terminal result. A `tool_use_failed` on a request that *did* offer tools is no longer swallowed. The agent-layer wrap-up nudge and the adapter's text-only recovery nudge are now `user`-role messages (some strict providers reject mid-thread `system` messages); the agent nudge is sent only for the wrap-up call and isn't written to the logged conversation.
7
+
8
+
### Added
9
+
-**Phase 3 simulation core** — registry-driven world catalogs (events & jobs) and wired simulation feedback loops.
10
+
11
+
### CI
12
+
- Release workflow skips publishing when the version already exists on PyPI, so moving or re-pushing a tag can't trigger a conflicting re-upload.
Copy file name to clipboardExpand all lines: docs/changelog.md
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,16 @@
1
1
# Changelog
2
2
3
+
## [0.5.2] -- 2026-05-31
4
+
5
+
### Fixed
6
+
-**Hardened no-tools recovery** (review follow-up to 0.5.1): streaming recovery now fires only when the `tool_use_failed` occurs *before* any text reaches the caller (no duplicated output), and a recovery stream that errors after emitting text preserves that text in its terminal result. A `tool_use_failed` on a request that *did* offer tools is no longer swallowed. The agent-layer wrap-up nudge and the adapter's text-only recovery nudge are now `user`-role messages (some strict providers reject mid-thread `system` messages); the agent nudge is sent only for the wrap-up call and isn't written to the logged conversation.
7
+
8
+
### Added
9
+
-**Phase 3 simulation core**: registry-driven world catalogs (events & jobs) and wired simulation feedback loops.
10
+
11
+
### CI
12
+
- Release workflow skips publishing when the version already exists on PyPI, so moving or re-pushing a tag can't trigger a conflicting re-upload.
0 commit comments