Skip to content

Releases: IgniteUI/igniteui-mcp-testbed

Release list

0.2.0

Choose a tag to compare

@kdinev kdinev released this 04 Aug 13:32
848aa85

0.2.0 - 2026-08-04

Added

  • Tool & skill usage capture (src/capture/tool-usage.ts) — every run now records
    which MCP tools the agent called and which skills it loaded, not just what it was
    given. A green run that never reached for the configured MCP server is a different
    result from one that called it a dozen times, and that distinction is the metric the
    testbed exists to produce.
    • Per-tool aggregates (calls / errors / total duration), split into mcp / skill /
      builtin, plus an ordered timeline of the first 500 invocations.
    • Never-used lists: MCP servers that were configured but never called, and installed
      skills (.agents/skills/ + .claude/skills/) that were never invoked.
    • Read from opencode's SQLite store (<data dir>/opencode/opencode.db) read-only, so
      a live interactive session's store is never write-locked. Falls back to parsing the
      permission lines in <data dir>/opencode/log/*.log (marked source: "log", no timings
      or error status) when the db can't be read, and records null rather than a misleading
      all-zero result when neither is readable.
    • Headless/matrix entries collect once right after the agent exits; interactive sessions
      (which have no observable end) refresh on the stats collector's 30-second tick.
    • Surfaced in the History grid (MCP·Skill column — amber when some configured tooling
      went unused, red when none of it was touched), the History detail panel, report.html
      and summary.json (tools.mcp, tools.skills, tools.serversUnused,
      tools.skillsUnused — assertable from CI), both history exports, and a one-line run-log
      summary.
  • Prompt images — attach reference mockups, sketches, Figma exports or screenshots to
    the agent's prompt, so "build this screen from the picture" becomes testable.
    • New read-write bind mount ./prompt-images//prompt-images (PROMPT_IMAGES_DIR),
      created by run.sh / run.ps1. Read-write on purpose: browser uploads land in the same
      host folder a terminal-driven matrix config reads from — one folder, one namespace.
    • A Prompt images picker in both the Interactive and Matrix setup forms: thumbnails of
      what's in the folder, click to attach, upload straight from the browser, delete, rescan.
    • New pipeline stage attach-images (4c) copies the selection into the generated
      project's prompt-images/ (deliberately not dot-prefixed, so opencode's file browser and
      @-mentions can see it). Headless runs pass them to the agent as real attachments
      (opencode run "<prompt>" --file <img> …); interactive runs stage the copies and log the
      @prompt-images/<file> mentions.
    • REST surface: GET /api/prompt-images (list), GET /api/prompt-images/file?name=
      (serve one), POST /api/prompt-images?name= (raw bytes — no multipart dependency),
      DELETE /api/prompt-images?name=.
    • Matrix config gains an images field (alias promptImages) applied to every entry; an
      entry may name a single file or a whole folder, expanded to the images inside.
    • The attached set is recorded per run in History (with thumbnails in the detail panel) and
      in a matrix's report.html / summary.json.
    • Tunables: PROMPT_IMAGE_MAX_BYTES (per-file upload cap, default 10 MB) and
      PROMPT_IMAGE_MAX_COUNT (images per run, default 8; 0 disables the feature and the UI
      picker with it).
    • Vision is a paid-model feature: opencode's free/keyless hosted models silently drop
      attachments, so an image run on one degrades to a text-only prompt that still reports
      success. The pipeline warns when images are attached with no API key, and both setup
      forms and the README say so.
    • New reference doc prompt-images/README.md.
  • Token breakdown — the input / output / reasoning / cache split now travels alongside
    the total, in the matrix report.html, summary.json (per-entry objects and the matrix
    totals, as tokensBreakdown), the History detail panel's per-model usage, and both
    history exports.

Changed

  • Form controls across both setup views switched to the outlined Ignite UI variant
    (inputs, textareas, combos), the matrix prompt field moved from a hand-styled <textarea>
    to igc-textarea, and placeholder text got a legible color.
  • run.sh / run.ps1 create and mount ./prompt-images, and their --help output now
    lists all bind-mounted host folders.
  • The stats SSE stream replays the last tool-usage frame on connect, so a reconnecting client
    isn't blank until the next 30-second tick.
  • History grid column widths reduced to eliminate the horizontal scrollbar.
  • vendor/entry.js explicitly registers IgcFileInputComponent: as of
    igniteui-webcomponents 7.2.4 it is exported from the package index but missing from
    defineAllComponents(), so without this the upload control never upgrades.

Fixed

  • Turning skills off actually turns skills off. ig new runs its own ai-config pass
    internally, and with --agents / --assistants absent it fell back to the CLI's
    interactive checkbox defaults (generic + claude) rather than to nothing — so a
    "no skills" run got the full .agents/skills/ + .claude/skills/ + AGENTS.md set
    installed at scaffold time, which the later ig ai-config --agents none could not undo.
    Every such baseline was silently contaminated, invalidating any matrix comparison against
    it. The scaffold now passes --agents={{agents}} --assistants=generic, and the prune stage
    additionally sweeps .agents/skills/, AGENTS.md and .claude/ as a guarantee
    (stripGeneratedAgentConfig).
  • The prompt-image picker no longer shows stale entries after an upload or delete.
  • Restored a missing import in src/pipeline/pipeline.ts.
  • Removed a leftover AGENTS.md shipped by the locally installed skills.

Security

  • Bumped body-parser 1.20.5 → 1.20.6 (Dependabot).

Full Changelog: 0.1.0...0.2.0

0.1.0

Choose a tag to compare

@kdinev kdinev released this 27 Jul 13:53
6517ab4

What's Changed

  • feat(*): replace HTML table with igc-grid by @georgianastasov in #2
  • feat(custom-mcp): add support for custom MCP server configuration and… by @Marina-L-Stoyanova in #4
  • fix(screenshot): still make a screenshot of '/' if no routes ware found + carousel + export by @ivanvpetrov in #3
  • fix(carousel): screenshots carousel is now properly working by @ivanvpetrov in #7
  • chore(*): chmod run and stop by @kdinev in #6
  • fix(screenshots): app routes are now retreived from additional fallback sources to ensure proper screenshots by @ivanvpetrov in #8
  • feat(tests): allowing for injection of tests by @kdinev in #9
  • feat: pluggable provider packs for 3rd-party library support by @ivanvpetrov in #5
  • Prepearing the repo for going public by adding MIT License and remove… by @dkalinovInfra in #11
  • feat(matrix): adding matrix-config, so the matrix can be executed ent… by @kdinev in #10
  • feat(web view): moving the web view to lit by @kdinev in #12
  • feat(*): ensuring latest igniteui-cli and theming versions and changing carousel dialog by @kdinev in #13

New Contributors

Full Changelog: https://github.com/IgniteUI/igniteui-mcp-testbed/commits/0.1.0