Skip to content

[finding] Five fixtures now blanket-silence their kernel, hiding unexpected ERROR output — the expected-noise capture pin is the strictly better shape #11081

Description

@os-elon

Filed unassigned by the seat implementing #10984. Observation class — no pm:queue.
Backlink: PR #11080.

What was measured

#10984 repaired 12 new ObjectKernel({ logLevel: 'silent' }) call sites to
logger: { level: 'silent' } — the key ObjectKernelConfig actually reads. That was
the right repair and it landed as ruled. This finding is about the shape it restores,
not about the repair.

Each of the seven fixtures was run individually before and after, with its kernel log
frames counted by level. All seven go from loud to completely silent:

fixturebefore (total / INFO / WARN / ERROR)after
runtime/src/notification-schema-conformance.integration.test.ts77 / 75 / 2 / 00
runtime/src/notifications.hono.integration.test.ts77 / 75 / 2 / 00
trigger-record-change/src/record-change-integration.test.ts672 / 564 / 25 / 830
trigger-record-change/src/bulk-write-per-row-context.test.ts497 / 462 / 20 / 150
trigger-record-change/src/formula-context.test.ts99 / 92 / 4 / 30
trigger-record-change/src/multilookup-context.test.ts99 / 92 / 4 / 30
plugins/plugin-approvals/src/status-mirror-cascade.integration.test.ts230 / 188 / 10 / 320

Every frame silenced by that repair was classified and all of them fall in expected
classes — boot-without-a-datasource frames, Find operation failed on unprovisioned
authz tables, and two negative-path frames that are the asserted behaviour of their own
tests. Nothing unexpected was silenced on the day. The finding is about tomorrow.

The asymmetry

The two packages/runtime fixtures do not depend on that classification holding. They
carry the expected-noise capture landed by #10629 / #10630, which is a PIN rather
than a mute:

  • it recognises the specific expected refusals and withholds only those;
  • anything it does not recognise still reaches the log;
  • and it asserts in afterAll that each expected refusal was emitted, failing if one
    goes quiet — so a read that stops happening is a red test rather than a silence.

The other five fixtures have no equivalent. They are now on a blanket silent, which
suppresses the expected frames and every unexpected one, with nothing asserting that
the expected ones still occur. That is precisely the mute #10630 and #10629 refused for
the runtime pair, and it is 136 ERROR frames' worth of channel across the five.

Worth being exact about what this is and is not: those five were already effectively
unmonitored — before #10984 the frames were printed but only into a shared shard log
nobody reads, and no assertion depended on them. So this is not a regression introduced
by that repair; the repair made an existing gap legible by finally honouring the author's
silent. The class is the one the card itself named — an accepted-and-ignored option is
invisible, and so is an error frame nothing reads.

Why it is worth a card rather than a shrug

The five fixtures drive real engines through automation, bulk-write and approval-cascade
paths. A future genuine failure on those paths — a driver refusing a query it used to
accept, a flow erroring where it used to succeed — now produces no output at all in the
fixture that exercises it, unless it also flips an assertion. The capture pattern already
exists in this repo, is proven, and its helper
(packages/runtime/src/expected-read-refusal-noise.ts) is the obvious starting point.

Not claimed


Generated by Claude Code

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions