Skip to content

fix(desktop): remove stale recent projects (PRD-7464) (#2827)#779

Merged
inkeep-oss-sync[bot] merged 1 commit into
mainfrom
copybara/sync
Jul 23, 2026
Merged

fix(desktop): remove stale recent projects (PRD-7464) (#2827)#779
inkeep-oss-sync[bot] merged 1 commit into
mainfrom
copybara/sync

Conversation

@inkeep-oss-sync

Copy link
Copy Markdown
Contributor

Copybara-translated 1 Inkeep OSS change. Rebase-merge this PR so the prepared commit lands directly on public main.

* fix(desktop): remove stale recent projects (PRD-7464)

Bring recent-project removal to VS Code "Open Recent" parity across every
surface, over the single canonical recentProjects list.

- Switcher dropdown + command palette: per-row remove (hover × sibling +
  right-click "Remove from recent projects"), shared recent-remove-controls.
- Missing recents are no longer badged/disabled; they stay openable and
  self-clean on open (main prunes the stale entry, toasts the window).
- New ok:project:recent-removed-missing push + onRecentRemovedMissing bridge
  method (all three contract mirrors) drive the toast + Navigator list drop.
- removeRecentProject already clears projectSessions / projectWindowBounds /
  lastOpenedProject alongside the list row.

* Stop tracking the OpenKnowledge project skill

The `open-knowledge` skill is regenerated per machine and version-stamped per app build, so tracking it causes recurring sync conflicts. It is now git-ignored.

* fix(desktop): type the recent-removed-missing channel and gate prune on genuine-missing

Two review-found corrections to the PRD-7464 recents removal:

- Register ok:project:recent-removed-missing in EventChannels so the typed
  sendToRenderer call type-checks (was a TS2345 that reddened desktop
  typecheck / the Open Knowledge validation gate).
- Replace the raw existsSync gate in pruneRecentIfMissing with an errno-aware
  checkProjectDirExists probe so a recent whose folder is present but
  momentarily unreadable (EACCES, unmounted volume, restricted parent) is no
  longer wrongly dropped; only a genuine ENOENT miss prunes. Adds 5
  checkProjectDirExists unit tests (exists / ENOENT / file / EACCES / unsafe).

* fix(desktop): add onRecentRemovedMissing to the file-tree e2e mock bridge

installRecentRemovedListener (installed at main.tsx boot) subscribes via
bridge.onRecentRemovedMissing unguarded, matching the sibling-listener pattern
where the test mocks mirror the real bridge. The inline addInitScript mock in
file-tree-create.e2e.ts is untyped, so it escaped the OkDesktopBridge type
check and was missing the new method. Booting the app in that test threw, the
restored tabs never rendered, and "desktop refresh preserves restored tabs"
failed deterministically in CI. handoff-mocks.ts was already updated by the
feature; this completes the one inline mock that was missed.

* fixup! local-review: address findings (pass 1)

* fixup! local-review: address findings (pass 2)

GitOrigin-RevId: f8e1d38f6e047857efca4d1ef769d8e50aca54cd
@inkeep-oss-sync
inkeep-oss-sync Bot merged commit 6dca21b into main Jul 23, 2026
@inkeep-oss-sync
inkeep-oss-sync Bot deleted the copybara/sync branch July 23, 2026 06:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant