Skip to content

ToolsEnabled Data 0.8.9

Latest

Choose a tag to compare

ToolsEnabled Data 0.8.9

A patch that changes how TE Data's files are laid out, so that the Claude Code plugin directory can validate it. TE Data is made for Claude Code. What the server, panel and watcher do is unchanged.

What was wrong

  • The plugin directory's validator timed out on every attempt to validate 0.8.8. 0.8.8 stored every file under 256 KiB so that the validator could read all of them, which gave it about 7 MB of text to read, most of it bundled third-party library code. It validates 0.8.7, whose library code is in files it does not read.

What changed

  • The bundled third-party libraries are in four files over 1 MiB again, which the validator does not read, and TE Data's own code stays in files of at most 256 KiB, which it reads in full:
    • The server bundle is stored as 5 ES modules in server/ instead of 15: TE Data's code in tedata-server-01-tedata.mjs, tedata-server-03-tedata.mjs and tedata-server.mjs, and the libraries in tedata-server-02-vendor-mcp.mjs (ajv, zod, the MCP SDK and MCP Apps) and tedata-server-04-vendor-vega.mjs (Vega, Vega-Lite and d3). Three import statements of TE Data's server (node:fs/promises, node:path, node:url) that esbuild placed between ajv and zod stay in the first library file; tedata-server.mjs quotes them. The parts still run in the bundle's order.
    • The panel is stored as 5 files in panel/ instead of 13: TE Data's page and code in panel-01-tedata.html, panel-03-tedata.html and panel-05-tedata.html, and the libraries in panel-02-vendor-mcp.html (after the licence notice the panel shows) and panel-04-vendor-vega.html. The server joins them into the same page as 0.8.8's.
    • The licence inventory is one file again, THIRD-PARTY-LICENSES.txt, as in 0.8.7, with 0.8.8's text. The validator reads it up to 256 KiB.
  • The directory's validator reports files it does not read as files it could not inspect. The README's "What it runs, writes and sends" answers that hold for the four library files, and its "Verifying a release" names each library file's packages and versions and says how to check them.
  • Everything else in 0.8.8 is kept: deduplicate keeps source order, chart-block CSV times are UTC ISO text, the licence inventory names TE Data, and the renamed variables.

Who should update

Nobody needs to: TE Data behaves exactly as 0.8.8 did. Update to keep the release current.

How to install

claude plugin marketplace add ToolsEnabled/toolsenabled-data-claude-plugin
claude plugin install toolsenabled-data@toolsenabled-data

Open Claude Code in your project folder, run /toolsenabled-data:setup once per computer, connect your data, then run /tedata. To try it first, follow the README's Try it section.

How to update

claude plugin marketplace update toolsenabled-data
claude plugin update toolsenabled-data@toolsenabled-data

Restart Claude Code. If you installed from a local copy, update that copy instead.

Download and verify

Download toolsenabled-data-0.8.9.tar.gz and toolsenabled-data-0.8.9.tar.gz.sha256 from this release. Archive SHA-256:

439488e29762220ebcdf461633f3c144c92ae7f265fba1a9941b9a67d5bbef46
sha256sum -c toolsenabled-data-0.8.9.tar.gz.sha256
tar -xzf toolsenabled-data-0.8.9.tar.gz
cd toolsenabled-data
node tools/verify-release.mjs
node --test test/*.test.mjs

The two tests in test/duckdb.test.mjs run when TEDATA_PYTHON names a Python that has DuckDB 1.5.6, and are skipped otherwise.

Release commit: 7c6c53d985f718147c264dbddbd2977af0539095. Tag: toolsenabled-data--v0.8.9.

How it was tested

  • The public payload suite passes 50 of 50 tests with DuckDB 1.5.6, with 0 failures and 0 skips, on the source and again on the extracted archive. Without DuckDB the two DuckDB tests are skipped and the other 48 pass. The layout tests were changed for the new files: the server, panel, licence and file-size tests each failed on 0.8.8's layout and pass on 0.8.9's, and the README and credential-name tests follow the new file names.
  • The 5 server parts, without the import and export lines each adds, join to the single server bundle byte for byte, and undoing the listed edits gives 0.8.7's server/tedata-server.mjs exactly. TE Data's files hold no node_modules module, and the library files no TE Data module except the three import statements. The 5 panel files join to 0.8.8's panel byte for byte, which is 0.8.7's with one local variable renamed. THIRD-PARTY-LICENSES.txt is 0.8.8's four licence files joined, byte for byte (size, SHA-256 and its 68 carriage returns).
  • With DuckDB 1.5.6, the server gave answers identical to 0.8.8's apart from the version: initialize, tools/list (with and without the panel extension), resources/list, the panel page, and the README's Try it calls (connect, check, remove duplicates and save a copy, prepare a layout with chart, plot, grouped and table blocks, and export, down to every exported file). It starts as fast (a median of 248 and 261 ms for 0.8.8 and of 249 and 253 ms for 0.8.9, from start to the tool list, in two rounds of 7 runs each).
  • All 37 listed files verify on the source and on the extracted archive. A changed byte in a library file or in the licence inventory, the inventory's CRLF line ends turned into LF, an extra server part, a licenses folder, or a second image in the plugin manifest folder is refused.
  • claude plugin validate --strict passes on the directory, plugin.json, marketplace.json, skills and commands, on the source and on the extracted archive. In a scratch Claude Code configuration, claude plugin marketplace add of the extracted archive and claude plugin install toolsenabled-data@toolsenabled-data installed 0.8.9, and claude mcp list showed its server connected.
  • Two archive builds are byte-identical.

The internal 0.8.3 source suites are not distributed here and were not rerun. No browser, Windows or macOS suite was run, and no host that shows MCP App panels was used. Codex is not supported and was not run.

Support: support@toolsenabled.ai. Private vulnerability reporting: https://toolsenabled.ai/security/.