Skip to content

Releases: VincentJiang06/dsh-mp-automator

v0.3.0 — image token economy

Choose a tag to compare

@VincentJiang06 VincentJiang06 released this 16 Aug 15:50

Image token economy (vision routes)

On image-capable routes every attached screenshot keeps billing on every later request. 0.3.0 makes that spend deliberate:

  • imageBudget (default 3): max screenshots attached per session — state is keyed by the session object, so budgets never leak between conversations sharing one plugin instance
  • sha256 dedupe: an unchanged screen is never re-attached (free, disclosed as economy — not failure)
  • exhaustion is honest: past budget you get the geometry table plus the billing rationale, never a silent skip
  • Proven live on kimi-k2.7-code: attach→dedupe→attach→attach→exhausted, exactly 3 image blocks in requests, vision verified from pixels (evidence)

Gate hardening

  • G1 cache window removed: the quick pre-act doctor costs 0.10–0.18s measured — every act now gets a fresh freshness verdict; the "touch a .ts inside the TTL" hole is gone
  • freshnessTtlSeconds removed (dead knob); leftover keys in existing configs are harmless
  • STEP_TIMEOUT mapped to its real remedy (a wedged DevTools render process times out only screenshots — restart DevTools, observed live)

Doctrine (from live evidence)

Native overlays (wx.showLoading, toasts) render in a layer DevTools screencaps do not capture — byte-identical PNGs proved the dedupe right. The skill now teaches: never assert a toast from a screenshot.

51/51 tests; tarball now ships test/ so npm test works in the installed package. Full audit trail in ATTACK-LEDGER.md (R5 + independent pre-tag fix-audit).

v0.2.0 — scroll-aware visibility & the index.js harness

Choose a tag to compare

@VincentJiang06 VincentJiang06 released this 16 Aug 14:16

Every change traces to a ledgered residual from the 0.1.0 audits.

Added

  • In-repo harness for lib/index.js — the fix-audit's top residual (that file carried every P1 and had zero tests). 46 tests total, run against the real host packages.
  • Scroll-aware visibility: flags computed against the current scroll window (step scrollTop), disclosed as scrollTop=; unreadable scroll positions are disclosed, never silent.

Fixed

  • mp_console walks every buffer page (no ≤2000 assumption); every early exit discloses an unread tail.
  • Explicit isConcurrencySafe on all tools; async screenshot IO; probe cache per binPath|cwd.

Verified — four-route live battery (route proven in-band by <imageStatus>):

route input result
deepseek-v4-pro text PASS
deepseek-v4-flash text PASS (10× mp_act under a noisy driver, all clean)
kimi-k2.7-code [text] PASS — honest degrade
kimi-k2.7-code [text, image] PASS — exactly 1 image block; read button text & colors from pixels

Full evidence: docs/evidence/live-matrix.md