docs(frontend): note N+1 gateway skills fetch

This commit is contained in:
Abhimanyu Saharan
2026-02-13 22:29:57 +00:00
parent 86b5306f9d
commit cb3aff5bb0

View File

@@ -137,9 +137,12 @@ export default function SkillsMarketplacePage() {
}); });
}, [selectedPack, skills]); }, [selectedPack, skills]);
const loadSkillsByGateway = useCallback( const loadSkillsByGateway = useCallback(async () => {
async () => // NOTE: This is technically N+1 (one request per gateway). We intentionally
Promise.all( // parallelize requests to keep the UI responsive and avoid slow sequential
// fetches. If this becomes a bottleneck for large gateway counts, add a
// backend batch endpoint to return installation state across all gateways.
const gatewaySkills = await Promise.all(
gateways.map(async (gateway) => { gateways.map(async (gateway) => {
const response = await listMarketplaceSkillsApiV1SkillsMarketplaceGet({ const response = await listMarketplaceSkillsApiV1SkillsMarketplaceGet({
gateway_id: gateway.id, gateway_id: gateway.id,
@@ -150,10 +153,11 @@ export default function SkillsMarketplacePage() {
skills: response.status === 200 ? response.data : [], skills: response.status === 200 ? response.data : [],
}; };
}), }),
),
[gateways],
); );
return gatewaySkills;
}, [gateways]);
const updateInstalledGatewayNames = useCallback( const updateInstalledGatewayNames = useCallback(
({ ({
skillId, skillId,