Skip to content

💡 [Design] PR #430 接續:三階段 Hook 去重 + 資源重用 + Backup Timer 防漏(v5.0) #610

@jlin53882

Description

@jlin53882

問題背景

PR #430(已關閉)嘗試解決 Hook handler 累積問題,但 scope 太大被關閉。現有 WeakSet guard 只能阻擋相同 API 實例,無法防止新的 API 實例重複註冊。

現有 PR #603 修復了 5 個核心 memory leak,但仍有殘餘風險需要三階段預防性修復。

三階段方案(v5.0)

Phase 1:Hook Event 去重(~40 行)

在每個 internal hook handler 入口加入 _dedupHookEvent 檢查。

Phase 2:Heavy Resources 重用(~110 行)

使用 singleton pattern,確保 heavy 資源只初始化一次,stop() 時完整清理 8 個資源。

Phase 3:Backup Timer 防漏(~35 行)

加入 _backupTimerActive flag + _stopBackupTimer() await。

實作順序

  1. Phase 1(最小 scope,~40 行)
  2. Phase 2(需要理解現有資源建立流程)
  3. Phase 3(與 backup 邏輯整合)

相關連結

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions