@@ -4,6 +4,40 @@ All notable changes to orca are documented here. The format follows
44[ Keep a Changelog] ( https://keepachangelog.com/en/1.1.0/ ) and this project
55adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
66
7+ ## [ 1.4.0] — 2026-04-20
8+
9+ ### Security
10+
11+ - ** Visible warning when TLS verification is off.** Running with
12+ ` insecure=true ` now emits an explicit stderr warning on every
13+ invocation. Previously the flag was silent — the risk was invisible.
14+ - ** Validate the ` cacert ` path at startup.** A profile that points at a
15+ missing or unreadable CA bundle now fails with ` ConfigurationError `
16+ (mentioning the path) instead of surfacing a cryptic TLS handshake
17+ error on the first request.
18+ - ** Pin ` pypa/gh-action-pypi-publish ` to an immutable commit SHA**
19+ (` cef22109… ` , v1.14.0) rather than the mutable ` release/v1 ` tag. The
20+ publish job has ` id-token: write ` , so an upstream action compromise
21+ could otherwise inject code into the release pipeline.
22+
23+ ### Fixed
24+
25+ - ** Token cache no longer subject to torn writes.** ` _save_token_cache `
26+ writes to a sibling tempfile with mode 0600, then ` os.replace ` s it
27+ into place atomically. Two concurrent ` orca ` invocations racing on a
28+ re-authentication can no longer leave the cache half-written for the
29+ next reader.
30+
31+ ### CI
32+
33+ - ` ci.yml ` caches pip and ` .venv ` (keyed on ` pyproject.toml ` ), adds a
34+ ` build ` job that runs ` poetry build ` + publishes the dist artifacts,
35+ and a ` security ` job that runs ` gitleaks ` and ` pip-audit ` against the
36+ installed runtime deps.
37+ - ` deploy-docs.yml ` is gated on the CI workflow succeeding on ` main `
38+ (via ` workflow_run ` + ` conclusion == 'success' ` ) so a failing build
39+ can no longer ship stale documentation.
40+
741## [ 1.3.0] — 2026-04-20
842
943### Added
0 commit comments