Releases: gerardrecinto/xctriage
Release list
v1.1.0
Fixes a real bug in the Slack reporter and closes a couple of security/CI gaps found during a hardening pass. No breaking changes.
Fixed
--output slackcould silently drop the webhook post. It fired on an unstructuredTaskand returned immediately, so with--exit-codeset the process would callexit(1)before the task ever got scheduled.analyzenow awaits the Slack post before returning.ClaudeClassifierswallowed JSON encoding failures and sent an empty request body instead of raising an error, which showed up as a confusing 400 from the Claude API. It now throws a clearparseErrorif the request can't be encoded.- The CLI's
--versionflag was still printing0.1.0, left over from before the v1.0.0 tag. Now prints1.1.0.
Added
- SwiftLint in CI (
.swiftlint.ymltuned to the existing code style,force_unwrappingopted in since this tool parses untrusted xcodebuild/xcresult output and Claude API responses). - CodeQL analysis workflow for Swift.
dependency-review-actiongated on pull requests.- First test coverage for
ClaudeClassifier: well-formed responses, markdown-fenced JSON, non-200 status codes, and malformed response bodies, using a stubbedURLProtocolinstead of hitting the real API.
Docs
- Removed a README link to
docs/architecture.drawio, which was never actually checked into the repo.
17 tests before this release, 22 after. swift build -c release and swift test both pass clean.
v1.0.0
Swift 6 command-line tool for AI-powered CI failure analysis on Apple platforms. Parses xcodebuild console output and xcresult bundles. Rule-based classifier with Claude fallback via URLSession. Actor-based SQLite flaky test tracker with 90-day recurrence scoring. Native Swift 6 concurrency throughout: actor, async/await, Sendable, typed throws.
Added
--exit-codeflag: returns exit code 1 when a failure is detected, enabling CI gate mode in Jenkinsfiles and GitHub Actions- macOS binary published as a release asset — download and run without a Swift toolchain
Install
# Download binary (no Xcode required)
curl -L https://github.com/gerardrecinto/xctriage/releases/latest/download/xctriage -o xctriage
chmod +x xctriage
mv xctriage /usr/local/bin/xctriage
# Or build from source
git clone https://github.com/gerardrecinto/xctriage.git
cd xctriage
swift build -c release
cp .build/release/xctriage /usr/local/bin/Usage
xctriage analyze xcbuild.log --source xcodebuild
xctriage analyze build.xcresult
xcodebuild test -scheme MyApp 2>&1 | xctriage analyze - --source xcodebuild
xctriage analyze xcbuild.log --source xcodebuild --exit-code # exits 1 on failure
xctriage flaky --n 20
export XCTRIAGE_ANTHROPIC_API_KEY=sk-ant-...
xctriage analyze xcbuild.log --source xcodebuild --llmFailure categories
compilation_error, test_failure, flaky_test, resource_exhaustion, infra_failure, dependency_failure, timeout — 17 NSRegularExpression patterns across 7 Apple-specific categories