release: 5.10.0 — adapters, tools, crew ownership, telemetry, CLI DevX - #95
Draft
abhishekmishragithub wants to merge 12 commits into
Draft
release: 5.10.0 — adapters, tools, crew ownership, telemetry, CLI DevX#95abhishekmishragithub wants to merge 12 commits into
abhishekmishragithub wants to merge 12 commits into
Conversation
Consolidated feature release (previously split across feat/framework-adapters, feat/crew-config-ownership, feat/tools-framework, feat/telemetry, feat/cli-devx): - integrations: optional pipecat + livekit adapters (smallestai[pipecat]/[livekit]), lazy re-exports of the framework-native plugins. - tools: smallestai.tools framework + ExaSearchTool (smallestai[exa]); plugs into a crew ToolRegistry in one line. - cli: agent-crew init prints crew-vs-platform ownership; new agent-crew doctor; SDKSystemUpdateOutputAgentSettingsEvent deprecated. - telemetry: anonymous, opt-out usage telemetry via PostHog (no PII/secrets, SMALLESTAI_TELEMETRY=0 / DO_NOT_TRACK=1). - cli: welcome banner on bare `smallestai` (no more "Missing command" error) + new `smallestai mcp` command for the MCP server. Third-party libraries are optional extras, lazy-imported; core deps unchanged. Version 5.10.0. Full custom test suite green; mypy clean on new files.
CI (poetry) failed to resolve the optional extras: pipecat-ai requires Python >=3.11 and livekit-plugins-smallestai >=3.10, but the SDK supports python ^3.9, so `version = "*"` had no match across the range. Add python markers so poetry only resolves them on compatible interpreters, drop the nonexistent pipecat-ai[smallest] extra, and regenerate poetry.lock to match pyproject.
…ests The compile CI step is `mypy .`. The adapter/tool tests import pipecat/livekit/exa in their 'if installed' branches; those aren't installed in CI, so mypy flagged import-not-found. Mark them type: ignore[import-not-found], matching the source modules. Verified with mypy 1.13.0 (the CI-pinned version): 0 errors, 1021 files.
Apply ruff --fix (unused imports, import sorting) and ruff format to the hand-written code (examples, tests, scripts, cli/crew/helpers/tools/integrations). Generated Fern output was already ruff-formatted and is untouched. Makes the tree conform to the new ruff CI gate + pre-commit hooks.
- .pre-commit-config.yaml: ruff (lint+format) + gitleaks. - CI: new lint job (ruff check + ruff format --check) and security job (gitleaks secret scan + pip-audit dependency CVEs); both gate publish. - .gitleaks.toml allowlists the write-only PostHog phc_ key. - .deepsource.toml (scoped to hand-written code) ready if the DeepSource app is enabled. Verified locally: ruff clean, gitleaks 'no leaks found', pip-audit 'no known vulnerabilities'.
pip-audit flags advisories in pinned transitive deps (pytest, requests, urllib3, starlette, setuptools, python-dotenv) that predate this branch. Keep it surfacing CVEs in CI but non-blocking (continue-on-error) so it doesn't gate the release on pre-existing debt; gitleaks + ruff remain hard gates. Bump the deps in a follow-up, then flip pip-audit to blocking.
Collaborator
Author
|
Added dev quality + security tooling into this release (per request, shipping in 5.10):
All 5 CI jobs green (compile/test/lint/security pass; publish skips until merge). Note: pip-audit is report-only for now — it surfaces a pre-existing CVE backlog in pinned transitive deps (pytest/requests/urllib3/starlette/setuptools/python-dotenv); bump those in a follow-up, then flip it to blocking. |
The published MCP server is @developer-smallestai/smallest-mcp-server (npm), not @smallest-ai/mcp-server (which 404s), and it reads ATOMS_API_KEY (not SMALLEST_API_KEY). Aligned the command, config snippet, and claude-mcp-add lines to the published package + the docs. `mcp run` bridges ATOMS_API_KEY from SMALLEST_API_KEY if only the latter is set. Caught while writing the public docs.
The published livekit-plugins-smallestai (livekit/agents repo) exports STT + TTS. Updated the adapter docstring example to import both, and the test to assert both forward. No code change (the adapter is a passthrough); pipecat STT+TTS already correct.
The docs already have canonical LiveKit + Pipecat integration pages using the native packages (livekit-plugins-smallestai, pipecat-ai[smallest], both STT + TTS). A smallestai.integrations re-export is a redundant second path, so remove it: the module, its test, the [pipecat]/[livekit] extras, and the fernignore entry. Kept the tools framework (Exa) - it has no canonical equivalent. Consolidated the changelog into a single accurate 5.10.0 entry and fixed the MCP package name there too.
The .deepsource.toml is added directly to main in #96 so analysis activates without waiting for this release. Removed here to avoid a duplicate add.
Regenerated from the updated atoms OpenAPI (generator 5.12.12): - add `client.atoms.user.get_subscription()` -> GetSubscriptionUserResponse (plan id, credits, per-plan limits, feature flags) - remove `client.atoms.organization` — the underlying GET /organization returned 404 on the public API and was never functional Isolated to the subscription + organization delta (two-pass regen diff, so no unrelated spec drift is pulled in). Verified: mypy clean (1011 files), custom tests pass, and the user wire tests (incl. subscription) pass.
CI lint runs ruff 0.16.1, which formats python code blocks inside markdown; the spliced example block needed reformatting.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Consolidated feature release. Supersedes #90, #91, #92, #93, #94 (one review, one version bump instead of five).
Included
smallestai.integrations.pipecat/.livekit, lazy re-exports; extrassmallestai[pipecat]/[livekit].smallestai.tools+ExaSearchTool; extrasmallestai[exa]; one-line crew registration.agent-crew initprints the crew-vs-platform boundary; newagent-crew doctor; deprecated the dead override event.SMALLESTAI_TELEMETRY=0/DO_NOT_TRACK=1).smallestai(no more "Missing command"); newsmallestai mcp(config / run / setup).Design guarantees
.fernignore'd (survive regen). Namespace-independent, so this carries into 6.0.Verification (on the consolidated branch)
pytest tests/custom— 117 passed, 1 skipped (all five features' tests together + existing).mypy— clean on all new files.{pipecat, livekit, exa}; baresmallestaishows the banner (exit 0);doctor+mcppresent.Draft — merging bumps 5.10.0 and auto-publishes. Hold for your review.
Fast follows (separate): richer telemetry events (
crew_deploy, errors), pagination helper,--debugrequest logging.