Skip to content

Commit e01549e

Browse files
committed
release: v0.2.3 — merge develop into main
2 parents 488cf27 + 2c63092 commit e01549e

17 files changed

Lines changed: 1964 additions & 22 deletions

File tree

.github/workflows/dev-release.yml

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,12 @@ jobs:
4141

4242
- name: Set dev version
4343
run: |
44-
# Read base version and bump patch for dev
44+
# Use pyproject.toml version as the base (no patch bump).
45+
# pyproject.toml should always hold the NEXT release version (e.g. 0.2.3).
46+
# Dev builds publish as 0.2.3.devN — PEP 440 pre-release of the upcoming release.
4547
BASE_VERSION=$(grep 'version = ' pyproject.toml | head -1 | sed 's/version = "\(.*\)"/\1/')
46-
MAJOR=$(echo $BASE_VERSION | cut -d. -f1)
47-
MINOR=$(echo $BASE_VERSION | cut -d. -f2)
48-
PATCH=$(echo $BASE_VERSION | cut -d. -f3)
49-
NEXT_PATCH=$((PATCH + 1))
5048
COMMIT_COUNT=$(git rev-list --count HEAD ^$(git describe --tags --abbrev=0 2>/dev/null || echo HEAD~100) 2>/dev/null || echo 0)
51-
DEV_VERSION="${MAJOR}.${MINOR}.${NEXT_PATCH}.dev${COMMIT_COUNT}"
49+
DEV_VERSION="${BASE_VERSION}.dev${COMMIT_COUNT}"
5250
echo "DEV_VERSION=${DEV_VERSION}" >> $GITHUB_ENV
5351
5452
# Patch pyproject.toml with dev version

CHANGELOG.md

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

88
## [Unreleased]
99

