Bohan Jiang and RAVN
fa797d0063
MUL-6547 fix(daemon): resolve claim project context once, workspace-scoped ( #7405 )
...
Collapses the project-context resolution that had been copied across the
issue, chat and quick-create claim paths (and would have been copied a
fourth time) into one workspace-scoped, fail-closed resolver, and hydrates
run_only autopilot project context on top of it.
- Project and resource reads are both workspace-scoped, so a dangling or
cross-tenant project reference can no longer lift another workspace's
repository URL, local directory path, title or description into a claim.
- A failed read is no longer treated as "there is no project". Transient
failures reject the claim and preserve the task for the stale-dispatched
reclaim rather than silently falling back to workspace repos.
- Source rows (issue, chat session, autopilot run, autopilot) fail closed
the same way. Previously a read error skipped the branch entirely and,
because taskToResponse seeds the runtime workspace, sailed through the
backstop isolation check — dispatching an agent with no issue context or,
for chat, no input at all, bypassing the empty-input guard.
- Workspace isolation is resolved authoritatively per branch and checked
before any context is hydrated. For run_only autopilots that check had
been a tautology, comparing the runtime workspace against itself.
- run_only autopilots now receive their configured project's repositories
and local_directory, the same contract issue-bound and quick-create tasks
already had.
Absorbs #7396 . Its inline implementation is replaced by the shared
resolver; the author's regression test is carried over unchanged.
Co-authored-by: RAVN <[email protected] >
2026-08-22 11:18:02 +08:00
..
2026-08-19 14:06:59 +08:00
2026-08-19 14:06:59 +08:00
2026-08-18 03:00:21 +08:00
2026-08-13 15:34:17 +08:00
2026-07-15 03:09:56 +08:00
2026-07-15 03:09:56 +08:00
2026-08-14 18:56:40 +08:00
2026-08-19 16:33:48 +08:00
2026-08-21 14:12:36 +08:00
2026-07-29 15:39:18 +08:00
2026-08-18 15:30:48 +08:00
2026-08-20 13:42:44 +08:00
2026-07-03 14:18:43 +08:00
2026-08-12 16:09:16 +08:00
2026-07-29 14:01:09 +08:00
2026-08-20 13:42:44 +08:00
2026-07-03 14:18:43 +08:00
2026-08-18 03:00:21 +08:00
2026-06-13 15:33:28 +08:00
2026-08-03 12:39:27 +08:00
2026-07-22 15:38:38 +08:00
2026-07-29 15:39:18 +08:00
2026-07-29 14:28:44 +08:00
2026-08-13 16:42:47 +08:00
2026-07-29 12:47:14 +08:00
2026-08-21 00:36:59 +08:00
2026-08-21 17:40:27 +08:00
2026-08-19 16:33:48 +08:00
2026-08-12 15:02:03 +08:00
2026-08-12 15:02:03 +08:00
2026-07-29 18:25:14 +08:00
2026-07-15 03:09:56 +08:00
2026-08-16 15:46:00 +08:00
2026-07-15 03:09:56 +08:00
2026-07-17 16:44:31 +08:00
2026-07-17 16:44:31 +08:00
2026-07-07 20:49:42 +08:00
2026-08-21 14:12:36 +08:00
2026-06-30 12:29:11 +08:00
2026-07-15 03:09:56 +08:00
2026-08-19 15:51:26 +08:00
2026-07-07 20:49:42 +08:00
2026-08-20 16:48:03 +08:00
2026-07-15 03:09:56 +08:00
2026-08-18 03:00:21 +08:00
2026-08-18 03:00:21 +08:00
2026-08-20 13:42:44 +08:00
2026-08-20 16:48:03 +08:00
2026-07-29 15:39:18 +08:00
2026-07-29 15:39:18 +08:00
2026-08-19 03:09:59 +08:00
2026-08-10 12:05:58 +08:00
2026-08-10 11:45:31 +08:00
2026-08-20 01:30:58 +08:00
2026-08-12 15:36:39 +08:00
2026-08-20 01:30:58 +08:00
2026-08-11 13:46:48 +08:00
2026-07-15 00:52:27 +08:00
2026-08-03 12:39:27 +08:00
2026-08-12 15:36:39 +08:00
2026-08-12 15:36:39 +08:00
2026-08-20 01:30:58 +08:00
2026-08-05 15:06:42 +08:00
2026-07-08 21:58:16 +08:00
2026-07-24 11:30:27 +08:00
2026-08-05 15:06:42 +08:00
2026-07-09 13:49:07 +08:00
2026-08-04 14:21:25 +08:00
2026-08-21 13:56:18 +08:00
2026-08-21 13:56:18 +08:00
2026-08-22 11:18:02 +08:00
2026-07-22 16:52:34 +08:00
2026-07-22 16:52:34 +08:00
2026-08-21 16:16:16 +08:00
2026-08-21 16:16:16 +08:00
2026-05-27 14:52:03 +08:00
2026-05-27 14:52:03 +08:00
2026-07-31 14:40:16 +08:00
2026-07-14 19:56:17 +08:00
2026-07-15 03:09:56 +08:00
2026-08-18 03:00:21 +08:00
2026-06-24 09:52:18 +08:00
2026-07-31 14:40:16 +08:00
2026-07-27 14:26:23 +08:00
2026-08-19 03:09:59 +08:00
2026-08-03 13:35:04 +08:00
2026-07-10 16:15:10 +08:00
2026-08-18 03:00:21 +08:00
2026-08-19 16:08:40 +08:00
2026-07-15 03:09:56 +08:00
2026-08-19 16:08:40 +08:00
2026-08-21 14:12:36 +08:00
2026-08-18 18:49:01 +08:00
2026-08-18 18:49:01 +08:00
2026-08-18 03:00:21 +08:00
2026-06-03 16:39:06 +08:00
2026-08-21 14:12:36 +08:00
2026-07-14 11:53:42 +08:00
2026-08-16 04:54:32 +08:00
2026-07-27 15:44:39 +08:00
2026-08-19 12:40:04 +08:00
2026-08-20 01:30:58 +08:00
2026-08-11 19:01:34 +08:00
2026-07-27 13:12:06 +08:00
2026-08-21 17:40:27 +08:00
2026-08-14 19:49:37 +08:00
2026-08-19 16:08:40 +08:00
2026-07-10 13:43:45 +08:00
2026-08-05 15:41:15 +08:00
2026-07-14 11:53:42 +08:00
2026-07-14 11:53:42 +08:00
2026-08-22 11:18:02 +08:00
2026-07-14 11:56:30 +08:00
2026-07-14 11:56:30 +08:00
2026-08-22 11:18:02 +08:00
2026-07-29 13:08:48 +08:00
2026-08-19 03:09:59 +08:00
2026-08-06 20:59:32 +08:00
2026-08-18 15:36:10 +08:00
2026-08-21 14:26:48 +08:00
2026-08-21 14:26:48 +08:00
2026-08-20 18:12:30 +08:00
2026-08-17 18:32:02 +08:00
2026-08-12 11:55:53 +08:00
2026-08-12 11:55:53 +08:00
2026-08-12 15:02:03 +08:00
2026-08-19 14:06:59 +08:00
2026-08-21 15:36:33 +08:00
2026-08-21 15:36:33 +08:00
2026-08-19 03:09:59 +08:00
2026-07-07 14:43:19 +08:00
2026-08-21 12:55:57 +08:00
2026-08-21 12:55:57 +08:00
2026-07-13 16:42:46 +08:00
2026-07-03 16:10:19 +08:00
2026-08-17 12:51:39 +08:00
2026-08-17 12:51:39 +08:00
2026-08-17 12:51:39 +08:00
2026-08-18 03:00:21 +08:00
2026-07-15 03:09:56 +08:00
2026-07-02 14:11:10 +08:00
2026-07-10 09:11:29 +08:00
2026-07-13 16:15:58 +08:00
2026-08-07 15:35:59 +08:00
2026-08-18 02:38:18 +08:00
2026-08-20 01:30:58 +08:00
2026-08-20 13:42:44 +08:00
2026-07-22 22:43:34 +08:00
2026-08-19 14:06:59 +08:00
2026-07-16 13:31:06 +08:00
2026-05-28 14:20:20 +08:00
2026-07-13 13:08:04 +08:00
2026-05-19 10:37:38 +08:00
2026-08-19 16:08:40 +08:00
2026-06-02 17:17:41 +08:00
2026-05-21 16:35:45 +08:00
2026-08-19 14:06:59 +08:00
2026-07-23 15:58:25 +08:00
2026-08-19 14:06:59 +08:00
2026-08-19 16:08:40 +08:00
2026-08-19 14:06:59 +08:00
2026-07-06 19:11:47 +08:00
2026-08-19 16:08:40 +08:00
2026-07-13 13:08:04 +08:00
2026-08-19 16:08:40 +08:00
2026-08-18 18:52:11 +08:00
2026-08-20 14:32:42 +08:00
2026-08-20 14:32:42 +08:00
2026-08-19 17:03:06 +08:00
2026-07-17 19:21:27 +08:00
2026-08-18 18:52:11 +08:00
2026-08-19 16:08:40 +08:00
2026-08-21 12:55:57 +08:00
2026-08-21 12:55:57 +08:00
2026-08-20 23:53:49 +08:00
2026-07-31 13:04:42 +08:00
2026-08-20 16:03:51 +08:00
2026-08-04 17:53:03 +08:00
2026-08-14 13:57:09 +08:00
2026-08-11 14:43:45 +08:00
2026-06-16 12:26:44 +08:00
2026-08-10 11:55:05 +08:00
2026-08-10 11:55:05 +08:00
2026-08-18 03:00:21 +08:00
2026-08-10 11:55:05 +08:00
2026-08-21 12:55:57 +08:00
2026-08-21 12:55:57 +08:00
2026-08-21 12:55:57 +08:00
2026-07-31 14:41:05 +08:00
2026-08-19 14:06:59 +08:00
2026-07-08 16:19:41 +08:00
2026-07-08 16:19:41 +08:00
2026-07-03 14:18:43 +08:00
2026-08-03 17:43:03 +08:00
2026-07-15 03:09:56 +08:00
2026-08-06 14:21:02 +08:00
2026-08-20 13:42:44 +08:00
2026-08-07 18:48:07 +08:00
2026-08-07 18:48:07 +08:00
2026-08-07 18:48:07 +08:00
2026-08-07 18:48:07 +08:00
2026-08-07 18:48:07 +08:00
2026-08-06 14:21:02 +08:00
2026-08-06 14:17:19 +08:00
2026-08-06 14:17:19 +08:00
2026-08-20 13:42:44 +08:00
2026-07-23 01:57:44 +08:00
2026-08-06 14:21:02 +08:00
2026-05-21 15:33:47 +08:00
2026-05-27 22:22:26 +08:00
2026-05-27 22:22:26 +08:00
2026-08-10 11:55:05 +08:00
2026-08-21 16:03:44 +08:00
2026-08-21 12:55:57 +08:00
2026-08-20 02:35:29 +08:00
2026-08-19 19:29:15 +08:00
2026-08-21 16:03:44 +08:00
2026-08-21 16:03:44 +08:00
2026-08-19 19:29:15 +08:00
2026-08-21 16:03:44 +08:00
2026-08-20 02:35:29 +08:00
2026-08-21 16:03:44 +08:00
2026-08-21 16:03:44 +08:00
2026-08-21 16:03:44 +08:00
2026-08-21 16:03:44 +08:00
2026-08-21 16:03:44 +08:00
2026-08-21 16:03:44 +08:00
2026-07-13 13:22:02 +08:00
2026-08-18 18:49:01 +08:00
2026-08-22 11:18:02 +08:00
2026-06-21 23:54:58 +08:00
2026-08-18 18:49:01 +08:00
2026-08-19 17:03:06 +08:00
2026-08-19 17:03:06 +08:00
2026-07-30 21:01:48 +08:00
2026-07-30 21:01:48 +08:00
2026-08-20 13:42:44 +08:00
2026-07-17 11:11:52 +08:00
2026-08-19 14:06:59 +08:00
2026-08-06 15:36:02 +08:00
2026-08-11 02:23:11 +08:00
2026-07-02 18:31:45 +08:00
2026-07-08 16:00:17 +08:00
2026-06-11 13:00:56 +08:00
2026-08-19 14:37:08 +08:00
2026-08-19 14:37:08 +08:00
2026-08-03 17:43:03 +08:00
2026-08-03 17:43:03 +08:00
2026-07-30 20:34:01 +08:00
2026-07-29 16:03:26 +08:00
2026-07-30 20:34:01 +08:00
2026-07-30 20:34:01 +08:00
2026-07-30 20:34:01 +08:00
2026-08-19 14:37:08 +08:00
2026-08-19 14:37:08 +08:00
2026-07-30 20:34:01 +08:00
2026-08-03 12:39:27 +08:00
2026-08-03 12:39:27 +08:00
2026-07-02 14:38:05 +08:00
2026-08-03 12:39:27 +08:00
2026-08-03 12:39:27 +08:00
2026-08-13 15:31:49 +08:00
2026-08-03 12:39:27 +08:00
2026-08-20 13:42:44 +08:00
2026-07-16 13:54:01 +08:00
2026-08-03 13:35:04 +08:00
2026-08-19 14:37:08 +08:00
2026-08-19 14:37:08 +08:00
2026-07-16 13:54:01 +08:00
2026-08-03 13:35:04 +08:00
2026-08-13 17:55:09 +08:00
2026-08-17 12:16:21 +08:00
2026-08-07 12:33:47 +08:00
2026-08-21 12:55:57 +08:00
2026-07-06 12:34:51 +08:00
2026-07-06 12:34:51 +08:00
2026-08-17 14:39:32 +08:00
2026-08-18 03:00:21 +08:00
2026-08-13 13:48:18 +08:00
2026-06-30 14:46:46 +08:00
2026-06-30 14:46:46 +08:00
2026-06-11 13:00:56 +08:00
2026-07-22 15:38:38 +08:00
2026-08-13 13:48:18 +08:00
2026-08-13 13:48:18 +08:00
2026-06-01 15:19:42 +08:00
2026-07-22 14:38:31 +08:00
2026-08-20 23:57:52 +08:00
2026-06-29 14:09:34 +08:00
2026-07-09 15:07:11 +08:00
2026-08-06 21:05:21 +08:00
2026-08-06 21:05:21 +08:00
2026-08-20 14:17:18 +08:00
2026-07-15 03:09:56 +08:00
2026-07-08 14:51:54 +08:00
2026-07-03 14:18:43 +08:00
2026-08-07 12:40:12 +08:00
2026-08-20 11:32:17 +08:00
2026-08-19 16:33:48 +08:00
2026-07-15 03:09:56 +08:00
2026-08-20 13:42:44 +08:00
2026-07-31 16:52:17 +08:00
2026-07-31 16:52:17 +08:00
2026-07-31 16:52:17 +08:00
2026-08-04 16:47:17 +08:00
2026-08-21 15:17:02 +08:00
2026-08-20 01:30:58 +08:00
2026-07-14 13:16:50 +08:00
2026-08-05 19:14:33 +08:00
2026-08-19 23:04:26 +08:00
2026-08-19 23:04:26 +08:00
2026-07-31 14:40:16 +08:00
2026-07-16 15:23:56 +08:00
2026-06-02 14:29:29 +08:00
2026-05-21 15:33:47 +08:00
2026-08-20 13:42:44 +08:00
2026-07-24 16:39:22 +08:00
2026-07-24 16:39:22 +08:00
2026-08-17 18:32:02 +08:00
2026-07-24 16:39:22 +08:00
2026-08-19 15:51:26 +08:00
2026-08-19 15:51:26 +08:00
2026-08-20 13:42:44 +08:00
2026-08-17 12:51:39 +08:00
2026-08-17 12:51:39 +08:00
2026-08-08 19:20:38 +08:00
2026-08-08 02:01:43 +08:00
2026-08-08 19:20:38 +08:00
2026-08-12 14:09:48 +08:00
2026-08-11 02:23:11 +08:00
2026-08-21 16:03:44 +08:00
2026-08-12 14:09:48 +08:00
2026-08-14 19:49:37 +08:00
2026-08-14 19:49:37 +08:00
2026-08-14 19:49:37 +08:00
2026-08-14 19:49:37 +08:00
2026-08-14 19:49:37 +08:00
2026-08-11 13:46:48 +08:00
2026-08-19 03:09:59 +08:00
2026-08-19 15:51:26 +08:00
2026-08-20 01:30:58 +08:00