Skip to content

Conversation

@prosdev
Copy link
Collaborator

@prosdev prosdev commented Dec 11, 2025

Summary

This PR delivers critical reliability fixes, performance improvements, and architectural enhancements for Go language support in dev-agent. The changes ensure robust production-ready Go support while significantly improving developer experience and system reliability.

High Priority Fixes ✅

  • Fix silent dependency failures: copy-wasm.js now properly exits with error codes and provides detailed error messages
  • Runtime WASM validation: Go scanner validates WASM availability before attempting to parse files
  • Standardized error logging: Consistent error levels and structured logging across all scanners
  • Enhanced progress feedback: Time estimates and completion tracking for better user experience

Performance & Reliability ⚡

  • Configurable concurrency: Environment variables for fine-tuning performance (DEV_AGENT_*_CONCURRENCY)
  • System resource detection: Intelligent defaults based on CPU and memory availability
  • Batch processing: Optimized embedding generation and file operations to prevent memory issues
  • Resource-constrained systems: Graceful handling of low-memory environments

Architecture & Testability 🏗️

  • Extracted utility modules: Reusable WASM resolution, concurrency calculation, and file validation
  • Dependency injection: Mockable interfaces for comprehensive testing
  • Test coverage: 57 new tests covering all utility functions and edge cases
  • Centralized error handling: Consistent patterns across all scanner implementations

Documentation 📚

  • Configuration guide: Performance tuning section in README with system recommendations
  • Language support guide: Step-by-step LANGUAGE_SUPPORT.md for contributors
  • Environment variables: Complete documentation of all new configuration options
  • Troubleshooting: Common issues and solutions for production deployments

New Environment Variables

  • DEV_AGENT_TYPESCRIPT_CONCURRENCY: Control TypeScript scanner parallelism
  • DEV_AGENT_INDEXER_CONCURRENCY: Configure embedding batch processing
  • DEV_AGENT_GO_CONCURRENCY: Tune Go scanner performance
  • DEV_AGENT_CONCURRENCY: General fallback for all scanners

Test Plan

  • All existing tests pass (1100+ tests)
  • 57 new tests added with comprehensive coverage
  • Manual testing on resource-constrained systems
  • WASM dependency validation in various environments
  • Performance testing with large Go codebases
  • Environment variable configuration validation

Breaking Changes

None - all changes maintain backward compatibility

Files Changed

  • 25 files modified/added with 2,106 insertions and 221 deletions
  • New utilities: concurrency.ts, wasm-resolver.ts, file-validator.ts with full test coverage
  • Enhanced scanners: Improved error handling and performance across TypeScript and Go scanners
  • Build improvements: Robust WASM bundling with comprehensive error reporting
  • Documentation: README updates and new contributor guidelines

This release ensures dev-agent's Go support is production-ready with excellent reliability, performance, and developer experience.

…ype checking

- Simplify error handling from 12 to 3 layers (file-level, safeIterate, extractImports)
- Enable type checking with lenient settings for better cross-file symbol resolution
- Add detailed error tracking with phase detection and file paths
- Remove excessive defensive coding while maintaining robustness
- Improve error logging: first 10 errors at INFO level, rest at DEBUG
- Better progress reporting with success/failure counts

This improves callee extraction accuracy while maintaining graceful error handling.
…ncements

Critical reliability fixes, performance improvements, and testability enhancements for Go support:

## High Priority Fixes
- Fix silent dependency failures in copy-wasm.js script
- Add runtime WASM validation to Go scanner with early error detection
- Standardize error logging levels across scanners
- Enhance progress feedback with time estimates

## Performance & Reliability
- Add configurable concurrency via environment variables (DEV_AGENT_*_CONCURRENCY)
- Implement system resource detection with intelligent defaults
- Add batch processing for embeddings and file operations
- Prevent memory issues on resource-constrained systems

## Architecture & Testability
- Extract reusable utility modules for WASM resolution, concurrency, file validation
- Implement dependency injection for mockable file system operations
- Add comprehensive test coverage (57 new tests) for utility functions
- Centralize error handling patterns across scanners

## Documentation
- Add Configuration section to README with performance tuning
- Create LANGUAGE_SUPPORT.md with contributor guidelines
- Document new environment variables and troubleshooting steps
- Add system requirements and optimization recommendations

## New Environment Variables
- DEV_AGENT_TYPESCRIPT_CONCURRENCY: TypeScript scanner concurrency
- DEV_AGENT_INDEXER_CONCURRENCY: Embedding batch concurrency
- DEV_AGENT_GO_CONCURRENCY: Go scanner concurrency
- DEV_AGENT_CONCURRENCY: General fallback concurrency

These changes ensure robust Go support for production use while maintaining
backward compatibility and improving the overall developer experience.
Resolved conflict in README.md by combining v0.6.0 Go support with performance improvements into a unified release entry.
The lockfile was out of sync with packages/core/package.json after adding
tree-sitter-wasms dependency. This ensures CI builds work correctly with
the new Go scanner dependencies.
Remove all Renovate configuration files, workflows, and documentation:
- renovate.json5 and renovate.json (main configuration)
- .github/renovate-automerge.json5 (automerge settings)
- .github/renovate-groups.json5 (package grouping)
- .github/workflows/renovate.yml (GitHub Actions workflow)
- docs/DEPENDENCY_MANAGEMENT.md (Renovate documentation)

Dependencies will now be managed manually to give more control over updates
and reduce automated PR noise.
@prosdev prosdev merged commit c2a8cdc into main Dec 11, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant