Changelog¶
All notable changes to Claudeway. Format based on Keep a Changelog; versions adhere to Semantic Versioning. Dates are ISO 8601 (UTC).
Unreleased¶
No changes yet.
0.3.2 — 2026-07-26¶
Maintenance release — CI/docs only, no package behavior change.
Changed¶
- Publish workflow uses OIDC trusted publishing (no API tokens). PyPI
trusted-publisher configuration corrected; the GitHub Actions workflow
now mints a short-lived OIDC token at publish time. Removes the need
for any long-lived
PYPI_API_TOKENsecret on the repo. - README ships with a canonical Open Graph image and banner. Social previews (Twitter/X, LinkedIn, Slack, Discord) now render the Claudeway card instead of a blank tile.
0.3.1 — 2026-07-26¶
Hotfix release. Unblocks pip install claudeway[benchmark] on Windows.
Fixed¶
[benchmark]extra no longer pullslitellm. Thelitellm>=1.18dep transitively requires a Rust build toolchain that fails on Windows. The killer demo (examples/killer_demo.py) now imports litellm lazily with a try/except — token-cost tracking is degraded on Windows when litellm is absent (it was already unreliable on Windows + litellm 1.18+ per the inline comment), but the demo itself runs. Full token tracking on Linux/macOS is restored bypip install litellmseparately. The Docker compose appliance (which is Linux) installs litellm in its Dockerfile.
0.3.0 — 2026-07-25¶
The "everyone has agents, nobody has agreement" release. Claudeway ships as the coordination layer that LangGraph, CrewAI, Microsoft Agent Framework, and Buzzrooms all lack, with post-quantum-ready signatures and a reproducible benchmark showing Claudeway beats both single Claude and CrewAI on hard questions.
Added¶
- LangGraph adapter (
claudeway.adapters.langgraph): drop Claudeway consensus into aStateGraphas a single node. Two entry points —make_consensus_node(swarm)andbuild_consensus_graph(swarm). Lazy import; install withpip install claudeway[langgraph]. - Microsoft Agent Framework adapter (
claudeway.adapters.maf): Claudeway as a MAF workflow + agent. MAF is Microsoft's unified successor to AutoGen + Semantic Kernel. Install withpip install claudeway[maf]. - CrewAI adapter (
claudeway.adapters.crewai): Claudeway consensus as a@tooland as a Flow. Inverts the killer demo — a CrewAI crew can call Claudeway for agreement. Install withpip install claudeway[crewai]. - Post-quantum signature backend (
claudeway.signing_pq.MLDSABackend): ML-DSA-65 / FIPS 204 signatures. Same receipt, same canonical payload hash — swap in at theSignatureBackendABC. Pure-Python (dilithium-py), installs everywhere with no native build tools. Install withpip install claudeway[pq]. - Consensus transparency log (
claudeway.transparency): RFC 6962-style append-only log of consensus results, anchored to Nostr on a cadence. Tamper-evident beyond the per-receipt signature. - Streaming consensus events:
OnEventcallback hook surfacesAgentCompletedandConsensusResolvedevents as they happen. Observable from any adapter (MAF, LangGraph, custom host). - Adversarial security test suite (
tests/test_adversarial.py): 20 tests across 7 attack classes — signature forgery, receipt tampering, transport malleability, key reuse, replay, downgrade, and timestamp manipulation. Documented indocs/THREAT-MODEL.md. - Threat model (
docs/THREAT-MODEL.md): explicit attacker assumptions, what the signatures defend against, what they don't. - Docs site (jordannewell.github.io/claudeway): mkdocs-material +
mkdocstrings API reference. Auto-builds on push to
mainvia thedocs.ymlworkflow. - Community policies:
SECURITY.md(private vuln disclosure + SLA),CONTRIBUTING.md(branch model, commit rules, test commands),CODE_OF_CONDUCT.md(Contributor Covenant 2.1), issue templates. - Killer benchmark (
examples/killer_demo.py): same hard question → single Claude vs CrewAI vs Claudeway, blind LLM-judge scoring. Claudeway scores 18/20 (range 17–19) vs CrewAI 13/20 vs single Claude 11/20. Mann-Whitney U for non-parametric significance.
Fixed¶
- Stable signing key in adapters: the LangGraph/CrewAI/MAF adapters now reuse a stable Ed25519 key across runs instead of regenerating per call, so signatures verify across runs and receipts are diffable.
- Tolerant structured-output parser:
<answer>now carries the full response, parser falls back to "everything after<answer>" when small models truncate before</answer>. LatentConsensusResult.to_dict()crash on dict-form responses fixed. - Substantive
<answer>contract: prompt explicitly requires the full multi-paragraph analysis inside<answer>, not a one-word verdict. Agent.thinkno longer passestools=Noneas a kwarg (Anthropic SDK rejects it; previously suppressed when no tools were registered).asyncio.run_coroutine_threadsafeself-deadlock in adapter async→sync bridges: replaced with a fresh daemon worker thread + own loop. Works whether the caller is sync, async, or already in a thread.- Dropped dead
secp256k1fallback intransports._nostr_sign. The path called alib.schnorr_signAPI that never existed in coincurve; coincurve ships prebuilt wheels on all targets, so the CFFI fallback was dead complexity. [nostr]extra mismatch inpyproject.toml: waspynostr, code importscoincurve. Fixed.
Changed¶
- README rewritten around the killer demo and LangGraph adapter.
0.2.0 — 2026-07-25¶
Added¶
- Verifiable multi-agent consensus for Claude — initial public release.
- Real consensus —
WeightedVote(cheap, default) andDebate(revision round when agents disagree, cost-guarded early-exit). - Real decomposition —
Coordinatorparses a JSON plan and runs specialists in dependency-respecting parallel order. - Concurrent execution — N-agent swarms issue all Claude calls in
parallel via
asyncio.gather. - Ed25519 signed receipts —
ConsensusReceipt,Ed25519Backend, swappableSignatureBackendABC (post-quantum-ready). - Three transports — JSON receipt, W3C Verifiable Credential, Nostr
NIP-78 event (
kind: 30078). - MCP server (
claudeway-mcp): exposesreach_consensusandverify_consensusas MCP tools for any MCP-capable agent. - Buzz adapter (Nostr transport):
to_nostr_eventproduces spec-correct events. Verified undernak(reference Nostr CLI); end-to-end tested againstnak serve. Demo atexamples/buzz_consensus_demo.py. - Lean extras model — base install is 4 dependencies.
[mcp],[nostr],[runner],[persist],[dev]are opt-in. - CI — matrix (Ubuntu + Windows) × Python 3.11/3.12/3.13, ruff, pytest, wheel build + contents verification.
- LICENSE (MIT, Jordan Newell 2026), README + QUICKSTART rewritten around the coordination wedge.
0.1.0 — 2026-07-24¶
Added¶
- Initial pre-release platform implementation (Next.js dashboard, FastAPI
runner scaffolding, port management). Superseded by the 0.2.0 rewrite
around the SDK + consensus wedge. The dashboard and multi-tenant runner
are deferred — see
docs/DEPRECATION.md.