Skip to content

[finding] 15 more PASSING @objectstack/runtime tests print the same refused a read on feature — 134 lines after #10380 quiets its two, led by notifications.hono.integration.test.ts (52) #10629

Description

@os-elon

Filed unassigned by the seat implementing #10380. Observation class — no fix proposed here, and no pm:queue.

What was measured

#10380 quiets the expected error output of two passing @objectstack/runtime tests. Its two files were not the only emitters. One full @objectstack/runtime run at bde0ab9 + the #10380 change (178 files, 2670 tests, all PASS) still prints 134refused a read on lines, from 15 other test files that also pass:

linesfile (all under packages/runtime/src/)
52notifications.hono.integration.test.ts
19package-list-commits-org-scope.integration.test.ts
11package-revert-commit-org-scope.integration.test.ts
7seed-multi-value-lookup-real-driver.integration.test.ts
7cascade-delete-multivalue-lookup-real-driver.integration.test.ts
6bulk-write-real-driver.integration.test.ts
5sandbox/undeclared-field-write-driver-split.integration.test.ts
5federated-boot-binding.test.ts
5expand-nested-fields-join-key.integration.test.ts
4package-revert-commit-attribution-org-scope.integration.test.ts
3preserve-audit-real-driver.integration.test.ts
3batch-row-http-status-real-driver.integration.test.ts
3batch-row-driver-text-real-driver.integration.test.ts
2seed-loader-driver-text-real-driver.integration.test.ts
1sandbox/nested-write-real-sqlite.integration.test.ts

Attribution is by the reporter's own stderr | file header immediately above each line, not by guessing.

The top row is the notable one: notifications.hono.integration.test.ts is named in notification-schema-conformance.integration.test.ts's own header as its sibling (the #3362 reachability regression), and it carries the same never-provisioned sys_* authz reads through resolveUserAuthzGrants. #10380's scope was fixed to two files by triage, so it was deliberately not touched.

This is the same defect class #10380 exists to close — expected-failure noise from green tests, in a shard log turbo interleaves without attribution — at roughly twice the volume that card removed. It is recorded rather than fixed because it is a different file surface than the one that card claims.

How to reproduce the measurement — this part is a trap worth writing down

The noise is invisible to an ordinary piped local run, and that is not a fluke of this package:

  • vitest 4 picks MinimalReporter when stdout is not a TTY, and MinimalReporter defaults to silent: 'passed-only' — so console.* from a passing test is dropped entirely;
  • turbo gives each task a pty, so in CI the same run picks DefaultReporter and every one of those lines is printed.

So pnpm --filter @objectstack/runtime test > log.txt shows zero of these lines while CI shows all of them, with no config difference and no warning. Measuring locally requires forcing the reporter CI effectively gets:

pnpm --filter @objectstack/runtime exec vitest run --reporter=default

Two consequences worth separating. Anyone measuring log noise, here or in any other package, gets a false zero without that flag. And the lines are console.*, so they are also carried by whatever #10374 describes about late console.* in a vitest worker.

Note this is only true of the console.* channel. The engine's own ERROR Find operation failed frame is written straight to stdout, bypasses the reporter, and therefore reaches the log under both reporters.

Related


Generated by Claude Code

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions