feat(web): Company Brain proactivity settings UI - #1374
Conversation
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
supermemory-app | 1034e33 | Commit Preview URL Branch Preview URL |
Jul 30 2026, 08:45 AM |
How to use the Graphite Merge QueueAdd the label Main to this PR to add it to the merge queue. You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
supermemory-mcp | 1034e33 | Jul 30 2026, 08:44 AM |
|
Claude finished @MaheshtheDev's task in 48s —— View job Review Complete
Overview: Adds a new "Proactivity" settings section to the Company Brain configuration, allowing admins to control when the brain proactively joins Slack conversations vs. staying quiet, with per-channel overrides. Issues found: None — this looks good to ship. The implementation is solid:
Score: 10/10 |
There was a problem hiding this comment.
Overview: Adds a new "Proactivity" settings section to the Company Brain configuration, allowing admins to control when the brain proactively joins Slack conversations vs. staying quiet, with per-channel overrides.
Issues found: None — this looks good to ship.
The implementation is solid:
- Proper loading/error states with appropriate UI feedback
- Admin access control enforced both in UI (
disabledprop) and backend (403 handling) - React Query used correctly with proper cache invalidation via
setQueryData - Error handling with user-friendly toast notifications
- No security concerns — credentials properly included, no XSS vectors (channel names rendered as text)
- The icon type generalization from
typeof BlockstoReact.ComponentType<{ className?: string }>is a clean way to support custom SVG components
Score: 10/10
2bfa37e to
acc65a2
Compare
Merge activity
|
| if (res.status === 403) | ||
| throw new Error("Only admins can change these settings.") |
There was a problem hiding this comment.
The rule states 'Include any supporting data as the cause argument instead of inlining into the string' when throwing errors. On line 57, throw new Error("Only admins can change these settings.") is thrown after a 403 response, but the response object (res) which is the supporting data/cause is not passed as the cause argument. It should be:
throw new Error("Only admins can change these settings.", { cause: res });| if (res.status === 403) | |
| throw new Error("Only admins can change these settings.") | |
| if (res.status === 403) | |
| throw new Error("Only admins can change these settings.", { cause: res }) | |
Spotted by Graphite (based on custom rule: TypeScript style guide (Google))
Is this helpful? React 👍 or 👎 to let us know.
| message?: string | ||
| error?: string | ||
| } | ||
| throw new Error(b.message ?? b.error ?? "Failed to save settings") |
There was a problem hiding this comment.
The rule states 'Include any supporting data as the cause argument instead of inlining into the string' when throwing errors. On line 63, throw new Error(b.message ?? b.error ?? "Failed to save settings") inlines the error message from the response body directly into the error string. The response body b (which contains the supporting data) should be passed as the cause argument:
throw new Error("Failed to save settings", { cause: b });| throw new Error(b.message ?? b.error ?? "Failed to save settings") | |
| throw new Error("Failed to save settings", { cause: b }) |
Spotted by Graphite (based on custom rule: TypeScript style guide (Google))
Is this helpful? React 👍 or 👎 to let us know.
Part of ENG-1135
acc65a2 to
1034e33
Compare

Part of ENG-1135