Skip to content

v0.17.12 — bugfix rollup + parallel-review hardening

Choose a tag to compare

@yha9806 yha9806 released this 25 Apr 09:52

Bugfix rollup release from the 2026-04-24 γ Scottish showcase Part 1 session (dogfood of Vulca's brainstorm → spec → plan triad on a real Scottish street → Song-dynasty gongbi additive overlay), validated against parallel superpowers:code-reviewer + Codex review of PR #17.

Fixed

  • openai_provider: gate input_fidelity / quality / output_format by per-model capability (#12) — gpt-image-2 GA rejected input_fidelity unconditionally before this fix.
  • openai_provider: capture actual cost_usd from response.usage (#12); log at INFO when a model has no pricing entry instead of silently returning None.
  • openai_provider: normalize quality vocabulary across model families — DALL-E-3 receives `"standard"/"hd"` while gpt-image-* keeps `"high"/"auto"/"medium"/"low"` (post-review hardening).
  • prompting: `compose_prompt_from_design` now handles `tradition: null` (a valid resolved-design state) and reads frozen `C.tradition_tokens` from the artifact when present rather than re-deriving from the live registry (post-review hardening — the artifact is the source of truth for a resolved spec).
  • mcp_server: `compose_prompt_from_design` MCP wrapper raises an actionable error when given a relative path that does not resolve against the server CWD (post-review).
  • [sam] extra: pulls `segment-anything` + `timm>=1.0` so the orchestrated decompose pipeline imports cleanly; see `docs/INSTALL-RECIPE.md`. Critical: do NOT install `[sam,sam3]` together — `transformers==4.49` vs `>=4.50` hard pin conflict; pick one extra per environment until v0.18.

Added

  • MCP tool `compose_prompt_from_design` (#13) — expose Vulca's structured prompt-composition value standalone for non-MCP consumers. Also re-exported as `from vulca import compose_prompt_from_design` for SDK usage.
  • `evaluate_artwork` `mode="rubric_only"` (#14) — agent-native scoring without VLM backend dependency (consumer agents already have vision).
  • `evaluate_artwork` `vlm_model` runtime kwarg (#15) — bypass `VULCA_VLM_MODEL` env + MCP restart for runtime provider switching.

Provenance

  • 4 issue fixes implemented by Codex (task-modjrdmx-br2641, 9m 34s background dispatch).
  • Foundation commit `6e5c38bc` (segment-anything + timm dep gap) closed orchestrated-pipeline import gap surfaced in showcase Part 1 sanity-check.
  • 2 post-review fix commits added regression tests (`design_null_tradition.md` + `design_with_artifact_tokens.md`) so the P1 paths can not silently re-regress.

A/B evidence

The session captured the data point that motivates #13: same `gpt-image-2` API, same source photo, same target intent — Vulca-mediated structured prompt produces additive gongbi overlay (photo preservation honored); bare-curl with naive prompt produces unified-wash filter. That is the buyable differentiator.

Install

```bash
pip install vulca==0.17.12
```

For the full orchestrated decompose pipeline:

```bash
pip install "vulca[sam,mcp,layers]==0.17.12"
```

(See `docs/INSTALL-RECIPE.md` for SAM checkpoint + MCP-Python setup.)