Skip to content

release: 1.0.0 — commit the tq1 contract as stable#61

Merged
copyleftdev merged 1 commit into
mainfrom
release/1.0
Jun 1, 2026
Merged

release: 1.0.0 — commit the tq1 contract as stable#61
copyleftdev merged 1 commit into
mainfrom
release/1.0

Conversation

@copyleftdev

@copyleftdev copyleftdev commented Jun 1, 2026

Copy link
Copy Markdown
Owner

What

The first stable release. No code changes from 0.9.0 — this commits the contract that has held, additive-only, across all nine releases.

Stabilizes (1.0)

Breaking any of these now requires a major bump + a PROTOCOL change — they will not change quietly under 1.x:

  • the protocol id anomalyx/tq1;
  • the exit codes 0 / 1 / 2;
  • the dense finding-row layout [detector, class, handle, confidence, severity, score, reason] + the dict string table;
  • the handle forms column: / cell: / row: / range: / dist:;
  • the required envelope fields and the severity ladder (info < low < medium < high < critical).

Documented in the contract's new Stability section.

Still evolves additively under 1.x

New detectors, formats, optional flags, optional envelope fields (consumers ignore unknown fields). Output-affecting config changes move the config_version fingerprint; determinism (same input + same config_version ⇒ byte-identical) stays absolute. The golden-envelope tests guard the whole surface against accidental drift.

Gate

fmt / clippy / full workspace test green (14 result-blocks, goldens included). Version + docs only; no src/ change.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation

    • Added stability documentation for 1.0.0 outlining guaranteed contract elements, including protocol behavior, exit codes, data structures, and determinism expectations, along with guidelines for future 1.x changes.
  • Chores

    • Bumped version to 1.0.0 to mark the first stable release.

First stable release. No code changes from 0.9.0 — this declares the contract.

Stabilizes (breaking any → major bump + PROTOCOL change, never quiet under 1.x):
the protocol id anomalyx/tq1, exit codes 0/1/2, the dense finding-row layout,
the handle forms (column:/cell:/row:/range:/dist:), the required envelope
fields, and the severity ladder. Documented in docs/src/contract.md Stability.

Continues to evolve additively under 1.x (detectors, formats, optional flags,
optional envelope fields); output-affecting config changes move config_version;
determinism stays absolute; golden tests guard against drift.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 1, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: a2e25336-6175-4ab5-ac0d-20b32fbd542a

📥 Commits

Reviewing files that changed from the base of the PR and between d4a12f2 and 02af4b8.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (3)
  • CHANGELOG.md
  • Cargo.toml
  • docs/src/contract.md

📝 Walkthrough

Walkthrough

This PR marks the tq1 contract as stable in version 1.0.0. The changes bump the workspace version from 0.9.0 to 1.0.0, document explicit stability guarantees for core contract elements, and add corresponding release notes to the changelog.

Changes

1.0.0 Release

Layer / File(s) Summary
Contract stability guarantees
docs/src/contract.md
A new "Stability (1.0)" section specifies which contract elements are guaranteed stable through 1.x (protocol id, exit codes, finding-row layout, string tables, envelope structure, severity ladder, determinism), what requires a major bump and PROTOCOL change if altered, and what may evolve additively (detectors, input formats, optional flags, optional envelope fields).
Workspace version synchronization
Cargo.toml
The workspace package version is bumped from 0.9.0 to 1.0.0, and all workspace dependency constraints for ax-core, ax-normalize, and ax-detect are updated to 1.0.0 to match.
Release notes and compare links
CHANGELOG.md
A new [1.0.0] - 2026-06-01 release section documents the contract stabilization and lists the covered contract elements. The [Unreleased] compare link is rebased from v0.9.0...HEAD to v1.0.0...HEAD, and a new [1.0.0] compare link is added for v0.9.0...v1.0.0.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • copyleftdev/anomalyx#47: Updates workspace metadata by bumping the workspace package version and dependency versions for ax-core, ax-normalize, and ax-detect.

Poem

🐰 A stable release hops forth today,
From 0.9 to 1.0 it makes its way!
Contract promises carved in stone,
Determinism's guarantee, firmly known.
Version bumps coordinated right—
The tq1 protocol shines bright! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately and concisely describes the main change: releasing version 1.0.0 and stabilizing the tq1 contract, which aligns with the PR objectives and changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release/1.0

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@copyleftdev copyleftdev merged commit 67821d0 into main Jun 1, 2026
2 checks passed
@copyleftdev copyleftdev deleted the release/1.0 branch June 1, 2026 21:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant