mirror of
https://github.com/samiyev/puaros.git
synced 2025-12-27 23:06:54 +05:00
5.0 KiB
5.0 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.3.0] - 2025-11-30 - Indexer
Added
-
FileScanner (0.3.1)
- Recursive directory scanning with async generator
.gitignoresupport viaglobby(replacedignorepackage for ESM compatibility)- Filters: binary files, node_modules, dist, default ignore patterns
- Progress callback for UI integration
isTextFile()andreadFileContent()static utilities- 22 unit tests
-
ASTParser (0.3.2)
- Tree-sitter based parsing for TS, TSX, JS, JSX
- Extracts: imports, exports, functions, classes, interfaces, type aliases
- Import classification: internal, external, builtin (using
node:modulebuiltinModules) - Graceful error handling with partial AST on syntax errors
- 30 unit tests
-
MetaAnalyzer (0.3.3)
- Complexity metrics: LOC (excluding comments), nesting depth, cyclomatic complexity, overall score
- Dependency resolution: internal imports resolved to absolute file paths
- Dependents calculation: reverse dependency lookup across all project files
- File type classification: source, test, config, types, unknown
- Entry point detection: index files, main/app/cli/server patterns, files with no dependents
- Hub detection: files with >5 dependents
- Batch analysis via
analyzeAll()method - 54 unit tests
-
IndexBuilder (0.3.4)
- SymbolIndex: maps symbol names to locations for quick lookup (functions, classes, interfaces, types, variables)
- Qualified names for class methods:
ClassName.methodName - DepsGraph: bidirectional import mapping (
importsandimportedBy) - Import resolution: handles
.js→.ts, index.ts, directory imports findSymbol(): exact symbol lookupsearchSymbols(): regex-based symbol searchfindCircularDependencies(): detect import cyclesgetStats(): comprehensive index statistics (symbols by type, hubs, orphans)- 35 unit tests
-
Watchdog (0.3.5)
- File watching with chokidar (native events + polling fallback)
- Debounced change handling (configurable, default 500ms)
- Event types: add, change, unlink
- Extension filtering (default: SUPPORTED_EXTENSIONS)
- Ignore patterns (default: DEFAULT_IGNORE_PATTERNS)
- Multiple callback support
flushAll()for immediate processing- Silent error handling for stability
- 21 unit tests
-
Infrastructure Constants
tree-sitter-types.ts: NodeType and FieldName constants for tree-sitter- Eliminates magic strings in ASTParser
-
Dependencies
- Added
globbyfor ESM-native file globbing - Removed
ignorepackage (CJS incompatibility with nodenext)
- Added
Changed
- Refactored ASTParser to use constants instead of magic strings
- Total tests: 321
- Coverage: 96.43%
[0.2.0] - 2025-01-30
Added
-
Redis Storage (0.2.x milestone)
- RedisClient: connection wrapper with AOF persistence configuration
- RedisStorage: full IStorage implementation with Redis hashes
- Redis key schema: project files, AST, meta, indexes, config
- Session keys schema: data, undo stack, sessions list
generateProjectName()utility for consistent project naming
-
Infrastructure Layer
src/infrastructure/storage/module- Exports via
src/infrastructure/index.ts
-
Testing
- 68 new unit tests for Redis module
- 159 total tests
- 99% code coverage maintained
Changed
- Updated ESLint config:
@typescript-eslint/no-unnecessary-type-parametersset to warn
Notes
Redis Storage milestone complete. Next: 0.3.0 - Indexer (FileScanner, AST Parser, Watchdog)
[0.1.0] - 2025-01-29
Added
-
Project Setup
- package.json with all dependencies (ink, ioredis, tree-sitter, ollama, etc.)
- tsconfig.json for ESM + React JSX
- tsup.config.ts for bundling
- vitest.config.ts with 80% coverage threshold
- CLI entry point (bin/ipuaro.js)
-
Domain Layer
- Entities: Session, Project
- Value Objects: FileData, FileAST, FileMeta, ChatMessage, ToolCall, ToolResult, UndoEntry
- Service Interfaces: IStorage, ILLMClient, ITool, IIndexer
- Constants: supported extensions, ignore patterns, context limits
-
Application Layer
- IToolRegistry interface
- Placeholder structure for use cases and DTOs
-
Shared Module
- Config schema with Zod validation
- Config loader (default.json + .ipuaro.json)
- IpuaroError class with typed errors
- Utility functions: md5 hash, token estimation
- Result type for error handling
-
CLI
- Basic commands: start, init, index (placeholders)
- Commander.js integration
-
Testing
- 91 unit tests
- 100% code coverage
Notes
This is the foundation release. The following features are planned for upcoming versions:
- 0.2.0: Redis Storage
- 0.3.0: Indexer
- 0.4.0: LLM Integration
- 0.5.0+: Tools implementation
- 0.10.0+: TUI and session management