Skip to content

Remove wrangler.json from git#148

Closed
gregor-tokarev wants to merge 135 commits intostylessh:mainfrom
gregor-tokarev:main
Closed

Remove wrangler.json from git#148
gregor-tokarev wants to merge 135 commits intostylessh:mainfrom
gregor-tokarev:main

Conversation

@gregor-tokarev
Copy link
Copy Markdown
Contributor

@gregor-tokarev gregor-tokarev commented Apr 17, 2026

Summary

Wrangler.json should be removed from gear indexing, because for each contributor database IDs, KV IDs, we would be different, and this setup should work only

Changes

  • apps/dashboard/wrangler.jsonc
  • apps/dashboard/.gitignore

Open questions

Would it affect deployment to claudflare itself? Or should we not remove it but modify in ci before deployment?

Screenshots

image

Summary by CodeRabbit

  • Documentation

    • Added Cloudflare Wrangler configuration setup instructions. Users must create a local configuration file from the provided template and populate required account and resource identifiers.
  • Chores

    • Updated configuration template with placeholder values and excluded the live configuration file from version control.

stylessh added 30 commits April 7, 2026 10:32
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
… 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
stylessh and others added 17 commits April 15, 2026 18:36
* feat: add test script and CI check for pull requests

Wire up `pnpm test` via Turborepo to run Vitest across all workspace
packages, and add a required Test job to the PR checks workflow.

https://claude.ai/code/session_01Tw4Aikrys2TqqyAmC9AEXe

* fix: align github.server and github-cache tests with refactored source

- Mock `@tanstack/react-start/server` in github-cache tests to avoid
  slow dynamic import that caused a timeout on the first test
- Add `Octokit.defaults` to the octokit mock so installation client
  tests can call the static method
- Mock `configureGitHubRequestPolicies` and update assertions to match
  the refactored code that delegates request policies instead of
  configuring throttle/retry inline

https://claude.ai/code/session_01Tw4Aikrys2TqqyAmC9AEXe

* chore: rename test CI check to "Test Suite"

https://claude.ai/code/session_01Tw4Aikrys2TqqyAmC9AEXe

---------

Co-authored-by: Claude <noreply@anthropic.com>
* Fix shortcut hints

* Polish shortcut navigation

* Remove PR screenshot assets

---------

Co-authored-by: Prem Sathisha Etagi <premsathisha@users.noreply.github.com>
# Conflicts:
#	apps/dashboard/src/routes/_protected/settings/shortcuts.tsx
* feat: add drag-to-reorder tabs and "close merged" context menu option

- Add native HTML drag-and-drop to reorder dashboard tabs, persisted to localStorage
- Add "Close merged" context menu option with purple PR icon to bulk-close merged PR/review tabs
- Track merged state on tabs via explicit `merged` field with iconColor fallback for existing tabs

* fix: add merged field to useRegisterTab type signature
…lob/tree routes

* feat: add file explorer with tree sidebar, syntax highlighting, and blob/tree routes

Add a split-panel code explorer accessible from the repo overview file tree.
Clicking any file or folder navigates to tree/blob routes matching GitHub's
URL convention. The explorer features:

- Resizable left sidebar with recursive file tree (lazy-loaded directories)
- Folder view with commit messages and timestamps in the right pane
- Shiki syntax-highlighted code viewer with line numbers, copy, and raw download
- File-specific latest commit bar (fetches last commit affecting that file)
- Progressive BFS prefetching of all tree nodes to eliminate loading spinners
- Mobile drawer pattern for file tree (matches review page)
- Ref parsing from splat URLs with longest-branch-match strategy

* feat: shared file search, per-entry commits, image preview, and UI polish

- Extract file search card into shared component for reuse across repo sidebar and PR review page
- Add fuzzy file search library (fuzzy-file-search.ts)
- Fetch per-entry last commit data in folder view and file tree (commit message + relative time)
- Render image files (png, jpg, gif, etc.) as media preview instead of blob content
- Add preview/code toggle for SVG files
- Fix long-line background rendering by moving overflow to outer wrapper with sticky line numbers
- Split directory node click: arrow toggles expand, name navigates to folder
- Center README content with max-w-3xl and increased vertical padding
- Use bg-surface-1 for latest commit bar
- Align search card top padding with content pane
- Add F shortcut to focus search in PR review page

* perf: optimize re-renders and batch commit queries

- Batch per-entry commit messages into a single GraphQL query with
  aliased history fields instead of N separate REST calls
