Releases: pynickle/gitpulse
GitPulse v0.1.0
GitPulse v0.1.0
v0.1.0 — Reactions, Markdown Polish & Developer Experience
🎯 Reactions
GitPulse now supports GitHub reactions on issues, pull requests, and discussions. React with emoji directly from the detail view — your reactions sync instantly with GitHub.
✨ Dashboard Enhancements
- Pull Request merge checks now expand with a smooth animation, making CI status easier to scan at a glance.
- Language switcher in the navbar aligns consistently with surrounding controls.
- Navbar action buttons refined with cleaner hover states.
📝 Markdown Improvements
- Mention autocomplete (
@username) handling improved for more reliable suggestions. - Embedded media (images, videos) in markdown now respect your color mode — dark mode shows dark-source media, light mode shows light-source media.
🎨 Visual Polish
- Favicon updated to rounded variant with optimized icon assets for sharper rendering across platforms.
🛠 Under the Hood
- Server-side request validation centralized with Zod schemas for more consistent error handling.
- Added issue templates and a contributing guide to lower the barrier for new contributors.
- Pre-commit hooks migrated to
prekchecks for faster feedback. @primer/cssupdated to v22.2.1.
🤝 New Contributors
- @LuLu-ling made their first contribution in #1
📦 Stats
14 commits, 93 changed files, +4,353 / -908 lines across app, server, and shared layers.
GitPulse v0.0.6
GitPulse v0.0.6
v0.0.6 — Stability, Settings Reliability & SEO Polish
🛠 Settings Reliability
Fixed edge cases where user settings could be saved under the wrong account state. The save queue is now reset cleanly when the logged-in user changes, preventing stale preference writes.
🌐 SEO & Sharing
- Homepage title no longer duplicates as “GitPulse - GitPulse”.
- Added unified site metadata, robots indexing rules, and theme-color meta tags for dark/light mode.
- Upgraded Twitter card to
summary_large_imagefor richer link previews.
🎨 Dashboard Polish
Error states in the dashboard now fill the main content area and scale fluidly with the available space, instead of snapping to a fixed mobile size.
🔧 Under the Hood
- Tightened type safety across dashboard entities, detail payloads, and GitHub API calls.
- Normalized Pull Request detail data contracts for more consistent rendering.
- Removed unused repo detail page and settings redirect to keep the bundle lean.
- Added
prekpre-commit hooks with automatic formatting and BOM cleanup.
📦 Stats
66 commits, 141 changed files, +13,942 / -3,957 lines across app, server, shared, and infrastructure.
GitPulse v0.0.5
v0.0.5 — Browser Extension, Notification Enhancements & i18n Refactoring
🔒 GitPulse Browser Extension
New WXT-based companion extension for opening GitPulse directly from GitHub pages. Scoped browser access with HTTPS-only remote targets to prevent GitHub URL exposure through broad tab metadata. Includes automated release workflow for Chrome and Edge extension submissions. Firefox build support included.
🏷 Notification Enhancements
Labels now displayed with underline-style tags below notification titles, using each label's hex color. Author avatars shown for issue, PR, and discussion notifications with skeleton loading animation and fade transition. GraphQL query extended to fetch labels and author data in a single request, eliminating extra network overhead.
🧭 Navigation & Detail Views
Release detail navigation added to browse releases directly from the dashboard. Repo names in detail headers now clickable, linking to the repository page. PR review diff history collapses automatically after submission. Detail return controls simplified for more intuitive back-navigation.
🎨 UI Redesign & Polish
Issue, PR, and discussion detail headers redesigned with modern badge styling and improved clarity. Redundant "Pull Request" and "Discussion" badges removed. Markdown editors unified into a single FloatingMarkdownEditor component. GitHub icon replaced with non-deprecated version.
🔍 SEO & Meta Tags
Page titles and Open Graph meta tags added for better link previews. Dynamic titles applied to dashboard, issue, PR, and repo details. Issue/PR body extracted as OG description (first 160 chars).
🔧 i18n Refactoring
Shared detail namespaces separated from issueDetail — cross-pane overlay, timeline, and label keys moved to dedicated namespaces (detailOverlay, detailTimeline, detailLabels, detailActions). Stale and unreachable locale leaves removed. Issue composer draft state preserved when switching between replies.
🛠 Infrastructure & Dependencies
Nuxt updated to ^4.4.8. @nuxtjs/color-mode, oxfmt, and oxlint dependencies refreshed. Extension directory excluded from oxlint type-aware checks. Dashboard detail components reorganized under dashboard/detail for clearer ownership boundaries.
📦 Stats
33 commits, 81 changed files, +5,649 / -1,430 lines across extension, app, server, and shared layers.
GitPulse Extension v0.2.0
GitPulse Extension v0.2.0
Initial public release of GitPulse Extension.
GitPulse Extension is a WXT-based browser extension that adds a GitPulse button directly on GitHub pages, allowing you to open any GitHub URL in your GitPulse dashboard with one click.
This initial release establishes the core extension structure with content script injection on github.com, configurable GitPulse base URL through popup and options page, HTTPS-only remote target enforcement to prevent plaintext transport of private GitHub URLs, and support for both Chrome (MV3) and Firefox (MV2) builds. Includes automated release workflow for store submissions and contract tests for dashboard URL handoff.
GitPulse v0.0.4
v0.0.4 — Discussion Workflows, Navigation Overhaul & Hydration Stability
🏗 GitHub Discussions Support
Full first-class discussion workflow — browse, read, and participate in repository discussions directly from the dashboard. Discussion detail view with header, comments, answer cards, and reply threading. Comment composer with markdown support. Discussion API endpoints for fetching comments and posting replies. Discussion notifications now integrated into the notification feed alongside issues and PRs.
🔢 Notification Number Display
Issue, PR, and discussion numbers now displayed in notification items for quick identification. Discussion notifications properly routed and excluded from state enrichment to prevent data mixing.
🛡 Hydration Stability Fixes
Three SSR hydration mismatches resolved — sidebar group collapse deferred until hydrated, relative time labels anchored during hydration, and initial list branch state kept hydration-stable. These fixes eliminate console warnings and ensure consistent server/client rendering.
🎨 Avatar & UI Polish
Transparent GitHub avatars now render legible in dark mode. Avatar rendering logic consolidated into a shared GitHubAvatar component, eliminating duplication across issue, PR, and timeline cards. Navigation button visibility logic improved in repo view. Font field editing in settings made less friction-prone.
🔧 Infrastructure & Refactoring
GitHub URL parsing extracted into reusable utilities and covered by comprehensive test suite. Custom search query fields consolidated. Duplicate BranchSelector component removed. Markdown link resolver uses centralized URL navigation. Comark child node recursion guarded with proper type check. Repository detail gracefully handles repos without language metadata.
⚡ Security & Auth
Personal mode restore no longer triggers false CSRF warnings. Bun regression tests separated from Nuxt source directory.
🌐 Internationalization
Discussion-related UI strings added for en and zh-cn locales.
📦 Stats
23 commits, 73 changed files, +5,024 / -568 lines across app, server, and shared layers — 14 new files added.
GitPulse v0.0.3
v0.0.3 — Settings, File Browser, PR Review Threads & Reviewer Management
⚙️ User Settings System
Complete user settings infrastructure with server-side storage via Upstash Redis. Settings page with font picker modal for choosing from 20+ bundled fonts. Settings persisted across sessions with proper migration support. Font selection applies globally via CSS custom properties.
📁 Repository File Browser
Full repository file browsing experience with branch selection. Navigate repo contents directly within the dashboard — browse directories, view files, and navigate back/home. Branch-aware routing syncs file browsing state with navigation history. Branch selector component with search and default branch detection.
🧵 PR Review Thread Resolve/Unresolve
Resolve and unresolve review threads directly from the diff viewer and timeline. Visual toggle buttons with resolved (green) and unresolved (outline) states. API integration for thread state mutation with optimistic UI updates. Outdated thread tags displayed in timeline review cards. Parallel fetching of review comments and files for improved load performance.
👥 PR Reviewer Management
Request and remove PR reviewers from within the app. Reviewer picker component with search, avatar display, and role-based filtering. Request modal with confirmation flow. Remove reviewer functionality with proper permission checks.
⚡ Performance Optimizations
- Virtual scrolling for PR diff rendering — handles large diffs without DOM bloat
- Markdown startup cost reduced by lazy-loading Shiki grammars only when needed
- Tab badge updates debounced to avoid reactive churn
- GitHub rate-limit pressure reduced by sharing in-flight GET responses
- Redundant identity fetches eliminated across search and PR review flows
- Diff row tokenization cached to avoid repeated parsing
🌐 Internationalization
Review thread resolve/unresolve translations for en and zh-cn. PR reviewer feature labels and UI copy fully localized. Simplified landing page auth descriptions.
🎨 UI Enhancements
Collapsible group component for settings sections. Font picker modal with live preview. Review comment layout improved with resolve button inside comment card. Bulma code-size overridden for PR diff viewer to prevent layout issues.
🔧 Infrastructure
Server-side settings API (GET/PUT) for user preferences. Tab groups and custom tabs migrated to server-side storage. API cache control middleware for optimizing GitHub requests. Branch and contents API endpoints added for file browsing support.
📦 Stats
42 commits, 103 changed files, +13,409 / -1,440 lines across app, server, and shared layers — 23 new files added.
GitPulse v0.0.2
v0.0.2 — Repository Detail, PR Review Timeline & Full i18n
🏗 Repository Detail Page
Complete repo browsing experience within the dashboard. Navigate into any repository to view its rendered README, license, about section, language stats with colored icons, and fork count. Star/unstar and watch/unwatch with real-time UI feedback. Subscription (watch) and star API endpoints integrated with persistent state.
🏗 PR Review Timeline Overhaul
PR reviews now render with full per-file diff expansion, inline comment anchoring with expanded context, and a two-panel review workspace. Active review context is surfaced directly in diffs. Dismissed review context and thread reply chronology are preserved. Comment line labels and card styling improved for single-line reviews.
🔧 Markdown Renderer Migrated to Comark
Replaced @nuxtjs/mdc with Comark, the in-house Components-in-Markdown renderer. Bundled code highlighting enabled, custom image override for baseURL normalization, and prose component typing simplified. GitHub autolink grammars separated from general link parsing.
🎨 Error Page
Custom Nuxt error page with status code-aware fallback. Error preview widget for testing variant states during development.
🛡 Security Hardening
Production-grade input validation across all API surfaces: route parameters, comment bodies, lock/unlock payloads, subscription bodies, label updates, notification subject states, pagination params, and thread IDs all explicitly validated with rejection on malformed input. Blank-target links isolated, unsafe comment positions rejected, embedded qualifier quotes escaped in search queries.
🌐 Internationalization
All user-facing strings across PR/Issue headers, timeline cards, review comments, commit cards, sidebar labels, action panels, detail overlays, loading titles, and timeline controls are now fully localized with fallback support.
🔧 Authentication & Session
Non-personal sessions now persist correctly. Personal mode startup errors and PAT validation errors properly typed. Token login body normalized. Logout CSRF-protected.
🎨 UI Polish
GitHub icon added to landing navbar and detail overlay toolbar. Badge image spacing and timeline tag vertical spacing improved. Consecutive markdown images properly spaced. Empty filters state has correct margin. Changes-requested review cards softened to neutral gray with red accents.
🔧 TypeScript Hardening
Widespread type safety improvements: typed catches across API layers, typed label payloads, typed notification reasons, typed reference subjects, typed handler contracts. Fetch error message parsing centralized. Unused emit contracts removed. Component-type noise reduced across the board.
📦 Stats
185 commits, 118 changed files, +5,829 / -1,791 lines across app, server, and shared layers — 23 new files added.
GitPulse v0.0.1
GitPulse v0.0.1
Initial public release of GitPulse.
GitPulse is a Nuxt-based web app for browsing GitHub notifications, issues, pull requests, repositories, and related activity in one focused dashboard.
This first release establishes the core application structure, GitHub authentication flows, dashboard navigation, issue and pull request detail views, timeline rendering, markdown support, and repository activity browsing.