diff --git a/apps/backend/analysis/analyzers/project_analyzer_module.py b/apps/backend/analysis/analyzers/project_analyzer_module.py index b7380dbb49..356a1abbdd 100644 --- a/apps/backend/analysis/analyzers/project_analyzer_module.py +++ b/apps/backend/analysis/analyzers/project_analyzer_module.py @@ -116,6 +116,24 @@ def _find_and_analyze_services(self) -> None: "language" ): # Only include if we detected something services[item.name] = service_info + + # Also check the project root itself for dependencies. + # Monorepo roots often have their own package.json + node_modules + # (e.g., npm/pnpm workspaces) that need to be shared with worktrees. + already_covered = self.project_dir in { + Path(s.get("path", "")) for s in services.values() + } + if not already_covered: + dep_indicators = ("package.json", "requirements.txt", "pyproject.toml") + root_has_deps = any( + (self.project_dir / f).exists() for f in dep_indicators + ) + if root_has_deps: + root_analyzer = ServiceAnalyzer(self.project_dir, "root") + root_info = root_analyzer.analyze() + root_deps = root_info.get("dependency_locations", []) + if root_deps: + services["root"] = root_info else: # Single project - analyze root analyzer = ServiceAnalyzer(self.project_dir, "main") diff --git a/apps/frontend/src/main/app-logger.ts b/apps/frontend/src/main/app-logger.ts index dc984d417d..7d877d9380 100644 --- a/apps/frontend/src/main/app-logger.ts +++ b/apps/frontend/src/main/app-logger.ts @@ -35,8 +35,10 @@ log.transports.file.fileName = 'main.log'; // Note: We use electron-log's default archiveLogFn which properly rotates logs // by renaming old files to .old format. Custom implementations were problematic. -// Console transport - always show warnings and errors, debug only in dev mode -log.transports.console.level = process.env.NODE_ENV === 'development' ? 'debug' : 'warn'; +// Console transport - enable in dev mode only; in production (packaged app) console.log +// writes to a pipe/PTY whose buffer can fill up, blocking the main thread synchronously +// and causing UI hangs (see: hang report 2026-02-25, 66s freeze on write()). +log.transports.console.level = process.env.NODE_ENV === 'development' ? 'debug' : false; log.transports.console.format = '[{h}:{i}:{s}] [{level}] {text}'; // Guard console transport writes so broken stdio streams do not crash the app. {