secondlife / secondlife/viewer
`can_save_back` is sent by `object.list` but not by `object.publish`
@Rider-Linden is already working on this.
Since Aug 25, 2026.
- Dominant language
- C++
- Stars
- 299
- Forks
- 146
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 88
Description
Repo: viewer
Labels: bug, protocol
Summary
The same object is described differently depending on which method delivered it.
Evidence
indra/newview/llpublishedobjectmgr.cpp:
-
buildObjectListLLSD(~762) emits it:pub["can_save_back"] = info.mCanSaveBackToContents; // line 784 -
buildPublishedObjectLLSD(~728), used to buildobject.publishpayloads, emits
object_id,object_name,object_description,owner_id,region,inventoryand
linked_objects— but nevercan_save_back.
Impact
A client that learns about an object via object.publish cannot tell whether
viewer.object.save_back_to_contents is available, while a client that learns about the same
object via object.list can. Whether the Save Back action appears depends on which message
happened to arrive first.
Proposed fix
Emit can_save_back from buildPublishedObjectLLSD as well, so both paths describe an object
identically.
Notes
can_save_back is a live capability hint, not a static property: it is true only when the root
prim has a valid LLSelectNode with a non-null mFromTaskID and is not an attachment. Any fix
should preserve that meaning and keep both builders in agreement.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.