diff --git a/CHANGELOG.md b/CHANGELOG.md index 595788d..c2c5d80 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project are documented here, following [Keep a Changelog](https://keepachangelog.com/) and semantic versioning. +## [0.1.12] - 2026-09-16 + +### Fixed + +- Classify common Python, Bun, Deno, and Pixi lockfiles as trimmable lockfiles. + ## [0.1.11] - 2026-09-16 ### Fixed diff --git a/package-lock.json b/package-lock.json index b469704..71e5608 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ctxtrim", - "version": "0.1.11", + "version": "0.1.12", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ctxtrim", - "version": "0.1.11", + "version": "0.1.12", "license": "MIT", "bin": { "ctxtrim": "bin/ctxtrim.js" diff --git a/package.json b/package.json index 8ce0d65..95b3207 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ctxtrim", - "version": "0.1.11", + "version": "0.1.12", "description": "Trim what bloats your AI coding context. Scan a repo, find the high-cost/low-value files ballooning your Claude Code / Cursor / Codex context, and write ignore files to cut token cost. Zero dependencies.", "type": "module", "bin": { diff --git a/src/classify.js b/src/classify.js index 73d531a..8a1bc2b 100644 --- a/src/classify.js +++ b/src/classify.js @@ -17,6 +17,7 @@ const LOCKFILES = new Set([ "package-lock.json", "yarn.lock", "pnpm-lock.yaml", "npm-shrinkwrap.json", "cargo.lock", "poetry.lock", "gemfile.lock", "composer.lock", "go.sum", "pubspec.lock", "podfile.lock", "packages.lock.json", "flake.lock", "uv.lock", + "pipfile.lock", "bun.lockb", "bun.lock", "deno.lock", "pixi.lock", ]); const DATA_EXT = new Set([ diff --git a/test/ctxtrim.test.js b/test/ctxtrim.test.js index 7a67e48..0ccd82c 100644 --- a/test/ctxtrim.test.js +++ b/test/ctxtrim.test.js @@ -21,6 +21,10 @@ test("token estimate is ~chars/4", () => { test("classify buckets files correctly", () => { assert.equal(classify("package-lock.json", {}).category, "lockfile"); + for (const name of ["Pipfile.lock", "bun.lockb", "bun.lock", "deno.lock", "pixi.lock"]) { + assert.equal(classify(name, {}).category, "lockfile"); + assert.equal(classify(name, {}).trim, true); + } assert.equal(classify("node_modules/x/index.js", {}).category, "vendored"); assert.equal(classify("dist/app.js", {}).category, "build"); assert.equal(classify("app.min.js", {}).category, "minified");