Skip to content

Commit 5e6be04

Browse files
Copilothotlong
andcommitted
refactor: improve comments on overlay resolution logic per code review
Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
1 parent c3c8cfb commit 5e6be04

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

packages/metadata/src/metadata-manager.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -533,17 +533,20 @@ export class MetadataManager implements IMetadataService {
533533

534534
// Apply user overlay (scoped to specific user if context provided)
535535
if (context?.userId) {
536-
// Look up user-specific overlay by owner
536+
// Try user-specific key first, then fall back to generic user overlay.
537+
// The owner check below ensures we never apply another user's overlay.
537538
const userOverlayKey = this.overlayKey(type, name, 'user') + `:${context.userId}`;
538539
const userOverlay = this.overlays.get(userOverlayKey)
539540
?? await this.getOverlay(type, name, 'user');
540541
if (userOverlay?.active && userOverlay.patch) {
541-
// Only apply if owner matches (or no owner restriction)
542+
// Apply if: overlay has no owner (generic user-level), or owner matches current user
542543
if (!userOverlay.owner || userOverlay.owner === context.userId) {
543544
effective = { ...effective, ...userOverlay.patch };
544545
}
545546
}
546547
} else {
548+
// No user context — only apply user overlays without an owner restriction
549+
// (owner-scoped overlays require a userId to resolve)
547550
const userOverlay = await this.getOverlay(type, name, 'user');
548551
if (userOverlay?.active && userOverlay.patch && !userOverlay.owner) {
549552
effective = { ...effective, ...userOverlay.patch };

0 commit comments

Comments
 (0)