- Add explorer-path-store (useSyncExternalStore) so tree nodes subscribe
  to derived isActive booleans — only 2 nodes re-render on navigation
- Memoize scope objects in route components to stop busting memo on
  every child
- Prevent same-URL navigation on already-active tree nodes
- Stabilize callbacks in RepoExplorerLayout (useCallback + imperative
  reads from store)
- Isolate pathname subscription in dashboard-tabs via
  ScrollActiveTabIntoView renderless component
- Fix branch switch in blob view navigating to tree route
- Add light-mode border to branch selector button
* feat: filter private repos by GitHub App installation access

Build a cached installation access index that tracks which repos/owners
the GitHub App is installed for. Private repos are only shown if the
owning account has an "all" installation or the specific repo is in the
"selected" set. Public repos always pass through.

- Add `installationAccess` signal key and cache policy (30 min stale)
- Webhook events (installation, installation_repositories,
  github_app_authorization) invalidate the index immediately
- `getInstallationAccessIndex` fetches installations and paginates
  selected repos, cached via getOrRevalidateGitHubResource
- `isRepoVisibleWithInstallationAccess` filter utility (fail-open
  when no app is configured)
- Apply filter in `getUserRepos` (parallel fetch with repo list)
- Expose `getInstallationAccess` server function for other consumers
- 7 new tests covering all filter scenarios

* feat: extend installation access filtering to all GitHub data flows

Add isPrivate to RepositoryRef and all GraphQL repository fragments so
the installation access filter can be applied everywhere, not just
getUserRepos.

- Add isPrivate to RepositoryRef type and GitHubGraphQLRepositoryRef
- Update buildRepositoryRef, parseRepositoryRef, mapGraphQLRepositoryRef
- Add isPrivate to GraphQL fragments for pull search, issue search,
  pull detail, and issue detail queries
- Add generic filterItemsByInstallationAccess helper and specialized
  filterMyPullsResult / filterMyIssuesResult wrappers
- Apply filter in getMyPulls, getMyIssues (parallel fetch with result)
- Apply filter in searchCommandPaletteGitHub (parallel with search)
- Apply filter in getNotifications (parallel with notification fetch)
- Apply filter in getUserPinnedRepos

* chore: add debug logs throughout installation access filtering

Add debug() calls so the access index building and filtering behavior
is fully observable in local dev:

- Log when fetching the index (cache miss vs resolved from cache)
- Log each installation's access mode (all/selected/suspended)
- Log the full built index (owners, repos, counts)
- Log whenever items are filtered out, with repo names and counts
  (getUserRepos, getMyPulls, getMyIssues, command palette,
  notifications, pinned repos)

* feat: refresh installation access cache when returning from GitHub

Add visibilitychange listener to /setup page and access dialog that
busts the server-side installation access cache and invalidates all
GitHub queries when the user returns from configuring permissions.

* fix: address review feedback on installation access filtering

- Paginate GET /user/installations (handles >100 installations)
- Let transient API errors propagate instead of silently failing open
- Use app-user client (not OAuth) for listInstallationReposForAuthenticatedUser
- Default unknown repo visibility to null instead of false (public), so
  REST search results are checked against the access index
- Wrap refreshInstallationAccess in try/finally so client-side cache
  invalidation runs even if the server call fails
…elect

* feat: add open current page on github shortcut and command to cmd+k select

* chore: reconsidered ui change

* feat: Do not apply extension redirects for certain referers.
* feat: persist selected clone protocol in code explorer

* apply suggestion
…nges

Subscribe pulls/issues mine and repos.list caches to installationAccess
signals, bust installation access row on refresh, so setup changes reflect
immediately instead of waiting for unrelated cache TTLs.
* feat(comments): R2 media uploads and composer improvements

Add Cloudflare R2-backed image/video upload for issue/PR comments (multipart route, finalize HTML embeds). Integrate react-dropzone with inline uploading placeholders, scroll-to-actions when needed, and remote R2 binding for local dev. Extend MarkdownEditor with field-sizing, non-blocking uploads, replaceUploadPlaceholder, and conditional scroll behavior. Document optional R2_PUBLIC_BASE_URL in .dev.vars.example.

* fix(ci): disable Cloudflare remote bindings during Vitest

Wrangler remote mode (R2 remote: true) requires wrangler login; GitHub Actions has no session, so Vitest failed at Vite startup. Set @cloudflare/vite-plugin remoteBindings to false when CI or VITEST is set so tests use local Miniflare only.
* Fix navbar avatar fallback

