Skip to content

Releases: sortie-ai/sortie

sortie 1.9.0

26 Apr 21:49
e6a0960

Choose a tag to compare

Changelog

Features

  • c6c7624 feat(agent): add OpenCode adapter
  • e83d502 feat(docker): add OpenCode example Dockerfile
  • 3de98a0 feat(examples): add Jira + OpenCode sample workflow
  • 787b5df feat(httpkit,issuekit,trackermetrics): add shared REST transport, normalization, and metrics helpers

Bug Fixes

  • 897dd8c fix(adapters): do not return partial results when tracked operations fail
  • 72e1390 fix(agent): address review feedback on ForkPerTurnSession and adapter loggers
  • c61786e fix(agent): remove dead normalizeUsage in copilot, extract buildSSHRemoteCmd in codex
  • 938a6ae fix(agentcore): use lowercase error message in ResolveBinary
  • 46d7800 fix(examples): scope OpenCode sample permissions
  • bcf5823 fix(opencode): address review feedback
  • 28f49e6 fix(sshutil): append remoteCommand verbatim to allow multi-token shell expressions
  • b2d03d3 fix(typeutil): rename test helper to avoid shadowing stdlib strings package

Full changelog: https://github.com/sortie-ai/sortie/blob/1.9.0/CHANGELOG.md

Diff: 1.8.0...1.9.0

sortie 1.8.0

17 Apr 01:51
68244e1

Choose a tag to compare

Changelog

Features

  • cab32ee feat(codex): add Codex CLI agent adapter
  • e24cdbb feat(codex): make handshake reads cancellable via scanner channel
  • d5e68c7 feat(docker): add OpenAI Codex CLI Dockerfile and usage instructions

Bug Fixes

  • ca3ce4e fix(cmd): increase runTestTimeout to 2s for CI race detector
  • 88e39a4 fix(codex): address review feedback on integration and parse tests
  • 343770b fix(codex): address review feedback on integration tests and CI
  • 800a5ce fix(codex): clarify scanner goroutine lifecycle and close stdout on error
  • e5d3b2c fix(codex): fix Codex turn/started race
  • 422d517 fix(codex): guard against whitespace command panic, fix doc and scanner error
  • 92f2407 fix(codex): make stopCh close idempotent and add session context to warning log
  • 0b419ed fix(codex): normalize sandbox casing between thread/start and turn/start
  • 1cfbcae fix(codex): resolve concurrency issues in protocol and tool dispatch
  • 4906d5d fix(codex): return sync events from handleToolCall to avoid channel deadlock
  • 07e31de fix(codex): serialize onEvent calls from tool goroutines via channel
  • e0e191b fix(docker): correct Codex binary download URL for linux/amd64 and linux/arm64
  • 68244e1 fix(test): correct model name for copilot

Full changelog: https://github.com/sortie-ai/sortie/blob/1.8.0/CHANGELOG.md

Diff: 1.7.1...1.8.0

sortie 1.7.1

15 Apr 06:35
deb7d8a

Choose a tag to compare

Changelog

Features

  • 5f72b8c feat(cli): replace GNU version banner with diagnostic one-liner

Bug Fixes

  • a9d548f fix(ci): quote $GITHUB_ENV in release workflow build-date step
  • 65b4f58 fix(orchestrator): add pollInterval fallback guard in reconcileReviewComments
  • 99d8bc3 fix(orchestrator): correct ci_escalations_total double-count in escalateCIFailure

Full changelog: https://github.com/sortie-ai/sortie/blob/1.7.1/CHANGELOG.md

Diff: 1.7.0...1.7.1

sortie 1.7.0

13 Apr 16:14
56363c0

Choose a tag to compare

Changelog

Features

  • 5289bdc feat(orchestrator): propagate session_id through retry chain
  • 752d2e3 feat(persistence): add session_id column to retry_entries
  • 0ef2304 feat(procutil): harden StderrCollector with scanner buffer cap and memory limit
  • 01f5ea4 feat(server): add accordion expand/collapse to dashboard tables
  • ef64d38 feat(server): add token usage cost estimation to dashboard
  • 16565fa feat(server): persist accordion expanded state across page refreshes

