As we’ve been rolling out Server Side Appearance, a few reports have
been coming in about specific users having issues with the current outfit
folder. The good news is that very few users are reporting serious issues.
The bad news is that it looks like some viewers are not handling the COF
quite correctly. To help narrow down the possible issues below is a list of
how the COF should be handled, please take some time and look over the
following behaviors to make sure your viewer performs in a way that is
compatible with the standards defined by the secondlife viewer. This list
shows how our viewer handles the COF, which defines the protocol that is
compatible with the Second Life service. As long as these guidelines are
followed, your viewer should be compatible with other installed viewers and
with the Server Side Appearance system. If you deviate substantially from
this protocol, it could interfere with our ability to provide normal and
expected functionality. As always if you have any questions or concerns
regarding the appearance system, please do not hesitate to reach out to me
directly.

Keep reading to the end to get additional information on details of future
releases from the Sunshine team!


   1.

   There should be only one folder of type ‘FT_CURRENT_OUTFIT’.
   1.

      The ‘Current Outfit’ folder should be the special type
      ‘FT_CURRENT_OUTFIT’. There should be only one such folder, its
name should
      be ‘Current Outfit’ and it should be a child of the root inventory folder.
      2.

      Please verify the following items in your viewer:
      1.

         Verify that there is not a code path for the end user to create or
         delete this folder.
         2.

         Verify that no code path would allow this folder to be duplicated,
         automatically or by user interaction
         3.

         Verify that no code path exists that would allow this folder to be
         moved out of the root of the inventory.
         4.

         Verify that this folder will only be created on login, and only if
         it does not already exist.
         5.

         Verify that no code path can rename this folder.
         2.

   The current outfit folder (COF) is the authoritative source for what the
   user should be wearing
   1.

      Everything the user should be wearing should have a link in the COF.
      2.

      This should be kept up to date at all times (not just login/logout),
      in case of viewer crashes
      3.

      The contents of the COF should be what is loaded and worn for the
      avatar on login.
      4.

      Please verify the following:
      1.

         Verify that all clothing, body part, and attachments that a user
         should be wearing have a link in the current outfit folder
         2.

         Verify that on changing outfits, this remains true once all
         network operations resolve
         3.

         Verify that the avatar’s appearance is read from the COF and
         loaded appropriately on login, without modification, except
if the COF was
         left in a bad state.
         1.

            Note that inventory changes are most likely to fail during
            times of heavy network usage - this includes login.
            3.

   All links in the COF should be “valid” links when at all possible.
   1.

      “Valid” links make a reference to an existing item in the user’s
      inventory tree.
      2.

      Links can be presented as broken if they refer to an item in the
      library, an item that has been deleted, or cannot be properly
fetched, but
      viewers should avoid creating these links if possible
      3.

      Please verify the following:
      1.

         When a user wears an item from the library or from an object’s
         inventory, it is copied into their inventory, and a link is
created to the
         newly created instance.
         2.

         Links are not copied to the COF or worn if they are broken.
         3.

         The user has sufficient feedback to see which links are broken.
         4.

   The COF should maintain a ‘valid’ appearance
   1.

      A valid appearance requires exactly one link to each type of body
      part: shape, skin, hair, eyes.
      2.

      Clothing and attachments can be added up to the normal limits defined
      in the latest release viewer.
      3.

      Verify the following:
      1.

         Verify that there is no code path that will result in multiple
         body parts of the same type  being linked in the COF simultaneously
         2.

         Verify that even when an outfit is replaced, body parts will not
         be removed unless they are being immediately replaced. Do not
assume the
         replacement outfit necessarily has all body parts.
         3.

         Verify that the viewer will not allow more total attachments than
         the Linden release viewer allows.
         4.

         Verify that the viewer will not allow more clothing items of a
         given type than the Linden release viewer allows


If your viewer does not behave as described above, please let us know ASAP
as it will help us diagnose some of the issues that are being reported. If
you plan on making changes to your viewer to comply with this protocol, let
us know and keep us up to date on your progress. If you feel that there are
parts of this protocol that your viewer does not need to comply with,
please contact us to discuss it. Keep in mind that many users choose to
install and run multiple types of viewers from multiple computers, both on
SSA-enabled and SSA-disabled regions, and your viewer should operate
smoothly under such conditions. As always the final arbiter of the current
protocol is the source code of the latest Linden release viewer. This list
identifies some of the assumptions that our systems make in terms of how
compliant viewers should act. It is not meant to be exhaustive.

With the release of Sunshine (SSA) to the grid, we’re eliminating a lot of
the failure points in appearance resolution we were seeing. However, the
next largest failure point we’ve identified is the inventory system.
Specifically, the current inventory protocol relies on both HTTP and UDP
messages, some of which have failure callbacks and some which the viewer
assumes will complete successfully (not always accurate). If you’ve run
into situations where you have received a COF mismatch error, you have hit
this class of issue (it means that the viewer and server disagree as to
what the version number of the COF currently is).

For our next round of changes after SSA goes grid-wide, we’re working on
updates to the Agent Inventory Services (AIS), that should help alleviate
the most prominent causes of these errors, as well as hopefully reduce the
number of network calls needed to successfully update the COF. If you’ve
been tracking sunshine-internal, you may have seen references to these new
protocols. They’re not ready for release yet, and will require much
testing, but we’d like to start discussing in more detail what it will
involve.

Specifically, we will convert the most error prone operations on the COF
from using the old UDP-based system over to AIS. This includes operations
like creating and deleting links, etc. These new calls should always
resolve, and should throw sensible error codes if any operations fail.
Additionally, we’re adding some new functions that should allow common
appearance operations to resolve with less work on the viewer’s part. There
will be AIS calls for operations such as wearing an outfit from the library
(which will copy items to the user’s inventory), and wearing a complete
outfit from inventory (which will replace the current contents of the COF
with links to the items you pass to it).

We’ve been working on this new system in parallel with the first release of
Server Side Appearance. While we’ve made great progress, it is not yet
complete. Once it is we will let you know and provide more detailed
documentation about the methods involved, and try to stand up regoins on
Aditi to start testing project viewers against. It will require some time
before the code is ready to be in anyone’s release viewer, so keep it out
of your trunk branch for now.

If you have any questions about the release process, the way the current
system works, or the upcoming work around inventory, please let me know.
Thanks, and have a great week all,

-Nyx Linden

-- 
*Neal Orman* | *Senior Software Engineer*
Skype NyxLinden | Second Life Nyx Linden<https://my.secondlife.com/nyx.linden>

Linden Lab | Makers of Shared Creative Spaces <http://lindenlab.com/>
SECOND LIFE <http://secondlife.com/> | PATTERNS <http://buildpatterns.com/>|
CREATORVERSE <http://creatorverse.com/> | DIO <http://dio.com/> |
VERSU<http://versu.com/>
_______________________________________________
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges

Reply via email to