Skip to content

Commit d946ca3

Browse files
author
semantic-release
committed
chore: release 0.1.0
1 parent 73b6474 commit d946ca3

3 files changed

Lines changed: 158 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
# CHANGELOG
2+
3+
4+
## v0.1.0 (2026-03-02)
5+
6+
### Bug Fixes
7+
8+
- Exclude audio/realtime models from tier classification + fix google genai import
9+
([`b1b5522`](https://github.com/OpenAdaptAI/openadapt-consilium/commit/b1b55220f3ae10fbbe238fe86526dcba912fc44a))
10+
11+
- OpenAI tier regex now requires version-like pattern (gpt-N.N) instead of matching any gpt-*
12+
prefix. This prevents gpt-audio-2025-08-28 from being classified as "flagship" due to its date
13+
sorting higher than 5.2. - Google model listing now uses google.genai (new SDK) instead of the
14+
deprecated google.generativeai which lacks Client(). - Added tests for audio/realtime model
15+
exclusion.
16+
17+
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
18+
19+
- Handle date-suffixed model IDs from provider APIs
20+
([`24d68dc`](https://github.com/OpenAdaptAI/openadapt-consilium/commit/24d68dc0bef17b0703283e329cc30fdc110e5840))
21+
22+
get_default_models() now returns "provider/model_id" format so parse_model_string() can resolve any
23+
model ID returned by the API (e.g. claude-opus-4-20250514). Also adds pattern-based provider
24+
inference as a safety net for bare model IDs.
25+
26+
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
27+
28+
- Migrate Google provider from deprecated google-generativeai to google-genai
29+
([`e3619ad`](https://github.com/OpenAdaptAI/openadapt-consilium/commit/e3619add62364ffe0b9a98b3d464ef83ed7f5478))
30+
31+
Replaces the deprecated `google.generativeai` SDK with the new `google-genai` SDK (`from google
32+
import genai`). Uses the unified `Client` API for model queries. Eliminates the FutureWarning
33+
about the deprecated package.
34+
35+
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
36+
37+
- Update URLs from abrichr/consilium to OpenAdaptAI/openadapt-consilium
38+
([#2](https://github.com/OpenAdaptAI/openadapt-consilium/pull/2),
39+
[`73b6474`](https://github.com/OpenAdaptAI/openadapt-consilium/commit/73b647475b7fc2ed00f523c0c9983fa2f7bcc373))
40+
41+
The repo was renamed from abrichr/consilium to OpenAdaptAI/openadapt-consilium. Update all 3
42+
install/clone URLs in README.md to point to the correct location.
43+
44+
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
45+
46+
- Version extraction for hyphen-separated model IDs + stale references
47+
([`2787905`](https://github.com/OpenAdaptAI/openadapt-consilium/commit/278790563b686c8e0461c0ad34944d2ce9d4d376))
48+
49+
- Fix _extract_version_tuple regex to handle hyphen-separated versions (e.g. claude-opus-4-6 now
50+
correctly returns (4, 6) instead of (4,)) - Update all stale model references in docstrings
51+
(gpt-4.1 → gpt-5.2, claude-sonnet-4-5-20250514 → claude-sonnet-4-6) - Fix README diagram (GPT-4.1
52+
→ GPT-5.2, Gemini 2.5 Pro → Gemini 3.1 Pro) - Remove duplicate entries in README model table - Add
53+
test for Claude version sorting (4-6 > 4-5)
54+
55+
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
56+
57+
### Continuous Integration
58+
59+
- Add release automation and CI workflows
60+
([#3](https://github.com/OpenAdaptAI/openadapt-consilium/pull/3),
61+
[`2e5336b`](https://github.com/OpenAdaptAI/openadapt-consilium/commit/2e5336b2af66213f453fad2d1079728ccac7faf6))
62+
63+
- Add test.yml workflow (lint + pytest on Python 3.10-3.12) - Add release.yml workflow
64+
(python-semantic-release + PyPI publish via OIDC) - Add semantic_release config to pyproject.toml
65+
- Add project.urls metadata - Bump version to 0.3.0 to match latest PyPI release
66+
67+
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
68+
69+
### Features
70+
71+
- Add model auto-detection registry
72+
([`218ccfa`](https://github.com/OpenAdaptAI/openadapt-consilium/commit/218ccfa78dd180c83f63e4357e0ceea8c63f3e46))
73+
74+
- list_models() queries provider APIs for available models - get_latest() returns best model for a
75+
tier (flagship/fast/reasoning) - TTL-cached (1 hour) with hardcoded fallback defaults - Council
76+
auto-detects latest models when none specified
77+
78+
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
79+
80+
- Auto-discover latest models by filtering provider API responses
81+
([#1](https://github.com/OpenAdaptAI/openadapt-consilium/pull/1),
82+
[`e001654`](https://github.com/OpenAdaptAI/openadapt-consilium/commit/e0016542b038355db0e3a0f99b32b376602be6a7))
83+
84+
* feat: auto-discover latest models by filtering provider API responses
85+
86+
Add chat-model filtering to all three provider listers so the council automatically uses the latest
87+
models without hardcoded updates:
88+
89+
- OpenAI: allowlist regex (gpt-/o[1-9]) + denylist keywords (embedding, tts, audio, realtime,
90+
dall-e, whisper, moderation, search) - Anthropic: filter to claude-* models only - Google: require
91+
generateContent in supported_actions + gemini in name
92+
93+
CLI --models default is now resolved lazily via get_default_models() instead of a hardcoded list.
94+
Add pytest-timeout, live test marker, and 16 integration tests (auto-skipped without API keys).
95+
96+
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
97+
98+
* fix: add image/transcribe to deny list, relax tier coverage test
99+
100+
Live testing revealed gpt-image-* and gpt-*-transcribe* models leaking through the OpenAI filter.
101+
Add "image" and "transcribe" to the deny keywords. Also relax test_all_classify_into_tiers to
102+
check that major tiers (flagship, fast, reasoning) are populated rather than requiring every model
103+
to classify — legacy and date-suffixed variants may not match tier patterns.
104+
105+
* fix: self-review — remove dead code, tighten filters, fix test fidelity
106+
107+
- Add codex/instruct to OpenAI deny keywords (not chat-completions API) - Delete unused
108+
tests/conftest.py (skip decorators were duplicated inline in test_model_discovery_live.py,
109+
conftest copies never imported) - Rewrite test_list_google_sdk_integration to actually call
110+
_list_google through SDK mocks instead of patching the function and reimplementing its logic
111+
inline - Clean up stale stream-of-consciousness comment - Add codex/instruct assertions to filter
112+
unit tests
113+
114+
* fix: correct misleading comment on Google mock test data
115+
116+
text-embedding-004 has embedContent (not generateContent), so it's filtered by both the
117+
supported_actions check AND the Gemini name check.
118+
119+
---------
120+
121+
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
122+
123+
- Initial consilium library
124+
([`4b3159c`](https://github.com/OpenAdaptAI/openadapt-consilium/commit/4b3159c64e807693fcd4fa2853b78b75c2893f4d))
125+
126+
Multi-LLM council for consensus-driven AI responses. Three-stage pipeline: query all models →
127+
cross-review → synthesize.
128+
129+
Includes: - Python API (Council class) and dict-based SDK (council_query) - CLI tool with --json,
130+
--budget, --no-review, --image options - OpenAI, Anthropic, and Google Gemini provider support -
131+
Real-time cost tracking with per-model breakdown - Budget enforcement (auto-skip review stages if
132+
over budget) - Parallel execution of model queries - 34 fully-mocked tests
133+
134+
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
135+
136+
- Initial consilium library - 3-stage LLM council pipeline
137+
([`51941b3`](https://github.com/OpenAdaptAI/openadapt-consilium/commit/51941b3f9ca819945d53019effae1e70c951f361))
138+
139+
Three-stage pipeline for querying multiple LLMs, cross-reviewing, and synthesizing: - Stage 1: Query
140+
all models in parallel (OpenAI, Anthropic, Google) - Stage 2: Each model anonymously reviews
141+
others' responses - Stage 3: Chairman synthesizes the best answer
142+
143+
Includes CLI, Python SDK, cost tracking, and budget enforcement.
144+
145+
Inspired by Karpathy's llm-council.
146+
147+
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
148+
149+
- Update to latest models (March 2026)
150+
([`2ad217a`](https://github.com/OpenAdaptAI/openadapt-consilium/commit/2ad217a791754e79818e5ffeda8c2a6f583dc32a))
151+
152+
- OpenAI: gpt-5.2 (flagship), gpt-5.2-pro, gpt-5, gpt-5-mini - Anthropic: claude-opus-4-6,
153+
claude-sonnet-4-6 (Feb 2026) - Google: gemini-3.1-pro, gemini-3-flash (March 2026) - Updated
154+
pricing table and model aliases - All 34 tests passing
155+
156+
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "consilium"
3-
version = "0.3.0"
3+
version = "0.1.0"
44
description = "Multi-LLM council for consensus-driven AI responses"
55
readme = "README.md"
66
requires-python = ">=3.10"

src/consilium/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
from consilium.model_registry import get_latest, list_models
2222
from consilium.sdk import council_query
2323

24-
__version__ = "0.3.0"
24+
__version__ = "0.1.0"
2525
__all__ = [
2626
"Council",
2727
"CouncilResult",

0 commit comments

Comments
 (0)