Bug Fixes

  • 6d47992 fix(cmd): remove section labels, plan references, and duplicate comments
  • b855c09 fix(cmd): use portable paths in TestResolveWorkflowPath
  • 0f8b1c6 fix(orchestrator): use Value.Equal for slog attr comparison
  • a8f2bd1 fix(procutil): address review feedback on StderrCollector docs and edge case
  • c2947d3 fix(procutil): cap initial scanner buffer to enforce WithScannerMax below 64 KiB
  • 23b53ea fix(server): add aria-label to toggle button, fix closing tag
  • 3ef57f4 fix(server): add focus-visible ring and harden collapsed-state test
  • 678e417 fix(server): address review feedback on accordion accessibility
  • 0d40a97 fix(server): address review feedback on accordion toggle
  • 2f167ba fix(server): address review feedback on token rate parsing and cost formatting
  • 23ca9a1 fix(server): address second-round review feedback on cost dashboard
  • 9ab4348 fix(server): prevent Prettier from splitting small tag in token tooltip

Performance

  • f54197e perf(orchestrator): replace FetchCandidateIssues scan with FetchIssueByID in HandleRetryTimer

Full changelog: https://github.com/sortie-ai/sortie/blob/1.7.0/CHANGELOG.md

Diff: 1.6.1...1.7.0

sortie 1.6.1

11 Apr 18:16
5fe340e

Choose a tag to compare

Changelog

Features

  • e727193 feat(orchestrator): add runtime terminal workspace sweep

Bug Fixes

  • 9cbc94e fix(orchestrator): correct sweep interval comment and metrics doc
  • a52f4d7 fix(orchestrator): make handoff log messages reflect actual branch taken
  • 5f5ec28 fix(orchestrator): trigger handoff transition for needs-human-review soft-stop
  • 5fe340e fix(tests): reduce context timeout for integration tests

Full changelog: https://github.com/sortie-ai/sortie/blob/1.6.1/CHANGELOG.md

Diff: 1.6.0...1.6.1

sortie 1.6.0

10 Apr 20:07
a8ce948

Choose a tag to compare

Changelog

Features

  • faa9375 feat(config): add ReactionConfig and reactions map to ServiceConfig
  • 3783975 feat(config): migrate ci_failure into reactions.ci_failure unified block
  • f46c72b feat(orchestrator): add self-review loop before PR creation
  • a2efacd feat(orchestrator): derive CI pending backoff base from poll_interval
  • b044ed0 feat(persistence): add reaction_fingerprints table and store methods
  • 5a9c4ee feat(procutil,workspace): add Windows process lifecycle support
  • ea7cabb feat(scm): add PR review comment routing with GitHub SCM adapter

Bug Fixes

  • 53a1fe2 fix(claude): signal process group on cancellation and stop
  • 0d27f7a fix(cmd): increase runTestTimeout on Windows for SQLite migrations
  • 10a0506 fix(config): reject non-string values in reactions fields with ConfigError
  • e5b23c1 fix(copilot): signal process group on cancellation and stop
  • a7b9eee fix(install): detect Rosetta 2 and prefer native arm64 binary on macOS
  • 5882913 fix(orchestrator): address review round 2 feedback
  • 33240eb fix(orchestrator): address review round 3 feedback
  • 162fd0b fix(orchestrator): address self-review PR feedback
  • bd74798 fix(orchestrator): close pipes on context expiry to unblock Windows drain
  • 66e32ab fix(orchestrator): move MarkReactionDispatched to actual dispatch site
  • 14740dc fix(orchestrator): replace pipe reads with cappedWriter to fix Windows hang
  • 123ae47 fix(persistence): use synchronous=NORMAL for WAL mode; widen Windows test timeout
  • b7de78d fix(procutil): add process group signal helpers for Unix
  • 6521c0d fix(procutil): launch ping directly in SignalGraceful test
  • 273b894 fix(procutil,workspace): address review round 3
  • 739166a fix(procutil,workspace): address review round 4
  • 43fd7c8 fix(procutil,workspace): address review round 5; harden CI
  • ed44636 fix(procutil,workspace): drop unsupported-platform stubs; harden WasSignaled
  • cf77646 fix(procutil,workspace): use STATUS_CONTROL_C_EXIT consistently for Job Object termination
  • 398cf8a fix(scm): address review feedback on pagination, naming, and config
  • 0570b83 fix(scm): address review round 2 feedback
  • 3d6f2fb fix(scm): improve truncation warnings and clamp error backoff to poll interval
  • 7a5a94a fix(test): fix Windows CI failures in closer and self_review tests
  • bac9dde fix(test): retry rename in writeWorkflow to fix Windows CI flakiness
  • 06b02dc fix(vscode): remove self-referencing parent files from nesting patterns
  • 6d1f5db fix(workflow): update Manager logger after post-config reconfiguration
  • 5a516b4 fix(workspace): improve Windows hook test reliability

