Releases: lancekrogers/tcount
Releases · lancekrogers/tcount
Release list
v0.7.0
Changelog
- 5a3f2d0 Merge pull request #30 from lancekrogers/ci/npm-trusted-publishing
- 4b34300 Merge pull request #31 from lancekrogers/ci/npm-oidc-no-dummy-token
- 5b96b06 [obey-campaign:8deed8b4] ci: publish npm via GitHub OIDC trusted publishing
- c14cacc [obey-campaign:8deed8b4] ci: scope npm OIDC token cleanup to CI and check tool minimums
- b6d201e [obey-campaign:8deed8b4] ci: stop setup-node dummy token from skipping npm OIDC
- d0dabce [obey-campaign:8deed8b4] fix(walk): resolve the walk root so root .gitignore rules survive relative roots
- c19007f [obey-campaign:8deed8b4] fix: allow npm version bump when package.json already matches the tag
- c211a7a [obey-campaign:8deed8b4] fix: detect model binaries, honor nested .gitignore, add per-file size cap
- 68a3fd7 fix: detect model binaries, honor nested .gitignore, add per-file size cap (#33)
v0.6.1
Changelog
- 0af4dbc Merge pull request #24 from lancekrogers/fix/progress-stop-before-report
- 40b83a7 Merge pull request #25 from lancekrogers/fix/progress-lifecycle-staff
- 8fd04da Merge pull request #29 from lancekrogers/ib0001-harden-cross-platform-cache-durability
- 6cdd793 [obey-campaign:8deed8b4] fix: Windows parent-directory sync uses write-capable CreateFile
- b93dcb7 [obey-campaign:8deed8b4] fix: add Windows writer locks and parent-directory fsync for cache durability
- 9118d4f [obey-campaign:8deed8b4] fix: clear progress before final report on large dirs
- c39eaa6 [obey-campaign:8deed8b4] fix: enforce progress clear before report via presentCountResult
- 2215b19 [obey-campaign:8deed8b4] test: lock TTY regression for directory-count table clip
- db40116 [obey-campaign:8deed8b4] test: treat Linux PTY EIO as EOF in directory table clip test
- b902f0e updated npm
v0.6.0
Changelog
- ca15260 Merge pull request #21 from lancekrogers/unix-filter
- 368013b Merge pull request #22 from lancekrogers/agent/show-directory-scan-progress
- a757cf0 Merge pull request #23 from lancekrogers/release-v0-6-0
- 8e5cd91 Updated package.json
- c5a3bff [obey-campaign:8deed8b4] chore: fix progress lint before v0.6.0
- b286b61 [obey-campaign:8deed8b4] feat: add Unix filter mode (stdin/- and --tokens)
- 2c58dad [obey-campaign:8deed8b4] fix: address Unix filter review feedback
- 824058d [obey-campaign:8deed8b4] fix: end discovery phase when file total is known
- a985f50 [obey-campaign:8deed8b4] fix: show progress during directory scanning
- d72b435 [obey-campaign:8deed8b4] merge: resolve Unix filter progress conflicts
- 44ee3d6 [obey-campaign:8deed8b4] refactor: split root.go under 500-line limit
v0.5.1
Changelog
- 1da893d Merge pull request #12 from lancekrogers/perf/hot-path-efficiency
- 38c2afe Merge pull request #15 from lancekrogers/docs/refresh-demo-v0.5.0
- e84c72c Merge pull request #17 from lancekrogers/test/bench-baseline-and-cancellation
- 5cedb26 Merge pull request #18 from lancekrogers/agent/directory-gif
- 2e68a4a Merge pull request #19 from lancekrogers/tcount-directory-cache-TD0001
- d589d76 Merge pull request #20 from lancekrogers/tcount-counting-animation
- 0fa68a4 Update README.md
- e37acaf [obey-campaign:8deed8b4-FE-TD0001] docs: record directory cache rollout decision
- 84b2ffb [obey-campaign:8deed8b4-FE-TD0001] feat: complete cache CLI and operations
- dc38cc3 [obey-campaign:8deed8b4-FE-TD0001] feat: complete cached count path integration
- 83f9497 [obey-campaign:8deed8b4-FE-TD0001] feat: define cache contracts and invalidation
- a657a93 [obey-campaign:8deed8b4-FE-TD0001] feat: implement manifest store lifecycle and verification
- c906ec7 [obey-campaign:8deed8b4-FE-TD0001] feat: measure directory cache validation and storage
- 519da4b [obey-campaign:8deed8b4-FE-TD0001] feat: record directory cache acceptance evidence
- f78201b [obey-campaign:8deed8b4-FE-TD0001] fix: bound verified cache memory and manifests
- ff664d7 [obey-campaign:8deed8b4-FE-TD0001] fix: close cache review findings
- 9e4441e [obey-campaign:8deed8b4-WI-95673d] docs: demo live progress on a multi-second large tree
- 0f3be48 [obey-campaign:8deed8b4-WI-95673d] docs: feature both single-file and live progress GIFs in README
- 629e9d8 [obey-campaign:8deed8b4-WI-95673d] docs: re-record counting-progress GIF with color
- 16e9b07 [obey-campaign:8deed8b4-WI-95673d] feat: live directory counting progress on TTY
- e8b95f4 [obey-campaign:8deed8b4-WI-95673d] fix: address progress review (Stop race, root clip, cache fallback)
- 0d87d25 [obey-campaign:8deed8b4] docs: clarify cache persistence fallback contract
- bffca9d [obey-campaign:8deed8b4] docs: emphasize local-first and library usage; refresh discovery metadata
- 020e04c [obey-campaign:8deed8b4] docs: match directory demo to product colors
- 6b26f1f [obey-campaign:8deed8b4] docs: refresh demo GIF and directory example for v0.5.0
- 717149d [obey-campaign:8deed8b4] docs: trim README examples now covered by the demo GIF
- d756d45 [obey-campaign:8deed8b4] fix: address tcount cache review findings
- b756ee5 [obey-campaign:8deed8b4] test: pin adversarial exact-count fixtures against reference tokenizer
v0.5.0
Performance and quality release from a full-codebase review (PRs #10 through #14).
Highlights
- Much faster startup. Counter construction dropped from ~67ms and 358K allocations to effectively zero; tokenizer vocabs now load lazily, so single-model runs parse one vocab table instead of two, and encoder construction is 9.3x faster with 200x fewer allocations.
- Bounded-memory directory scans.
-rnow counts each file individually on a bounded worker pool and sums the results. Peak memory tracks your largest file instead of the whole tree, and large scans use multiple cores. - Behavior note for directory counts. Because files are no longer concatenated before tokenizing, directory token totals can shift very slightly versus v0.4.0 (measured 0.014% on a real codebase). The old totals silently merged tokens and words across file boundaries whenever a file lacked a trailing newline; the new totals equal the sum of counting each file on its own, which is enforced by a property test. Single-file counts are byte-for-byte identical to v0.4.0, guarded by pinned exact-count fixtures including literal special tokens, unicode edge cases, and CRLF content.
- Coverage and hygiene. New benchmark suite, context-cancellation tests, adversarial exact-count fixtures, a green lint gate, and a standards refactor with zero behavior change (
GetModelMetadata/GetProviderForModelare deprecated in favor ofLookupModel/ProviderForModel; the old names still work).
Demo
Changelog
- e60de14 Merge pull request #10 from lancekrogers/test/bench-baseline-and-cancellation
- 31ca4d6 Merge pull request #11 from lancekrogers/chore/zero-lint-gate
- 612fe60 Merge pull request #13 from lancekrogers/perf/per-file-directory-counting
- 4aed3d0 Merge pull request #14 from lancekrogers/refactor/standards-sweep
- d532d49 Merge pull request #9 from lancekrogers/docs/termcast-demo
- 40cd26d [obey-campaign:8deed8b4] chore: zero the lint gate
- 19f1e0a [obey-campaign:8deed8b4] docs: add termcast demo GIF to README
- f072cae [obey-campaign:8deed8b4] perf: count directories per file with bounded memory and concurrency
- 874b3fe [obey-campaign:8deed8b4] perf: hot-path efficiency fixes
- 6812fe0 [obey-campaign:8deed8b4] refactor: standards sweep from code review
- 291cb20 [obey-campaign:8deed8b4] test: benchmark baseline + context-cancellation coverage
v0.4.0
Changelog
- b755ccb Add GitHub Sponsors FUNDING.yml (#4)
- 3a50f01 Merge pull request #7 from lancekrogers/docs/pkg-go-dev-polish
- 22a24fd Merge pull request #8 from lancekrogers/feat/refresh-models-drop-cost
- 81f9c3d Merge remote-tracking branch 'origin/main' into feat/refresh-models-drop-cost
- 0a27806 [OBEY-CAMPAIGN-8deed8b4] update npm version
- 600599b [obey-campaign:8deed8b4] docs: add cmd/tcount synopsis and README badges for discoverability
- aede633 [obey-campaign:8deed8b4] docs: rewrite README for real output, drop cost, add Gemini
- 870e180 [obey-campaign:8deed8b4] refactor(tokenizer): drop cost/pricing, refresh model registry, add Gemini
- 0ae1443 feat(npm): publish under @Obedience-Corp scope (#6)
- d0606ff feat: add npm distribution (@lancekrogers/tcount) (#5)
v0.3.0
v0.2.0
Changelog
- 24e9fde Added binary installation instructions to readme
- c0f1cbe Merge pull request #1 from lancekrogers/develop
- a2d653f Merge pull request #2 from lancekrogers/develop
- 757541d [OBEY-CAMPAIGN-8deed8b4] Update model registry with current pricing and naming conventions
- 750a2d4 [OBEY-CAMPAIGN-8deed8b4] docs: add interface-returning constructors, godoc comments, and example tests
- c0eb814 [OBEY-CAMPAIGN-8deed8b4] docs: update README with library usage section and fix old internal paths
- 21eaba6 [OBEY-CAMPAIGN-8deed8b4] feat: add context-aware CountFile and CountDirectory methods to Counter
- bf95f8f [OBEY-CAMPAIGN-8deed8b4] feat: add sentinel errors and verify zero internal/errors usage in public packages
- ec5e293 [OBEY-CAMPAIGN-8deed8b4] feat: create public tokenizer package with Counter, Tokenizer interface, model registry, and cost calculation
- 6db961e [OBEY-CAMPAIGN-8deed8b4] feat: create public tokenizer/bpe package with BPE engine and vocabulary data
- bc0210d [OBEY-CAMPAIGN-8deed8b4] feat: create public tokenizer/fileops package with directory walker and binary detection
- 4e08052 [OBEY-CAMPAIGN-8deed8b4] fix: address P0 and P1 code review findings from PR #1
- 3a0fa17 [OBEY-CAMPAIGN-8deed8b4] fix: revert doc.go to package integration (non-test file needs non-test package for go build)
- 403fb2c [OBEY-CAMPAIGN-8deed8b4] fix: skip .tiktoken files during directory scanning
- 87725d0 [OBEY-CAMPAIGN-8deed8b4] refactor: rewire imports to public tokenizer paths and delete migrated internal packages
- 3438963 added .env.example
v0.1.0
Changelog
- 3046a04 Add .gitignore
- ebe70e4 Add Justfile build system
- 5785d97 Add comprehensive README and MIT license
- 26ea5dd Add internal errors package
- 1527747 Add internal packages: tokens, fileops, ui
- 81aa4fa Add root count command and entry point
- 930d7cf Add version injection to builds and fix GoReleaser config
- c36b035 Create README.md
- d4b3f34 Fix Justfile module name collisions and working directory
- 25a1ddb Fix errcheck lint issues in binary.go and ui.go
- 9cd9086 Initialize go module with dependencies
- 5a99488 Inline tiktoken-go and go-sentencepiece into internal packages
- a8fa64c Remove unused tiktoken-go/tokenizer dependency
- dea8259 Rename BPE types to remove external library branding
- 341c6a2 Rename SPM types to remove external library branding
- d146606 Rename internal/sentencepiece → internal/spm, model → spmmodel
- e542dbd Rename module to github.com/lancekrogers/go-token-counter
- d9bc3a0 Revert SentencePiece inlining: use eliben/go-sentencepiece as external dep
- 9a16c33 Strip external library attribution from inlined code
- 61ff96e Updated go.mod
- 2f92bbd Updated justfile
- 8ea4333 Updated justfile
- 5f5dc1d Updated justfile
- 298d61c [OBEY-CAMPAIGN-8deed8b4] Fix README inaccuracies: Qwen context 33K→32K, add --models flag, fix cross-compile recipe name
- 4e32d57 [OBEY-CAMPAIGN-8deed8b4] Polish README for open source release, remove pricing section
- 8e1eaec [OBEY-FE-GT0002] [OBEY-FE-GT0002] test: add comprehensive test coverage and update documentation
- b0b59e6 [OBEY-FE-GT0002] feat: add --provider filter flag and context window usage display
- fc2c067 [OBEY-FE-GT0002] feat: add Anthropic SDK integration for exact Claude token counting
- e51f74c [OBEY-FE-GT0002] feat: add SentencePiece tokenization support and --vocab-file CLI flag
- 769abae [OBEY-FE-GT0002] feat: add centralized model metadata registry
- 268f391 [OBEY-FE-GT0002] feat: add open-source model support with tiktoken approximation
- 92dd694 [OBEY-FE-GT0002] feat: update pricing to 2026 rates and convert to per-1M token format
- b9bdf7b [OBEY-FE-GT0002] fix: correct encoding mapping for modern OpenAI models
- 848aed7 [OBEY-FE-GT0002] test: add tiktoken library benchmarks comparing pkoukk vs embedded approach
- e77a396 feat: add 17 integration tests for CLI, tokenizer, and filesystem
- 859705d feat: add buildutil dashboard for build/test/clean operations
- f8557b9 feat: add comma thousand separators to CLI number output
- 56cf0e7 feat: add lipgloss table styling and version flag to tcount CLI
- 69fe42a fix: deduplicate tcount output by encoding, remove context column, add --models flag
