0.134.37

Fixed (MEDIUM §4.2 Tools — 8 задач, см. docs/audit/backend-2026-06.md §4.2)

  • M-T-1 FileStates.fileLocks — добавлен FIFO eviction (fileLockOrder + evictFileLocksLocked), исправлен баг в evictDedupLocked (использовал recordOrder вместо dedupOrder). Тесты: TestFileStates_Eviction, TestFileStates_DedupEviction, TestFileStates_FileLocksEviction.
  • M-T-4 walkHTMLNode — рекурсивный обход заменён на итеративный stack-based с лимитом walkHTMLMaxNodes=10000 (защита от stack overflow на malicious HTML). Тесты: TestExtractTextFromHTML_DeepNesting, TestExtractTextFromHTML_MaxNodes.

Ранее исправлены (предыдущие PR)

  • M-T-2 RecordRead — I/O (Stat + hashFileContent) вынесен за пределы мьютекса.
  • M-T-3 ExecuteStreamsendStreamEvent context-aware, producer не зависает.
  • M-T-5 os.ReadFile attachments — maxAttachmentSize=100MiB + stat-проверка.
  • M-T-6 17 regex → единый скомпилированный regex с alternation.
  • M-T-7 sanitizeFilename — crypto/rand hex-суффикс от коллизий.
  • M-T-8 FetchUnseen — явный "INBOX" (RFC 3501).