Repository navigation
fix: a batch carries only six verbs, and an update of a key starting with meta is stored - #2906
Merged
Merged
Conversation
A batch may carry lookup, llookup, plookup, notify, update and delete. Anything else, an entry that is not a command included, refuses the whole batch with AT0003. The cram, pkam and stream scenarios that refused one entry of a batch fold into the new feature.
A batch may carry lookup, llookup, plookup, notify, update (update:meta included) and delete. The atServer checks every entry before it runs any; an entry that is anything else refuses the whole batch with AT0003, naming its position, and nothing runs. The cram and pkam refusal is now one case of this. Every entry the batch runs is answered: a command that fails without an error code is answered AT0011 instead of being left out, and one that throws an Error is answered AT0010 while the rest of the batch still runs.
The functional batch tests for cram, pkam and stream, which expected one entry refused and the rest run, fold into it.
The update handler gave way to update:meta for any command beginning update:meta, so update:metadata.wavi@alice v reached no handler. It now gives way only to update:meta:, which the metadata-only update begins with.
Reviewed at c480f8d; the PR description carries each finding.
This was referenced Nov 5, 2026
This was referenced Nov 5, 2026
…dings-118e6dabae5a fix: review findings from #2906
srieteja
added a commit
that referenced
this pull request
Nov 5, 2026
…g-c480f8dac267 fix: defects on trunk found reviewing #2906
srieteja
previously approved these changes
Nov 5, 2026
Contributor
Author
|
@srieteja I'm fixing the test failure from the trunk merge. |
The trunk merge brought in a test written against helpers that this branch's rewrite of batch_verb_test.dart removed (batchHandler and inboundConnection, with InvalidSyntaxException not imported), so the file no longer compiled. The test now sends the malformed batch with send() from an authenticated cram client, as the not-a-list test beside it does, and expects an AT0003 answer and nothing stored.
srieteja
approved these changes
Nov 5, 2026
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
- What I did
batch:may carry onlylookup,llookup,plookup,notify,update(update:metaincluded) anddelete. Anything else refuses the whole batch with AT0003, naming the entry's position, and none of it runsmeta, such asupdate:metadata.wavi@alice v, is stored instead of refused as an invalid commandfeatures/batch/batch_verbs.feature, which the cram, pkam and stream batch scenarios fold into, andfeatures/keys/update_meta_prefix.feature- Why
abortOnFailureflag andinfofeature will be in a follow-up PR.monitorinside a batch turned the connection into a monitor connection partway through the batch- How I did it
See commits
- How to verify it
Tests pass, including the at_server functional pack locally
- Follow-ups
batchsection still says failures are per entry- Description for the changelog
⚠️ BREAKING: a
batch:may carry only lookup, llookup, plookup, notify, update and delete; anything else refuses the whole batch with AT0003