feat: render mermaid diagrams and fix comment overflow#123
Closed
harivansh-afk wants to merge 114 commits intostylessh:mainfrom
Closed
feat: render mermaid diagrams and fix comment overflow#123harivansh-afk wants to merge 114 commits intostylessh:mainfrom
harivansh-afk wants to merge 114 commits intostylessh:mainfrom
Conversation
Integrate ultracite as the Biome configuration preset across the monorepo, replacing manual biome.json configs with extends-based biome.jsonc files. Set up husky pre-commit hook with lint-staged to auto-fix staged files on commit.
…tylessh#9) - Create @quickhub/icons package wrapping @hugeicons/react with stable aliases - Add horizontal topbar with user avatar dropdown, nav tabs, and theme switcher - Establish layout shell: muted background surface with rounded content card - Add surface tokens (surface-0/1/2) for layered background levels - Tune typography: 13px body at weight 450, 500 for interactive elements - Configure dark mode with inverted surface hierarchy and elevated popovers - Update button, dropdown, and select components for consistent radius and transitions - Move dashboard route from /dashboard to / with protected layout wrapper
* Share local D1 state across worktrees * Only share local D1 state in worktrees
* Redesign overview page with metric cards and PR comment preview Rebuild the overview page with a contained max-w-3xl layout featuring Luma-style metric cards (open PRs, issues, review requests), a recent pull requests list with state-colored icons and inline comment preview, and a shared GitHub Flavored Markdown renderer in the UI package. * Extract PullRequestRow component and add custom scrollbar Move PullRequestRow into #/components/pulls/ for feature-based organization. Add custom scrollbar styles with stable gutter, thumb-only rendering, and auto-hide on inactivity. Add welcome header to overview. * Fix markdown images breaking inline flow in table cells
Build detail pages at /$owner/$repo/pull/$id and /$owner/$repo/issues/$id with two-column layout: content on the left (header, description, activity timeline with comments, comment box) and metadata sidebar on the right (reviewers, participants, assignees, milestones, details). PR view includes merge status card with CI checks, review state, branch status, and update branch action. Stacked participant avatars with tooltips. Smaller tooltip styling globally. Issue rows now link internally instead of to GitHub.
* Improve dashboard caching and preloading * Refine dashboard detail route loading
Configure remote D1 deployment
… polish (stylessh#24) - Add shiki-based syntax highlighting to markdown code blocks with custom Vercel light/dark themes, copy button, and React Suspense for flash-free rendering - Move issue labels to sidebar with theme-aware label pill styling - Add icons to PR detail sidebar rows (calendar, clock, message, file, commit) - Restructure PR header layout with copyable branch badges - Add diff boxes visualization to PR stats bar - Darken green-500 in light mode, switch to Geist Mono variable font
* Add PR review page with diff viewer, inline comments, and file tree Introduces a dedicated code review page at /$owner/$repo/review/$pullId powered by @pierre/diffs for syntax-highlighted diffs with multi-line comment support via gutter drag selection. Includes resizable file tree sidebar, review submission (Comment/Approve/Request Changes), and proper dark/light theme integration. * Fix CF Workers deployment: exclude shiki from server bundle Shiki's bundled language grammars (~1.5 MB) were being included in the server bundle via @pierre/diffs and markdown.tsx, pushing the worker over the 3 MiB free plan limit. - Add Vite plugin to stub shiki in SSR environment - Lazy-load PatchDiff component to avoid SSR import chain to shiki - Guard shiki highlighter initialization to client-only in markdown.tsx
Adds /$owner/$repo/issues and /$owner/$repo/pulls pages with URL-driven filtering, sorting, search, and pagination via nuqs. Reuses the existing FilterBar with a new useRepoListFilters hook that keeps all state in the URL. Includes keepPreviousData for smooth page transitions and throttled URL params to reduce API calls.
…ylessh#98) * Add real-time webhook revalidation via Durable Objects and WebSockets Replace the one-shot polling system (useGitHubSignalRefresh + SSE endpoint) with a persistent WebSocket connection backed by a Cloudflare Durable Object. When a GitHub webhook arrives, the signal is broadcast to all connected clients, which then invalidate only the matching React Query caches instantly. * Keep WebSocket connected when tab loses focus Removes the visibility change listener that disconnected/reconnected the signal stream on tab blur/focus, preventing missed webhook updates.
…stylessh#99) - Define CHROME_EXTENSION_STORE_URL / FIREFOX_EXTENSION_STORE_URL in extension-store-url - getExtensionStoreInstallUrl reads those constants only (avoids stale README URLs) - siteConfig re-exports same constants; detect FxiOS for Firefox iOS
…sh#100) * Add 5-minute polling fallback for webhook signal revalidation The WebSocket-based signal stream can miss events if the connection drops momentarily. This adds a polling fallback that checks signal timestamps on the server every 5 minutes and invalidates stale queries if any signals were missed. * Update generated route tree
…hecks (stylessh#101) issues.tsx acted as an unintended layout parent for issues.$issueId.tsx due to TanStack Router dot-notation, but never rendered <Outlet />, so child routes had nowhere to mount — the URL changed but content froze. Renamed to issues.index.tsx to make it a sibling index route. Also added defaultPendingComponent for immediate loading feedback on all transitions and cached the _protected beforeLoad auth result to eliminate redundant server round-trips on every in-app navigation.
stylessh#103) - Fix table top spacing by adding flex container to suppress whitespace nodes - Add not-prose to Markdown wrapper to prevent Tailwind Typography overrides - Fix plain code block contrast in light mode with text-foreground - Increase list item gap from 0.5 to 1.5 for better spacing - Add GitHub-flavored alert support (NOTE, TIP, WARNING, etc.) via remark plugin - Wire up topbar more-actions button as dropdown with repo, issue, and X links - Add XLogo brand icon - Improve file tree row hover visibility in dark mode (surface-0 → surface-1)
…stylessh#102) Google Safe Browsing flagged the production site as phishing due to the OAuth login flow on a newer domain. Add HSTS, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, and Permissions-Policy headers to all responses from the worker entry point.
Restructure README getting-started into numbered steps with field-by-field instructions, move reference tables into collapsible sections, and add detailed comments to .dev.vars.example for each credential group.
…on (stylessh#110) - Create custom QuickHub light/dark themes for @pierre/diffs, replacing color override unsafeCSS hacks with proper theme registration - Add threaded comment containers with reply forms and inline reply CTA for both PR detail activity and review diff pages - Add comment more-menu dropdown (copy link, copy markdown, edit, hide, delete) with author-only destructive actions - Add resolve/unresolve thread support via GraphQL mutations with collapse-on-resolve behavior and toggle icon in file headers - Add icon+spinner loading pattern to reply and send CTAs
…ssh#111) * Group timeline events and show conflicting files in merge card - Group consecutive label add/remove events by same actor into single timeline entries - Group consecutive review request events the same way - Detect and display conflicting file paths in PR merge status card - Conflicts section uses collapsible pattern matching checks section * Fix fork PR support: CI triggers, head branch label, and repo tab query pruning - Run CI checks on fork PRs via pull_request_target with explicit activity types - Show username:branch for fork PR head refs in detail header - Add repo tab matching to prevent tree queries from being pruned mid-flight
* Fix README image asset URLs * add more edge cases --------- Co-authored-by: Prem Sathisha Etagi <premsathisha@users.noreply.github.com> Co-authored-by: Alan Daniel <stylesshjs@gmail.com>
…tylessh#112) * Add comment reply action, thread rendering, and fix timeline date sorting - Add inline reply form for issue/PR comments with quoted parent context - Detect and render comment threads via blockquote pattern matching - Fix reviewed events missing timestamps by reading submitted_at fallback * Simplify CI to single pull_request trigger with no conditional guards * Deduplicate check runs by name in merge status card When a workflow re-runs, GitHub creates new check run entries with the same name but a new id. Keep only the latest run (highest id) per name so the checks list doesn't show stale skipped/cancelled duplicates.
Co-authored-by: Prem Sathisha Etagi <premsathisha@users.noreply.github.com>
* Refine PR merge and branch update permissions * show/hide bypass check based on met criterias --------- Co-authored-by: Alan Daniel <stylesshjs@gmail.com>
* fix: hide merge section for users without merge permissions * feat: merge commit form, close/reopen PR, and reviewers empty state - Add inline commit message form when merging (title + extended description, pre-filled from first commit) - Add close/reopen PR button next to send in comment box - Add updatePullState server function - Pass commitTitle and commitMessage through to GitHub merge API - Add empty state in reviews section when no reviewers added - Style commit form with surface background to match other sections * fix: simplify merge bypass to rely on server-provided status Remove client-side guesswork from bypass logic. Now only uses server-derived isMergeBlocked, canBypassProtections, and hasConflicts. No auto-bypass — user must explicitly opt in. Bypass hidden for conflicts since GitHub rejects those regardless of permissions.
Render mermaid code blocks as SVG diagrams via lazy-loaded mermaid library instead of displaying raw text. Change overflow-hidden to overflow-auto on review comment thread wrappers so long content scrolls instead of being clipped.
* feat: add inbox page for GitHub notifications Adds a split-view inbox page (Linear-style) with notification list sidebar and content preview pane that renders actual PR/Issue detail pages. - Notification list with unread/all filter, mark as read/done, archive actions - Avatar stack showing all participants (author, assignees, reviewers, commenters) - Subject state-aware icons and colors (open/closed/merged) - Prefetch next notification's data on selection for instant navigation - Fix closed PR merge status display in detail header and activity feed - Repo name in preview header links to repo overview - Hoisted regexes and memoized components for performance * fix: use typed route params for repo link in inbox preview header * feat: add unread notification dot to inbox tab and polish inbox list - Show blue dot on Inbox nav tab when unread notifications exist - Remove bottom border from last inbox list item
Render RepoActivityCards (Pull Requests, Issues, Discussions) into the SidePanelPortal on the pulls and issues list pages, matching the repo overview layout. Also ensure the "View all" link always appears in activity cards even when there are no open items.
Contributor
Author
stylessh
requested changes
Apr 16, 2026
Comment on lines
+201
to
+213
| const mermaidPromise: Promise<{ default: any }> = | ||
| typeof window !== "undefined" | ||
| ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment | ||
| // @ts-ignore - mermaid types not available at check-types time | ||
| import("mermaid").then((m: any) => { | ||
| m.default.initialize({ | ||
| startOnLoad: false, | ||
| theme: "neutral", | ||
| securityLevel: "loose", | ||
| }); | ||
| return m; | ||
| }) | ||
| : new Promise(() => {}); |
Owner
There was a problem hiding this comment.
this looks weird, i wonder if there's a better approach.
also MermaidBlock component is complex enough to have its own file
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.
Summary
overflow-hiddentooverflow-autoon thread wrappers in both the activity timeline and review page