Background feedback

OS notifications are a private presentation child of the unified feedback service. Extensions do not receive a notification service and cannot address the native presenter directly.

Permission required: notifications:send

import type { IFeedbackService } from 'asyar-sdk/contracts';

const feedback = context.getService<IFeedbackService>('feedback');

const id = await feedback.sendBackground({
  title: 'Sync complete',
  body: 'Your workspace is up to date.',
  actions: [
    {
      id: 'open',
      title: 'Open',
      commandId: 'open-sync-result',
    },
  ],
});

await feedback.dismissBackground(id);

Use background feedback only when no Asyar window needs to remain visible while the work runs. Work visible in the launcher belongs in the Feedback Bar; settings work belongs to the settings presenter.

IPC contract

Facade method Wire command Permission
sendBackground(options) asyar:api:feedback:sendBackground notifications:send
dismissBackground(feedbackId) asyar:api:feedback:dismissBackground notifications:send

The launcher broker injects the extension identity. Rust validates the permission again before native delivery.