Skip to content

Conversation

@tk-o
Copy link
Contributor

@tk-o tk-o commented Feb 11, 2026

Lite PR

Tip: Review docs on the ENSNode PR process

Summary

  • This PR introduces structural changes only (no logical changes were intended).
  • Updates in this PR will enable creating an independent validation layer for following data models:
    • CrossChainIndexingStatusSnapshot
    • RealtimeIndexingStatusProjection

Why

  • Indexing Status Builder has to able to build an object like Unvalidated<CrossChainIndexingStatusSnapshot> and have it validated with validateCrossChainIndexingStatusSnapshot.

Testing

  • Ran lint, typecheck, and test.
  • Tested /api/indexing-status on local ENSIndexer instance.
  • Tested /api/indexing-status on local ENSApi instance connected to ENSIndexer Alpha in the Green env.

Notes for Reviewer (Optional)


Pre-Review Checklist (Blocking)

  • This PR does not introduce significant changes and is low-risk to review quickly.
  • Relevant changesets are included (or are not required)

tk-o added 18 commits February 11, 2026 17:29
Replace `./types` with `./cross-chain-indexing-status-snapshot`
Replace `./serialized-types` with `./serialize/cross-chain-indexing-status-snapshot`
Replace `./deserialize` with `./deserialize/cross-chain-indexing-status-snapshot`
…types.ts file

Rename `types.ts` to `realtime-indexing-status-projection.ts`.
…projection.ts file

Merge `projection.ts` into `realtime-indexing-status-projection.ts`.
… serialized-types.ts file

Rename `serialize-types.ts` to `serialize/realtime-indexing-status-projection.ts`.
… serialize.ts file

Merge `serialize.ts` into `serialize/realtime-indexing-status-projection.ts`.
…c zod-schemas.ts file

Rename `zod-schemas.ts` into `zod-schema/realtime-indexing-status-projection.ts`.
…c validations.ts file

Merge `validations.ts` into `zod-schema/realtime-indexing-status-projection.ts`.
…ic deserialize.ts file

Rename `deserialize.ts` to `deserialize/realtime-indexing-status-projection.ts`.
Copilot AI review requested due to automatic review settings February 11, 2026 17:19
@vercel
Copy link
Contributor

vercel bot commented Feb 11, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
admin.ensnode.io Ready Ready Preview, Comment Feb 11, 2026 5:48pm
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
ensnode.io Skipped Skipped Feb 11, 2026 5:48pm
ensrainbow.io Skipped Skipped Feb 11, 2026 5:48pm

@changeset-bot
Copy link

changeset-bot bot commented Feb 11, 2026

⚠️ No Changeset found

Latest commit: 66ae12d

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@tk-o tk-o marked this pull request as ready for review February 11, 2026 17:19
@tk-o tk-o requested a review from a team as a code owner February 11, 2026 17:19
@coderabbitai
Copy link

coderabbitai bot commented Feb 11, 2026

Warning

Rate limit exceeded

@tk-o has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 2 minutes and 14 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📝 Walkthrough

Walkthrough

This pull request refactors the indexing-status module structure by reorganizing files into specialized subdirectories (deserialize/, serialize/, zod-schema/), moving functions into more focused modules, and updating the public export surface in index.ts to reflect the new layout without altering core functionality.

Changes

