Releases: lytics/dev-agent
@lytics/dev-agent@0.8.5
Patch Changes
-
d3d2126: feat(mcp): refactor dev_inspect and optimize pattern analysis
API Simplification:
dev_inspectsimplified to single-purpose tool (action parameter streamlined)- Previously:
dev_inspect({ action: "compare", query: "file.ts" }) - Now:
dev_inspect({ query: "file.ts" }) - Existing usage continues to work with dynamic MCP schema discovery
Major Features:
- Created
PatternAnalysisServicewith 5 pattern extractors:- Import style (ESM, CJS, mixed, unknown)
- Error handling (throw, result, callback, unknown)
- Type coverage (full, partial, none)
- Testing (co-located test files)
- File size (lines vs similar files)
- Batch scanning optimization (5-10x faster: 500-1000ms vs 2-3 seconds)
- Embedding-based similarity search (no more false matches)
- Extension filtering (
.tsonly compares with.ts) - Comprehensive pattern analysis (finds similar files + analyzes patterns)
Performance:
- One ts-morph initialization vs 6 separate scans
- Batch scan all files in one pass
searchByDocumentId()for embedding-based similarity- Pattern analysis: 500-1000ms (down from 2-3 seconds)
Bug Fixes:
- Fixed
findSimilarto use document embeddings instead of file paths - Fixed
--forceflag to properly clear old vector data - Fixed race condition in LanceDB table creation
- Removed
outputSchemafrom all 9 MCP adapters (Cursor/Claude compatibility)
New Features:
- Test utilities in
@lytics/dev-agent-core/utils:isTestFile()— Check if file is a test filefindTestFile()— Find co-located test files
- Vector store
clear()method - Vector store
searchByDocumentId()method - Comprehensive pattern comparison with statistical analysis
Migration Guide:
// Before (v0.8.4) dev_inspect({ action: "compare", query: "src/auth.ts" }); dev_inspect({ action: "validate", query: "src/auth.ts" }); // After (v0.8.5) - Streamlined! dev_inspect({ query: "src/auth.ts" });
The tool now automatically finds similar files AND performs pattern analysis. No migration needed - MCP tools discover the new schema dynamically.
Re-index Recommended:
dev index . --forceThis clears old data and rebuilds with improved embedding-based search.
Documentation:
- Complete rewrite of dev-inspect.mdx
- Updated README.md with pattern categories
- Updated CLAUDE.md with new descriptions
- Added v0.8.5 changelog entry to website
- Migration guide from dev_explore
Tests:
- All 1100+ tests passing
- Added 10 new test-utils tests
- Pattern analysis service fully tested
- Integration tests for InspectAdapter
@lytics/dev-agent@0.8.4
Patch Changes
-
8b4972a: Remove git analytics commands to refocus on semantic value
BREAKING CHANGES:
- Remove
dev ownerscommand - usegit logor GitHub contributors instead - Remove
dev activitycommand - usegit log --sincefor activity analysis
What's Changed:
- Removed 891 lines from
dev ownerscommand - Removed 175 lines from
dev activitycommand - Cleaned up dead code in
change-frequency.ts(calculateFileAuthorContributions) - Simplified metrics collection to focus on code structure introspection
What's Kept:
code_metadatatable for debugging/introspection of indexed codecalculateChangeFrequencyfordev_mapMCP tool (shows commit activity in codebase structure)
Why:
Dev-agent's unique value is semantic search (embeddings + AST), not git analytics which GitHub/git already provide. This change reduces complexity by ~1,200 lines and refocuses on MCP tools for AI context.
Migration:
For contributor/ownership analytics, use:
git log --format="%ae" <path> | sort | uniq -c | sort -rnfor ownershipgit log --since="1 month" --name-only | sort | uniq -c | sort -rnfor activity- GitHub's Contributors page for visualization
- Remove
@lytics/dev-agent@0.8.3
Patch Changes
-
f20406e: # Visual Formatting & GitHub Stats Improvements
Visual Enhancements ✨
Tree Branches & File Icons
All CLI outputs now use consistent tree-based formatting with file icons:
dev maphot paths:## Hot Paths (most referenced) ├─ 📘 **typescript.ts** • 307 refs /packages/core/src/scanner ├─ 📘 **index.ts** • 251 refs /packages/core/src/indexer └─ 📘 **go.ts** • 152 refs /packages/core/src/scannerdev activityoutput:├─ 📘 packages/mcp-server/bin/dev-agent-mcp.ts │ 34 commits • 1 👤 • Last: today │ ├─ 📘 packages/core/src/indexer/index.ts │ 32 commits • 1 👤 • Last: todayShared Icon Utility
Extracted
getFileIcon()to@lytics/dev-agent-core/utilsfor reuse across packages.GitHub Stats Fix 🐛
Fixed confusing issue/PR state display:
Before:
Issues: 68 total (14 open, 55 closed) Pull Requests: 97 total (14 open, 96 merged) ❌ Wrong!After:
Issues: 68 total (14 open, 54 closed) Pull Requests: 97 total (0 open, 96 merged) ✅ Correct!- Added separate state tracking:
issuesByState,prsByState - GitHub indexer now tracks issue and PR states independently
- Stats display now shows accurate per-type counts
Progress Display Improvements 📊
Detailed Progress with Rates
All indexing commands now show detailed progress:
Scanning Repository: 1,234/4,567 files (27%, 45 files/sec) Embedding Vectors: 856/2,549 documents (34%, 122 docs/sec)Applied to:
dev index- scanning & embedding progressdev update- changed files & embedding progressdev git index- commit embedding progressdev github index- document embedding progress
Update Plan Display
dev updatenow shows what will change before starting:Update plan: • Changed: 3 files • Added: 1 file • Deleted: 0 filesCode Quality
- Refactored progress logic into
ProgressRenderer.updateSectionWithRate() - Reduced ~40 lines of duplicated code
- Fixed NaN display (now shows "Discovering files..." initially)
Bug Fixes 🐛
dev owners: Fixed "No ownership data" error when run from subdirectories- Progress Display: Fixed NaN showing during initial file discovery phase
dev update: Removed duplicate checkmark in success message
Breaking Changes
None - all changes are backward compatible. Old GitHub state files will fall back to aggregate counts gracefully.
- Added separate state tracking:
@lytics/dev-agent@0.8.2
Patch Changes
-
d23d1a9: Massive indexing performance and UX improvements
Performance Optimizations (184% faster):
- 63x faster metadata collection: Eliminated 863 individual git calls by using single batched git command
- Removed storage size calculation: Deferred to on-demand in
dev stats(saves 1-3s) - Simplified ownership tracking: Author contributions now calculated on-demand in
dev owners(1s), removed SQLite pre-indexing overhead - Total speedup: Indexing now completes in ~33s vs ~95s (61s improvement!)
Architecture Simplifications:
- Removed
file_authorsSQLite table (on-demand is fast enough) - Removed
appendFileAuthors()andgetFileAuthors()from MetricsStore - Removed
authorContributionsfrom IndexUpdatedEvent - Cleaner separation: metrics for analytics, ownership for developer insights
UX Improvements (no more silent gaps):
- Section-based progress display: Clean, informative output inspired by Homebrew/Cargo
- Applied to 4 commands:
dev index,dev update,dev git index,dev github index - Live progress updates: Shows current progress for each phase (scanning, embedding, git, GitHub)
- Clean indexing plan: Removed INFO timestamps from plan display
- Helpful next steps: Suggests relevant commands after indexing completes
- More frequent scanner progress: Logs every 2 batches OR every 10 seconds (was every 50 files)
- Slow file detection: Debug logs for files/batches taking >5s to process
- Cleaner completion summary: Removed storage size from index output (shown in
dev statsinstead) - Continuous feedback: Maximum 1-second gaps between progress updates
- Context-aware
dev ownerscommand: Adapts output based on git status and current directory- Changed files mode: Shows ownership of uncommitted changes with real-time git log analysis
- Root directory mode: High-level overview of top areas (packages/cli/, packages/core/)
- Subdirectory mode: Detailed expertise for specific area
- Smart ownership display: Asymmetric icons that only flag exceptions (
⚠️ for others' files, 🆕 for new files) - Last touched timestamps: Shows when files were last modified (catches stale code and active development)
- Recent activity detection: Warns when others recently touched your files (prevents conflicts)
- Suggested reviewers: Automatically identifies who to loop in for code reviews
- Visual hierarchy: Tree branches (├─, └─) and emojis (📝, 📁, 👤) for better readability
- Activity-focused: Sorted by last active, not file count (no more leaderboard vibes)
- Git root detection: Works from any subdirectory within the repository
- Better developer grouping:
dev ownersnow groups by GitHub handle instead of email (merges multiple emails for same developer) - Graceful degradation: Verbose mode and non-TTY environments show traditional log output
Technical Details:
- Added
log-updatedependency for smooth single-line progress updates - New
ProgressRendererclass for section-based progress display - Optimized
buildCodeMetadata()to derive change frequency from author contributions instead of making separate git calls - Scanner now tracks time since last log and ensures updates every 10s
- Storage size calculation moved from index-time to query-time (lazy evaluation)
- TTY detection for graceful fallback in CI/CD environments
Before:
[14:27:37] typescript 3450/3730 (92%) ← 3 MINUTES OF SILENCE [14:30:09] typescript 3600/3730 (97%) ← EMBEDDING COMPLETES ← 63 SECONDS OF SILENCE [14:31:12] Starting git extractionAfter:
▸ Scanning Repository 357/433 files (82%, 119 files/sec) ✓ Scanning Repository (3.2s) 433 files → 2,525 components ▸ Embedding Vectors 1,600/2,525 documents (63%, 108 docs/sec) ✓ Embedding Vectors (20.7s) 2,525 documents ▸ Git History 150/252 commits (60%) ✓ Git History (4.4s) 252 commits ▸ GitHub Issues/PRs 82/163 documents (50%) ✓ GitHub Issues/PRs (7.8s) 163 documents ✓ Repository indexed successfully! Indexed: 433 files • 2,525 components • 252 commits • 163 GitHub docs Duration: 33.5s 💡 Next steps: dev map Explore codebase structure dev owners See contributor stats dev activity Find active files
@lytics/dev-agent@0.8.1
Patch Changes
-
5656263: ## Bug Fix & UX Improvements
Fixed Native Bindings Error
Added
better-sqlite3as a direct dependency to fix "Could not locate the bindings file" error in globally installed package.Improved Error Messages
Added consistent, user-friendly error messages across all commands when indexed data is missing. Commands now provide clear re-index instructions instead of cryptic errors.
Affected commands:
dev activity,dev owners,dev map,dev stats
@lytics/dev-agent@0.8.0
Minor Changes
-
0f8c4eb: ## 🎉 v0.8.0 - Major Feature Release
This release includes 33 commits with significant new features, performance improvements, and architectural enhancements.
🚀 Major Features
dev mapcommand - Visualize codebase structure with component counts, exports, and hot paths (224x performance improvement!)dev activitycommand - Show most active files with commit counts, recency, and complexitydev ownerscommand - Developer specialization breakdown with file-level ownership- Author contribution indexing - Indexed during
dev indexfor 35x faster ownership queries - Service layer architecture - 7 services with dependency injection for better testability
- MetricsStore with SQLite - Persistent code analytics with
file_authorstable - Code metadata system - Factual metrics replacing risk scoring
- Change frequency analysis - Git activity tracking and hotspot identification
- Stats comparison & export - Historical metrics analysis
🎨 CLI/UX Improvements
- Compact table format for metrics commands with factual summaries
- Top-level commands -
dev activityanddev owners(refactored fromdev metrics) - Enhanced
dev statsoutput with 10x performance boost - Enhanced
dev git statswith clean, scannable format - Enhanced
dev compact,dev clean, and MCP command outputs - Modernized CLI with compact, user-friendly formatting
- Comprehensive help text with examples and use cases
- Visual indicators (🔥 for hotspots, ✏️ for activity)
- GitHub handle resolution for developer identification
🏗️ Architecture & Quality
- Service-oriented architecture with dependency injection
- Circular dependency resolution via shared types package
- Complete Zod validation across all 9 MCP adapters and external boundaries
- Kero logger integration throughout
- SearchService refactor for better code reuse
- Improved error handling and messaging
⚡ Performance Optimizations
dev map: 224x speedup (103s → 0.46s)- Added
getAll()method for fast scans without semantic search - Added
skipEmbedderoption for read-only operations - Added
getBasicStats()to avoid expensive git enrichment
- Added
dev owners: 35x speedup (17.5s → 0.5s)- Batched git operations during indexing (1 call vs N file calls)
- Author contributions stored in
file_authorstable - Offline capability - no git access needed after indexing
dev stats: 10x speedup via direct JSON reads
🐛 Bug Fixes
- Fixed component count overflow in map generation (2.4B → 3.7K)
- Fixed detailed stats persistence in indexer
- Fixed ENOBUFS issues
📚 Documentation
- Updated website for v0.7.0 features
- TypeScript standards with Zod validation examples
- Workflow documentation with commit checkpoints
- Enhanced CLI help text across all commands
🧪 Testing
- All 1,918 tests passing
- Added comprehensive test coverage for new features
- Mock updates for new
getAll()method
This release represents a significant step forward in usability, performance, and code quality. Special thanks to all contributors!
@lytics/dev-agent@0.7.0
Minor Changes
-
c13b24f: UX and performance improvements for TypeScript projects
UX Improvements:
- MCP install is now idempotent for Claude Code - shows positive message when server already exists instead of erroring
- Enhanced documentation with clear customization examples for exclusion patterns
Performance Improvements:
- Add TypeScript-specific exclusion patterns to default config for 10-15% indexing performance improvement
- Exclude mock files (_.mock.ts, _.mock.tsx, mocks/), type definition files (*.d.ts), and test infrastructure (test-utils/, testing/)
Configurability:
- TypeScript exclusions are now fully configurable via .dev-agent/config.json
- Users can customize patterns, include type definitions if desired, or add project-specific exclusions
- Default config provides optimized performance while maintaining full user control
Semantic Value Preserved:
- Stories files are kept (contain valuable component documentation and usage patterns)
- Only excludes truly low-value files while preserving semantic content for AI tools
@lytics/dev-agent@0.6.1
Patch Changes
-
b675fc9: fix: improve reliability, performance, and documentation for Go support
Major Features
- Performance Configuration: Environment variables for fine-tuning concurrency (DEV_AGENT_*_CONCURRENCY)
- Enhanced Go Scanner: Runtime WASM validation, improved error handling, better reliability
- TypeScript Improvements: Streamlined error handling, better type checking, enhanced progress reporting
- System Resource Detection: Intelligent performance defaults based on CPU and memory
- Architectural Utilities: Reusable modules for WASM resolution, concurrency, and file validation
New Environment Variables
DEV_AGENT_TYPESCRIPT_CONCURRENCY: Control TypeScript scanner parallelismDEV_AGENT_INDEXER_CONCURRENCY: Configure embedding batch processingDEV_AGENT_GO_CONCURRENCY: Tune Go scanner performanceDEV_AGENT_CONCURRENCY: General fallback for all scanners
Documentation & User Experience
- Document missing
dev updatecommand for incremental indexing - Add timing expectations (5-10 minutes for large codebases)
- Create LANGUAGE_SUPPORT.md contributor guide
- Enhanced troubleshooting and configuration sections
- Remove Renovate automation for manual dependency control
Technical Improvements
- 57 new tests with comprehensive coverage
- Dependency injection for testable file system operations
- Centralized error handling patterns across scanners
- Build script reliability fixes (prevent silent failures)
This release significantly improves performance, reliability, and developer experience while maintaining backward compatibility.
@lytics/dev-agent@0.6.0
Minor Changes
-
f578042: feat: Go language support
Add comprehensive Go language support to dev-agent:
Go Scanner
- Tree-sitter WASM infrastructure (reusable for Python/Rust later)
- Extract functions, methods, structs, interfaces, types, constants
- Method receivers with pointer detection
- Go 1.18+ generics support
- Go doc comment extraction
- Exported symbol detection (capital letter convention)
- Generated file skipping (_.pb.go, _.gen.go, etc.)
- 90%+ test coverage
Indexer Logging
- Add
--verboseflag todev index,dev git index,dev gh index - Progress spinner shows actual counts:
Embedding 4480/49151 documents (9%) - Structured logging with kero logger
Go-Specific Exclusions
- Protobuf:
*.pb.go,*.pb.gw.go - Generated:
*.gen.go,*_gen.go - Mocks:
mock_*.go,mocks/ - Test fixtures:
testdata/
Tested on large Go codebase (~4k files, 49k documents).
@lytics/dev-agent@0.5.2
Patch Changes
-
d6e5e6f: Fix ENOBUFS error during GitHub issues/PRs indexing for large repositories
Problem: When indexing repositories with many GitHub issues/PRs (especially with large issue bodies), the
dev indexcommand would fail withENOBUFS(No buffer space available) error.Solution:
- Increased execSync maxBuffer from default 1MB to 50MB for issue/PR fetching
- Reduced default fetch limit from 1000 to 500 items to prevent buffer overflow
- Added
--gh-limitCLI flag to allow users to customize the limit - Improved error messages to guide users when buffer issues occur
Changes:
fetchIssues()andfetchPullRequests()now use 50MB maxBuffer- Default limit changed from 1000 to 500 (per type: issues and PRs)
- Added
--gh-limit <number>flag todev indexcommand - Better error handling with helpful suggestions (use
--gh-limit 100for very large repos) - Comprehensive test coverage (23 new tests for fetcher utilities)
Usage:
# Default (works for most repos) dev index # For large repos (200+ issues/PRs) dev index --gh-limit 200 # For very active repos (500+ issues/PRs) dev index --gh-limit 100
Testing: All 1100+ tests passing. Verified on lytics-ui repository (6989 files, 1000 issues/PRs indexed successfully).