OG T
2fe8062fb8
refactor(api): Re-Review S1/S2/S3 改善 — 消除重複+防禦性驗證+測試隔離
S1: 抽取 _execute_and_observe() 公用方法
- 消除 repair_by_uri 中 3 處重複的 execute+audit+langfuse 邏輯
- 統一 AuditLog + Langfuse trace 寫入路徑
S2: SSH username 防禦性驗證
- 新增 validate_ssh_user() + _SSH_USER_RE 正則
- 在 _ssh_execute() 入口驗證 user 參數
- 防止 user@host 拼接產生非預期行為
- 新增 8 個 username 驗證測試
S3: Singleton 測試重置
- 新增 _reset_for_test() classmethod
- 避免跨測試狀態污染
- 新增 2 個 singleton reset 測試
測試: 55/55 全數通過 (原 45 + 新 10)
首席架構師 Re-Review: 91/100 ✅ 通過,3 個 Suggestion 全數實裝
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-04-07 11:17:40 +08:00
..
2026-04-04 11:55:09 +08:00
2026-03-26 16:06:20 +08:00
2026-04-05 14:45:02 +08:00
2026-03-31 16:25:00 +08:00
2026-04-06 11:49:24 +08:00
2026-03-29 15:27:49 +08:00
2026-03-29 15:27:49 +08:00
2026-04-05 22:08:08 +08:00
2026-03-29 15:48:03 +08:00
2026-03-31 12:16:54 +08:00
2026-04-05 15:40:40 +08:00
2026-04-01 11:11:50 +08:00
2026-04-07 11:17:40 +08:00
2026-03-31 16:16:16 +08:00
2026-03-31 12:20:29 +08:00
2026-03-26 16:06:20 +08:00
2026-03-26 16:06:20 +08:00
2026-03-29 20:49:23 +08:00
2026-04-03 14:00:21 +08:00
2026-04-05 01:49:06 +08:00
2026-04-04 12:16:28 +08:00
2026-04-05 00:14:50 +08:00
2026-04-05 00:14:50 +08:00
2026-03-26 16:06:20 +08:00
2026-03-31 14:17:36 +08:00
2026-03-29 16:23:30 +08:00
2026-03-23 23:51:37 +08:00
2026-04-04 18:05:25 +08:00
2026-04-01 21:11:45 +08:00
2026-03-29 15:27:49 +08:00
2026-03-29 21:23:07 +08:00
2026-03-31 16:16:16 +08:00
2026-04-01 13:12:02 +08:00