* Delay avatar fallback to prevent initials flash on refresh

* Render avatar fallback immediately when image is missing

---------

Co-authored-by: Prem Sathisha Etagi <premsathisha@users.noreply.github.com>
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 17, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: d34d95c3-40b7-488f-a1a4-d0a9941a5b1b

📥 Commits

Reviewing files that changed from the base of the PR and between 4d570ab and 4f38646.

📒 Files selected for processing (2)
  • apps/dashboard/README.md
  • apps/dashboard/wrangler.jsonc.example
✅ Files skipped from review due to trivial changes (2)
  • apps/dashboard/README.md
  • apps/dashboard/wrangler.jsonc.example

📝 Walkthrough

Walkthrough

Added Wrangler configuration setup for the Cloudflare Workers environment. Changes include updating .gitignore to exclude wrangler.jsonc, adding setup documentation, and replacing hardcoded values in the example configuration template with placeholder values for user customization.

Changes

Cohort / File(s) Summary
Wrangler Configuration Setup
apps/dashboard/.gitignore, apps/dashboard/README.md, apps/dashboard/wrangler.jsonc.example
Added git ignore pattern for wrangler.jsonc, included setup documentation with instructions to copy from .example file and populate Cloudflare resource identifiers (account_id, D1 database IDs, KV namespace IDs, R2 bucket names), and updated template configuration with placeholder values for all resource-specific fields.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (2 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title mentions removing wrangler.json from git, but the PR actually removes wrangler.jsonc (with 'c' suffix) and adds gitignore rules plus documentation—only partially capturing the full scope. Clarify the title to be more specific: consider 'Ignore wrangler.jsonc and document setup' or similar to reflect all three file changes.
Description check ❓ Inconclusive The description provides context but is incomplete: it lacks clear bullet-point details under Changes, has an incomplete sentence in Summary, and the Test Plan section is entirely missing from the template structure. Complete the Summary with full sentences, expand Changes to list all file modifications, and add a Test Plan section describing how to verify the changes work correctly.
✅ Passed checks (1 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
apps/dashboard/.gitignore (1)

15-15: Consider ignoring both .json and .jsonc variants.

Wrangler supports multiple config file formats (wrangler.json, wrangler.jsonc, wrangler.toml). The current pattern only covers .jsonc. Consider whether other variants should also be ignored.

🔧 Optional pattern expansion

If contributors might use different formats locally:

-wrangler.jsonc
+wrangler.json
+wrangler.jsonc

Or use a pattern (though less explicit):

-wrangler.jsonc
+wrangler.json*

Note: Only add this if multiple formats are actually expected in local development.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/dashboard/.gitignore` at line 15, The .gitignore currently only lists
"wrangler.jsonc"; update the ignore entries to cover other Wrangler config
variants by adding "wrangler.json" and/or "wrangler.toml" (or a concise pattern
like "wrangler.*") so local config files in formats .json, .jsonc, or .toml are
ignored; modify the apps/dashboard/.gitignore to include these additional
patterns (reference existing "wrangler.jsonc" entry) depending on which formats
contributors may use.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@apps/dashboard/.gitignore`:
- Line 15: .gitignore currently excludes wrangler.jsonc but there's no
example/template committed; add a template file named wrangler.jsonc.example
that documents the required structure and placeholder values (matching the keys
used by your Cloudflare Worker setup such as d1_databases, binding,
database_name, database_id, migrations_dir) and commit it alongside keeping
wrangler.jsonc in .gitignore; also update the project's README or CONTRIBUTING
to instruct contributors to copy wrangler.jsonc.example to wrangler.jsonc and
fill in their own credentials.
- Line 15: Add a template wrangler config and local setup docs so new
contributors know required keys: create apps/dashboard/wrangler.jsonc.example
containing placeholder fields (e.g., account_id, kv_namespace_ids,
durable_object names) matching the real wrangler.jsonc structure, and add a
brief apps/dashboard/README.md (or update CONTRIBUTING.md) with steps to copy
wrangler.jsonc.example to wrangler.jsonc, fill in project-specific IDs, and note
that deployments are manual (pnpm run deploy); ensure filenames referenced in
docs match wrangler.jsonc and wrangler.jsonc.example exactly.

---

Nitpick comments:
In `@apps/dashboard/.gitignore`:
- Line 15: The .gitignore currently only lists "wrangler.jsonc"; update the
ignore entries to cover other Wrangler config variants by adding "wrangler.json"
and/or "wrangler.toml" (or a concise pattern like "wrangler.*") so local config
files in formats .json, .jsonc, or .toml are ignored; modify the
apps/dashboard/.gitignore to include these additional patterns (reference
existing "wrangler.jsonc" entry) depending on which formats contributors may
use.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1589a189-83f6-4075-a21a-52ec36c3a2c5

📥 Commits

Reviewing files that changed from the base of the PR and between 4a0c0e2 and 4d570ab.

📒 Files selected for processing (2)
  • apps/dashboard/.gitignore
  • apps/dashboard/wrangler.jsonc
💤 Files with no reviewable changes (1)
  • apps/dashboard/wrangler.jsonc

Comment thread apps/dashboard/.gitignore
.vinxi
__unconfig*
todos.json
wrangler.jsonc
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion | 🟠 Major

Add a template file to document required configuration structure.

To help contributors set up their local environment, commit a template file (e.g., wrangler.jsonc.example) that documents the expected structure with placeholder values. This is a standard practice when ignoring environment-specific configuration files.

📝 Suggested approach
  1. Create apps/dashboard/wrangler.jsonc.example with placeholder values:
{
  "d1_databases": [
    {
      "binding": "DB",
      "database_name": "diffkit-db",
      "database_id": "<YOUR_DATABASE_ID>",
      "migrations_dir": "drizzle"
    }
  ]
  // Add other configuration sections with placeholders
}
  1. Update README or contributing docs to explain how to copy and configure the template.

  2. Keep this .gitignore entry to prevent committing actual credentials.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/dashboard/.gitignore` at line 15, .gitignore currently excludes
wrangler.jsonc but there's no example/template committed; add a template file
named wrangler.jsonc.example that documents the required structure and
placeholder values (matching the keys used by your Cloudflare Worker setup such
as d1_databases, binding, database_name, database_id, migrations_dir) and commit
it alongside keeping wrangler.jsonc in .gitignore; also update the project's
README or CONTRIBUTING to instruct contributors to copy wrangler.jsonc.example
to wrangler.jsonc and fill in their own credentials.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Check CI/CD configuration for wrangler config handling

# Check for CI/CD config files
fd -t f 'workflow|pipeline|deploy' -e yml -e yaml -e json

# Search for wrangler-related commands in CI/CD
rg -n -C3 'wrangler' --glob '*.{yml,yaml,json}' --glob '.github/**/*'

# Check for wrangler config generation or secrets management
rg -n 'wrangler\.json' --glob '*.{yml,yaml,json,sh,js,ts}' --glob '.github/**/*'

Repository: stylessh/diffkit

Length of output: 4075


🏁 Script executed:

#!/bin/bash
# Check for GitHub Actions workflows specifically
fd -type f -path '.github/workflows/*' -name '*.yml' -o -name '*.yaml'

# Look for wrangler config files and templates
fd -type f -name 'wrangler*'

# Check for documentation about setup
fd -type f \( -name 'README*' -o -name 'SETUP*' -o -name 'CONTRIBUTING*' \) apps/dashboard/

# Search for any references to wrangler config in CI files more broadly
find .github -type f 2>/dev/null | head -20

Repository: stylessh/diffkit

Length of output: 767


🌐 Web query:

wrangler configuration deployment cloudflare required environment

💡 Result:

For Cloudflare Workers deployment with Wrangler, the required configuration in wrangler.toml (or wrangler.jsonc) includes at minimum: name (string, Worker name), main (string, entrypoint path like "src/index.js"), and compatibility_date (string, date like "2026-04-17"). Environment variables are optional via [vars] (plain text/JSON bindings deployed to the Worker) or [secrets.required] (list of required secret names, validated on deploy). Vars must be explicitly defined per environment as they are non-inheritable. Wrangler environments ([env.staging], etc.) allow separate configs; deploy with wrangler deploy --env staging. For authentication/deployment, system env vars like CLOUDFLARE_ACCOUNT_ID and CLOUDFLARE_API_TOKEN are needed (set in .env or shell), but not in the config file. Example minimal wrangler.toml: name = "my-worker" main = "src/index.js" compatibility_date = "2026-04-17" [vars] API_KEY = "value" # optional Deploy: npx wrangler deploy (auth via env vars).

Citations:


🏁 Script executed:

#!/bin/bash
# Check the CI/CD workflow
cat .github/workflows/pr-checks.yml

# List files in apps/dashboard to see if wrangler.jsonc exists
echo "=== Files in apps/dashboard/ ==="
ls -la apps/dashboard/ | grep -E '(wrangler|\.jsonc|\.json|\.toml)'

# Check if there's a wrangler.jsonc in the repo anywhere
echo "=== Searching for wrangler.jsonc ==="
find . -name 'wrangler.jsonc' -o -name 'wrangler.json' -o -name 'wrangler.toml' 2>/dev/null

# Check deploy-related scripts
echo "=== Checking for deploy scripts ==="
fd -t f -name '*deploy*' -type f

Repository: stylessh/diffkit

Length of output: 2381


Add a template file for local wrangler configuration.

Ignoring wrangler.jsonc is appropriate since database IDs and KV IDs differ per contributor. However, new developers won't know what this file should contain. Create apps/dashboard/wrangler.jsonc.example as a template and document the setup steps in a local README.md or CONTRIBUTING.md.

Note: The PR description questions deployment impact, but the CI/CD workflow (pr-checks.yml) doesn't run deployments—those are manual (pnpm run deploy). The concern is developer experience, not breaking CI/CD.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/dashboard/.gitignore` at line 15, Add a template wrangler config and
local setup docs so new contributors know required keys: create
apps/dashboard/wrangler.jsonc.example containing placeholder fields (e.g.,
account_id, kv_namespace_ids, durable_object names) matching the real
wrangler.jsonc structure, and add a brief apps/dashboard/README.md (or update
CONTRIBUTING.md) with steps to copy wrangler.jsonc.example to wrangler.jsonc,
fill in project-specific IDs, and note that deployments are manual (pnpm run
deploy); ensure filenames referenced in docs match wrangler.jsonc and
wrangler.jsonc.example exactly.

Copy link
Copy Markdown
Owner

nice catch

Copy link
Copy Markdown
Owner

did you apply coderabbit's feedback?

@gregor-tokarev
Copy link
Copy Markdown
Contributor Author

Yep, I added an example file

Also, for security reasons, you should probably erase this file from git history via git filter-repo
I cannot do it because it requires force push and deep repository access

stylessh and others added 3 commits April 17, 2026 22:58
* feat(dashboard): activity timeline, repo shell, and GitHub helpers

- Issue/PR detail activity timelines, grouped label events, close reasons
- Comment reaction bar; sidebar section titleRight for contributors count
- Repo activity card empty states; header star/fork actions
- Extend github.functions/types and icons for new UI

* fix(dashboard): comment reaction tooltips, NumberFlow, motion polish

- Store userLoginsByContent from GraphQL; optimistic patch with viewerLogin
- Tooltip lists reactors (first 10 +N); pass viewerLogin from issue/PR bubbles
- Motion layout, AnimatePresence, NumberFlow for reaction chips

* fix: address CodeRabbit review (cache v2, viewer context, UI nits)

- Bump GraphQL page and repo overview cache resource versions to v2
- Resolve viewer via getGitHubUserContextForRepository for issue/PR page loads
- Map REST comment node_id to graphqlId for paginated comments and pull comments
- Invalidate repoMeta on issue state change; bump parent repoMeta after fork
- Gate close/reopen on successful createComment; repo header/sidebar a11y
- Show reaction chips on coarse pointers (hover: none) without hover

* refactor(dashboard): extract usePrefersNoHover for coarse pointer UI

* feat(dashboard): reactions on issue/PR descriptions

Fetch GraphQL id and reactions on issue/PR detail, optimistic detail
patching in the reaction bar, and inline layout below markdown.
* feat(dashboard): GitHub cache tuning for My lists and repo signals

Introduce a shorter mine policy for My pulls/issues/reviews on client and
server, refresh mine aggregates without merging closed items back from cache,
and shorten the signal poll fallback. Scope repo list and repo-filtered user
search caches to repoMeta instead of global mine keys to cut spurious
refetches and rate-limit churn.

* fix(dashboard): decouple mine cache merge from timedOut telemetry

CodeRabbit: timedOut is also set via hasRecentGitHubTimeouts(), so using it
for cache union could resurrect stale rows after an unrelated timeout.
Introduce partial when results.length < sources.length and use that for
mergeMyPullsCachedWithFresh / mergeMyIssuesCachedWithFresh only.
@gregor-tokarev
Copy link
Copy Markdown
Contributor Author

@stylessh can you merge(I can't even with all checks and your approval)?
This Pr blocks me to do other prs

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.

6 participants