You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
add explicitly bounded typed record materialization for query() and observe(), retaining each canonical Record beside its decoded value
expose the minimal { record, value } materialized shape; add children only when direct singleton children are explicitly selected
batch selected direct singleton children with one query per child path and wake observed views when those children change
add local records.set() for protocol paths that declare $recordLimit.max: 1, with an authoritative grant-backed selection for delegated sessions
support scalar or non-empty parentId selections through grouped $recordLimit projection, including an exact-parent LevelDB path that avoids protocol-wide scans
keep singleton/path-selection type machinery internal and use straightforward collect, sort, and limit logic for selected parent groups
Level store and grouped record-limit tests (105 focused tests)
full agent package suite (1,675 passed, 18 skipped)
delegated Records.Read grant-required selection test
grouped parent projection on Level, MySQL, PostgreSQL, and SQLite (previous PR-head CI)
docs MDX/type generation (previous PR-head CI)
Notes
materialization requires an explicit page limit and eagerly decodes that page; callers should retain raw Record handles and stream large payloads instead
records.set() intentionally targets only the connected tenant local replica; remote targets and protocol-role invocation are outside this first operation
CI triage for the failed agent shard on head 62e38d4a:
AgentDwnApi > processRequest() > handles RecordsSubscribe message accepted both writes but observed one of two asynchronous callbacks before the test immediately closed the subscription. PR #1464 only changes nested protocol-path subscription scope validation; this test uses a schema-only filter, so that branch is not reached.
The exact process/send RecordsSubscribe tests passed in five consecutive targeted local runs (10/10 cases). Treating this as a load-sensitive pre-existing test race and rerunning only the failed job; no production or test semantics changed to mask it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
query()andobserve(), retaining each canonicalRecordbeside its decoded value{ record, value }materialized shape; addchildrenonly when direct singleton children are explicitly selectedrecords.set()for protocol paths that declare$recordLimit.max: 1, with an authoritative grant-backed selection for delegated sessionsparentIdselections through grouped$recordLimitprojection, including an exact-parent LevelDB path that avoids protocol-wide scansCloses #1460.
Test plan
dwn-sdk-js,api,browser)Notes
Recordhandles and stream large payloads insteadrecords.set()intentionally targets only the connected tenant local replica; remote targets and protocol-role invocation are outside this first operation