workdir: project occupancy from links

This commit is contained in:
2026-07-24 09:29:25 +09:00
parent b1570aba63
commit e0b092dbc8
9 changed files with 202 additions and 21 deletions
@@ -129,6 +129,7 @@
<th>Commit</th>
<th>Status</th>
<th>Cleanliness</th>
<th>Occupied by</th>
<th>Action</th>
</tr>
</thead>
@@ -142,6 +143,14 @@
<td><code>{commitLabel(workdir)}</code></td>
<td>{workdir.status}</td>
<td>{workdir.cleanliness ?? 'unknown'}</td>
<td>
{#if workdir.occupied_by}
<span>{workdir.occupied_by.display_name}</span>
<small>{workdir.occupied_by.runtime_id}:{workdir.occupied_by.runtime_worker_id}</small>
{:else}
<span class="muted"></span>
{/if}
</td>
<td>
{#if cleanup}
<button
@@ -50,7 +50,10 @@
selectedRuntimeAllowsNoWorkdir
? []
: (options?.working_directories ?? []).filter((directory) =>
directory.status === 'active' && directory.cleanliness === 'clean' && directory.primary_worker_id == null
directory.status === 'active' &&
directory.cleanliness === 'clean' &&
directory.primary_worker_id == null &&
directory.occupied_by == null
),
);
let canStartWorker = $derived(Boolean(