Skip to content

Conversation

@clins1994
Copy link
Contributor

@clins1994 clins1994 commented Dec 30, 2025

Overview

When I installed it and ran locally only the "List Accounts" command was working the others "Focus Desktop App" and "Find Chat" were broken. I know it is a work in progress. Since I'd like to use it I wrote this PR to make it work.

This PR does not add new features. It just bumps deps and updates types to make existing stuff work.

Summary of changes

  • bumps various dependencies to latest including beeper (0 => 4)
  • also ran npm audit fix (fixed one warning)
  • fixed 'Focus Beeper Desktop' command by fixing type errors
  • fixed 'Find Chat' command by fixing type errors
  • fixed various other type errors on the chat related files
  • added contributors and raycast related things on the package.json
  • added metadata screenshots

Testing

Ran all three commands locally and confirmed no errors 🙆‍♂️

Tested using Beeper Desktop v4.2.367

Note

Can't wait to add some features 👁️👄👁️

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 30, 2025

📝 Walkthrough

Walkthrough

The pull request updates package.json with new metadata fields and refreshes dependency/devDependency versions, refactors the API by removing a type annotation from the focusApp function, and systematically updates UI components to use a new property naming convention (id instead of chatID) with updated data access patterns from result.data to result.items.

Changes

Cohort / File(s) Summary
Package metadata and dependencies
package.json
Added public fields: contributors, platforms, keywords, and categories. Updated dependencies: @beeper/desktop-api (^0.1.4 → ^4.2.3), @raycast/api (^1.102.6 → ^1.104.1), @raycast/utils (^1.17.0 → ^2.2.2). Updated devDependencies: @raycast/eslint-config, @types/node, @types/react, eslint, prettier, and typescript with minor version increments.
API signature changes
src/api.ts
Removed AppFocusParams type annotation from focusApp method signature, changing from focusApp(params: AppFocusParams = {}) to focusApp(params = {}). Updated internal call to use imported focus function instead of app.focus.
UI component data property refactoring
src/find-chat.tsx, src/list-chats.tsx, src/search-chats.tsx
Standardized property access across components: replaced chat.chatID with chat.id in List.Item keys and detail markdown. Updated data fetching to use result.items (with fallback to empty array) instead of result.data. Modified action handlers to reference chat.id in focusApp calls and clipboard operations.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main change: bumping dependencies and fixing types to restore functionality, which aligns with the primary modifications throughout the changeset.
Description check ✅ Passed The pull request description clearly documents the changes made, including dependency bumps, type fixes, and testing confirmation.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

Copy link
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: 0

🧹 Nitpick comments (1)
src/api.ts (1)

69-78: Consider adding type annotation for params to restore type safety.

The removal of AppFocusParams suggests the type no longer exists in @beeper/desktop-api 4.x. While the untyped params allows the code to compile, it sacrifices type safety.

🔎 Consider adding an inline type for params
-export const focusApp = async (params = {}) => {
+export const focusApp = async (params: Record<string, unknown> = {}) => {
   try {
     await getBeeperDesktop().focus(params);
     await closeMainWindow();

Or define an inline interface if the shape is known:

+interface FocusParams {
+  chatID?: string;
+  [key: string]: unknown;
+}
+
-export const focusApp = async (params = {}) => {
+export const focusApp = async (params: FocusParams = {}) => {
   try {
     await getBeeperDesktop().focus(params);
     await closeMainWindow();
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between cf04bc3 and fb6641a.

⛔ Files ignored due to path filters (3)
  • metadata/beeper-1.png is excluded by !**/*.png
  • metadata/beeper-2.png is excluded by !**/*.png
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (5)
  • package.json
  • src/api.ts
  • src/find-chat.tsx
  • src/list-chats.tsx
  • src/search-chats.tsx
🧰 Additional context used
🧬 Code graph analysis (1)
src/find-chat.tsx (1)
src/api.ts (1)
  • focusApp (69-78)
🔇 Additional comments (7)
package.json (2)

8-24: LGTM: Metadata additions align with Raycast extension standards.

The addition of contributors, platforms, keywords, and categories enriches the extension manifest without affecting functionality.


56-66: All dependency versions exist and are secure.

The major version bumps for @beeper/desktop-api (0.x → 4.2.3) and @raycast/utils (1.x → 2.x) align with the breaking API changes elsewhere in the PR. All specified versions are available on npm with no known vulnerabilities.

src/find-chat.tsx (2)

9-11: LGTM: Data fetching logic correctly handles empty search and API response structure.

The conditional params logic appropriately fetches all chats when search is empty, and the result.items || [] fallback safely handles undefined responses.


18-34: LGTM: Chat property and action handlers updated correctly.

The migration from chat.chatID to chat.id is applied consistently, and the focusApp({ chatID: chat.id }) call correctly maps the new property to the expected parameter name.

src/list-chats.tsx (1)

13-38: LGTM: API response and chat property updates are consistent.

The changes from result.data to result.items || [] and from chat.chatID to chat.id align with the @beeper/desktop-api 4.x update and are applied consistently throughout the component.

src/search-chats.tsx (1)

10-32: LGTM: API response structure and property naming updated consistently.

The shift from result.data to result.items || [] and from chat.chatID to chat.id matches the changes across all other files and aligns with the @beeper/desktop-api 4.x breaking changes.

src/api.ts (1)

69-78: No issues identified. The focus method exists on BeeperDesktop client in version 4.2.3 and the implementation correctly calls getBeeperDesktop().focus(params) with the proper API signature.

@batuhan batuhan merged commit 4aeee56 into beeper:master Jan 31, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants