Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.13.1] - 2026-09-14

### Fixed
- **A permanent CLI error no longer retries because the echoed prompt contains a
three-digit number.** The retry policy matched any bare `5xx`, `overloaded`,
Expand All @@ -17,6 +19,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
`ERROR: ...` and `claude` prints `API Error: ...`, and counts a 5xx only in
a status position, such as `"status":503`, `last status: 502`, `API Error: 500`, or
an HTTP backend's `exited 503:` header. A 4xx is never transient.

## [0.13.0] - 2026-09-02

### Fixed
- **A newline-free stderr blob past 64 KiB no longer crashes a CLI-backed run.**
`_tee_stderr` drained stderr with `async for`, which uses
`StreamReader.readline` and caps a line at 64 KiB — a longer newline-free
Expand All @@ -39,6 +45,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
`("user", "project", "local")` to restore what non-isolated runs did before, or
`()` to load none. `--settings` is no substitute, because settings merge: a
`{"hooks":{}}` payload leaves the inherited hooks in place.

## [0.12.0] - 2026-07-28

### Changed
- **The Apple backend no longer needs the `apple` extra, `apple-fm-sdk`, or
Xcode.** A prebuilt Swift sidecar ships inside the macOS platform wheel
(`macosx_26_0_arm64`), so installing spawnllm on an Apple-Intelligence-capable
Expand Down Expand Up @@ -395,7 +405,9 @@ First release, published to PyPI as `spawnllm`.
generation.
- Click CLI: `spawnllm backends` and `spawnllm call`.

[Unreleased]: https://github.com/yasyf/spawnllm/compare/v0.12.0...HEAD
[Unreleased]: https://github.com/yasyf/spawnllm/compare/v0.13.1...HEAD
[0.13.1]: https://github.com/yasyf/spawnllm/compare/v0.13.0...v0.13.1
[0.13.0]: https://github.com/yasyf/spawnllm/compare/v0.12.0...v0.13.0
[0.12.0]: https://github.com/yasyf/spawnllm/compare/v0.11.0...v0.12.0
[0.11.0]: https://github.com/yasyf/spawnllm/compare/v0.10.0...v0.11.0
[0.10.0]: https://github.com/yasyf/spawnllm/compare/v0.9.1...v0.10.0
Expand Down
5 changes: 3 additions & 2 deletions swift/spawnllm-apple/Sources/SpawnllmApple/SidecarError.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@ public enum ErrorKind: String, Sendable {
}

/// Messages are constants and never interpolate framework text, model output, or token
/// counts: a host marks a response transient by pattern-matching the composed message, and
/// a bare three-digit number leaking through would read as a retryable 5xx.
/// counts: a host marks a response transient by pattern-matching the composed message
/// for `overloaded`, `rate limit`, or a `status`/`API Error` 5xx, and arbitrary
/// interpolated text could trip one of those keywords by accident.
public struct SidecarError: Error, Equatable, Sendable {
public let kind: ErrorKind
public let message: String
Expand Down