Skip to content
This repository was archived by the owner on May 23, 2026. It is now read-only.

v0.7.5 — Concurrency Audit & Deadlock Fixes

Choose a tag to compare

@magifd2 magifd2 released this 20 Apr 00:58
· 15 commits to main since this release

Critical Fixes

  • RWMutex deadlock: restartGuardians() held write lock and called GetTools() which tried RLock — deadlocked on every startup, causing complete app unresponsiveness
  • Guardian Start() hang: 15-second timeout prevents indefinite block when MCP server doesn't respond
  • HTTP connection timeout: 10-second dial timeout surfaces unreachable API servers quickly

Comprehensive Session Concurrency

Full audit of all session.Records access sites. sessionMu now protects:

  • buildMessages (snapshot-copy pattern)
  • generateTitleIfNeeded / compactMemoryIfNeeded / extractPinnedMemories (read→unlock→LLM→lock→write)
  • listImagesTool / createReportTool / autoSave / GetLLMStatus

Structured Logging

New internal/logger package: component-tagged, severity-leveled, dual output (stderr + app.log with 10MB rotation). All fmt.Printf removed.

Full changelog: https://github.com/nlink-jp/shell-agent/blob/main/CHANGELOG.md