File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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 } ;
You can’t perform that action at this time.
0 commit comments