Full changelog: https://github.com/sortie-ai/sortie/blob/1.6.0/CHANGELOG.md

Diff: 1.5.1...1.6.0

sortie 1.5.1

08 Apr 20:39
570c783

Choose a tag to compare

Changelog

Features

  • b6f972e feat(cmd): redesign CLI help with GNU-style output and -h/-V aliases

Bug Fixes

  • 11417e1 fix(agent): reclassify zero-output exit-0 turns as turn_failed
  • ac26e9c fix(copilot): prefix --additional-mcp-config file paths with @
  • a3521aa fix(copilot): skip --additional-mcp-config for whitespace-only values
  • de806eb fix(test): use American English spelling in comment

Performance

  • 388a968 perf(test): reduce cmd/sortie test suite from 110s to 20s

Full changelog: https://github.com/sortie-ai/sortie/blob/1.5.1/CHANGELOG.md

Diff: 1.5.0...1.5.1

sortie 1.5.0

07 Apr 13:44
62acdc7

Choose a tag to compare

Changelog

Features

  • c13ff3c feat(cmd): add --log-format flag with workflow extensions fallback
  • 51af79d feat(cmd): make HTTP server always-on with configurable bind address
  • 7e75f9a feat(docker): add GHCR publish job, OCI labels, and REVISION build arg
  • 2dd4cc1 feat(docker): add distroless Dockerfile and agent-specific examples
  • e46b3d7 feat(docker): use --log-format json in agent Dockerfile entrypoints
  • 54e405c feat(k8s): add plain Kubernetes deployment manifests
  • 3684a23 feat(logging): add Format type, ParseFormat, and JSON handler support
  • 5e4c8a3 feat(server): add Grafana dashboard and coverage test for all Prometheus metrics

Bug Fixes

  • bad373a fix(agent): address PR 386 review feedback
  • 6bb1a6b fix(agent): drain stderr before cmd.Wait() to prevent data loss
  • 9dc71b3 fix(agent): surface stderr at WARN on turn failure
  • 8472af7 fix(docker): upgrade to debian13 distroless, add CMD, fix UID note and lint
  • 2ab27e0 fix(k8s): correct paths, DB env var, and service selector
  • 9c1b094 fix(server): handle collapsed row panels and deduplicate metric list in tests
  • ec9d716 fix(tests): rename misleading test and remove redundant duplicate

Full changelog: https://github.com/sortie-ai/sortie/blob/1.5.0/CHANGELOG.md

Diff: 1.4.0...1.5.0

sortie 1.4.0

03 Apr 22:43
9f79240

Choose a tag to compare

Changelog

Features

  • b8e6411 feat(cmd): merge tracker credentials into CI adapter config when kinds match
  • 871bb66 feat(config): extend CIFeedbackConfig with retry and escalation settings
  • c8d998e feat(config,registry): add CIFeedbackConfig and CIProviders registry
  • 0cc1b09 feat(domain): add CIStatusProvider interface and CIResult types
  • b1f6947 feat(domain): add IncCIStatusChecks, IncCIEscalations, and AddLabel
  • d5a9dba feat(orchestrator): add exponential backoff and TTL for pending CI re-enqueue
  • e98ec5a feat(orchestrator): integrate CI failure detection into reconcile loop
  • 38e40d2 feat(orchestrator): track fire-and-forget tracker ops for graceful shutdown
  • b1f096f feat(prompt): add RenderOption variadic and ci_failure template variable
  • bfa004e feat(server): add Prometheus counters for CI status checks and escalations
  • 48d7919 feat(tracker): implement AddLabel for GitHub, Jira, and file adapters
  • 3274225 feat(tracker/github): implement GitHubCIProvider via Checks API
  • bc4b6d6 feat(workspace): add ReadSCMMetadata for CI ref resolution

