diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 35864b69..87cea2da 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "vulca", - "version": "0.23.0", + "version": "0.23.1", "description": "Vulca visual-control plugin for Claude Code: discovery, brainstorm, spec, plan, evaluate, and decompose workflows backed by Vulca MCP tools.", "homepage": "https://github.com/vulca-org/vulca-plugin", "license": "Apache-2.0", diff --git a/CHANGELOG.md b/CHANGELOG.md index c5bdb688..9aaf8978 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,24 @@ # Changelog +## v0.23.1 (2026-05-11) + +Patch release for the NB2/Gemini masked-edit adapter. + +### Fixes + +- Rendered RGBA edit masks as visible black/white coordinate masks before + sending them to Gemini/NB2 image-edit calls, while preserving the public + `inpaint_with_mask` API contract. +- Tightened the Gemini adapter prompt so the visible mask is treated as edit + guidance, not output content. + +### Verification + +- Focused redraw/provider suite: 143 passed, 5 warnings. +- `ruff check src/vulca/providers/gemini.py tests/test_gemini_image_size.py`: + passed. +- `git diff --check`: passed. + ## v0.23.0 (2026-05-01) First public PyPI release after v0.19.0. This release bundles the v0.20-v0.22 diff --git a/README.md b/README.md index 3f74672e..f54e14ab 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ Claude: 5 layers extracted — each person figure isolated, drapery and ground s ### Path A — plugin install (recommended) ```bash -pip install vulca[mcp]==0.23.0 +pip install vulca[mcp]==0.23.1 claude plugin install vulca-org/vulca-plugin ``` @@ -90,15 +90,15 @@ Then in Claude Code: `> /decompose /path/to/your_image.jpg` ### Path B — no plugin (power user) ```bash -pip install vulca[mcp]==0.23.0 +pip install vulca[mcp]==0.23.1 # Register MCP server — add to ~/.claude/settings.json: -# {"mcpServers": {"vulca": {"command": "uvx", "args": ["--from", "vulca[mcp]==0.23.0", "vulca-mcp"]}}} +# {"mcpServers": {"vulca": {"command": "uvx", "args": ["--from", "vulca[mcp]==0.23.1", "vulca-mcp"]}}} # Install the /decompose skill: mkdir -p ~/.claude/skills/decompose curl -o ~/.claude/skills/decompose/SKILL.md \ - "https://raw.githubusercontent.com/vulca-org/vulca/v0.23.0/.claude/skills/decompose/SKILL.md?utm_source=github-readme&utm_medium=oss&utm_campaign=refresh-2026-05-01" + "https://raw.githubusercontent.com/vulca-org/vulca/v0.23.1/.claude/skills/decompose/SKILL.md?utm_source=github-readme&utm_medium=oss&utm_campaign=refresh-2026-05-11" ```
@@ -287,7 +287,7 @@ Custom traditions via YAML — `vulca evaluate painting.jpg --tradition ./my_sty ## Apple Silicon / MPS quickstart ```bash -pip install vulca[mcp,tools]==0.23.0 +pip install vulca[mcp,tools]==0.23.1 # Local stack: ComfyUI + Ollama, full MPS support ``` diff --git a/plugins/vulca/.codex-plugin/plugin.json b/plugins/vulca/.codex-plugin/plugin.json index 36fe9bc7..16b2959f 100644 --- a/plugins/vulca/.codex-plugin/plugin.json +++ b/plugins/vulca/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "vulca", - "version": "0.23.0", + "version": "0.23.1", "description": "Agent-native visual control for discovery, prompt structure, image generation routing, semantic layers, redraw, and cultural evaluation.", "author": { "name": "Vulca maintainers", diff --git a/pyproject.toml b/pyproject.toml index 22c27bbc..23349550 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "vulca" -version = "0.23.0" +version = "0.23.1" description = "Agent-native cultural art SDK for image generation, L1-L5 evaluation, layer editing, visual discovery, and cultural traditions. Agents drive creative decisions; Vulca provides hands + eyes." readme = "README.md" license = "Apache-2.0" diff --git a/src/vulca/_version.py b/src/vulca/_version.py index 8b301a77..43e16f5d 100644 --- a/src/vulca/_version.py +++ b/src/vulca/_version.py @@ -1 +1 @@ -__version__ = "0.23.0" +__version__ = "0.23.1" diff --git a/tests/test_visual_discovery_docs_truth.py b/tests/test_visual_discovery_docs_truth.py index 496f38db..85ad5d31 100644 --- a/tests/test_visual_discovery_docs_truth.py +++ b/tests/test_visual_discovery_docs_truth.py @@ -202,7 +202,7 @@ def test_codex_plugin_package_has_installable_metadata(): root_mcp_config = json.loads((ROOT / ".mcp.json").read_text(encoding="utf-8")) assert manifest["name"] == "vulca" - assert manifest["version"] == "0.23.0" + assert manifest["version"] == "0.23.1" assert manifest["skills"] == "./skills/" assert manifest["mcpServers"] == "./.mcp.json" assert "[TODO:" not in json.dumps(manifest)