feat(0.10.1): G1-G4 + C1 + H1-H4 follow-up sweep#94
Merged
Conversation
* G1 `agents add` diversity guard - ProfileStore.diversity_warnings warns when the reviewer / architect shares a provider family with the coder, plus a new PROVIDER_FAMILIES table and provider_family() helper. The CLI prints yellow warnings (non-fatal); --json output now includes diversity_warnings. * G2 capability filter - ProfileStore.filter_by_capability + a new specsmith agents list --capability flag. * G3 phase next auto-routes - advancing the AEE phase now pins phase:active to the new phase's preferred profile (and seeds the canonical phase:<key> entry on first advance). * G4 TraceVault seal on /agent - in-chat /agent <id> writes a decision seal chained into .specsmith/trace.jsonl so every per-turn profile pin is auditable. Best-effort: read-only fs etc. never breaks the chat loop. * C1 token threading - each provider driver now returns (text, _UsageDelta) and surfaces real token counts: Ollama prompt_eval_count + eval_count, Anthropic final_message.usage, OpenAI stream_options.include_usage, Gemini usage_metadata. A 4-chars/token heuristic fills in when the SDK omits usage. Counts flow through ChatRunResult.tokens_in/out/cost_usd into AgentState.credit() and the per-profile by_profile bucket. * H1 docs/site/agents.md - preset -> route -> per-session -> BYOE walkthrough. * H3 README elevator pitch - multi-agent + BYOE up top. * H4 docs/site/quickstart.md - reproduction script + GIF placeholder.
This was referenced May 4, 2026
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.
0.10.1 follow-up sweep — diversity / capabilities / phase routing / trace seal / token threading + docs
Closes the remaining G1-G4, C1, and H1-H4 todos from the 0.10 multi-agent sprint plan.
What landed
G1 — Diversity guard on
agents addProfileStore.diversity_warningswalks the profile population and warnswhen the reviewer (or architect) shares a provider family with the
coder. New
PROVIDER_FAMILIEStable groups OpenAI-family endpoints(
openai-compat,azure-openai) and Ollama-family backends(
llamacpp,vllm,lmstudio) so a self-hosted vLLM coder + Ollamareviewer is correctly flagged as same-family. The CLI prints yellow
warnings (non-fatal) and the
--jsonoutput now includesdiversity_warnings.G2 — Capability filter
ProfileStore.filter_by_capability(capability)plus a newspecsmith agents list --capability code-review --jsonflag. Theextension counterpart (
AgentsClient.filterAgentsByCapability) shipsin the matching specsmith-vscode PR.
G3 —
phase nextauto-routesAdvancing the AEE phase now pins a synthetic
phase:activeroute tothe new phase's preferred profile (and seeds the canonical
phase:<key>entry on first advance). The runner can flip the wholesession by listening for one activity instead of teaching the user
seven
agents route setcommands.G4 — TraceVault seal on
/agentIn-chat
/agent <id>writes adecisionseal chained into.specsmith/trace.jsonlso every per-turn profile pin is auditable.Best-effort: a read-only filesystem / missing project root must never
break the chat loop.
C1 — Token threading
Each provider driver now returns
(text, _UsageDelta)and surfacesreal token counts:
prompt_eval_count+eval_countfrom the finaldonemessagefinal_message.usage.input_tokens/output_tokensstream_options.include_usagemakes the final SSE chunk carry the usage blockusage_metadata.prompt_token_count/candidates_token_countWhen the SDK omits usage, a 4-chars/token heuristic fills in so the
TokenMeter chip is never zero. Counts flow through
ChatRunResult.tokens_in/out/cost_usdintoAgentState.credit()andthe per-profile
by_profilebucket.H1-H4 — Docs
docs/site/agents.md— preset → route → per-session → BYOE walkthroughdocs/site/quickstart.md— reproduction script + GIF placeholderdocs/site/vscode-extension.md— eight new commands documented (sister-PR scope)Verification
ruff check src/ tests/— All checks passed!ruff format --check src/ tests/— 148 files already formattedpytest -q— 448 passed, 1 skippedpython -m specsmith.cli api-surface | diff - tests/fixtures/api_surface.json— clean (no surface drift)Out of scope / follow-up
A5release tags — landed once this PR + the matching specsmith-vscode#? PR mergeVSCE_PAT