diff --git a/CHANGELOG.md b/CHANGELOG.md index 305c98f..c20e230 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## Unreleased +## 0.4.0, 2026-10-03 - New `plexus pick "REQUEST"` picks a tool for a plain-language request from what each manifest emits and consumes, with a probability for every tool, and abstains when no tool matches or the top probability is under `--threshold`. On a 51-request held-out set it picked the right tool 57% of the time, abstained on 10%, and abstained requests carried 2.7 times the error of picked ones. Details and the bar set before the run: `docs/PICK.md`. - The Claude plugin folder now carries the server code at `client-plugin/server/src/plexus/`, so an install of the folder alone starts. `python scripts/build_client_package.py --sync-vendored` rewrites that copy from `src/`, and a test fails when it drifts. The launcher no longer looks outside the plugin folder; a missing copy prints a one-line message and exits with status 1. A test keeps every code and text file under 256 KiB, images under 2 MB, and the folder at 512 files or fewer. diff --git a/README.md b/README.md index bd3f772..43e0f86 100644 --- a/README.md +++ b/README.md @@ -9,12 +9,12 @@ to consumer into a runnable pipeline. Zero runtime dependencies. MCP tells an agent *that tools exist*. plexus tells it *how their outputs plug into each other's inputs*: the layer above a flat tool list. -GitHub-only release install for 0.2.1 on Bash/macOS/Linux: +GitHub-only release install for 0.4.0 on Bash/macOS/Linux: ```bash set -euo pipefail -VERSION=0.2.1 -BASE="https://github.com/HarperZ9/plexus/releases/download/v0.2.1" +VERSION=0.4.0 +BASE="https://github.com/HarperZ9/plexus/releases/download/v0.4.0" WHEEL="plexus_mesh-${VERSION}-py3-none-any.whl" SDIST="plexus_mesh-${VERSION}.tar.gz" SUMS="SHA256SUMS.txt" @@ -58,13 +58,13 @@ PY python -m pip install "$WHEEL" ``` -GitHub-only release install for 0.2.1 on native PowerShell: +GitHub-only release install for 0.4.0 on native PowerShell: ```powershell & { $ErrorActionPreference = "Stop" - $Version = "0.2.1" - $Base = "https://github.com/HarperZ9/plexus/releases/download/v0.2.1" + $Version = "0.4.0" + $Base = "https://github.com/HarperZ9/plexus/releases/download/v0.4.0" $Wheel = "plexus_mesh-$Version-py3-none-any.whl" $Sdist = "plexus_mesh-$Version.tar.gz" $Sums = "SHA256SUMS.txt" @@ -100,8 +100,8 @@ GitHub-only release install for 0.2.1 on native PowerShell: } ``` -`plexus-mesh` 0.2.2 is published on PyPI; install it with `python -m pip install plexus-mesh`. The GitHub wheel recipes above retain the available 0.2.1 GitHub Release assets. A source branch or -CI run is not a release; install from the GitHub `v0.2.1` assets only after the +`plexus-mesh` 0.4.0 is published on PyPI; install it with `python -m pip install plexus-mesh`. The GitHub wheel recipes above download the 0.4.0 GitHub Release assets and check them against `SHA256SUMS.txt`. A source branch or +CI run is not a release; install from the GitHub `v0.4.0` assets only after the wheel, sdist, and `SHA256SUMS.txt` are attached to that release. ``` @@ -318,12 +318,11 @@ mesh to exactly the manifests that produced it. ## Install ``` -python -m pip install plexus_mesh-0.2.1-py3-none-any.whl +python -m pip install plexus_mesh-0.4.0-py3-none-any.whl ``` -Use the GitHub release asset and verify it against `SHA256SUMS.txt` first. This -repository does not claim a PyPI publication for `plexus-mesh` in the 0.2.1 -track. The installed package covers declared and synthetic mesh workflows; it +Use the GitHub release asset and verify it against `SHA256SUMS.txt` first, or +install `plexus-mesh` from PyPI, which carries every release from 0.2.2 on. The installed package covers declared and synthetic mesh workflows; it does not prove that real external lanes are live or that `probe_lane()` has been run against owned services. @@ -360,6 +359,6 @@ The long form of this belief: [The Unbundling](https://github.com/HarperZ9/flywh Built by **[Zain Dana Harper](https://harperz9.github.io)** in Seattle: evidence-first tools that leave a re-checkable artifact behind. The full workbench is at [Project Telos](https://harperz9.github.io). -## 0.3.0 local client distribution candidate +## Local client packages -The additional [client package](client-plugin/README.md) includes portable plugin metadata and a Windows x64 MCPB/ZIP build. The source version is 0.3.0; these client packages remain unpublished candidates. Existing release installation commands above retain their released version. Native packages carry their Python runtime. No publisher backend is required. +The additional [client package](client-plugin/README.md) includes portable plugin metadata and a Windows x64 MCPB/ZIP build. Version 0.3.0 first attached these packages to its GitHub release, and a published GitHub release for each later version carries packages built from that tag. Native packages carry their Python runtime. No publisher backend is required. diff --git a/client-plugin/.claude-plugin/plugin.json b/client-plugin/.claude-plugin/plugin.json index 33f69e2..e7a12eb 100644 --- a/client-plugin/.claude-plugin/plugin.json +++ b/client-plugin/.claude-plugin/plugin.json @@ -22,5 +22,5 @@ "repository": "https://github.com/HarperZ9/plexus", "supportUrl": "https://harperz9.github.io/plugins/plexus/support.html", "termsOfServiceUrl": "https://harperz9.github.io/plugins/plexus/terms.html", - "version": "0.3.0" + "version": "0.4.0" } diff --git a/client-plugin/.codex-plugin/plugin.json b/client-plugin/.codex-plugin/plugin.json index 5ee4327..a2ed6d4 100644 --- a/client-plugin/.codex-plugin/plugin.json +++ b/client-plugin/.codex-plugin/plugin.json @@ -7,5 +7,5 @@ "mcpServers": "./mcp.json", "name": "plexus-local", "skills": "./skills/", - "version": "0.3.0" + "version": "0.4.0" } diff --git a/client-plugin/plugin.json b/client-plugin/plugin.json index 2e7b2f0..c015d3f 100644 --- a/client-plugin/plugin.json +++ b/client-plugin/plugin.json @@ -5,5 +5,5 @@ "description": "Show which local tools produce and consume each capability, and the route between them.", "license": "FSL-1.1-MIT", "name": "plexus-local", - "version": "0.3.0" + "version": "0.4.0" } diff --git a/client-plugin/server/src/plexus/__init__.py b/client-plugin/server/src/plexus/__init__.py index 42d1b6a..e853580 100644 --- a/client-plugin/server/src/plexus/__init__.py +++ b/client-plugin/server/src/plexus/__init__.py @@ -14,7 +14,7 @@ from .registry import builtin_manifests, load_dir from .run import pipeline_script -__version__ = "0.3.0" +__version__ = "0.4.0" __all__ = [ "Manifest", "Port", "validate", diff --git a/pyproject.toml b/pyproject.toml index 39a12fd..e8507c9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "plexus-mesh" -version = "0.3.0" +version = "0.4.0" description = "Declarative capability discovery + auto-wiring for agent toolchains: point it at tool manifests and it wires producer to consumer into an executable pipeline, every discovery edge tagged declared and citing the module its producer names. Discovery does not import or run cited tools; optional explicit probe helpers can launch owned MCP servers. Zero runtime dependencies." readme = "README.md" requires-python = ">=3.11" diff --git a/src/plexus/__init__.py b/src/plexus/__init__.py index 42d1b6a..e853580 100644 --- a/src/plexus/__init__.py +++ b/src/plexus/__init__.py @@ -14,7 +14,7 @@ from .registry import builtin_manifests, load_dir from .run import pipeline_script -__version__ = "0.3.0" +__version__ = "0.4.0" __all__ = [ "Manifest", "Port", "validate", diff --git a/tests/test_release_install_recipes.py b/tests/test_release_install_recipes.py index 1878962..eac4e4f 100644 --- a/tests/test_release_install_recipes.py +++ b/tests/test_release_install_recipes.py @@ -12,7 +12,7 @@ ROOT = Path(__file__).resolve().parents[1] -VERSION = "0.2.1" +VERSION = "0.4.0" WHEEL = f"plexus_mesh-{VERSION}-py3-none-any.whl" SDIST = f"plexus_mesh-{VERSION}.tar.gz" SUMS = "SHA256SUMS.txt" diff --git a/tests/test_release_metadata.py b/tests/test_release_metadata.py index 4d98a1f..df860c8 100644 --- a/tests/test_release_metadata.py +++ b/tests/test_release_metadata.py @@ -4,7 +4,7 @@ ROOT = Path(__file__).resolve().parents[1] -VERSION = "0.3.0" +VERSION = "0.4.0" def test_release_identity_is_aligned(): @@ -22,12 +22,12 @@ def test_install_docs_are_github_only_and_hash_verified(): assert "Bash/macOS/Linux" in readme assert "native PowerShell" in readme - assert "https://github.com/HarperZ9/plexus/releases/download/v0.2.1" in readme - assert "plexus_mesh-0.2.1-py3-none-any.whl" in readme + assert "https://github.com/HarperZ9/plexus/releases/download/v0.4.0" in readme + assert "plexus_mesh-0.4.0-py3-none-any.whl" in readme assert "SHA256SUMS.txt" in readme assert "Get-FileHash -Algorithm SHA256" in readme assert "Invoke-WebRequest" in readme - assert "`plexus-mesh` 0.2.2 is published on PyPI" in readme + assert "`plexus-mesh` 0.4.0 is published on PyPI" in readme assert "pip install git+https://github.com/HarperZ9/plexus.git" not in readme