Skip to content

v0.17.11 — honesty + quality-of-life patch

Choose a tag to compare

@yha9806 yha9806 released this 24 Apr 13:50

Summary

Dogfooding-driven honesty + quality-of-life release. 4 commits addressing real bugs + UX gaps surfaced by today's (2026-04-23) Scottish-Chinese fusion showcase + parallel codex + superpowers:code-reviewer product audit. User asked "我们的产品好不好?使用起来有bug吗?" — here's the answer.

What's in

1. Style-Treatment 7th question-bank dimension (commit `69dbd5d1`)

  • `/visual-brainstorm` now asks a mandatory 7th dimension: how the tradition is applied — `additive` (photo preserved, elements painted on top) / `unified` (whole-image transformation) / `collage` (visible cut-outs) / `wash` (global filter).
  • Closes the UX gap where gpt-image-1.5 smoke test produced a whole-image painterly overlay when user wanted additive treatment — the 6-dim question bank simply didn't ask about style application mode.
  • Propagated to `/visual-spec` C.prompt derivation + S4 invariant. `proposal.md` frontmatter now 8 fields (`style_treatment` added).

2. Provider error messages normalized (commit `437f4dc0`)

  • Gemini — classifies empty `response.candidates` into quota-exhaustion vs content-policy vs generic via `prompt_feedback.block_reason`. Points to aistudio.google.com for free-tier quota hits.
  • OpenAI — user-facing messages for 402 billing + 400 content-policy + 429 rate-limit on top of existing 403 Org-verify. Retryability preserved via (fragile) string-match — hardening in v0.17.12.
  • ComfyUI — execution-error extractor surfaces first meaningful message from `status.messages`; invalid-image hint explains likely checkpoint/VAE failure.

3. MCP surface cleanup (commit `5bf4b1ca`)

  • BREAKING: `create_artwork.ref_type` parameter removed — dead code that silently dropped user input. SDK-level `ref_type` unchanged in this release (scoped v0.18+).
  • `layers_split.plan` now documented in Args block; `layers_edit` visible/locked split into 2 lines.
  • Hardcoded `/Users/yhryzy/` paths in shipped docs replaced with `` placeholders.

4. README + BP honesty (commit `856ce54c`)

  • README: "Try it in 60 seconds" → "Quick start" with realistic time breakdown (~1 min if Claude Code + `uv` ready, ~5-10 min from scratch).
  • BP §5.4 moat claim softened: "24 个月以上难以复制" → "12 个月以上需专门投入" + explicit "3 cultural consultants for a quarter" reality check.
  • `.gitignore` adds `/gen_.png`, `/gen_.jpg`, `tmp-shipgate-/` (75 gen_.png removed from repo root).

Review consensus

Both reviewers say ship-with-caveats, no hard blockers.

  • Code: B+ → A-
  • Skill design: B → A-
  • UX: C+ → B
  • Docs: C → B

Known follow-ups (v0.17.12)

  • `/visual-plan` Phase 3 reads `C.style_treatment` (currently declared in design.md but inert in execution; `/visual-spec` governance puts the directive in `base_prompt` so effect exists, just undocumented)
  • `openai_provider._is_retryable` robustness (replace string-match with exception subclass chain)
  • SDK-level `create_artwork.ref_type` cleanup (mirror MCP surface removal)

Tests

1920 passed / 12 pre-existing baseline failures / zero regressions (same baseline as v0.17.10).

Install

```bash
pip install vulca[mcp]==0.17.11
```

Or via uvx in Claude Code MCP config:

```json
{"mcpServers": {"vulca": {"command": "uvx", "args": ["--from", "vulca[mcp]==0.17.11", "vulca-mcp"]}}}
```