Skip to content

Releases: butttons/dora

v2.0.0

10 Mar 02:30
f4edb8f

Choose a tag to compare

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 file now 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 symbol now enriches function and method results with cyclomatic complexity, parameter types, and return type from tree-sitter.
  • dora status now 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.json under treeSitter.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 a binary_expression node in tree-sitter, not a standalone node type.
  • bun.lock (text format, Bun 1.1+) was not recognized by workspace detection. Only bun.lockb was checked, causing wrong scip-typescript flags for newer Bun projects.
  • TODO comment scanning in dora smells missed markers inside multi-line block comments.
  • dora fn and dora class silently fell back to the default sort on unrecognized --sort values 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

22 Feb 15:49
d31eb8a

Choose a tag to compare

Minor Changes

  • Default output format is now TOON (Token-Oriented Object Notation) for reduced token usage
  • Add global --json flag 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

12 Feb 14:28
efa3e78

Choose a tag to compare

Features

  • feat: add missing languages as valid options for dora init (#11)

Patch Changes

  • Add agent-setup cookbook 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

28 Jan 14:50
6d04b4b

Choose a tag to compare

Minor Changes

  • Add MCP (Model Context Protocol) server via dora mcp command
  • 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

27 Jan 18:12
35454f9

Choose a tag to compare

Bug Fixes

  • fix: resolve TypeScript strict mode errors (#9)

v1.4.6

26 Jan 13:58
ad1faa3

Choose a tag to compare

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

24 Jan 06:53
f2940a3

Choose a tag to compare

What's Changed

  • Add --language flag to dora init for explicit language specification (typescript, javascript, python, rust, go, java) (#6)
  • Optimize document processing performance and fix --ignore flag 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 rust

Full Changelog: v1.4.4...v1.4.5

v1.4.4

22 Jan 03:14
9ffce85

Choose a tag to compare

Bug Fixes

  • fix(config): detect package manager by lock files
  • fix(config): add current directory argument to rust-analyzer scip command (#4)

Documentation

  • docs: add installation instructions to llm.txt
  • docs: fix cookbook command syntax

v1.4.3

22 Jan 01:03
c00d30f

Choose a tag to compare

Bug Fixes

  • fix(templates): bundle templates in binary
    • Fix template files not found when using dora init
    • Remove .dora/docs and .dora/cookbook from git, simplify .gitignore
    • Fixes #2

v1.4.2

21 Jan 15:10
0afb7aa

Choose a tag to compare

Documentation

  • docs: update cookbook commands to use subcommand syntax