Skip to content

Commit 03f3dc6

Browse files
authored
Merge pull request #5 from hermes-labs-ai/codex/quickthink-v0.2.1-finalize
release: v0.2.1
2 parents a80031f + 1c9996f commit 03f3dc6

8 files changed

Lines changed: 89 additions & 23 deletions

File tree

.zenodo.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"upload_type": "software",
3-
"version": "0.2.0",
3+
"version": "0.2.1",
44
"title": "quickthink: local-first inference control layer for small LLMs",
55
"description": "quickthink is a local-first inference control layer that aims to give small, on-device language models more reliable structured output by inserting a compressed plan-then-answer scaffold with latency-aware routing. Its routing, plan-grammar, and validation logic run as plain-Python middleware (no extra model of its own) in front of Ollama-backed calls, offering three execution modes (lite, two_pass, direct), preset routing profiles, a strict plan grammar, and a canonical run/judge/validate/report eval harness for reproducible local quality checks. Built by Hermes Labs as part of its open-source reliability layer for AI systems.",
66
"creators": [

CHANGELOG.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,15 @@ Format follows Keep a Changelog principles and semantic versioning.
66

77
## [Unreleased]
88

9+
## [0.2.1] - 2026-08-04
10+
11+
### Added
12+
- `quickthink --version` reports the installed package version.
13+
914
### Changed
10-
- Document the copyable, tagged-source install path to use before the first PyPI release.
11-
- Prepare tag-bound PyPI trusted publishing; no package has been uploaded.
15+
- Prepare the first PyPI publication through a tag-bound GitHub Actions trusted-publisher workflow. The workflow verifies that the tag and package version match, builds distributions, and checks them before the protected PyPI environment can publish.
16+
- Make source installation before publication and package installation after publication explicit in the quickstart.
17+
- Synchronize package, citation, and Zenodo release metadata for `0.2.1`.
1218

1319
## [0.2.0] - 2026-02-27
1420
### Added

CITATION.cff

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ authors:
1515
given-names: "Rolando"
1616
orcid: "https://orcid.org/0009-0005-4896-1112"
1717
affiliation: "Hermes Labs"
18-
version: "0.2.0"
19-
date-released: "2026-02-27"
18+
version: "0.2.1"
19+
date-released: "2026-08-04"
2020
license: Apache-2.0
2121
repository-code: "https://github.com/hermes-labs-ai/quickthink"
2222
url: "https://github.com/hermes-labs-ai/quickthink"

README.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ Small/local models are fast but often underperform on multi-step tasks.
6161
Prerequisite: install and start [Ollama](https://ollama.com/) locally.
6262

6363
```bash
64-
# 1) Install the current tagged source (quickthink is not on PyPI yet)
65-
python -m pip install "quickthink @ git+https://github.com/hermes-labs-ai/quickthink.git@v0.2.0"
64+
# 1) Before the first PyPI publication, install the current source
65+
python -m pip install "quickthink @ git+https://github.com/hermes-labs-ai/quickthink.git"
6666

6767
# 2) Pull one supported model
6868
ollama pull qwen2.5:1.5b
@@ -73,6 +73,12 @@ quickthink ask "Give me a 3-step plan to learn SQL basics" --model qwen2.5:1.5b
7373

7474
If this command works, your local setup is ready.
7575

76+
After `v0.2.1` has been published to PyPI, install the release instead:
77+
78+
```bash
79+
python -m pip install "quickthink==0.2.1"
80+
```
81+
7682
For development, clone the repository and install the editable development extras:
7783

7884
```bash
Lines changed: 37 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,44 @@
1-
# Release Notes v0.2.0
1+
# quickthink v0.2.1
22

3-
Date: 2026-02-18T18:43:38+00:00
3+
Released: 2026-08-04
44

5-
## Summary
6-
- Describe the user-visible improvements in this release.
5+
## What quickthink is for
76

8-
## Evidence Links
9-
- Eval report: unavailable
10-
- Compatibility snapshot: unavailable
7+
quickthink is a local-first CLI and Python library for shaping Ollama-backed LLM calls. It uses routing and a compact plan-then-answer scaffold for prompts that appear multi-step, while sending simpler prompts directly to the selected local model.
118

12-
## Compatibility Snapshot
13-
- No compatibility snapshot found.
9+
## What changed
1410

15-
## Benchmark Notes
16-
Paste key metrics from the eval report here (win-rate, p50/p95 overhead, failure breakdown).
11+
- Prepared the first PyPI release path with a tag/version guard, distribution build, and package metadata validation before the protected trusted-publisher job can run.
12+
- Added clear install guidance for both the source-only and post-PyPI states.
13+
- Added `quickthink --version` for installed-package identification.
14+
- Synced package, citation, and Zenodo metadata to `0.2.1`.
1715

18-
## Breaking Changes
19-
- None (or list explicitly).
16+
There are no inference-path changes in this release and no general model-quality improvement claim.
2017

21-
## Upgrade Notes
22-
- Mention CLI/API changes and migration steps if any.
18+
## Install and first result
19+
20+
After the PyPI publish job for this release has succeeded:
21+
22+
```bash
23+
python -m pip install "quickthink==0.2.1"
24+
ollama pull qwen2.5:1.5b
25+
quickthink ask "Give me a 3-step plan to learn SQL basics" --model qwen2.5:1.5b
26+
```
27+
28+
Before publication, install directly from the repository instead:
29+
30+
```bash
31+
python -m pip install "quickthink @ git+https://github.com/hermes-labs-ai/quickthink.git"
32+
```
33+
34+
## Requirements and limits
35+
36+
- Python 3.9 or later, a running local [Ollama](https://ollama.com/) service, and a pulled model are required.
37+
- The supported model profiles are `qwen2.5:1.5b`, `mistral:7b`, and `gemma3:27b`; other models may run but are untuned.
38+
- quickthink is not a hosted API, training framework, or general agent-orchestration platform. It does not verify answer correctness; results remain model- and task-dependent.
39+
40+
## Links
41+
42+
- [Quickstart](https://github.com/hermes-labs-ai/quickthink#5-minute-quickstart)
43+
- [Known limitations](https://github.com/hermes-labs-ai/quickthink/blob/main/docs/KNOWN_LIMITATIONS.md)
44+
- [Release process](https://github.com/hermes-labs-ai/quickthink/blob/main/docs/release/RELEASE_PROCESS.md)

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "quickthink"
3-
version = "0.2.0"
3+
version = "0.2.1"
44
description = "Compressed planning scaffold for local LLMs — latency-aware routing and structured output reliability"
55
readme = "README.md"
66
requires-python = ">=3.9"

src/quickthink/cli.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import json
44
from datetime import datetime, timezone
5+
from importlib.metadata import version as package_version
56
from pathlib import Path
67
from typing import Optional
78

@@ -14,6 +15,25 @@
1415
app = typer.Typer(help="Compressed planning scaffold for local LLMs")
1516

1617

18+
def _version_callback(value: bool) -> None:
19+
if value:
20+
typer.echo(package_version("quickthink"))
21+
raise typer.Exit()
22+
23+
24+
@app.callback()
25+
def main(
26+
version: bool = typer.Option(
27+
False,
28+
"--version",
29+
callback=_version_callback,
30+
is_eager=True,
31+
help="Show the installed quickthink version and exit.",
32+
),
33+
) -> None:
34+
"""Compressed planning scaffold for local LLMs."""
35+
36+
1737
@app.command()
1838
def list_models() -> None:
1939
for model, profile in MODEL_PROFILES.items():

tests/test_cli_version.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from importlib.metadata import version as package_version
2+
3+
from typer.testing import CliRunner
4+
5+
from quickthink.cli import app
6+
7+
8+
def test_version_reports_installed_package_version() -> None:
9+
result = CliRunner().invoke(app, ["--version"])
10+
11+
assert result.exit_code == 0
12+
assert result.output.strip() == package_version("quickthink")

0 commit comments

Comments
 (0)