Debt ledger

“Debt only shrinks.”

Total: 272 directives.

Count by directive kind

KindCount
effect-diagnostics110
oxlint158
typescript4

The vendored tools/oxlint/anti-slop/ plugin is excluded. It is Dillon Mulroy’s code, not our debt.

Every directive

FileDirectiveReason
apps/cli/ratstack.config.ts:88@effect-diagnostics-next-line asyncFunction:offVite awaits generateBundle as a plugin hook, so this is the edge where the Effect program runs.
apps/cli/src/cli.ts:18oxlint-disable-next-line promise/prefer-await-to-callbacksOxlint mistakes this Effect handler for an async Promise callback.
apps/cli/src/surfaces.ts:1@effect-diagnostics-next-line nodeBuiltinImport:offThe Node HTTP server is the one place where nothing in Effect wraps the built-in: NodeHttpServer.layer takes a node:http server factory.
apps/cli/test/cli.e2e.test.ts:1@effect-diagnostics nodeBuiltinImport:off asyncFunction:off newPromise:off globalTimers:offBlack-box tests of the built binary: they spawn dist/cli.js as a child process and assert on stdout, stderr, and exit codes. Node built-ins and a Promise-based stdio conversation are the right tools at that boundary, so the Effect-native diagnostics are off here.
apps/cli/test/cli.e2e.test.ts:72oxlint-disable-next-line promise/avoid-newA child process conversation has no library Promise to return.
apps/cli/test/ratstack.e2e.test.ts:1@effect-diagnostics nodeBuiltinImport:off asyncFunction:off newPromise:off globalTimers:offBlack-box tests of the published ratstack package: they spawn dist/npm/ratstack as npm would install it and assert on its files, stdout, and an MCP stdio conversation. Node built-ins and a Promise-based stdio conversation are the right tools at that boundary.
apps/cli/test/ratstack.e2e.test.ts:61oxlint-disable-next-line promise/avoid-newA child process conversation has no library Promise to return.
apps/infra/test/preview-content.test.ts:101@effect-diagnostics-next-line asyncFunction:offThe in-memory HTTP handler exposes a Promise boundary.
apps/infra/test/preview-stack.test.ts:23@effect-diagnostics-next-line asyncFunction:offAlchemy’s module loader is a native Promise boundary.
apps/site/scripts/content-blocks.ts:1@effect-diagnostics-next-line nodeBuiltinImport:offBuild-only block IDs use SHA-256.
apps/site/scripts/emit-assets.ts:1@effect-diagnostics-next-line nodeBuiltinImport:offBuild-only content addressing uses Node’s SHA-256 implementation.
apps/site/scripts/generate-content.ts:1@effect-diagnostics-next-line nodeBuiltinImport:offBuild-only hashing uses Node’s stable SHA-256 implementation.
apps/site/scripts/generate-content.ts:444@effect-diagnostics-next-line asyncFunction:offsatori and resvg own this Promise boundary.
apps/site/scripts/source-regex-policy.ts:43oxlint-disable-next-line eslint/no-template-curly-in-stringAudited entries preserve literal interpolation syntax in RegExp source.
apps/site/scripts/source-regex-policy.ts:50oxlint-disable-next-line eslint/no-template-curly-in-stringAudited entries preserve literal interpolation syntax in RegExp source.
apps/site/src/a2a.ts:34oxlint-disable-next-line unicorn/no-array-method-this-argumentEffect.forEach is the Effect combinator, not Array#forEach with a thisArg.
apps/site/src/app.ts:421oxlint-disable-next-line typescript/promise-function-asyncCloudflare’s Cache API owns this Promise-returning boundary.
apps/site/src/app.ts:451oxlint-disable-next-line typescript/promise-function-asyncCloudflare’s Cache API owns this Promise-returning boundary.
apps/site/src/app.ts:738oxlint-disable-next-line typescript/promise-function-asyncThe Fetch Request owns this Promise-returning boundary.
apps/site/src/app.ts:882@effect-diagnostics-next-line cryptoRandomUUID:offWorkers ship Web Crypto and Effect has no Web Crypto layer; a random session id needs no injectable service.
apps/site/src/auth/private-worker.ts:36@effect-diagnostics-next-line anyUnknownInErrorContext:offAlchemy intentionally erases exporter layer requirements in its per-event registry.
apps/site/src/auth/private-worker.ts:41@effect-diagnostics-next-line anyUnknownInErrorContext:offThe existing registry layer retains SDK-erased requirements until WorkerBridge provides them.
apps/site/src/auth/private-worker.ts:84@effect-diagnostics-next-line unsafeEffectTypeAssertion:offIdentical Alchemy pins have incompatible recursive host types across pnpm peer graphs.
apps/site/src/auth/private-worker.ts:84oxlint-disable-next-line typescript/no-unsafe-type-assertion@effect-diagnostics-next-line unsafeEffectTypeAssertion:off — Identical Alchemy pins have incompatible recursive host types across pnpm peer graphs.
apps/site/src/config-fingerprint.ts:32oxlint-disable-next-line typescript/promise-function-asyncWeb Crypto owns this Promise-returning boundary.
apps/site/src/interest/handlers.ts:54@effect-diagnostics-next-line cryptoRandomUUIDInEffect:offWeb Crypto is the Worker runtime; the Effect Crypto service needs a platform layer this Worker does not provide.
apps/site/src/interest/handlers.ts:160@effect-diagnostics-next-line cryptoRandomUUIDInEffect:offWeb Crypto is the Worker runtime; the Effect Crypto service needs a platform layer this Worker does not provide.
apps/site/src/interest/interest-durable-object.ts:26@effect-diagnostics-next-line returnEffectInGen:offAlchemy’s DurableObject contract returns the per-instance Effect.
apps/site/src/interest/interest-index-durable-object.ts:24@effect-diagnostics-next-line returnEffectInGen:offAlchemy’s DurableObject contract returns the per-instance Effect.
apps/site/src/interest/join-contact-store.ts:108oxlint-disable-next-line typescript/promise-function-asyncWeb Crypto owns this Promise boundary.
apps/site/src/interest/page-templates.ts:4@effect-diagnostics-next-line asyncFunction:offlint requires an awaiting async thunk around the dynamic import that splits the interest page templates out of the entry chunk
apps/site/src/legacy-mcp/durable-object.ts:24oxlint-disable-next-line typescript/no-unsafe-type-assertionno reason given
apps/site/src/legacy-mcp/durable-object.ts:41@effect-diagnostics-next-line returnEffectInGen:offAlchemy’s DurableObject contract returns the per-instance Effect.
apps/site/src/legacy-mcp/runtime.ts:41@effect-diagnostics-next-line anyUnknownInErrorContext:offHttpRouter declares asHttpEffect’s error as unknown upstream; toWebHandler renders every failure as an HTTP response.
apps/site/src/observability.ts:49oxlint-disable-next-line eslint/no-empty-functionThis privacy boundary deliberately discards all untrusted span metadata.
apps/site/src/observability.ts:162@effect-diagnostics-next-line asyncFunction:offCloudflare owns this per-request Promise import boundary.
apps/site/src/observability.ts:189@effect-diagnostics-next-line anyUnknownInErrorContext:offAlchemy erases requirements in its per-event exporter registry; WorkerBridge supplies them.
apps/site/src/observability.ts:191@effect-diagnostics-next-line anyUnknownInErrorContext:offThe SDK-erased registered exporter is rebuilt by WorkerBridge inside each event scope.
apps/site/src/outer-http-privacy.ts:11@effect-diagnostics-next-line anyUnknownInErrorContext:offAlchemy intentionally erases exporter layer requirements in its per-event registry.
apps/site/src/outer-http-privacy.ts:16@effect-diagnostics-next-line anyUnknownInErrorContext:offThe existing registry layer retains its SDK-erased requirements until WorkerBridge provides them.
apps/site/src/rate-limits.ts:82oxlint-disable-next-line typescript/promise-function-asyncCloudflare owns this Promise-returning runtime boundary.
apps/site/src/request-incidents.ts:158@effect-diagnostics-next-line cryptoRandomUUID:offWorkers provide Web Crypto but no Effect Crypto layer; incident ids belong to the native HTTP boundary.
apps/site/src/rpc-backend-runtime.ts:44@effect-diagnostics-next-line returnEffectInGen:offAlchemy’s RPC Worker initialization returns its request Effect.
apps/site/src/sandbox-worker-loader.ts:1oxlint-disable-next-line typescript/triple-slash-referenceThe Worker runtime module has no Node-resolvable declaration of its own.
apps/site/src/sandbox-worker-loader.ts:115oxlint-disable-next-line typescript/promise-function-asyncThe built-in exists only inside workerd; keeping it lazy lets Alchemy import the Stack under Node without resolving the special URL.
apps/site/src/sandbox-worker-loader.ts:122@effect-diagnostics-next-line asyncFunction:offCloudflare RPC requires a Promise-returning method at this boundary. This is the sandbox’s way out, so input arrives untrusted and is parsed as JSON before any capability sees it.
apps/site/src/sandbox-worker-loader.ts:125oxlint-disable-next-line anti-slop/no-unknown-parametersno reason given
apps/site/src/sandbox-worker-loader.ts:283oxlint-disable-next-line typescript/promise-function-asyncEffect.tryPromise accepts the platform Promise directly.
apps/site/src/sandbox-worker-loader.ts:289oxlint-disable-next-line promise/prefer-await-to-callbacksOxlint mistakes this Effect handler for a Promise callback.
apps/site/src/worker.ts:71oxlint-disable-next-line typescript/promise-function-asyncCloudflare provides this global only when a request reaches the Worker.
apps/site/src/worker.ts:73oxlint-disable-next-line typescript/promise-function-asyncCloudflare provides this global only when a request reaches the Worker.
apps/site/src/worker.ts:167oxlint-disable-next-line typescript/no-unsafe-type-assertionno reason given
apps/site/test/code-mode-runtime.test.ts:55@effect-diagnostics-next-line anyUnknownInErrorContext:offAlchemy’s ScratchStack erases provider errors; orDie closes this local runtime boundary.
apps/site/test/cold-content-runtime.test.ts:20@effect-diagnostics-next-line anyUnknownInErrorContext:offAlchemy’s ScratchStack erases provider errors; orDie closes this local runtime boundary.
apps/site/test/component-registry.test.ts:274@ts-expect-errorA malformed external registration must fail the build even when it bypasses the TypeScript contract.
apps/site/test/crash-tail.test.ts:76oxlint-disable-next-line typescript/no-unsafe-type-assertionAlchemy erases native event export types to any.
apps/site/test/fixtures/code-mode-worker.ts:111oxlint-disable-next-line typescript/no-unsafe-type-assertionno reason given
apps/site/test/fixtures/cold-content-worker.ts:67oxlint-disable-next-line typescript/promise-function-asyncThe Website stub implements a native service binding.
apps/site/test/generated-content.ts:1@effect-diagnostics-next-line nodeBuiltinImport:offModule-evaluation fixtures cannot require a runtime; request IO stays inside the StaticAssets Effect layer.
apps/site/test/intake-applications.test.ts:43oxlint-disable-next-line typescript/promise-function-asyncThe in-memory router owns this Promise boundary.
apps/site/test/intake-redeliver.test.ts:69oxlint-disable-next-line typescript/promise-function-asyncThe in-memory router owns this Promise boundary.
apps/site/test/interest-capture-runtime.test.ts:20@effect-diagnostics-next-line anyUnknownInErrorContext:offAlchemy’s ScratchStack erases provider errors; orDie closes this test boundary.
apps/site/test/interest-runtime.test.ts:20@effect-diagnostics-next-line anyUnknownInErrorContext:offAlchemy’s ScratchStack erases provider errors; orDie closes this test boundary.
apps/site/test/join-request.test.ts:63oxlint-disable-next-line typescript/promise-function-asyncThe in-memory router owns this Promise boundary.
apps/site/test/legacy-mcp-routing.test.ts:22oxlint-disable-next-line typescript/promise-function-asyncMatches Cloudflare’s Promise-returning binding.
apps/site/test/page-ticket.test.ts:256oxlint-disable-next-line typescript/promise-function-asyncThis fake matches the native Cache API Promise boundary.
apps/site/test/page-ticket.test.ts:264oxlint-disable-next-line typescript/promise-function-asyncThis fake matches the native Cache API Promise boundary.
apps/site/test/reader-website-headers.test.ts:99oxlint-disable-next-line typescript/promise-function-asyncThe service binding stub returns Cloudflare’s native Promise.
apps/site/test/reader-website.test.ts:90oxlint-disable-next-line typescript/promise-function-asyncThe service binding stub returns Cloudflare’s native Promise.
apps/site/test/rpc-worker.test.ts:34@effect-diagnostics-next-line asyncFunction:offThe in-memory HTTP handler exposes a Promise boundary.
apps/site/test/source-regex-policy.test.ts:1@effect-diagnostics nodeBuiltinImport:offThese tests write temporary lint fixtures and run the real oxlint binary against them.
apps/site/test/static-assets.test.ts:14oxlint-disable-next-line typescript/promise-function-asyncThe native ASSETS fixture implements the platform Promise API.
apps/site/test/static-assets.test.ts:33oxlint-disable-next-line typescript/promise-function-asyncThe missing-asset fixture implements the platform Promise API.
apps/site/test/static-assets.test.ts:37oxlint-disable-next-line typescript/promise-function-asyncThis fixture matches the native Cache API.
apps/site/test/static-assets.test.ts:39oxlint-disable-next-line unicorn/no-useless-undefinedAn explicit miss preserves the native API Promise type rather than Promise<void>.
apps/site/test/static-assets.test.ts:42oxlint-disable-next-line typescript/promise-function-asyncA populated Cache API fixture must not conceal a missing asset.
apps/site/test/static-assets.test.ts:50oxlint-disable-next-line typescript/promise-function-asyncThis fixture matches the native Cache API.
apps/site/test/static-assets.test.ts:53oxlint-disable-next-line typescript/promise-function-asyncNative binding fixtures expose Promise-returning fetch.
apps/site/test/unsubscribe.test.ts:287oxlint-disable-next-line typescript/promise-function-asyncA fake native Fetch boundary returns a Promise, not an Effect.
apps/site/test/worker-error-pages.test.ts:29oxlint-disable-next-line typescript/promise-function-asyncCloudflare’s binding returns a native Promise.
apps/site/test/worker-error-pages.test.ts:38@effect-diagnostics-next-line asyncFunction:offThe fake WEBSITE binding implements the native Promise fetch API.
apps/site/test/worker-error-pages.test.ts:115oxlint-disable-next-line typescript/no-unsafe-type-assertionthe layer above provides the Worker init bindings.
apps/site/test/worker-error-pages.test.ts:130oxlint-disable-next-line typescript/no-unsafe-type-assertionmakeRequestHandler erases its response effect type.
apps/site/test/worker-events.test.ts:26oxlint-disable-next-line typescript/promise-function-asyncCloudflare’s binding returns a native Promise.
apps/site/test/worker-events.test.ts:103oxlint-disable-next-line typescript/no-unsafe-type-assertionruntimeServices provides the Worker init bindings.
apps/site/test/worker-events.test.ts:128oxlint-disable-next-line typescript/no-unsafe-type-assertionmakeRequestHandler erases its response effect type.
apps/site/test/worker-runtime-init.test.ts:24oxlint-disable-next-line typescript/promise-function-asyncCloudflare’s binding returns a native Promise.
apps/site/test/worker-runtime-init.test.ts:44oxlint-disable-next-line typescript/promise-function-asyncThe Website stub implements a native service binding.
apps/site/test/worker-runtime-init.test.ts:90oxlint-disable-next-line typescript/no-unsafe-type-assertionruntimeServices provides the Worker init bindings.
apps/site/test/worker-runtime-init.test.ts:121oxlint-disable-next-line typescript/no-unsafe-type-assertionmakeRequestHandler erases its response effect type.
apps/site/test/worker.test.ts:65oxlint-disable-next-line typescript/promise-function-asyncThis fake deliberately matches Cloudflare’s Promise-returning Cache API.
apps/site/test/worker.test.ts:73oxlint-disable-next-line typescript/promise-function-asyncThis fake deliberately matches Cloudflare’s Promise-returning Cache API.
apps/site/test/worker.test.ts:117oxlint-disable-next-line typescript/promise-function-asyncThe fake deliberately matches Cloudflare’s Promise-returning binding.
apps/site/test/worker.test.ts:136oxlint-disable-next-line typescript/promise-function-asyncWeb Crypto owns the Promise at this test boundary.
apps/site/test/worker.test.ts:360oxlint-disable-next-line typescript/promise-function-asyncWeb Crypto owns the Promise at this test boundary.
apps/site/test/worker.test.ts:369oxlint-disable-next-line typescript/promise-function-asyncWeb Crypto owns the Promise at this test boundary.
apps/site/test/worker.test.ts:1585oxlint-disable-next-line typescript/promise-function-asyncFetch owns this Promise-returning test boundary.
apps/site/test/worker.test.ts:1626oxlint-disable-next-line typescript/promise-function-asyncFetch owns this Promise-returning test boundary.
apps/web/reader-finalization.ts:10@effect-diagnostics-next-line asyncFunction:offVite awaits finalization after the Foldkit prerender hook.
apps/web/reader-pages.ts:48@effect-diagnostics-next-line asyncFunction:offVite awaits preparation before loading any reader module.
apps/web/reader-pages.ts:52@effect-diagnostics-next-line asyncFunction:offVite awaits this build-time virtual module boundary.
apps/web/src/client/reader/command.ts:29@effect-diagnostics-next-line asyncFunction:offThe native Clipboard API owns this Promise boundary.
apps/web/src/entry.server.ts:215@effect-diagnostics-next-line asyncFunction:offFoldkit awaits the Web request boundary.
apps/web/src/server/website-bindings.ts:26@effect-diagnostics-next-line asyncFunction:offEffect.tryPromise owns the lazy Cloudflare module import boundary.
apps/web/src/server/website-bindings.ts:96@effect-diagnostics-next-line asyncFunction:offEffect.tryPromise owns the service binding Promise boundary.
apps/web/test/dev-content-routes.test.ts:29oxlint-disable-next-line anti-slop-effect/no-manual-tagged-constructionThis is the Effect RPC wire message the browser sends; the test writes it by hand on purpose.
apps/web/test/dev-content-routes.test.ts:38@effect-diagnostics-next-line asyncFunction:offThe Effect web handler is a Promise boundary.
apps/web/test/dev-server.test.ts:1@effect-diagnostics nodeBuiltinImport:off asyncFunction:off newPromise:off globalTimers:off globalFetch:offBlack-box test of vite dev: it spawns the real dev server and talks HTTP to it, so Node built-ins, Promises, and fetch are the right tools at that boundary.
apps/web/test/dev-server.test.ts:18oxlint-disable-next-line promise/avoid-newA child process’s first log line has no library Promise to await.
apps/web/test/dev-server.test.ts:49oxlint-disable-next-line anti-slop-effect/no-manual-tagged-constructionThis is the Effect RPC wire message the browser sends; the black-box test writes it by hand on purpose.
apps/web/test/production-bundle.test.ts:1@effect-diagnostics nodeBuiltinImport:offThese tests build the app with the real Vite binary and read the emitted source maps from disk.
apps/web/test/reader-worker-first-head.test.ts:11@effect-diagnostics-next-line asyncFunction:offThe built server entry loads through a dynamic import Promise.
apps/web/test/reader-worker-first-head.test.ts:47@effect-diagnostics-next-line asyncFunction:offThe Worker fetch handler returns a host Promise.
apps/web/vite.config.ts:79@effect-diagnostics-next-line asyncFunction:offConnect middleware and Vite’s module loader use Promises.
packages/auth/src/auth-service.ts:5@effect-diagnostics-next-line leakingRequirements:offBetter Auth intentionally retains per-request RuntimeContext requirements.
packages/auth/src/auth.ts:25@effect-diagnostics-next-line leakingRequirements:offBetter Auth methods intentionally retain per-request RuntimeContext requirements.
packages/auth/src/current-person-middleware.ts:27oxlint-disable-next-line promise/prefer-await-to-callbacksEffect.tapError needs an Effect continuation, not a Promise callback.
packages/auth/src/devtools.ts:54@effect-diagnostics-next-line asyncFunction:offBetter Auth’s raw API is Promise-based.
packages/auth/src/devtools.ts:61@effect-diagnostics-next-line asyncFunction:offBetter Auth’s raw API is Promise-based.
packages/auth/src/feedback.ts:65oxlint-disable-next-line typescript/promise-function-asyncBetter Auth and Web Crypto own native Promises at this adapter boundary.
packages/auth/src/feedback.ts:75oxlint-disable-next-line typescript/promise-function-asyncBetter Auth and Web Crypto own native Promises at this adapter boundary.
packages/auth/src/feedback.ts:92oxlint-disable-next-line typescript/promise-function-asyncBetter Auth and Web Crypto own native Promises at this adapter boundary.
packages/auth/src/feedback.ts:154oxlint-disable-next-line typescript/promise-function-asyncBetter Auth and Web Crypto own native Promises at this adapter boundary.
packages/auth/src/feedback.ts:209oxlint-disable-next-line typescript/promise-function-asyncBetter Auth and Web Crypto own native Promises at this adapter boundary.
packages/auth/src/feedback.ts:256oxlint-disable-next-line typescript/promise-function-asyncBetter Auth and Web Crypto own native Promises at this adapter boundary.
packages/auth/src/feedback.ts:299oxlint-disable-next-line typescript/promise-function-asyncBetter Auth and Web Crypto own native Promises at this adapter boundary.
packages/auth/src/feedback.ts:324oxlint-disable-next-line typescript/promise-function-asyncBetter Auth and Web Crypto own native Promises at this adapter boundary.
packages/auth/src/feedback.ts:345@effect-diagnostics-next-line leakingRequirements:offProvider operations retain RuntimeContext until the composition root binds them inside a request.
packages/auth/test/feedback.test.ts:237oxlint-disable-next-line typescript/promise-function-asyncBetter Auth and Web Crypto own native Promises at this adapter boundary.
packages/auth/test/feedback.test.ts:242oxlint-disable-next-line typescript/promise-function-asyncBetter Auth and Web Crypto own native Promises at this adapter boundary.
packages/capability/src/approval.ts:10oxlint-disable-next-line anti-slop/no-unknown-parametersEvery capability’s decoded input passes through one gate, so its type is erased here; an implementation that shows it to a human encodes it.
packages/capability/src/call-watch.ts:8oxlint-disable-next-line anti-slop/no-unknown-parametersThe decoded input is erased by implement across heterogeneous capability lists.
packages/capability/src/catalog-model.ts:114oxlint-disable-next-line no-use-before-defineprintNode and the object/primitive printers are mutually recursive.
packages/capability/src/catalog-model.ts:145oxlint-disable-next-line no-use-before-defineno reason given
packages/capability/src/contract.ts:272oxlint-disable-next-line typescript/no-unsafe-type-assertionno reason given
packages/capability/src/implement.ts:54oxlint-disable-next-line typescript/no-unsafe-type-assertion, anti-slop/no-chained-type-assertionsThe heterogeneous record erases its handler channels until the public generic type is restored.
packages/capability/src/implement.ts:81@effect-diagnostics-next-line anyUnknownInErrorContext:offThe erased handler of a heterogeneous list; Around preserves whatever channels it has.
packages/capability/src/sandbox-diagnostic.ts:22oxlint-disable-next-line anti-slop/no-unknown-parametersCapability failures arrive erased at this schema-decoding boundary.
packages/capability/src/to-code-mode.ts:1@effect-diagnostics anyUnknownInErrorContext:off unsafeEffectTypeAssertion:off missingEffectContext:offSee to-toolkit.ts: a projection over a heterogeneous list erases error and requirement types at the boundary and recovers them for callers.
packages/capability/src/to-code-mode.ts:196oxlint-disable-next-line typescript/no-unsafe-type-assertionno reason given
packages/capability/src/to-code-mode.ts:198oxlint-disable-next-line anti-slop/no-unknown-parametersno reason given
packages/capability/src/to-code-mode.ts:291oxlint-disable-next-line typescript/no-unsafe-type-assertionno reason given
packages/capability/src/to-code-mode.ts:336oxlint-disable-next-line typescript/no-unsafe-type-assertionno reason given
packages/capability/src/to-command.ts:99oxlint-disable-next-line typescript/no-unsafe-type-assertionno reason given
packages/capability/src/to-command.ts:132oxlint-disable-next-line typescript/no-unsafe-type-assertionPlainSchema has no requirements, so the CLI environment satisfies the codec.
packages/capability/src/to-command.ts:177@effect-diagnostics-next-line unstableApiUsage:offThe CLI projection uses the workspace-pinned experimental prompt environment.
packages/capability/src/to-command.ts:184@effect-diagnostics-next-line unstableApiUsage:offInteractive CLI approval uses the workspace-pinned confirmation widget.
packages/capability/src/to-command.ts:190@effect-diagnostics-next-line unstableApiUsage:offInteractive CLI approval uses the workspace-pinned prompt runner.
packages/capability/src/to-command.ts:267oxlint-disable-next-line typescript/no-unsafe-type-assertionno reason given
packages/capability/src/to-command.ts:293oxlint-disable-next-line typescript/no-unsafe-type-assertionDecoded through contract.input, whose Type C makes precise.
packages/capability/src/to-http-api.ts:1@effect-diagnostics anyUnknownInErrorContext:off unsafeEffectTypeAssertion:off missingEffectContext:offSee to-toolkit.ts: a projection over a heterogeneous list erases error and requirement types at the boundary and recovers them for callers.
packages/capability/src/to-http-api.ts:38oxlint-disable-next-line typescript/no-unsafe-type-assertion, anti-slop/no-chained-type-assertionsno reason given
packages/capability/src/to-http-api.ts:50oxlint-disable-next-line typescript/no-unsafe-type-assertion, anti-slop/no-chained-type-assertionsno reason given
packages/capability/src/to-http-api.ts:397oxlint-disable-next-line typescript/no-unsafe-type-assertionno reason given
packages/capability/src/to-http-api.ts:401oxlint-disable-next-line typescript/no-unsafe-type-assertion, anti-slop/no-chained-type-assertionsno reason given
packages/capability/src/to-http-api.ts:420oxlint-disable-next-line typescript/no-unsafe-type-assertion, anti-slop/no-chained-type-assertionsno reason given
packages/capability/src/to-http-api.ts:435oxlint-disable-next-line typescript/no-unsafe-type-assertionno reason given
packages/capability/src/to-http-api.ts:450oxlint-disable-next-line typescript/no-unsafe-type-assertion, anti-slop/no-chained-type-assertionsno reason given
packages/capability/src/to-http-api.ts:507oxlint-disable-next-line typescript/no-unsafe-type-assertion, anti-slop/no-chained-type-assertionsno reason given
packages/capability/src/to-http-api.ts:521oxlint-disable-next-line typescript/no-unsafe-type-assertionno reason given
packages/capability/src/to-http-api.ts:523oxlint-disable-next-line anti-slop/no-unknown-parametersno reason given
packages/capability/src/to-http-api.ts:540oxlint-disable-next-line typescript/no-unsafe-type-assertionno reason given
packages/capability/src/to-http-api.ts:560oxlint-disable-next-line typescript/no-unsafe-type-assertion, anti-slop/no-chained-type-assertionsno reason given
packages/capability/src/to-rpc-group.ts:43oxlint-disable-next-line typescript/no-unsafe-type-assertionno reason given
packages/capability/src/to-rpc.ts:1@effect-diagnostics anyUnknownInErrorContext:off unsafeEffectTypeAssertion:off missingEffectContext:offThis projection erases each capability’s schema and requirement types while building the heterogeneous RpcGroup and recovers them at its public boundary.
packages/capability/src/to-rpc.ts:29oxlint-disable-next-line typescript/no-unsafe-type-assertionno reason given
packages/capability/src/to-rpc.ts:40oxlint-disable-next-line anti-slop/no-unknown-parametersRpcGroup invokes this only after decoding the RPC payload schema.
packages/capability/src/to-rpc.ts:47oxlint-disable-next-line typescript/no-unsafe-type-assertionno reason given
packages/capability/src/to-rpc.ts:49oxlint-disable-next-line anti-slop/no-unknown-parametersRpcGroup invokes this only after decoding the RPC payload schema.
packages/capability/src/to-rpc.ts:58oxlint-disable-next-line typescript/no-unsafe-type-assertion, anti-slop/no-chained-type-assertionsThis heterogeneous projection recovers the mapped handlers after the runtime name-indexed loop.
packages/capability/src/to-rpc.ts:66oxlint-disable-next-line typescript/no-unsafe-type-assertionno reason given
packages/capability/src/to-toolkit.ts:1@effect-diagnostics anyUnknownInErrorContext:off unsafeEffectTypeAssertion:off missingEffectContext:offA projection over a heterogeneous list of capabilities erases each one’s error and requirement types at the boundary and recovers them for callers through ToolsOf / RequirementsOf. The three diagnostics above cannot distinguish that boundary from a leak, so they are off for this file only.
packages/capability/src/to-toolkit.ts:101oxlint-disable-next-line typescript/no-unsafe-type-assertionno reason given
packages/capability/src/to-toolkit.ts:110oxlint-disable-next-line anti-slop/no-unknown-parametersThe toolkit decodes each tool’s parameters before calling; this record erases them because a loop cannot name each capability.
packages/capability/src/to-toolkit.ts:116oxlint-disable-next-line typescript/no-unsafe-type-assertionno reason given
packages/capability/src/to-toolkit.ts:118oxlint-disable-next-line anti-slop/no-unknown-parametersno reason given
packages/capability/src/to-toolkit.ts:140oxlint-disable-next-line typescript/no-unsafe-type-assertion, anti-slop/no-chained-type-assertionsno reason given
packages/capability/test/fixtures/wiki/foreign-runtime-boundary.ts:20@effect-diagnostics-next-line asyncFunction:offThis foreign framework boundary exposes a native Promise API.
packages/capability/test/mcp-harness.ts:1@effect-diagnostics asyncFunction:offThe fetch shim below must be a Promise-returning function because that is what FetchHttpClient.Fetch calls; everything around it is Effect.
packages/capability/test/sandbox.test.ts:1@effect-diagnostics-next-line nodeBuiltinImport:offThis integration test needs a real loopback socket; NodeHttpServer.layer accepts the Node server factory.
packages/capability/test/to-http-api-routes.test.ts:107oxlint-disable-next-line typescript/promise-function-asyncHttpRouter exposes a Promise API for this in-memory web handler test.
packages/capability/test/to-http-api-routes.test.ts:110oxlint-disable-next-line typescript/promise-function-asyncWeb Response.text returns a Promise at this in-memory transport boundary.
packages/capability/test/to-http-api-routes.test.ts:126oxlint-disable-next-line typescript/promise-function-asyncHttpRouter exposes a Promise API for this in-memory web handler test.
packages/capability/test/to-http-api-routes.test.ts:129oxlint-disable-next-line typescript/promise-function-asyncWeb Response.text returns a Promise at this in-memory transport boundary.
packages/capability/test/to-http-api-routes.test.ts:230@ts-expect-errora path parameter must name an input field; this call proves the type check, and toHttpApi’s throw covers contracts only known as AnyContract.
packages/capability/test/to-http-api-routes.test.ts:340oxlint-disable-next-line typescript/no-unsafe-type-assertionno reason given
packages/capability/test/to-http-api-routes.test.ts:370oxlint-disable-next-line typescript/no-unsafe-type-assertionno reason given
packages/capability/test/to-http-api-routes.test.ts:500@ts-expect-errorfrom must answer the tag’s service, not a number.
packages/capability/test/to-http-api-routes.test.ts:511@ts-expect-errorfrom may fail only with its declared failure.
packages/capability/test/to-http-api-routes.test.ts:512@effect-diagnostics-next-line missingEffectError:offthis hook fails with an undeclared value on purpose, to prove the type error.
packages/capability/test/to-rpc.test.ts:164oxlint-disable-next-line typescript/promise-function-asyncHttpRouter exposes a Promise API for this in-memory RPC transport test.
packages/capability/test/to-rpc.test.ts:182oxlint-disable-next-line typescript/promise-function-asyncWeb Response.text returns a Promise at this in-memory transport boundary.
packages/code-snippets/src/shiki.ts:122@effect-diagnostics-next-line asyncFunction:offShiki owns the variadic Promise grammar-loader boundary.
packages/core/src/config-service.ts:24@effect-diagnostics-next-line classSelfMismatch:offThe generic factory hands the Self type in from the caller, which is the point of the pattern, so the class-name check does not apply here.
packages/core/src/config-service.ts:35oxlint-disable-next-line typescript/no-unsafe-type-assertionno reason given
packages/core/src/flag-audit.ts:188@effect-diagnostics-next-line anyUnknownInErrorContext:offExpected failures travel in Exit output; an unexpected machine failure is a defect.
packages/core/src/inspect-machine.ts:70@effect-diagnostics-next-line anyUnknownInErrorContext:offA machine-level error or an early stop is a programming error here: the domain failure travels through the unreadable state, not the actor. A machine’s ErrorFrom is unknown by design (statelyai/xstate#5725), so the unknown-error diagnostic is off for this one call and orDie closes it.
packages/core/src/interest-machine.ts:360@effect-diagnostics-next-line anyUnknownInErrorContext:offA machine’s ErrorFrom is unknown (statelyai/xstate#5725); a machine-level error here is a programming error and orDie closes it.
packages/core/src/interest-services.ts:9oxlint-disable-next-line typescript/promise-function-asyncWeb Crypto owns this Promise-returning boundary.
packages/core/src/interest-token.ts:21oxlint-disable-next-line typescript/promise-function-asyncWeb Crypto owns this Promise-returning boundary.
packages/core/src/interest-token.ts:50oxlint-disable-next-line rat-stack-patterns/no-shared-pending-cacheThis service caches CryptoKey import from a fixed secret with no request-bound I/O.
packages/core/src/interest-token.ts:60oxlint-disable-next-line typescript/promise-function-asyncWeb Crypto owns this Promise-returning boundary.
packages/core/src/interest-token.ts:96oxlint-disable-next-line typescript/promise-function-asyncWeb Crypto owns this Promise-returning boundary.
packages/core/src/interest-token.ts:128oxlint-disable-next-line typescript/promise-function-asyncWeb Crypto owns this Promise-returning boundary.
packages/core/src/join-delivery-machine.ts:111@effect-diagnostics-next-line anyUnknownInErrorContext:offMachine-level defects are not domain failures; only the typed IntakeResult leaves the actor.
packages/core/src/join-interest-port.ts:7@effect-diagnostics-next-line cryptoRandomUUIDInEffect:offWeb Crypto is available in both Worker and Node composition roots.
packages/core/test/boundaries-rule.test.ts:1@effect-diagnostics nodeBuiltinImport:offThese tests create temporary source fixtures and run the real oxlint binary against them.
packages/core/test/docs-pins.test.ts:1@effect-diagnostics nodeBuiltinImport:offThis test reads the repository’s manifests and docs from disk.
packages/core/test/inspect-machine.model.test.ts:171@effect-diagnostics-next-line anyUnknownInErrorContext:offMachine-level failures are defects; FileStatsError travels through the final outcome.
packages/core/test/inspect-machine.test.ts:18@effect-diagnostics-next-line anyUnknownInErrorContext:offA machine’s ErrorFrom is unknown (statelyai/xstate#5725); a machine-level error here is a test failure, not a case under test.
packages/core/test/no-comments-rule.test.ts:1@effect-diagnostics nodeBuiltinImport:offThese tests run the real oxlint binary against fixture files, so they use Node’s file system and child process modules directly.
packages/core/test/patterns-rule.test.ts:1@effect-diagnostics nodeBuiltinImport:offThese tests create temporary source fixtures and run the real oxlint binary against them.
packages/core/test/unknown-parameters-rule.test.ts:1@effect-diagnostics nodeBuiltinImport:offThese tests write temporary source fixtures and run the real oxlint binary against them.
packages/database/src/hyperdrive-postgres.ts:71oxlint-disable-next-line promise-function-asyncEffect.promise consumes a Promise factory directly.
packages/database/src/postgres-migrations.ts:60oxlint-disable-next-line promise-function-asyncEffect.promise consumes a Promise factory directly.
packages/database/src/postgres-migrations.ts:68@effect-diagnostics-next-line asyncFunction:offThe pg client exposes Promise-based connection setup.
packages/database/src/postgres-migrations.ts:86@effect-diagnostics-next-line asyncFunction:offThe pg client exposes Promise-based shutdown.
packages/database/src/store.ts:82oxlint-disable-next-line unicorn/no-array-method-this-argumentEffect.forEach is not Array#forEach; the callback is an effectful mapper.
packages/database/src/store.ts:91oxlint-disable-next-line unicorn/no-array-method-this-argumentEffect.forEach is not Array#forEach; the callback is an effectful mapper.
packages/database/test/local-layers.ts:49@effect-diagnostics-next-line asyncFunction:offSQL.js initializes its local SQLite engine through a Promise API.
packages/database/test/local-layers.ts:81@effect-diagnostics-next-line asyncFunction:offThe SQL.js Drizzle adapter exposes Promise-based queries.
packages/database/test/local-layers.ts:102@effect-diagnostics-next-line asyncFunction:offThe SQL.js Drizzle adapter exposes Promise-based queries.
packages/database/test/local-layers.ts:122@effect-diagnostics-next-line asyncFunction:offPGlite creates its local Postgres engine through a Promise API.
packages/database/test/local-layers.ts:127@effect-diagnostics-next-line asyncFunction:offPGlite closes its local Postgres engine through a Promise API.
packages/database/test/local-layers.ts:144@effect-diagnostics-next-line asyncFunction:offPGlite transactions use a Promise callback.
packages/database/test/local-layers.ts:147@effect-diagnostics-next-line asyncFunction:offPGlite exposes the transaction callback as a Promise API.
packages/database/test/local-layers.ts:150oxlint-disable-next-line no-await-in-loopMigration statements must stay ordered inside one transaction.
packages/database/test/local-layers.ts:165@effect-diagnostics-next-line asyncFunction:offPGlite queries use a Promise API.
packages/database/test/local-layers.ts:188@effect-diagnostics-next-line asyncFunction:offPGlite’s Drizzle adapter exposes Promise-based queries.
packages/database/test/local-layers.ts:209@effect-diagnostics-next-line asyncFunction:offPGlite’s Drizzle adapter exposes Promise-based queries.
packages/deploy/src/local.ts:438@effect-diagnostics-next-line anyUnknownInErrorContext:offAlchemy imports arbitrary stack modules; this adapter maps the upstream unknown failure into DeployStepError.
packages/deploy/src/machine.ts:615@effect-diagnostics-next-line anyUnknownInErrorContext:offStep crashes are explicit states; an unexpected machine failure remains a defect.
packages/deploy/src/rollback.ts:130@effect-diagnostics-next-line anyUnknownInErrorContext:offUnexpected recovery machine failures remain defects and never establish health.
packages/deploy/src/watch.ts:397@effect-diagnostics-next-line anyUnknownInErrorContext:offUnexpected watch actor failures remain defects rather than a passing observation.
packages/deploy/test/machine.model.test.ts:332@effect-diagnostics-next-line anyUnknownInErrorContext:offMachine-level errors remain defects; the model checks explicit terminal step outcomes.
packages/deploy/test/machine.model.test.ts:458@effect-diagnostics-next-line anyUnknownInErrorContext:offMachine-level errors remain defects; the property checks the refused verdict.
packages/deploy/test/worker-version-readback.model.test.ts:176@effect-diagnostics-next-line anyUnknownInErrorContext:offUnexpected actor defects are not a passing qualification.
packages/devtools/src/actor-watcher.ts:47oxlint-disable-next-line anti-slop/no-unknown-parametersMachine context, state values, and events are user-defined and erased at the XState inspection boundary; turning them into JSON is this function’s job.
packages/devtools/src/json.ts:42oxlint-disable-next-line anti-slop/no-unknown-parametersHandler values arrive erased across the heterogeneous capability list; the schema encodes them before anything reads them.
packages/devtools/test/devtools.test.ts:601oxlint-disable-next-line anti-slop/no-unknown-parametersCallWatch preserves the erased input across heterogeneous capability lists.
packages/devtools/test/devtools.test.ts:619oxlint-disable-next-line anti-slop/no-unknown-parametersaroundHandlers erases input across a heterogeneous capability list.
packages/events/src/web-crypto.ts:6oxlint-disable-next-line typescript/promise-function-asyncWeb Crypto owns this Promise-returning boundary.
packages/flags/src/evaluate.ts:25oxlint-disable-next-line eslint/no-bitwiseFNV-1a mixes each Unicode code point into a fixed 32-bit hash.
packages/flags/src/evaluate.ts:29oxlint-disable-next-line eslint/no-bitwiseUnsigned conversion maps the FNV-1a result into the rollout bucket range.
packages/intake-live/src/basin-intake-events.ts:43oxlint-disable-next-line unicorn/no-array-method-this-argumentEffect.forEach is the Effect combinator, not Array#forEach with a thisArg.
packages/intake-live/src/hmac-tickets.ts:34oxlint-disable-next-line typescript/promise-function-asyncWeb Crypto owns this Promise-returning boundary.
packages/intake-live/src/hmac-tickets.ts:46oxlint-disable-next-line typescript/promise-function-asyncWeb Crypto owns this Promise-returning boundary.
packages/intake-live/src/hmac-tickets.ts:96oxlint-disable-next-line rat-stack-patterns/no-shared-pending-cacheThis service caches CryptoKey derivation from a fixed secret with no request-bound I/O.
packages/intake-live/src/hmac-tickets.ts:114oxlint-disable-next-line typescript/promise-function-asyncWeb Crypto owns this Promise-returning boundary.
packages/intake-live/src/hmac-tickets.ts:136oxlint-disable-next-line typescript/promise-function-asyncWeb Crypto owns this Promise-returning boundary.
packages/intake-live/src/read-application.ts:23oxlint-disable-next-line unicorn/no-array-method-this-argumentEffect.forEach is the Effect combinator, not an Array method with a thisArg.
packages/intake-live/src/sealed-intake-events.ts:43oxlint-disable-next-line typescript/promise-function-asyncWeb Crypto owns this Promise-returning boundary.
packages/intake-live/src/sealed-intake-events.ts:63oxlint-disable-next-line typescript/promise-function-asyncWeb Crypto owns this Promise-returning boundary.
packages/intake-live/src/sealed-intake-events.ts:85oxlint-disable-next-line typescript/promise-function-asyncWeb Crypto owns this Promise-returning boundary.
packages/intake-live/src/sealed-intake-events.ts:146oxlint-disable-next-line unicorn/no-array-method-this-argumentEffect.forEach is the Effect combinator, not Array#forEach with a thisArg.
packages/learn/src/commit-machine.ts:54@effect-diagnostics-next-line anyUnknownInErrorContext:offUnexpected machine failures are defects; the typed append failure travels through the final output.
packages/learn/src/feedback-machine.ts:154@effect-diagnostics-next-line anyUnknownInErrorContext:offUnexpected machine failures stay defects; expected unauthentication is carried in the final context.
packages/learn/src/feedback-machine.ts:179@effect-diagnostics-next-line anyUnknownInErrorContext:offCredential checks return explicit states; machine failures must not become authentication decisions.
packages/learn/test/feedback.model.test.ts:49@effect-diagnostics-next-line anyUnknownInErrorContext:offUnexpected machine failures must fail the model check.
packages/learn/test/feedback.model.test.ts:66@effect-diagnostics-next-line anyUnknownInErrorContext:offUnexpected machine failures must fail the model check.
scripts/find-peers.ts:1@effect-diagnostics nodeBuiltinImport:offThis Node CLI reads manifests and a local roster directly from disk.
scripts/find-peers.ts:118@effect-diagnostics-next-line asyncFunction:offThis one-shot Node CLI batches Sourcegraph requests with native Promise I/O.
scripts/find-peers.ts:125@effect-diagnostics-next-line globalFetch:offThis Node CLI fetches a public Sourcegraph endpoint outside an Effect runtime.
scripts/oxlint-plugin-boundaries.ts:1@effect-diagnostics nodeBuiltinImport:offThis Oxlint plugin runs as Node tooling and reads repository files directly.
scripts/oxlint-plugin-boundaries.ts:104oxlint-disable-next-line anti-slop/no-runtime-typeofESTree Literal also represents numbers and booleans, so module sources need a string boundary check.
scripts/oxlint-plugin-boundaries.ts:259oxlint-disable-next-line anti-slop/no-runtime-typeofESTree Literal also represents numbers and booleans, so object keys need a string check.
scripts/oxlint-plugin-boundaries.ts:284oxlint-disable-next-line anti-slop/no-runtime-typeofESTree Literal also represents numbers, booleans, and regexes, so a computed key needs a string check.
scripts/oxlint-plugin-patterns.ts:1@effect-diagnostics nodeBuiltinImport:offThis Oxlint plugin runs as Node tooling and reads repository files directly.
scripts/oxlint-plugin-patterns.ts:68oxlint-disable-next-line anti-slop/no-runtime-typeofESTree Literal also represents numbers, booleans, and regexes, so computed API names need a string check.
scripts/oxlint-plugin-patterns.ts:92oxlint-disable-next-line anti-slop/no-runtime-typeofESTree Literal also represents numbers and booleans, so destructuring keys need a string check.
scripts/oxlint-plugin-patterns.ts:111oxlint-disable-next-line anti-slop/no-runtime-typeofESTree Literal also represents numbers and booleans, so contract names need a string check.
scripts/oxlint-plugin-xstate-effect.ts:14oxlint-disable anti-slop/no-runtime-typeofThe walker below reads every child of an ESTree node generically, so each child arrives as unknown. Lint tooling has no schema layer; this structural guard is the boundary check the anti-slop rule asks for.