Skip to content

Wrap GLTF material inventory uploads in binary LLSD - #175

Merged
cinderblocks merged 2 commits into
cinderblocks:masterfrom
lyrae-versebound:lyrae/EXP-017-issue-172
Aug 22, 2026
Merged

Wrap GLTF material inventory uploads in binary LLSD#175
cinderblocks merged 2 commits into
cinderblocks:masterfrom
lyrae-versebound:lyrae/EXP-017-issue-172

Conversation

@lyrae-versebound

@lyrae-versebound lyrae-versebound commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • encode the second-stage agent and task material inventory uploads as binary LLSD
  • carry version, type, and the material JSON in the envelope data field
  • preserve the existing two-stage capability flow
  • add deterministic request-body coverage for the actual uploaded asset

Motivation

LibreMetaverse currently uploads raw GLTF JSON during the second stage, but the capability verifier expects the viewer-compatible binary LLSD material envelope. Wrapping the JSON as version, type, and data matches the reference viewer behavior and allows the upload to complete.

Validation

  • exact binary-LLSD regression passed on net8.0, net9.0, and net10.0
  • complete GLTFMaterialUploadTests fixture passed 4/4 on net481, net8.0, net9.0, and net10.0 after the cancellation-token compatibility fix
  • net9.0 material/BinarySD neighboring group passed 51/51
  • net9.0 inventory/upload neighboring group passed 25/25
  • affected net9.0 Release build passed with 0 warnings and 0 errors
  • previously completed full net10.0 candidate and untouched-base controls each passed 1211 tests with 19 skipped and 0 failed
  • repository CI passed its full cross-platform and multi-framework matrix on the original candidate
  • git diff --check passed

A separate full net9.0 suite was not run locally; local net9.0 validation was bounded to the affected fixture, exact regression, neighboring groups, and affected library build. Repository CI runs the complete cross-platform test matrix.

Breaking changes

None. This PR does not remove or rename any public API.

Limitations

  • no live-grid upload was performed
  • the compact LibreMetaverse binary header versus viewer spelling was not independently tested against a live server
  • a possible viewer-buffer trailing NUL was not independently tested

Related issues

Fixes #172

@lyrae-versebound
lyrae-versebound marked this pull request as ready for review August 21, 2026 03:15
@cinderblocks
cinderblocks merged commit d11ebb0 into cinderblocks:master Aug 22, 2026
12 checks passed
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.

UpdateMaterialAgentInventory rejects our uploads — the payload needs to be the LLSD-wrapped blob, not raw JSON

3 participants