diff options
| author | Adam Malczewski <[email protected]> | 2026-06-28 14:35:08 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-28 14:35:08 +0900 |
| commit | 076edf7d1dfc4dc818f173f751dcb1e57b5baaeb (patch) | |
| tree | 6c6372f58cfff94412f1c16d5c97fdb90ccd22c1 /packaging/[email protected] | |
| parent | a610b93acb6c3f8f07a4fea9d0cd298fa3159589 (diff) | |
| download | dispatch-076edf7d1dfc4dc818f173f751dcb1e57b5baaeb.tar.gz dispatch-076edf7d1dfc4dc818f173f751dcb1e57b5baaeb.zip | |
fix(workspace-star): clean up starred cache on workspace delete + warn when concurrency service absent
Bug 1 (MEDIUM): In-memory starred cache leaks IDs for deleted workspaces.
The starredWorkspaces Set in the concurrency manager never cleaned up when a
workspace was deleted. FIX: the DELETE /workspaces/:id route now calls
concurrencyService.notifyWorkspaceStarred(id, false) after deleting, so the
deleted workspace ID is removed from the in-memory cache (preventing stale
IDs and preventing a re-created workspace with the same slug from inheriting
the old starred state).
Bug 2 (MEDIUM): Stale in-memory priority when concurrency extension is absent.
If provider-concurrency is not loaded, the star toggle persisted but the
in-memory priority cache was never updated (the optional chaining ?. silently
skipped the call). Already-queued agents kept their old priority until
restart. FIX: the star/unstar routes now check if concurrencyService is
defined and log a warning when it is absent, making the degraded behavior
visible. The starred state still persists correctly — it just does not
affect in-memory scheduling until the extension is loaded.
Tests: +5 (star round-trip with concurrency notification, invalid slug 400,
delete cleans up cache, absent-service warning log). All 1970 tests pass.
Diffstat (limited to 'packaging/[email protected]')
0 files changed, 0 insertions, 0 deletions
