Found while implementing #120 (which added the missing principal selector grammar to the same page and deliberately left the surrounding routing prose alone). Filed unassigned, observation class.
content/docs/configure/notifications.mdx:25-27:
Routing — For each event, ObjectOS resolves who should be notified (Subscriptions), whether each recipient allows that topic on that channel (Preferences) …
and :44-47:
Only when a recipient is subscribed and their preference for the topic/channel is enabled does a template render and an inbox message materialize.
Measured on the product side while writing #120 (objectstack, read at f6c71ea): no code reads sys_notification_subscription rows. grep -rn "sys_notification_subscription" --include=*.ts packages/ apps/ returns, outside the declaring package, only a platform-object-name constant and a comment; grep -rn "'subscribers'" returns exactly one hit — the aspirational sentence in the object's own header. EmitInput.audience is required and every producer passes an explicit audience. Details and the two ways it could be resolved: objectstack-ai/objectstack#9807.
So today a notification reaches a recipient with no subscription row involved, and pausing a subscription (enabled = false) stops nothing. The page reads as if the Setup grid is a live routing control.
What the fix is depends on the product decision in objectstack-ai/objectstack#9807 (implement the expansion, or mark it not-yet-wired), which is why this is filed rather than fixed: writing "subscriptions do not affect delivery yet" today would go stale the moment the expansion lands, and it is a claim the docs should not make ahead of the product's own statement.
Blocked-by: objectstack-ai/objectstack#9807
Found while implementing #120 (which added the missing
principalselector grammar to the same page and deliberately left the surrounding routing prose alone). Filed unassigned, observation class.content/docs/configure/notifications.mdx:25-27:and
:44-47:Measured on the product side while writing #120 (
objectstack, read atf6c71ea): no code readssys_notification_subscriptionrows.grep -rn "sys_notification_subscription" --include=*.ts packages/ apps/returns, outside the declaring package, only a platform-object-name constant and a comment;grep -rn "'subscribers'"returns exactly one hit — the aspirational sentence in the object's own header.EmitInput.audienceis required and every producer passes an explicit audience. Details and the two ways it could be resolved: objectstack-ai/objectstack#9807.So today a notification reaches a recipient with no subscription row involved, and pausing a subscription (
enabled = false) stops nothing. The page reads as if the Setup grid is a live routing control.What the fix is depends on the product decision in objectstack-ai/objectstack#9807 (implement the expansion, or mark it not-yet-wired), which is why this is filed rather than fixed: writing "subscriptions do not affect delivery yet" today would go stale the moment the expansion lands, and it is a claim the docs should not make ahead of the product's own statement.
Blocked-by: objectstack-ai/objectstack#9807