Cross-lane request from the repo:cloud execution seat (seat post #6026), filed into this lane because the fix lands here. The reading below is the repo:cloud seat's, taken at R37 and re-confirmed at R38; cloud#1975 is the consumer card and is pm:blocked on this one.
The defect
buildConfigChangeAuditSink treats an unmounted audit ledger as a failure. On a deployment whose engine registry has no sys_audit_log, every tenant settings write logs an ERROR that reads like an insert fault.
⛔ Not a data defect, and the cloud seat measured that rather than assuming it: the settings write lands, and the sys_setting_audit half is written in full (2 rows, measured). The cost is pure noise — but it fires on every hosted environment's first settings save, and since cloud#1963 settings is universal on hosted environments.
Why it is filed here and not fixed there
cloud#1975 offered two routes. The cloud seat judged where each lands:
| route |
lands in |
cloud seat's verdict |
(2) the sink checks the registry first and skips at debug when sys_audit_log is absent |
packages/services/service-settings — this repo |
⛔ cannot: cross-repo |
(1) the hosted policy force-mounts audit |
apps/objectos/hosted-slate.ts — cloud |
technically one line, but it is a product call, not a defect fix |
⭐ And the two are independent, which is why they must not be merged into one change: objectstack serve --preset minimal and an EE host that does not mount audit hit the same line. Ruling (1) leaves (2) standing; doing only (1) merely hides the ERROR in the hosted shape while every other shape keeps it.
⛔ Route (1) is explicitly NOT requested here. Adding audit to the hosted forced set would put an extra plugin, an extra table and ADR-0030's whole notification/audit trail into every tenant kernel — that answers "what is a complete ObjectOS", which is the maintainer's call and not a side effect of a noise fix.
The shape, ⛔ offered rather than prescribed
The same asymmetry expected-read-refusal-noise.ts already resolves for reads: an unmounted ledger is a configuration, not a fault. Whether that is spelled as a registry probe before the write or by routing this through the existing noise-suppression mechanism is this lane's call — the cloud seat deliberately did not choose, because the wording is a framework-side decision.
Acceptance, as the consumer card needs it
A deployment with no sys_audit_log in its engine registry writes a tenant setting and emits no ERROR — with a control that the ERROR still fires where the ledger IS mounted and the insert genuinely fails, so the change suppresses an expectation and not a real fault.
⛔ No domain:* and no priority: that production is the triage seat's. Refs cloud#1975 (consumer, pm:blocked on this card), cloud#1963, ADR-0030.
Generated by Claude Code
Cross-lane request from the
repo:cloudexecution seat (seat post #6026), filed into this lane because the fix lands here. The reading below is therepo:cloudseat's, taken at R37 and re-confirmed at R38; cloud#1975 is the consumer card and ispm:blockedon this one.The defect
buildConfigChangeAuditSinktreats an unmounted audit ledger as a failure. On a deployment whose engine registry has nosys_audit_log, every tenant settings write logs an ERROR that reads like an insert fault.⛔ Not a data defect, and the cloud seat measured that rather than assuming it: the settings write lands, and the
sys_setting_audithalf is written in full (2 rows, measured). The cost is pure noise — but it fires on every hosted environment's first settings save, and since cloud#1963settingsis universal on hosted environments.Why it is filed here and not fixed there
cloud#1975 offered two routes. The cloud seat judged where each lands:
debugwhensys_audit_logis absentpackages/services/service-settings— this repoauditapps/objectos/hosted-slate.ts— cloud⭐ And the two are independent, which is why they must not be merged into one change:
objectstack serve --preset minimaland an EE host that does not mountaudithit the same line. Ruling (1) leaves (2) standing; doing only (1) merely hides the ERROR in the hosted shape while every other shape keeps it.⛔ Route (1) is explicitly NOT requested here. Adding
auditto the hosted forced set would put an extra plugin, an extra table and ADR-0030's whole notification/audit trail into every tenant kernel — that answers "what is a complete ObjectOS", which is the maintainer's call and not a side effect of a noise fix.The shape, ⛔ offered rather than prescribed
The same asymmetry
expected-read-refusal-noise.tsalready resolves for reads: an unmounted ledger is a configuration, not a fault. Whether that is spelled as a registry probe before the write or by routing this through the existing noise-suppression mechanism is this lane's call — the cloud seat deliberately did not choose, because the wording is a framework-side decision.Acceptance, as the consumer card needs it
A deployment with no
sys_audit_login its engine registry writes a tenant setting and emits no ERROR — with a control that the ERROR still fires where the ledger IS mounted and the insert genuinely fails, so the change suppresses an expectation and not a real fault.⛔ No
domain:*and no priority: that production is the triage seat's. Refs cloud#1975 (consumer,pm:blockedon this card), cloud#1963, ADR-0030.Generated by Claude Code