feat(app): combine browser and artifacts views and state#1973
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
1 issue found across 15 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="apps/app/src/react-app/domains/session/panel/side-panel.tsx">
<violation number="1" location="apps/app/src/react-app/domains/session/panel/side-panel.tsx:192">
P2: This `useLayoutEffect` runs on every render and calls `browser.setBounds?.(bounds)` without checking `sameBounds` first. Since the component re-renders on URL/status/navigation changes, this sends redundant IPC calls to the Electron main process when bounds haven't actually changed. Add the same `sameBounds` guard used in `syncBounds`.</violation>
</file>
Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.
Fix all with cubic | Re-trigger cubic
| return; | ||
| } | ||
|
|
||
| browser.setBounds?.(bounds); |
There was a problem hiding this comment.
P2: This useLayoutEffect runs on every render and calls browser.setBounds?.(bounds) without checking sameBounds first. Since the component re-renders on URL/status/navigation changes, this sends redundant IPC calls to the Electron main process when bounds haven't actually changed. Add the same sameBounds guard used in syncBounds.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At apps/app/src/react-app/domains/session/panel/side-panel.tsx, line 192:
<comment>This `useLayoutEffect` runs on every render and calls `browser.setBounds?.(bounds)` without checking `sameBounds` first. Since the component re-renders on URL/status/navigation changes, this sends redundant IPC calls to the Electron main process when bounds haven't actually changed. Add the same `sameBounds` guard used in `syncBounds`.</comment>
<file context>
@@ -0,0 +1,464 @@
+ return;
+ }
+
+ browser.setBounds?.(bounds);
+ lastBoundsRef.current = bounds;
+ });
</file context>
* test(app): add voice mode CDP audio check * fix(app): wait for voice CDP target readiness * fix(desktop): require explicit audio media permission * fix(desktop): keep fake media behind permission handler * test(app): capture voice CDP proof * fix(desktop): request mac microphone access for voice * fix(app): harden voice CDP runner
There was a problem hiding this comment.
2 issues found across 211 files (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="apps/app/src/react-app/design-system/extension-card.tsx">
<violation number="1" location="apps/app/src/react-app/design-system/extension-card.tsx:120">
P2: `fallbackIcon` is still declared in `ExtensionCardProps` and actively passed by callers in `mcp-view.tsx`, but this diff removes its usage from the component body. Those callers now silently have no effect. Remove the prop from the type and clean up call sites, or restore usage.</violation>
</file>
<file name="ee/packages/utils/src/typeid.ts">
<violation number="1" location="ee/packages/utils/src/typeid.ts:52">
P1: Changing the prefix from `"osb"` to `"osub"` is a breaking change for any existing `orgSubscription` IDs stored in the database. Existing IDs with the `osb_` prefix will fail validation (wrong prefix, wrong length). If this table has production data, a migration is needed to rewrite stored IDs, or existing IDs will become unresolvable.</violation>
</file>
Partial review: This PR has more than 50 files, so cubic reviewed the highest-priority files first. During the trial, paid plans get a higher file limit.
You can try an ultrareview to bypass the file limit, comment @cubic-dev-ai ultrareview. Learn more.
Fix all with cubic | Re-trigger cubic
| desktopPolicyMember: "dpm", | ||
| organizationRole: "orl", | ||
| orgSubscription: "osb", | ||
| orgSubscription: "osub", |
There was a problem hiding this comment.
P1: Changing the prefix from "osb" to "osub" is a breaking change for any existing orgSubscription IDs stored in the database. Existing IDs with the osb_ prefix will fail validation (wrong prefix, wrong length). If this table has production data, a migration is needed to rewrite stored IDs, or existing IDs will become unresolvable.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At ee/packages/utils/src/typeid.ts, line 52:
<comment>Changing the prefix from `"osb"` to `"osub"` is a breaking change for any existing `orgSubscription` IDs stored in the database. Existing IDs with the `osb_` prefix will fail validation (wrong prefix, wrong length). If this table has production data, a migration is needed to rewrite stored IDs, or existing IDs will become unresolvable.</comment>
<file context>
@@ -49,7 +49,7 @@ export const idTypesMapNameToPrefix = {
desktopPolicyMember: "dpm",
organizationRole: "orl",
- orgSubscription: "osb",
+ orgSubscription: "osub",
scimProvider: "scp",
ssoConnection: "ssc",
</file context>
| kind === "plugin" || kind === "skill" ? ( | ||
| <ExtensionMeshAvatar name={name} className="size-7 rounded-md text-[10px] font-bold shadow-inner" /> | ||
| ) : <FallbackIcon size={18} className="text-dls-secondary" /> | ||
| <ExtensionMeshAvatar |
There was a problem hiding this comment.
P2: fallbackIcon is still declared in ExtensionCardProps and actively passed by callers in mcp-view.tsx, but this diff removes its usage from the component body. Those callers now silently have no effect. Remove the prop from the type and clean up call sites, or restore usage.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At apps/app/src/react-app/design-system/extension-card.tsx, line 120:
<comment>`fallbackIcon` is still declared in `ExtensionCardProps` and actively passed by callers in `mcp-view.tsx`, but this diff removes its usage from the component body. Those callers now silently have no effect. Remove the prop from the type and clean up call sites, or restore usage.</comment>
<file context>
@@ -117,9 +117,11 @@ export function ExtensionCard(props: ExtensionCardProps) {
- kind === "plugin" || kind === "skill" ? (
- <ExtensionMeshAvatar name={name} className="size-7 rounded-md text-[10px] font-bold shadow-inner" />
- ) : <FallbackIcon size={18} className="text-dls-secondary" />
+ <ExtensionMeshAvatar
+ name={name}
+ category={grainArtCategoryForExtensionKind(kind)}
</file context>
Summary