aaronagent
b82608a6f5
fix(skills,pairing): path traversal guard in uninstall, lock list_pending, hash file paths
...
- skills_hub: validate that uninstall_skill's install_path resolves
inside SKILLS_DIR before calling shutil.rmtree, preventing recursive
deletion of arbitrary directories via poisoned lock.json entries
- skills_hub: include file paths (not just contents) in
bundle_content_hash so swapping filenames between files changes the
hash, strengthening update-detection integrity
- pairing: wrap list_pending() in self._lock so _cleanup_expired() file
writes don't race with concurrent generate_code()/approve_code() calls
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
2026-05-22 19:59:24 -07:00
..
2026-05-22 01:19:01 -07:00
2026-05-21 19:17:51 -07:00
2026-03-17 02:33:12 -07:00
2026-03-31 08:48:54 +09:00
2026-03-23 07:43:12 -07:00
2026-05-18 19:37:16 -07:00
2026-04-08 02:24:32 -07:00
2026-04-01 04:18:50 -07:00
2026-05-19 22:34:05 -07:00
2026-05-19 22:34:05 -07:00
2026-05-19 22:34:05 -07:00
2026-05-15 14:00:01 -07:00
2026-05-18 16:34:24 +05:30
2026-05-15 10:36:38 +05:30
2026-05-11 11:13:25 -07:00
2026-05-12 16:33:33 -07:00
2026-04-07 13:36:38 -07:00
2026-05-16 23:05:27 -07:00
2026-05-08 11:07:38 -07:00
2026-05-07 05:02:26 -07:00
2026-05-19 00:10:43 -07:00
2026-04-07 10:25:31 -07:00
2026-05-17 11:40:05 -07:00
2026-05-07 05:11:09 -07:00
2026-04-28 23:17:39 -07:00
2026-05-22 04:10:45 -07:00
2026-05-08 16:39:32 -07:00
2026-05-08 16:39:32 -07:00
2026-05-20 01:46:40 -05:00
2026-04-21 16:41:26 -07:00
2026-05-11 11:13:25 -07:00
2026-05-11 11:03:29 -07:00
2026-04-13 04:45:07 -07:00
2026-05-22 04:10:45 -07:00
2026-04-17 20:39:25 -07:00
2026-05-18 21:15:21 -07:00
2026-05-18 10:14:38 -07:00
2026-04-02 12:40:03 +11:00
2026-05-07 05:35:33 -07:00
2026-05-20 22:56:55 -07:00
2026-05-17 13:33:26 -07:00
2026-05-19 00:12:41 -07:00
2026-05-08 09:27:26 -07:00
2026-05-08 09:27:26 -07:00
2026-05-11 11:20:58 -07:00
2026-03-18 02:55:30 -07:00
2026-03-11 20:02:36 -07:00
2026-05-11 11:13:25 -07:00
2026-05-20 01:46:40 -05:00
2026-04-11 13:59:52 -07:00
2026-05-19 11:23:15 -07:00
2026-05-16 00:57:39 -07:00
2026-05-18 10:37:35 -07:00
2026-05-22 14:21:41 -07:00
2026-05-17 23:28:45 -07:00
2026-05-21 14:18:02 -07:00
2026-05-04 02:42:16 -07:00
2026-05-21 14:18:02 -07:00
2026-05-15 01:25:33 -07:00
2026-05-22 19:59:24 -07:00
2026-05-21 14:18:02 -07:00
2026-05-21 14:18:02 -07:00
2026-05-15 14:00:01 -07:00
2026-05-18 22:03:12 -07:00
2026-05-18 10:20:07 -07:00
2026-05-11 11:13:25 -07:00
2026-04-26 19:02:55 -07:00
2026-04-23 21:51:19 -07:00
2026-05-09 18:44:58 -07:00
2026-05-21 23:36:18 -07:00
2026-05-20 09:22:28 -07:00
2026-05-18 10:51:15 -07:00
2026-05-17 02:29:41 -07:00
2026-05-11 11:20:58 -07:00
2026-05-21 14:17:39 -07:00
2026-05-19 19:27:34 -07:00
2026-04-07 10:25:31 -07:00
2026-05-21 02:38:45 +05:30
2026-05-19 19:27:34 -07:00
2026-05-11 11:13:25 -07:00