Releases: butttons/dora
Releases · butttons/dora
v2.0.0
New Commands
dora fn <path>— list all functions in a file with cyclomatic complexity, LOC, parameter types, return type, async/export flags, and SCIP reference count. Sort by complexity, loc, or name. Filter by minimum complexity.dora class <path>— list all classes with inheritance, implemented interfaces, decorators, abstract flag, method list, and property count. Sort by name, method count, or total complexity.dora smells <path>— detect code smells: high cyclomatic complexity, long functions, too many parameters, god classes (too many methods), large classes (too many properties), and TODO/FIXME/HACK comments. All thresholds configurable.
Enhancements
dora filenow includes per-file metrics (LOC, SLOC, comment lines, blank lines, function count, avg/max complexity) and a full function list when a tree-sitter grammar is available.dora symbolnow enriches function and method results with cyclomatic complexity, parameter types, and return type from tree-sitter.dora statusnow reports grammar availability for every registered language instead of only the project's primary language.
Tree-sitter Integration
- Grammar discovery checks project-local
node_modules, global bun packages, and explicit paths in.dora/config.jsonundertreeSitter.grammars. - TypeScript, TSX, JavaScript, and JSX supported out of the box. Additional languages can be added by implementing a query module and registering it.
- Parser WASM is initialized once per process. Language grammars are cached after first load. Global node_modules path is resolved once and cached.
- A tree-sitter cookbook recipe (
dora cookbook show tree-sitter) covers workflows, complexity thresholds, and pre-refactor checklists.
Bug Fixes
- Nullish coalescing (
??) was not counted in cyclomatic complexity. The operator is abinary_expressionnode in tree-sitter, not a standalone node type. bun.lock(text format, Bun 1.1+) was not recognized by workspace detection. Onlybun.lockbwas checked, causing wrongscip-typescriptflags for newer Bun projects.- TODO comment scanning in
dora smellsmissed markers inside multi-line block comments. dora fnanddora classsilently fell back to the default sort on unrecognized--sortvalues instead of throwing an error.- Absolute paths in tree-sitter commands were built with string interpolation instead of
path.resolve, which is fragile on Windows and with trailing slashes.
v1.7.0: TOON as default output format
Minor Changes
- Default output format is now TOON (Token-Oriented Object Notation) for reduced token usage
- Add global
--jsonflag to all commands for JSON output - Add npm publishing to release workflow
Patch Changes
- Fix agents readme file link in docs website
- Fix npm provenance error by adding repository field to package.json
v1.6.1: pi agent support
Features
- feat: add missing languages as valid options for
dora init(#11)
Patch Changes
- Add
agent-setupcookbook recipe with setup instructions for Claude Code, pi, OpenCode, Cursor, Windsurf, and MCP - Add pi integration guide to AGENTS documentation with project-local extensions and plan mode support. pi.dev
- Rename AGENTS.md to AGENTS.README.md for clarity
- Update docs site with pi references and agent-setup cookbook tips
v1.6.0
Minor Changes
- Add MCP (Model Context Protocol) server via
dora mcpcommand - All 29 dora commands available as MCP tools for AI assistants
- Simple setup for Claude Code:
claude mcp add --transport stdio dora -- dora mcp - Add Zod schema validation for all command results
- Refactor type system with dedicated
src/schemas/directory
Patch Changes
- Fix TypeScript strict mode errors across codebase
- Add type checking to CI workflow
- Standardize command output patterns for better consistency
v1.5.0
v1.4.6
Bug Fixes
- Fix indexer crash: update convertToDatabase call to use object parameters instead of positional arguments
- Fix database lock error during full rebuild by closing existing connections and removing database file before reindexing
Full Changelog: v1.4.5...v1.4.6
v1.4.5
What's Changed
- Add
--languageflag todora initfor explicit language specification (typescript, javascript, python, rust, go, java) (#6) - Optimize document processing performance and fix
--ignoreflag handling (#5) - Refactor multi-parameter functions to use object parameters for better readability and maintainability
Usage
# Initialize in any directory with explicit language
dora init --language python
dora init -l rustFull Changelog: v1.4.4...v1.4.5