Repository navigation
ToolsEnabled Data 0.8.8
ToolsEnabled Data 0.8.8
A patch that makes every file of TE Data readable in full by the Claude Code plugin directory, and fixes the 2026-10-14 fresh-user re-test of 0.8.7. TE Data is made for Claude Code. What the server, panel and watcher do is unchanged, apart from the two fixes below.
What was wrong
- The plugin directory's validator could not read three files in full and held them for review: the server bundle (3.2 MB) and the panel (3.0 MB) are over its 1 MiB read limit, and THIRD-PARTY-LICENSES.txt (458 KB) is over its 256 KiB limit.
- It also held the plugin for "Uses a credential from the user's machine", naming the watcher, whose loop variable for a run's ids was called
key, andtools/build-release.mjs, which built its archive name at run time. Neither reads a credential or sends anything. - "Make a copy of sample.csv without duplicate rows" reordered the rows: the copy started at 2026-01-02, and 2026-01-01 Oslo came 15th.
- An exported chart block's data CSV wrote its time column as Unix seconds.
- THIRD-PARTY-LICENSES.txt called the product "Bench".
- The README listed the server changes made in the public payload only through 0.8.5.
What changed
- No file of the plugin is larger than 256 KiB:
- The server bundle is stored as 15 ES modules in
server/, cut between top-level statements with no bundle text changed.tedata-server.mjs, the file Claude Code starts, holds TE Data's MCP tools and loadstedata-server-01-ajv.mjstotedata-server-14-vega-lite.mjs. Each part first imports the part before it, so the parts run in the bundle's order, and then the names it uses from other parts. - The panel is stored as
panel/panel-01.htmltopanel-13.html, which the server joins into one page when a host asks for the panel. - The licence texts are in
licenses/javascript-1.txt,licenses/javascript-2.txtandlicenses/duckdb.txt, whichTHIRD-PARTY-LICENSES.txtlists.
- The server bundle is stored as 15 ES modules in
- Deduplicate keeps the rows it keeps in their source order, for
keep: "unique"and for"first"and"last". - A chart block's data CSV writes its time column as UTC ISO text, such as
2026-01-01T00:00:00.000Z, the time the chart's tooltip shows. - The licence inventory names ToolsEnabled Data (TE Data).
- The watcher's loop variable is called
field, andtools/build-release.mjsrunsgit archivewith fixed arguments and builds no string at run time. Two local variables in TE Data's own server and panel code are renamed plainly. The watcher's output, the archives and the refusal messages are unchanged. - README: "What it runs, writes and sends" names every program TE Data starts, says that setup and the query worker run with Claude Code's environment so your own package index, proxy and certificate settings apply, that the panel connects nowhere, what the release tools do, and who publishes TE Data. ToolsEnabled is not affiliated with or endorsed by Anthropic.
Who should update
Anyone who removes duplicate rows or exports chart blocks gets source order and readable times. Everyone else gets the same behaviour from files that can be read in full; update to keep the release current.
How to install
claude plugin marketplace add ToolsEnabled/toolsenabled-data-claude-plugin
claude plugin install toolsenabled-data@toolsenabled-dataOpen 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-dataRestart Claude Code. If you installed from a local copy, update that copy instead.
Download and verify
Download toolsenabled-data-0.8.8.tar.gz and toolsenabled-data-0.8.8.tar.gz.sha256 from this release. Archive SHA-256:
ac34b68d3ce0dc297d6cc356efe7cdb16cadb9dbf6728b62072a90f6f474f1c2
sha256sum -c toolsenabled-data-0.8.8.tar.gz.sha256
tar -xzf toolsenabled-data-0.8.8.tar.gz
cd toolsenabled-data
node tools/verify-release.mjs
node --test test/*.test.mjsThe 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: 15cb61398ad83a90bf7b6c7f37b494e7a3444277. Tag: toolsenabled-data--v0.8.8.
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. These are the 39 tests of 0.8.7 and 11 new ones, each of which failed before its change.
- The 15 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.mjsexactly. The 13 panel parts join to 0.8.7's panel with one local variable renamed.THIRD-PARTY-LICENSES.txt's opening lines and the three licence files join to 0.8.7's inventory with TE Data named in four lines and no other byte changed (checked by size, SHA-256 and the 68 carriage returns of the two licence texts with CRLF line ends). The split tool re-parsed every part and checked that no bundle name is left unresolved and no imported name is assigned. - Before and after the split, with DuckDB 1.5.6, the server gave identical answers to initialize, tools/list (with and without the panel extension), resources/list and the panel resource, and to 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 278 ms before and 273 ms after, from start to the tool list).
- Compared with 0.8.7, the only differences in those answers are the version, the deduplicate descriptions, the order of the rows a deduplicate step keeps, the chart CSV's time column and the panel's renamed variable.
- All 58 listed files verify on the source and on the extracted archive. A changed byte in a server or panel part, an extra server part, or a second image in the plugin manifest folder is refused.
claude plugin validate --strictpasses on the directory,plugin.json,marketplace.json,skillsandcommands, on the source and on the extracted archive. In a scratch Claude Code configuration,claude plugin marketplace addof the extracted archive andclaude plugin install toolsenabled-data@toolsenabled-datainstalled 0.8.8, andclaude mcp listshowed its server connected.- Two archive builds are byte-identical, and the new
tools/build-release.mjswrites the same archive as 0.8.7's did.
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/.