Skip to content

feat(t103): cross-device pin and history sync with new tab omnibox#16

Merged
duongdev merged 2 commits into
mainfrom
feat/t103-sync-pins-history-omnibox
Jul 8, 2026
Merged

feat(t103): cross-device pin and history sync with new tab omnibox#16
duongdev merged 2 commits into
mainfrom
feat/t103-sync-pins-history-omnibox

Conversation

@duongdev

@duongdev duongdev commented Jul 8, 2026

Copy link
Copy Markdown
Owner

Summary

Pins and browsing history now sync across devices via the web server, and the New Tab modal becomes an omnibox. See ADR-0017.

  • Pin sync — the web server is the source of truth (web/PWA devices already share it). Electron opts in with a per-device Sync setting (toggle + a plaintext tailnet server URL): pin CRUD then rides the shared backend via syncOrLocal, falling back to the local store on any network failure. First enable is server-wins (Electron re-loads the server's pins).
  • Browsing history — CDP exposes no History API, so core/history-store.js records it by diffing the existing /json tab poll (page targets only) into frecency-ranked visits, persisted server-side (web-history.json) and served at /api/history.
  • New Tab omniboxnew-tab-dialog.tsx now suggests history (matched on URL and title, diacritic-safe) plus a "Switch to tab" action for tabs already open (CDP + local), keeping the pinned quick-launch row for the empty state.
  • Tab-item polish — two-line tab titles now fall back to a muted URL on the second line, vertically-centered favicon, bigger centered close button, and a title+URL tooltip on the right.

Testing

  • New pure-logic tests (TDD): core/history-store.test.ts + src/lib/tab-suggest.test.ts (25 tests).
  • pnpm typecheck, pnpm test (1049), pnpm test:e2e (49) green; biome clean on changed files.
  • Verified the omnibox + switch-to-tab and the tab-item polish against a live remote browser via the web build; Electron main process boots clean.

Task: docs/tasks/done/103-sync-pins-and-history-across-devices-with-new-tab.md
ADR: docs/adr/0017-shared-sync-backend-for-pins-and-history.md

@dokploy-2026-03-01-6ei3s7

dokploy-2026-03-01-6ei3s7 Bot commented Jul 8, 2026

Copy link
Copy Markdown

Dokploy Preview Deployment

Name Status Preview Updated (UTC)
cdp-browser-app ✅ Done Preview URL 2026-07-08T19:37:56.602Z

@duongdev duongdev merged commit 8bd12ec into main Jul 8, 2026
3 checks passed
@duongdev duongdev deleted the feat/t103-sync-pins-history-omnibox branch July 8, 2026 19:51
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