Bug Fixes

  • 82bdd95 fix(docs): address PR 383 review feedback
  • 236ad17 fix(docs): correct reload behavior and type names for ci_feedback fields
  • 5c022f6 fix(docs): remove unused env vars from workflow reference
  • 7076e79 fix(domain,workspace): remove section ref from test comment; clarify SCM godoc
  • 13135e1 fix(orchestrator): add default case for unrecognized CI status
  • a2943de fix(orchestrator): address PR 384 review feedback
  • 29104e5 fix(orchestrator): bound tracker ops drain and call unconditionally
  • a97c6ac fix(orchestrator): include timed_out and cancelled in escalation comment
  • 2d02ae1 fix(orchestrator,prompt): correct CI-fix retry attempt and template schema
  • a0ce4a1 fix(review): address PR 379 review feedback
  • 2a4bc40 fix(tracker/github): address PR review feedback on CI provider
  • 606bc6f fix(tracker/github): map action_required to failure and document implicit contracts

Full changelog: https://github.com/sortie-ai/sortie/blob/1.4.0/CHANGELOG.md

Diff: 1.3.0...1.4.0

sortie 1.3.0

02 Apr 22:46
1284afc

Choose a tag to compare

Changelog

Features

  • 3a52af6 feat(mcp): add mcp-server subcommand and worker config generation
  • 63f410f feat(orchestrator): integrate A2O status file into worker turn loop
  • 02a27f4 feat(prompt): inject RuntimeStatusSuffix into first-turn agent prompt
  • 8206115 feat(tool): add sortie_status MCP tool for session runtime metadata
  • d8127d6 feat(tool): add workspace_history MCP tool
  • f0df371 feat(workspace): add A2O status file read and pre-dispatch cleanup

Bug Fixes

  • 75597d9 fix(claude): guard type assertions and use cmp.Or for command default
  • 7a17a2c fix(cmd): use logging.Setup return value in MCP server entry point
  • 31162a1 fix(copilot): guard type assertions and use cmp.Or for command default
  • 7dd55d2 fix(logging): return logger from Setup to eliminate slog.Default() race
  • 1d13eb2 fix(mcp): address code review comments
  • 8d1a55b fix(mcp): address round 2 review comments
  • 3b32363 fix(mcp): document why absolute WorkflowPath in MCP config is safe
  • 9dd48d8 fix(mcp): export --env-file path as SORTIE_ENV_FILE to process env
  • 3fa7963 fix(mcp): propagate SORTIE_* env vars to MCP server config
  • a7ecc44 fix(orchestrator): include session_id in A2O status soft-stop log
  • 977df3c fix(orchestrator): use 0o600 for .gitignore and drop permission assertion
  • 03bcd1b fix(orchestrator): write .sortie/.gitignore to prevent credential leak
  • 5d6ec2e fix(prompt): use exact protocol token in RuntimeStatusSuffix godoc
  • 1ebb63f fix(tool): address review feedback on sortie_status
  • 2866c34 fix(workspace): address review round 2 — doc comments, Lstat logging, cleanup log level
  • e76b554 fix(workspace): reject symlinks via Lstat regardless of target location
  • 5ca6736 fix(workspace): suppress errcheck and gosec G304 lint findings
  • 00ef045 fix: address review round 3 — doc comment, inline label, log style
  • 56fd2ed fix: use session-scoped logger and fix PreRunFunc doc comment

Others

  • 2afb5dc Merge branch 'release/1.2.x'

Full changelog: https://github.com/sortie-ai/sortie/blob/1.3.0/CHANGELOG.md

Diff: 1.2.1...1.3.0