10+
## [0.2.3] - 2026-04-03
11+
12+
### Fixed
13+
- **Governance RTD table rendering** (#55): rows 2–6 of the Modular Governance table in `docs/site/governance.md` started with `||` instead of `|`, breaking layout. Introduced during the uppercase filename migration.
14+
15+
### Added
16+
- **RTD commands page complete** (#56): `docs/site/commands.md` now documents all 40+ commands — previously 13 of 40+ were documented. Added sections for `exec`/`ps`/`abort`, `commit`/`push`/`sync`/`branch`/`pr`, `session-end`, `update`, `apply`, `migrate-project`, `release`, `verify-release`, `ledger add/list/stats`, `req list/add/trace/gaps/orphans`, `plugin`, `serve`, and `credits limits`.
17+
- **H11/H12 governance rules and blocking-loop enforcement** (#58): two new hard rules added to the `RULES.md` governance template. H11 requires every loop or blocking wait in agent-written scripts to have a deadline, fallback exit, and diagnostic message. H12 requires Windows multi-step automation to use `.cmd` files. `specsmith validate` now scans `.sh`/`.cmd`/`.ps1`/`.bash` files under `scripts/` and the project root and flags infinite-loop patterns without a recognised deadline/timeout guard.
18+
- **Proactive per-model rate-limit pacing** (#59): `BUILTIN_PROFILES` constant ships conservative RPM/TPM defaults for OpenAI (gpt-4o, gpt-4o-mini, gpt-4-turbo, gpt-3.5-turbo, o1, o1-mini, o3-mini, gpt-5.4, wildcard), Anthropic (claude-opus-4, claude-sonnet-4, claude-haiku-3-5, claude-3-5-sonnet, wildcard), and Google (gemini-1.5-pro, gemini-1.5-flash, gemini-2.0-flash, gemini-2.5-pro, wildcard). Two new `credits limits` subcommands: `status` (rolling-window RPM/TPM/concurrency snapshot) and `defaults` (list or `--install` built-in profiles). Local overrides always take precedence over built-ins.
19+
- **Rate Limit Pacing RTD page**: new `docs/site/rate-limits.md` documents the scheduler model, built-in profiles table, CLI commands, persistent state, and the Python API.
20+
- **README updated**: new sections for Governance Rules (H11/H12) and Proactive Rate Limit Pacing with RTD links. Commands table expanded to all major command groups.
21+
- **Dev release CI fixed**: workflow now uses `pyproject.toml` version directly (no patch bump) so dev builds publish as `0.2.3.devN` — PEP 440 compliant pre-releases of the upcoming stable version.
22+
1023
## [0.2.2] - 2026-04-02
1124

1225
### Fixed
@@ -194,7 +207,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
194207
- **G9**: Session start file list now marks services.md as conditional ("if it exists").
195208
- **G10**: Open TODOs format specified as `- [ ]` / `- [x]` checkbox syntax.
196209

197-
[Unreleased]: https://github.com/BitConcepts/specsmith/compare/v0.2.2...HEAD
210+
[Unreleased]: https://github.com/BitConcepts/specsmith/compare/v0.2.3...HEAD
211+
[0.2.3]: https://github.com/BitConcepts/specsmith/compare/v0.2.2...v0.2.3
198212
[0.2.2]: https://github.com/BitConcepts/specsmith/compare/v0.2.1...v0.2.2
199213
[0.2.1]: https://github.com/BitConcepts/specsmith/compare/v0.2.0...v0.2.1
200214
[0.2.0]: https://github.com/BitConcepts/specsmith/compare/v0.1.3...v0.2.0

LEDGER.md

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,37 @@ Estimated cost: high
3535
- CI: lint ✓, security ✓, typecheck pending (fix pushed)
3636

3737
### Open TODOs
38-
- [ ] Add VCS platform integrations (GitHub/GitLab/Bitbucket CLI)
39-
- [ ] Add Gemini, Windsurf, Aider agent adapters
40-
- [ ] Expand CLI runner test coverage
41-
- [ ] Self-host governance (this file)
38+
- [x] Add VCS platform integrations (GitHub/GitLab/Bitbucket CLI)
39+
- [x] Add Gemini, Windsurf, Aider agent adapters
40+
- [x] Expand CLI runner test coverage
41+
- [x] Self-host governance (this file)
42+
43+
## Session 2026-04-02 — v0.2.0→v0.2.2 release cycle
44+
45+
**Status:** Complete
46+
**Scope:** Major feature release + two patch releases
47+
48+
### Changes
49+
- **v0.2.0**: Uppercase governance filenames, community templates (#42), AI credit tracking (#50/#51), architect command (#49), self-update, multi-language detection, dynamic versioning, VCS commands, ledger/req/test CLIs, plugin scaffold
50+
- **v0.2.1**: Process abort/PID tracking (exec/ps/abort commands), language-specific templates (#41 — Rust, Go, JS/TS), RTD integration (#38), release workflow templates (#44), PyPI integration (#36), template refactor (#45), upgrade --full sync mechanism
51+
- **v0.2.2**: Auto-fix AGENTS.md references on lowercase→uppercase migration, alternate path detection (docs/LEDGER.md, docs/architecture/**), case-insensitive architecture check, CI-gated dev releases
52+
53+
### Issues closed
54+
- #36, #38, #41, #42, #44, #45 (closed), #55, #56 (filed)
55+
- Created v0.3.0 milestone, assigned 6 remaining issues
56+
57+
### Verification
58+
- 115 tests passing (pytest, 3 OS × 3 Python)
59+
- ruff check + format: clean (src/ + tests/)
60+
- mypy strict: clean
61+
- CI: 19/19 checks pass on all PRs before merge
62+
- CodeQL: 0 open alerts
63+
- Dependabot: 0 open alerts
64+
65+
### Open TODOs
66+
- [ ] #55: Fix governance table rendering on RTD (double pipe)
67+
- [ ] #56: Document 15+ missing CLI commands in RTD
68+
- [ ] #52: Credit budget cap enforcement
69+
- [ ] #37: Secure API key management
70+
- [ ] #10: USPTO/MCP patent integration
71+
- [ ] #17: Multi-project workspace management

README.md

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,15 +86,21 @@ Each type gets: tool-aware CI (correct lint/test/security/build tools), domain-s
8686
| `import` | Adopt an existing project (merge mode) |
8787
| `audit` | Drift detection and health checks (`--fix` to auto-repair) |
8888
| `architect` | Interactive architecture generation |
89-
| `validate` | Governance file consistency checks |
89+
| `validate` | Governance consistency + H11 blocking-loop detection |
9090
| `compress` | Archive old ledger entries |
9191
| `upgrade` | Update governance to new spec version |
9292
| `status` | CI/PR/alert status from VCS platform |
9393
| `diff` | Compare governance against templates |
9494
| `export` | Compliance report with REQ↔TEST coverage |
9595
| `doctor` | Check if verification tools are installed |
9696
| `self-update` | Update specsmith (channel-aware) |
97-
| `credits` | AI credit tracking, analysis, and budgets |
97+
| `credits` | AI credit tracking, analysis, budgets, and rate-limit pacing |
98+
| `exec` / `ps` / `abort` | Tracked process execution with PID tracking and timeout |
99+
| `commit` / `push` / `sync` | Governance-aware VCS operations |
100+
| `branch` / `pr` | Strategy-aware branching and PR creation |
101+
| `ledger` | Structured ledger add/list/stats |
102+
| `req` | Requirements list/add/trace/gaps/orphans |
103+
| `session-end` | End-of-session checklist |
98104

99105
## 7 Agent Integrations
100106

@@ -104,9 +110,36 @@ AGENTS.md (cross-platform standard), Warp/Oz, Claude Code, GitHub Copilot, Curso
104110

105111
GitHub Actions, GitLab CI, Bitbucket Pipelines — all with tool-aware CI generated from the verification tool registry. Dependabot/Renovate configured per language ecosystem.
106112

113+
## Governance Rules (H1–H12)
114+
115+
specsmith-governed projects enforce 12 hard rules. Two were added in v0.2.3 for agentic workflows:
116+
117+
- **H11** — Every loop or blocking wait in agent-written scripts must have a deadline, a fallback exit, and a diagnostic message on timeout. `specsmith validate` enforces this automatically.
118+
- **H12** — On Windows, multi-step automation goes into a `.cmd` file, not inline shell invocations or `.ps1` files.
119+
120+
See [Governance Model](https://specsmith.readthedocs.io/en/stable/governance/) for the full rule set.
121+
122+
## Proactive Rate Limit Pacing
123+
124+
specsmith ships a rolling-window scheduler that paces AI provider requests before dispatch:
125+
126+
- Built-in RPM/TPM profiles for OpenAI, Anthropic, and Google models (including wildcard fallbacks)
127+
- Pre-dispatch budget check: sleeps until the 60-second window refills instead of overshooting
128+
- Parses OpenAI-style `"Please try again in 10.793s"` messages and obeys them
129+
- Adaptive concurrency: halved after a 429, gradually restored after consecutive successes
130+
- Local overrides always take precedence over built-in defaults
131+
132+
```bash
133+
specsmith credits limits defaults # list built-in profiles
134+
specsmith credits limits defaults --install # merge into project config
135+
specsmith credits limits status --provider openai --model gpt-5.4
136+
```
137+
138+
See [Rate Limit Pacing](https://specsmith.readthedocs.io/en/stable/rate-limits/) for full details.
139+
107140
## Documentation
108141

109-
**[specsmith.readthedocs.io](https://specsmith.readthedocs.io)** — Full user manual with tutorials, command reference, project type details, tool registry, governance model, troubleshooting.
142+
**[specsmith.readthedocs.io](https://specsmith.readthedocs.io)** — Full user manual with tutorials, command reference, project type details, tool registry, governance model, rate-limit pacing, troubleshooting.
110143

111144
## Links
112145

0 commit comments

Comments
 (0)