Repository navigation
feat(browser-extension): redesigned popup with Insights, Recents, and keyboard control - #786
Closed
Giorgio-Germani wants to merge 1 commit into
Closed
Giorgio-Germani wants to merge 1 commit into
Giorgio-Germani wants to merge 1 commit into
Conversation
…eyboard control Complete rewrite of the browser extension UI and capabilities: - three-tab popup (Timer / Insights / Recents) in a shared Apple-style design system (styles/tokens.css, auto light/dark) - Timer tab: unified project/client search with keyboard navigation, recent + favorites chips, task dropdown with inline create, note suggestions from recent entries, live running clock with pause/stop and quick-note (PATCH on the running entry) - Insights tab: today/billable/entry stats, weekly goal, 7-day chart, top projects (reports/summary, time-entries, weekly-goals — degrades gracefully without read:reports/read:users) - Recents tab: last 7 days grouped by day with one-click track-again - global shortcuts (start/stop Ctrl+Shift+S, popup Ctrl+Shift+T) and a context-menu action to track selected text using the last project - options page: connect (password+2FA or token), read-only display of the server-managed idle policy (idle_timeout_minutes / idle_unanswered_action from timer/status), badge preference - toolbar icons regenerated as the gradient app glyph (running variant with recording dot); MV3 manifest 5.19.0 adds commands + contextMenus - dev/mock.js browser preview shim (no-op in production); tests updated (node --test), README rewritten
| export function decodeEntities(text) { | ||
| const s = String(text ?? ''); | ||
| if (!s.includes('&') || !decoder) return s; | ||
| decoder.innerHTML = s; |
|
|
||
| globalThis.fetch = async (url, init) => { | ||
| const parsed = new URL(url, window.location.origin); | ||
| const path = parsed.pathname.replace(/\/api\/v1$/, '/api/v1'); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
A complete redesign of the browser extension (follow-up to #700, picks up where the v5.18 extension left off). Same no-build vanilla MV3 setup, same
/api/v1surface, new UI and new capabilities.Closes #700 (carried forward), references #722 (idle flow kept server-authoritative, unchanged).
New in this version
Three-tab popup (380px) with a shared design system
styles/tokens.cssdesign tokens, auto light/dark, system font stack, segmented control, pill chipsTimer tab
/to focus, arrows + Enter), recent & favorites chips, last-used project preselectedInsights tab (new) — no server changes needed
/weekly-goals), 7-day chart and top projects (/reports/summary,/time-entries); degrades gracefully if the token lacksread:reports/read:usersRecents tab (new)
Global controls
Ctrl/Cmd+Shift+S, open popupCtrl/Cmd+Shift+T(commands)Options page
GET /timer/statusper the server-authoritative idle design (Still working? Reminder #722); the extension never sets them locallyHousekeeping
dev/mock.jsbrowser preview shim with demo data (no-op in production) —python -m http.server+ openpopup/popup.htmlnode --test, 18 pass); README rewritten (scopes table now includesread:reports)Notes for review
popup/andoptions/directories;lib/api.jsgainsgetSummary/getTimeEntries/getWeeklyGoals/updateTimeEntry,lib/format.jsandlib/icons.jsare new, the old rootpopup.*/options.*/lib/picker.jsare gone.commands+contextMenuspermissions; host permissions unchanged (still optional, requested at connect time).