RLV: implement message parsing, commands, queries, and typed errors #78
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Objective
Implement pure RLV command/message parsing and typed command/query/restriction values.
Deliverables
Validation
Prerequisite
All global API/test gates and the foundational/world implementations needed by these extension crates are complete.
Project constraints
Implemented and pushed in commit
468a0f0. The new native, side-effect-free RLV protocol layer parses bounded @ messages into typed clear, action, restriction, and query directives; preserves raw casing, options, folder paths, separators, UUIDs, aliases, channels, sender data, and byte spans; covers all 119 pinned restriction names plus the exact attachment/wearable maps; and exposes stable typed parse errors. RlvCommon and all mapped RlvRestriction members now use native implementations, including canonical aliases, secure-exception rules, exact immutable Args snapshots, equality/hash, and formatting. Added deterministic bounds (64 KiB/128 commands), 4,072 single-byte malformed mutations, focused docs, generated ownership mappings, and an Ubuntu CI audit. Review confirmed that restriction state remains in #79 and callbacks/service integration remains in #80. Verification: 14/14 native protocol tests; 13/13 pre-created rlv_common_semantics cases; libremetaverse-types 48/48; extension_shims 2/2; strict Clippy for RLV and Types; rustdoc with warnings denied; generator and mapping checks; issue #76/#77/#78 audits; cargo fmt/diff checks; and cargo check --workspace --all-targets --locked -j 1.