Skip to content

Commit 9f79240

Browse files
committed
chore: update change log
1 parent a2943de commit 9f79240

2 files changed

Lines changed: 42 additions & 4 deletions

File tree

CHANGELOG.md

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,43 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [1.4.0] - 2026-04-04
11+
12+
### Added
13+
14+
- CI feedback loop: when a CI pipeline fails on an agent-created branch,
15+
the orchestrator detects the failure, injects the CI failure logs into
16+
the next agent turn, and dispatches a continuation session so the agent
17+
can diagnose and fix the issue automatically. Controlled by a new
18+
`ci_feedback` config section in `WORKFLOW.md` (`kind`, `max_retries`,
19+
`max_log_lines`, `escalation`). Feature activation follows kind-based
20+
convention: present `ci_feedback.kind` enables, absent disables.
21+
- `CIStatusProvider` domain interface: adapter contract for fetching CI
22+
check status from an SCM platform. Returns structured `CIResult` with
23+
overall status (pending/passing/failing), individual check runs, and
24+
an optional log excerpt from the first failing check.
25+
- GitHub `CIStatusProvider` implementation via the Checks API: fetches
26+
check runs for a git ref, computes aggregate status, and retrieves
27+
truncated log output from the first failing GitHub Actions job. Log
28+
fetching is controlled by `max_log_lines` (0 disables). ANSI escape
29+
sequences are stripped from log output.
30+
- CI failure escalation: when `ci_feedback.max_retries` is exceeded, the
31+
orchestrator applies a configurable escalation action -- add a label
32+
(default `needs-human`) or post a comment on the issue.
33+
- Exponential backoff for CI pending re-enqueue: `reconcileCIStatus`
34+
now applies `base * 2^attempts` backoff (capped at 5 minutes) when CI
35+
checks remain pending or on transient API errors, reducing GitHub
36+
Checks API request volume from ~120 to ~15 per 20-minute CI run per
37+
issue. Stale pending entries expire after a 30-minute TTL.
38+
- `TrackerOpsWg` shutdown drain: fire-and-forget tracker API goroutines
39+
(comment posting, label adding) are now tracked by a dedicated
40+
`sync.WaitGroup` and drained during graceful shutdown with a 35-second
41+
timeout, preventing orphaned goroutines on process exit.
42+
- Automatic credential merging: when `ci_feedback.kind` matches
43+
`tracker.kind`, the orchestrator merges tracker credentials (`api_key`,
44+
`project`, `endpoint`) into the CI provider adapter config at startup,
45+
eliminating the need to duplicate credentials in a pass-through block.
46+
1047
## [1.3.0] - 2026-04-03
1148

1249
### Added
@@ -445,7 +482,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
445482
execution via GitHub Actions.
446483
- Architecture Decision Records (ADR-0001 through ADR-0005).
447484

448-
[Unreleased]: https://github.com/sortie-ai/sortie/compare/1.3.0...HEAD
485+
[Unreleased]: https://github.com/sortie-ai/sortie/compare/1.4.0...HEAD
486+
[1.4.0]: https://github.com/sortie-ai/sortie/compare/1.3.0...1.4.0
449487
[1.3.0]: https://github.com/sortie-ai/sortie/compare/1.2.1...1.3.0
450488
[1.2.1]: https://github.com/sortie-ai/sortie/compare/1.2.0...1.2.1
451489
[1.2.0]: https://github.com/sortie-ai/sortie/compare/1.1.0...1.2.0

SECURITY.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ critical and high severity security patches.
99

1010
| Version | Supported |
1111
|-----------|----------------------------------|
12-
| 1.3.x | Yes |
13-
| 1.2.x | Security patches until July 2026 |
14-
| < 1.2 | No |
12+
| 1.4.x | Yes |
13+
| 1.3.x | Security patches until July 2026 |
14+
| < 1.3 | No |
1515

1616
When a new minor version is released (e.g., 1.1.0), the previous minor (e.g., 1.0.x)
1717
enters this 3-month grace period. After the grace period ends, only the current

0 commit comments

Comments
 (0)