Cohort / File(s) Summary
Module Consolidation & Removal
deserialize.ts, helpers.ts, projection.ts, serialize.ts, serialized-types.ts, zod-schemas.ts
Removed consolidated modules in favor of specialized subdirectory structure. Functions and types formerly exported here are now split across deserialize/, serialize/, and zod-schema/ subdirectories.
Deserialization Refactoring
deserialize/cross-chain-indexing-status-snapshot.ts, deserialize/realtime-indexing-status-projection.ts
Created new specialized deserialization modules. deserializeCrossChainIndexingStatusSnapshot and deserializeRealtimeIndexingStatusProjection now exist as separate files with their own schema builders and error handling.
Serialization Refactoring
serialize/cross-chain-indexing-status-snapshot.ts, serialize/realtime-indexing-status-projection.ts
Added new serialization layer with SerializedCrossChainIndexingStatusSnapshotOmnichain interface and serializeCrossChainIndexingStatusSnapshotOmnichain/serializeCrossChainIndexingStatusSnapshot functions, plus SerializedRealtimeIndexingStatusProjection interface and serializeRealtimeIndexingStatusProjection function.
Core Type & Function Relocation
cross-chain-indexing-status-snapshot.ts, realtime-indexing-status-projection.ts
Moved getLatestIndexedBlockRef to cross-chain-indexing-status-snapshot.ts and introduced new realtime-indexing-status-projection.ts module defining RealtimeIndexingStatusProjection type and createRealtimeIndexingStatusProjection factory function.
Zod Schema Reorganization
zod-schema/realtime-indexing-status-projection.ts, zod-schema/cross-chain-indexing-status-snapshot.ts, zod-schema/chain-indexing-status-snapshot.test.ts
Split schema factories across specialized files. Added makeRealtimeIndexingStatusProjectionSchema with invariants in new realtime module; makeCrossChainIndexingStatusSnapshotSchema now in dedicated cross-chain module. Updated test import paths to reflect reorganization.
API Surface Restructuring
index.ts, src/api/indexing-status/zod-schemas.ts, internal.ts
Reorganized public exports to directly reference specialized subdirectories instead of barrel exports. Removed legacy export * from "./zod-schemas" and re-mapped module paths to deserialize/\*, serialize/\*, and specific realtime-indexing-status-projection variants.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

Suggested labels

ensnode-sdk

Poem

🐰 Through folders we hop, reorganizing our way,
Schemas and functions find homes to stay,
From deserts of files to gardens so neat,
Cross-chains and realtime projections now meet!

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 72.73% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly reflects the main change: a structural refactor of the indexing status data model. It is concise, specific, and accurately summarizes the primary intent of the changeset.
Description check ✅ Passed The PR description follows the template with all required sections completed: Summary (what changed), Why (context and linked to validation layer), Testing (verification methods), Notes for Reviewer, and Pre-Review Checklist. The description is comprehensive and provides sufficient context.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch refactor/ensnode-indexing-status-data-model

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@tk-o
Copy link
Contributor Author

tk-o commented Feb 11, 2026

@greptile review

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Refactors the ENSIndexer indexing-status module to further separate responsibilities (data model vs serialize/deserialize vs Zod schema) in preparation for an independent validation layer for CrossChainIndexingStatusSnapshot and RealtimeIndexingStatusProjection.

Changes:

  • Moves Cross-chain + Realtime projection Zod schemas into the zod-schema/ layer and splits serialization/deserialization into dedicated modules.
  • Extracts RealtimeIndexingStatusProjection into its own model file and relocates getLatestIndexedBlockRef into cross-chain-indexing-status-snapshot.ts.
  • Removes legacy aggregator modules (deserialize.ts, serialize.ts, serialized-types.ts, zod-schemas.ts, helpers.ts, projection.ts) in favor of granular exports.

Reviewed changes

Copilot reviewed 19 out of 19 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
packages/ensnode-sdk/src/internal.ts Removes re-export of deprecated ENSIndexer indexing-status Zod schema barrel.
packages/ensnode-sdk/src/ensindexer/indexing-status/zod-schemas.ts Deleted old indexing-status Zod schema barrel (moved to zod-schema/).
packages/ensnode-sdk/src/ensindexer/indexing-status/zod-schema/realtime-indexing-status-projection.ts Adds dedicated Zod schema + invariants for realtime projection.
packages/ensnode-sdk/src/ensindexer/indexing-status/zod-schema/cross-chain-indexing-status-snapshot.ts Updates cross-chain snapshot schema placement and dependencies.
packages/ensnode-sdk/src/ensindexer/indexing-status/zod-schema/chain-indexing-status-snapshot.test.ts Fixes imports after refactor.
packages/ensnode-sdk/src/ensindexer/indexing-status/serialized-types.ts Deletes old shared serialized type definitions (moved into serialize modules).
packages/ensnode-sdk/src/ensindexer/indexing-status/serialize/realtime-indexing-status-projection.ts Adds serialize module + serialized interfaces for realtime projection.
packages/ensnode-sdk/src/ensindexer/indexing-status/serialize/cross-chain-indexing-status-snapshot.ts Adds serialize module + serialized interfaces for cross-chain snapshot.
packages/ensnode-sdk/src/ensindexer/indexing-status/serialize.ts Deletes old serialize barrel.
packages/ensnode-sdk/src/ensindexer/indexing-status/realtime-indexing-status-projection.ts Introduces dedicated realtime projection model + constructor.
packages/ensnode-sdk/src/ensindexer/indexing-status/realtime-indexing-status-projection.test.ts Updates tests to new module paths/types.
packages/ensnode-sdk/src/ensindexer/indexing-status/projection.ts Deletes old projection module (logic moved).
packages/ensnode-sdk/src/ensindexer/indexing-status/index.ts Updates public exports to new granular module structure.
packages/ensnode-sdk/src/ensindexer/indexing-status/helpers.ts Deletes old helpers module (helper moved).
packages/ensnode-sdk/src/ensindexer/indexing-status/deserialize/realtime-indexing-status-snapshot.ts Adds dedicated deserialize for realtime projection (file naming mismatch noted).
packages/ensnode-sdk/src/ensindexer/indexing-status/deserialize/cross-chain-indexing-status-snapshot.ts Adds dedicated deserialize for cross-chain snapshot.
packages/ensnode-sdk/src/ensindexer/indexing-status/deserialize.ts Deletes old deserialize barrel.
packages/ensnode-sdk/src/ensindexer/indexing-status/cross-chain-indexing-status-snapshot.ts Removes projection type from this file; adds getLatestIndexedBlockRef.
packages/ensnode-sdk/src/api/indexing-status/zod-schemas.ts Updates API schema dependency to new realtime projection schema location.
Comments suppressed due to low confidence (1)

