Skip to content

Commit 238d07b

Browse files
committed
fix: drop the orphaned test helper; grade plugin-approvals minor
Claude-Session: https://claude.ai/code/session_01FzQy26KznSa5j2gnf3AzsE Co-authored-by: Claude <noreply@anthropic.com>
1 parent b389aa5 commit 238d07b

2 files changed

Lines changed: 2 additions & 15 deletions

File tree

‎.changeset/23284-notification-takes-record-organization.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
'@objectstack/objectql': minor
33
'@objectstack/service-messaging': minor
44
'@objectstack/service-automation': minor
5-
'@objectstack/plugin-approvals': patch
5+
'@objectstack/plugin-approvals': minor
66
---
77

88
fix(objectql,service-messaging,service-automation,plugin-approvals)!: a notification carries the organization of what it is about, and one no organization owns is refused instead of stored with `organization_id` NULL
99

1010
Clause-②: no (narrowing) — notification rows gain the organization they should already carry; what narrows is an emit that names no organization on an install where none is derivable, which the engine now refuses where it used to store the event row with `organization_id` NULL.
1111

12-
<!-- adr-0087: not-required (no-migration-prescription) A runtime narrowing of which notification writes the engine accepts, not a metadata change. No spec key, authorable spelling, export, option, config field or stored shape is added, removed, renamed or re-shaped, and no stored row is rewritten: rows already stored with organization_id NULL keep it until the v18 ownership ceremony attributes them, which already lists sys_notification with the attribution fate. The only type change is an additive optional `organizationId` on the approvals service's internal messaging surface, which is not exported by name. The other categories are closed on facts: the four packages publish (not unpublished); no ADR-0087 id covers notification ownership and this diff adds none (not registered / already-registered); nothing is removed or narrowed on an interface or type (not runtime-interface-only / type-surface-only); and no runtime export is retired (not runtime-export-retired). -->
12+
<!-- adr-0087: not-required (no-migration-prescription) A runtime narrowing of which notification writes the engine accepts, not a metadata change. No spec key, authorable spelling, export, option, config field or stored shape is added, removed, renamed or re-shaped, and no stored row is rewritten: rows already stored with organization_id NULL keep it until the v18 ownership ceremony attributes them, which already lists sys_notification with the attribution fate. The only type change is an additive optional `organizationId` on the input of `ApprovalMessagingSurface.emit`, the approvals service's messaging surface: the interface is not listed in the package index, but it is published surface, reachable through the exported `ApprovalServiceOptions.messaging` and the public `ApprovalService.attachMessaging`, so it is an additive widening that no existing implementation has to change for. The other categories are closed on facts: the four packages publish (not unpublished); no ADR-0087 id covers notification ownership and this diff adds none (not registered / already-registered); nothing is removed or narrowed on an interface or type (not runtime-interface-only / type-surface-only); and no runtime export is retired (not runtime-export-retired). -->
1313

1414
**BREAKING** (an accept-set narrowing), shipped as `minor` under the launch-window convention for breaking changes.
1515

‎packages/services/service-automation/src/builtin/notify-organization-stamp.integration.test.ts‎

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -60,19 +60,6 @@ function silentLogger(): any {
6060
return l;
6161
}
6262

63-
/** A logger that records every warning line, for the fail-loud pin. */
64-
function recordingLogger(): { logger: any; warnings: string[] } {
65-
const warnings: string[] = [];
66-
const l: any = {
67-
info: () => {},
68-
warn: (...args: unknown[]) => { warnings.push(args.map(String).join(' ')); },
69-
error: () => {},
70-
debug: () => {},
71-
};
72-
l.child = () => l;
73-
return { logger: l, warnings };
74-
}
75-
7663
/** Every row this stack wrote, in insertion order, with the object it landed in. */
7764
interface WrittenRow { object: string; row: Record<string, unknown> }
7865

0 commit comments

Comments
 (0)