Skip to content

workspace:* instead of link:../../core

da3dc3a
Select commit
Loading
Failed to load commit list.
Open

Link language debugging #611

workspace:* instead of link:../../core
da3dc3a
Select commit
Loading
Failed to load commit list.
Cursor / Cursor BugBot completed Jul 14, 2025 in 2m 35s

BugBot Review

BugBot Analysis Progress (3m 21s elapsed)

βœ… Gathered PR context (45s)
βœ… Analyzed code changes (3s)
βœ… Completed bug detection β€” 2 potential bugs found (2m 31s)
βœ… Validation and filtering completed (0s)
βœ… Posted analysis results β€” 2 bugs reported (2s)
βœ… Analysis completed successfully (0s)

Final Result: BugBot completed review and found 2 potential issues

Request ID: serverGenReqId_66a1d9aa-d7cf-4874-82a5-fe8c6701544b

Details

Bug: Language Association Logic Error

The logic for associating languages with perspectives was altered by removing the else clause that checked p.neighbourhood.meta.links for language references (where predicate is 'language' and target is the language address). This prevents languages used via meta links from being correctly identified as associated with perspectives, leading to them being incorrectly displayed as unused in the UI.

ui/src/components/Language.tsx#L87-L105

const langs = await client!.languages.all();
const perspectives = await client!.perspective.all();
const tempLangs = [];
for (const lang of langs) {
const found = perspectives.find((p) => {
if (p.neighbourhood) {
if (p.neighbourhood.linkLanguage === lang.address) {
return true;
}
}
return false;
});
tempLangs.push({ language: lang, perspective: found });
}

Fix in Cursor β€’ Fix in Web


Bug: Enum Case Change and Typo Bug

The PerspectiveState enum's string values were changed from SCREAMING_SNAKE_CASE (e.g., "PRIVATE") to PascalCase (e.g., "Private"), which is a breaking change for any code relying on the old string values. Additionally, the NeighboudhoodCreationInitiated enum value contains a typo ("Neighboudhood" instead of "Neighbourhood"), causing inconsistency with other enum values and the corresponding Rust enum.

core/src/perspectives/PerspectiveHandle.ts#L4-L11

export enum PerspectiveState {
Private = "Private",
NeighboudhoodCreationInitiated = "NeighboudhoodCreationInitiated",
NeighbourhoodJoinInitiated = "NeighbourhoodJoinInitiated",
LinkLanguageFailedToInstall = "LinkLanguageFailedToInstall",
LinkLanguageInstalledButNotSynced = "LinkLanguageInstalledButNotSynced",
Synced = "Synced",
}

Fix in Cursor β€’ Fix in Web


Was this report helpful? Give feedback by reacting with πŸ‘ or πŸ‘Ž