packages/ensnode-sdk/src/ensindexer/indexing-status/cross-chain-indexing-status-snapshot.ts:3

  • The JSDoc for CrossChainIndexingStatusSnapshotOmnichain references {@link ChainIndexingConfigTypeIds.Definite}, but ChainIndexingConfigTypeIds is no longer imported in this module. If Typedoc/linking is used, this will likely become an unresolved reference; consider re-adding a type-only import for ChainIndexingConfigTypeIds or adjusting the link to a resolvable target.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

code: "custom",
input: projection,
message:
"`worstCaseDistance` must be the exact difference between `projectedAt` and `snapshot.omnichainIndexingCursor`.",
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The invariant error message references snapshot.omnichainIndexingCursor, but the actual field is nested (snapshot.omnichainSnapshot.omnichainIndexingCursor) or can be expressed via snapshot.slowestChainIndexingCursor. Updating the message will make validation errors actionable and consistent with the data model.

Suggested change
"`worstCaseDistance` must be the exact difference between `projectedAt` and `snapshot.omnichainIndexingCursor`.",
"`worstCaseDistance` must be the exact difference between `projectedAt` and `snapshot.omnichainSnapshot.omnichainIndexingCursor`.",

Copilot uses AI. Check for mistakes.
slowestChainIndexingCursor,
snapshotTime,
omnichainSnapshot,
}: CrossChainIndexingStatusSnapshot): SerializedCrossChainIndexingStatusSnapshot {
Copy link

Copilot AI Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

serializeCrossChainIndexingStatusSnapshotOmnichain is named as if it only accepts the omnichain variant, but its parameter is typed as CrossChainIndexingStatusSnapshot (the union). Typing the parameter as CrossChainIndexingStatusSnapshotOmnichain would better match the function name and avoid future issues if additional strategies are added.

Suggested change
}: CrossChainIndexingStatusSnapshot): SerializedCrossChainIndexingStatusSnapshot {
}: CrossChainIndexingStatusSnapshotOmnichain): SerializedCrossChainIndexingStatusSnapshot {

Copilot uses AI. Check for mistakes.
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
packages/ensnode-sdk/src/ensindexer/indexing-status/zod-schema/cross-chain-indexing-status-snapshot.ts (1)

26-29: ⚠️ Potential issue | 🟡 Minor

Remove debug console.log from the invariant function.

This console.log on Line 26 looks like a debug artifact left from development. Invariant validation functions should not emit console output — the validation error pushed to ctx.issues on Line 30 already provides the necessary diagnostics.

🧹 Proposed fix
   if (slowestChainIndexingCursor !== omnichainIndexingCursor) {
-    console.log("invariant_slowestChainEqualsToOmnichainSnapshotTime", {
-      slowestChainIndexingCursor,
-      omnichainIndexingCursor,
-    });
     ctx.issues.push({
       code: "custom",
       input: ctx.value,
🤖 Fix all issues with AI agents
In `@packages/ensnode-sdk/src/ensindexer/indexing-status/index.ts`:
- Around line 11-12: There is a duplicate re-export of the same module: remove
one of the two identical export lines re-exporting
"./serialize/realtime-indexing-status-projection" so that the module is only
exported once (ensure the remaining export is left intact and no other exports
are changed).

In
`@packages/ensnode-sdk/src/ensindexer/indexing-status/zod-schema/realtime-indexing-status-projection.ts`:
- Around line 41-57: The invariant function
invariant_realtimeIndexingStatusProjectionWorstCaseDistanceIsCorrect currently
computes expectedWorstCaseDistance using
omnichainSnapshot.omnichainIndexingCursor and references
snapshot.omnichainIndexingCursor in the error message; update it to use
omnichainSnapshot.slowestChainIndexingCursor for the calculation and update the
error message to mention `snapshot.slowestChainIndexingCursor` so the validation
aligns with the RealtimeIndexingStatusProjection type and its documented
invariant.

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Feb 11, 2026

Greptile Overview

Greptile Summary

This PR refactors the ENSNode SDK's indexing-status data model by splitting the previously monolithic types.ts, projection.ts, serialize.ts, deserialize.ts, serialized-types.ts, zod-schemas.ts, and validations.ts into per-model modules (business types, (de)serialization, and zod-schema layers for CrossChainIndexingStatusSnapshot and RealtimeIndexingStatusProjection). The indexing-status barrel exports were updated to point at the new module locations, and tests were renamed/retargeted accordingly.

Net effect is intended to be structural only: the runtime behavior and invariants are preserved while enabling an independent validation layer that can validate Unvalidated<...> objects.

Confidence Score: 4/5

  • This PR is close to safe to merge; one validation-layer side-effect should be removed before merging.
  • Most changes are file moves/extractions with the same parsing/serialization and invariant logic. The main concern is a console.log introduced/preserved inside a Zod invariant check, which can leak data to logs in production when invalid input is encountered.
  • packages/ensnode-sdk/src/ensindexer/indexing-status/zod-schema/cross-chain-indexing-status-snapshot.ts

Important Files Changed

Filename Overview
packages/ensnode-sdk/src/api/indexing-status/zod-schemas.ts Updated import path for makeRealtimeIndexingStatusProjectionSchema to new per-model zod-schema module; no functional logic change.
packages/ensnode-sdk/src/ensindexer/indexing-status/cross-chain-indexing-status-snapshot.ts Extracted cross-chain snapshot types and moved getLatestIndexedBlockRef helper into this module; behavior preserved.
packages/ensnode-sdk/src/ensindexer/indexing-status/index.ts Updated barrel exports to new per-model modules; removed exports of deleted legacy files.
packages/ensnode-sdk/src/ensindexer/indexing-status/realtime-indexing-status-projection.ts New module containing RealtimeIndexingStatusProjection type and createRealtimeIndexingStatusProjection; extracted from prior types/projection.
packages/ensnode-sdk/src/ensindexer/indexing-status/zod-schema/cross-chain-indexing-status-snapshot.ts New cross-chain snapshot zod schema and invariants; contains a console.log side-effect inside an invariant check (should be removed before merge).
packages/ensnode-sdk/src/ensindexer/indexing-status/zod-schema/realtime-indexing-status-projection.ts New realtime projection zod schema and invariants extracted from prior validations/zod-schemas layout.
packages/ensnode-sdk/src/internal.ts Removed re-export of ensindexer indexing-status zod schemas from internal entrypoint; verify no internal consumers depend on this export.

Sequence Diagram

sequenceDiagram
  participant Client
  participant SDK as ensnode-sdk
  participant Zod

  Client->>SDK: deserializeRealtimeIndexingStatusProjection(payload)
  SDK->>Zod: makeRealtimeIndexingStatusProjectionSchema().safeParse(payload)
  Zod->>Zod: check projectedAt vs snapshotTime
  Zod->>Zod: check worstCaseDistance vs slowestChainIndexingCursor
  Zod-->>SDK: parsed projection or error
  SDK-->>Client: return projection / throw Error

  Client->>SDK: deserializeCrossChainIndexingStatusSnapshot(payload)
  SDK->>Zod: makeCrossChainIndexingStatusSnapshotSchema().safeParse(payload)
  Zod->>Zod: check slowestChainIndexingCursor invariant
  Zod->>Zod: check snapshotTime highest-known-block invariant
  Zod-->>SDK: parsed snapshot or error
  SDK-->>Client: return snapshot / throw Error
Loading

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

19 files reviewed, no comments

Edit Code Review Agent Settings | Greptile

tk-o added 2 commits February 11, 2026 18:35
Import paths updates
General serialization method for `CrossChainIndexingStatusSnapshot`.
@vercel vercel bot temporarily deployed to Preview – ensrainbow.io February 11, 2026 17:37 Inactive
@vercel vercel bot temporarily deployed to Preview – ensnode.io February 11, 2026 17:37 Inactive
@tk-o
Copy link
Contributor Author

tk-o commented Feb 11, 2026

@greptile review

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Fix all issues with AI agents
In `@packages/ensnode-sdk/src/ensindexer/indexing-status/index.ts`:
- Around line 9-11: The barrel is missing a re-export for the serialize module
cross-chain-indexing-status-snapshot; add an export line for
"./serialize/cross-chain-indexing-status-snapshot" alongside the existing
exports (e.g., the lines exporting "./serialize/chain-indexing-status-snapshot",
"./serialize/omnichain-indexing-status-snapshot", and
"./serialize/realtime-indexing-status-projection") so consumers can import the
cross-chain serialization utilities.

In
`@packages/ensnode-sdk/src/ensindexer/indexing-status/serialize/cross-chain-indexing-status-snapshot.ts`:
- Around line 39-45: The switch in serializeCrossChainIndexingStatusSnapshot on
snapshot.strategy covers CrossChainIndexingStrategyIds.Omnichain but lacks an
exhaustive default branch; update serializeCrossChainIndexingStatusSnapshot to
add a default case that performs an exhaustive-check (e.g., call an
assertUnreachable helper or throw a descriptive Error) referencing the
snapshot.strategy and function name, so any future CrossChainIndexingStrategyIds
variant triggers a runtime failure and makes the intent explicit.

In
`@packages/ensnode-sdk/src/ensindexer/indexing-status/zod-schema/realtime-indexing-status-projection.ts`:
- Around line 36-39: Update the JSDoc invariant so it references the correct
field name: replace `omnichainIndexingCursor` with `slowestChainIndexingCursor`
and ensure it states that `worstCaseDistance` is the difference between
`projectedAt` and `snapshot.slowestChainIndexingCursor`; this aligns the comment
with the implementation that uses `snapshot.slowestChainIndexingCursor` and the
error message in this file (realtime-indexing-status-projection.ts) and avoids
the stale `omnichainIndexingCursor` name.

Use equivalent `slowestChainIndexingCursor` field to replace `omnichainSnapshot.omnichainIndexingCursor` in invariant logic for `RealtimeIndexingStatusProjection`.
Copilot AI review requested due to automatic review settings February 11, 2026 17:47
@tk-o tk-o force-pushed the refactor/ensnode-indexing-status-data-model branch from e069a8f to 66ae12d Compare February 11, 2026 17:47
@vercel vercel bot temporarily deployed to Preview – ensrainbow.io February 11, 2026 17:47 Inactive
@vercel vercel bot temporarily deployed to Preview – ensnode.io February 11, 2026 17:47 Inactive
const { projectedAt, snapshot, worstCaseDistance } = projection;
const { omnichainSnapshot } = snapshot;
const expectedWorstCaseDistance = projectedAt - omnichainSnapshot.omnichainIndexingCursor;
const expectedWorstCaseDistance = projectedAt - snapshot.slowestChainIndexingCursor;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

snapshot.omnichainSnapshot.omnichainIndexingCursor and snapshot.slowestChainIndexingCursor are the same value, but snapshot.slowestChainIndexingCursor is more relevant in the context of RealtimeIndexingStatusProjection.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 19 out of 19 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

19 files reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Feb 11, 2026

Additional Comments (1)

packages/ensnode-sdk/src/ensindexer/indexing-status/zod-schema/cross-chain-indexing-status-snapshot.ts
Unexpected logging side-effect

invariant_slowestChainEqualsToOmnichainSnapshotTime calls console.log(...) when validation fails. Because this invariant is wired into the Zod schema via .check(...), any consumer parsing/validating invalid input will emit to stdout (including in production), which can leak snapshot/cursor data and is an unexpected side-effect for a validation layer. This should be removed (keep the ctx.issues.push(...) as the reporting mechanism).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant