Skip to content

Commit 0db1a3b

Browse files
tbitcsoz-agent
andcommitted
release: v0.11.4 — Codity.ai integration (#179)
Bump version 0.11.3 -> 0.11.4. Update CHANGELOG.md. Co-Authored-By: Oz <oz-agent@warp.dev>
1 parent 767c57c commit 0db1a3b

5 files changed

Lines changed: 19 additions & 6 deletions

File tree

CHANGELOG.md

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [0.11.4] - 2026-05-19
9+
10+
### Added
11+
12+
- **Codity.ai integration** (#179): \CodityAdapter\ scaffolds AI code review CI workflows via \specsmith integrate codity\; supports GitHub (default), GitLab, Azure DevOps; VCS auto-detected from \scaffold.yml\ and directory heuristics
13+
- **\codity-ai-review\ governance skill** (70th built-in skill): full CLI workflow reference including install, magic-link auth, \codity review --staged\, \codity scan --staged\, \codity test-gen --staged\, VCS-specific PAT setup
14+
- **AGENTS.md template Codity section**: pre-commit rule — HIGH-severity findings block commits, MEDIUM requires acknowledgement
15+
- **ARCH §39** with architecture invariant I15
16+
- **REQ-354/355/356** and **TEST-354/355/356/357** (318 tests total, 28/28 audit clean)
17+
818
## [Unreleased]
919

1020
## [0.11.3-post3] — 2026-05-17
@@ -100,7 +110,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
100110

101111
## [0.11.2] — 2026-05-11
102112
### Added
103-
- **esdb rollback real restore (REQ-252)** — now finds the N-th most recent backup in .specsmith/backups/ and restores equirements.json + estcases.json from it. Exits non-zero when no backups exist.
113+
- **esdb rollback real restore (REQ-252)** — now finds the N-th most recent backup in .specsmith/backups/ and restores
114+
equirements.json + estcases.json from it. Exits non-zero when no backups exist.
104115
- **esdb compact real deduplication (REQ-253)** — reads .specsmith/requirements.json and .specsmith/testcases.json, deduplicates by ID (last-write-wins), drops ID-less entries, writes compacted lists back to disk.
105116
- **12 CodeQL security fixes** — py/path-injection (10): _safe_resolve() + _safe_file_read() helpers reject null bytes and .. traversal before file reads; py/http-response-splitting (1): strip CR/LF from HTTP response headers; py/incomplete-url-substring-sanitization (1): urlparse() hostname comparison in test.
106117
### Changed
@@ -109,7 +120,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
109120
- Test suite updated to match new esdb rollback/compact contracts. 670 passing.
110121
### Validation
111122
- pytest: **670 passed, 2 skipped, 5 xfailed**.
112-
- uff check + uff format --check: clean.
123+
-
124+
uff check +
125+
uff format --check: clean.
113126
## [0.11.1] — 2026-05-11
114127
### Added
115128
- **`specsmith channel` group (REQ-248)** — `channel set {stable|dev}`, `channel get [--json]`, `channel clear`. Persists preferred update channel to `~/.specsmith/channel`; `self-update` and project-update checks honour the resolved channel.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "specsmith"
7-
version = "0.11.3"
7+
version = "0.11.4"
88
description = "Applied Epistemic Engineering toolkit — AEE agent sessions, execution profiles, FPGA/HDL governance, tool installer, 50+ CLI commands."
99
readme = "README.md"
1010
license = "MIT"

src/specsmith/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@
88
try:
99
__version__: str = _pkg_version("specsmith")
1010
except PackageNotFoundError: # running from source without install
11-
__version__ = "0.11.3" # fallback: keep in sync with pyproject.toml
11+
__version__ = "0.11.4" # fallback: keep in sync with pyproject.toml

src/specsmith/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ class ProjectConfig(BaseModel):
115115
),
116116
)
117117
language: str = Field(default="python", description="Primary language/runtime")
118-
spec_version: str = Field(default="0.3.0", description="Spec version to scaffold from")
118+
spec_version: str = Field(default="0.11.4", description="Spec version to scaffold from")
119119
description: str = Field(default="", description="Short project description")
120120

121121
# Options

tests/test_cli.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ def test_upgrade_to_new_version(self, tmp_path: Path) -> None:
115115
target = _scaffold_governed(tmp_path)
116116
runner = CliRunner()
117117
result = runner.invoke(
118-
main, ["upgrade", "--project-dir", str(target), "--spec-version", "0.2.0"]
118+
main, ["upgrade", "--project-dir", str(target), "--spec-version", "0.11.4"]
119119
)
120120
assert result.exit_code == 0
121121
assert "Upgraded" in result.output

0 commit comments

Comments
 (0)