Bixby Developer Center

Guides
References

2019 October - December

Note

Internal platform changes that are not visible to capsule developers will be communicated via internal status updates.

19W Capsule SDK Release Notes

Updated: January 22, 2020

Note

The 19V release was combined with 19W.

Batch 5 Categories Released

The following NL categories were added this release:

  • LanguageLearning
  • Videos
  • FlightInfo
  • FlightBooking
  • Events

New Capsule Runtime Version

After the introduction of runtime flags, we're further refining this feature with the introduction of runtime version. Runtime version (runtime-version) allows you to enable a specific set of runtime flags. Once you can specify a runtime version, you can further use the overrides key to refine specific flags.

With the introduction of runtime versions, we're deprecating the declaration of individual runtime flags. You can continue to enable or disable individual flags as overrides to runtime-version.

Learn more about runtime versions and runtime flags.

Note

We don't intend to deprecate runtime-version in the future (unless there is a security or otherwise critical issue). Therefore, you can migrate to runtime-version without concern for adding new runtime flags.

Example

capsule {
...
runtime-version (2) { // required
overrides { // optional
no-fallback-to-result-collections (false) // explicitly turns this behavior off
concepts-inherit-super-type-features (true) // explicitly turns this behavior on
...
}
}
}

Deprecation Stages (learn more)

  • Stage 1: R19W
  • Stage 2: R20A (This deprecation will remain on Stage 2 permanently)
  • End of Life: None

Visibility Constraints for Hints

You can now provide multiple hint groups within a single hints.bxb file, which is especially useful if you need different visibility-constraints, also a new feature. For example, if your capsule is available in the Marketplace, targets en as a locale, but has different NL categories depending on the country store, you can have a single resources/en/hints.bxb file with similar visibility constraints as your NL categories. Another example is using target-constraints to separate hints by regional vocabulary.

Example

// For US stores
hints {
visibility-constraints {
target-constraints {
allowed-list {
allow (en-US)
}
}
}
uncategorized {
hint ("Ask ACME Smart Helper to find my garage keys"){
preferred-hint ("Find my garage keys")
}
hint ("Ask ACME Smart Helper to start the car")
hint ("In ACME Smart Helper, turn on the lights") {
preferred-hint ("Turn on the lights)
}
}
}
hints {
visibility-constraints {
target-constraints {
allowed-list {
allow (en-GB)
}
}
uncategorized {
hint ("Ask ACME Smart Helper to find my car parks keys"){
preferred-hint ("Find my car park keys")
}
hint ("Ask ACME Smart Helper to start the car")
hint ("In ACME Smart Helper, turn on the lights") {
preferred-hint ("Turn on the lights)
}
}
}

New Option for Logo in Attribution Links

Within Bixby Views, you now have the option to add a text-based logo, along with positioning, to an attribution-link.

...
attribution-link {
label ("Powered by")
logo {
position (End)
url (images/bixby-logo.png)
}
url (https://bixbydevelopers.com/)
}
...

'delegate-to' Key Deprecated

We've deprecated marketplace-constraints for better fine-grained control, with the new option to opt into an explicit list of device-models and store-countries for which you want your capsule to be available.

Learn more about updating your capsule.bxb file to provide store countries and device models.

Note

Your capsule will only appear in a specified country when the Marketplace is available in that country.

Examples

capsule {
...
device-models {
all {
except (SM-G973[A-Z]*) // Galaxy S10
except (SM-G975[A-Z]*) // Galaxy S10+
}
}
}
capsule {
...
store-countries {
all {
except (CN)
}
}
}

Deprecation Stages (learn more)

  • Stage 1: R19U
  • Stage 2: R19X
  • End of Life: R20I

Multiple OAuth Specs Per Capsule

You can now have multiple global OAuth specifications per capsule. If you do have multiple global specifications, you must add a providerID at the endpoint for disambiguation:

action-endpoint (...) {
...
authorization {
global(<provider id>)
}
}

Learn more about using multiple OAuth specs.

19U Capsule SDK Release Notes

Updated: November 6, 2019

Marketplace Constraints Deprecated

We've deprecated marketplace-constraints for better fine-grained control, with the new option to opt into an explicit list of device-models and store-countries for which you want your capsule to be available.

Learn more about updating your capsule.bxb file to provide store countries and device models.

Note

Your capsule will only appear in a specified country when the Marketplace is available in that country.

Examples

capsule {
...
device-models {
all {
except (SM-G973[A-Z]*) // Galaxy S10
except (SM-G975[A-Z]*) // Galaxy S10+
}
}
}
capsule {
...
store-countries {
all {
except (CN)
}
}
}

Deprecation Stages (learn more)

  • Stage 1: R19U
  • Stage 2: R19X
  • End of Life: R20I

19T Capsule SDK Release Notes

Updated: November 6, 2019

Enhanced Support for Testing Capsule Submissions

With this release, the Bixby platform will allow you to use any capsule submission as a revision override in the Bixby Studio Simulator or for on-device testing as long as it does not produce capsule compilation or validation errors at runtime.

This update applies both to private and public submissions and is exclusively for testing capsule submissions.

'MustRelate' Deprecated

We've deprecated the experimental related-values value MustRelate because it currently does not extend beyond the functionality of the default MayRelate.

This deprecation protects against duplicate result keys when splitting (caused when a function returns multiple, matching results).

Deprecation Stages (learn more)

  • Stage 1: R19T
  • Stage 2: R19W
  • End of Life: R20C

'compare' EL Function Deprecated

We're replacing the compare EL function with compareAll, which now properly handles null, empty, and multi-value nodes.

The compareall function returns a negative integer when node1 is less than node2, a positive integer when node1 is greater than node2, or zero if node1 and node2 are equal.

Deprecation Stages (learn more)

  • Stage 1: This deprecation is currently in Stage 1 and is safe to use until the time that we provide a formal deprecation schedule.

Deprecation of 'exists' and 'size' with Actions

We've deprecated the exists() and size() Expression Language node evaluation functions for action parameters as they are unsupported with actions.

Deprecation Stages (learn more)

  • Stage 1: R19T
  • Stage 2: R19W
  • End of Life: R20C

Warnings for Indexed Access on Actions

Because it is not supported, we now warn you if indexed access is performed on an action node, (such as someAction[0])).

Deprecation Stages (learn more)

  • Stage 1: R19T
  • Stage 2: R19W
  • End of Life: R20C

Bixby Views Support for Float on TV

Bixby Views now allows you to float certain components on the left-side of the screen. This is currently limited to TV devices.

19S Capsule SDK Release Notes

Updated: October 21, 2019

Note

The 19R release was combined with 19S.

Right-Hand Support for Named Dispatch

Bixby now supports right-hand named dispatch, so utterances that end like the following are now supported:

  • "... on %dispatch-name%"
  • "... with %dispatch-name&"
  • "... using %dispatch-name%"
  • "... from %dispatch-name%"
  • "... in %dispatch-name%"

'$vivContext.userId' Deprecated

In order to make Bixby more secure, we're deprecating $vivContext.userId, and introducing $vivContext.bixbyUserId. This new secure user ID can be used to persist user state or implement analytics. This ID is tied to the user's account and will be the same across all devices.

Note

To access $vivContext.bixbyUserId, you must request the bixby-user-id-access permission. See permissions for more details.

Example

capsule {
...
permissions {
bixby-user-id-access
}
}

For more information about bixbyUserId and $vivContext, read Passing User Context Information.

Deprecation Stages (learn more)

  • Stage 1: R19U
  • Stage 2: R19X
  • End of Life: R20I

New Video Player Component

We've added a new video player component to Bixby Views, which lets you stream an online video file.

section {
content {
video {
url ("https://example.com/videos/videofile.mp4")
poster ("https://example.com/videos/videoposter.jpg")
}
}
}

If a poster image is specified, it will be shown in place of the video until the video starts to play.

New Default Action for Dispatch-Only Utterances

We now allow you to define a default-action to be executed if a user says an utterance that calls your capsule with named dispatch, but has no further action. For example, "Use Meme Generator" or "Load Weather". The action you default to must be an action defined within your capsule and not imported.

If you do not define this key, the entire utterance is passed back to Bixby and interpreted as a whole.

New Legal Agreements File

You can now include a legal.bxb in your resources/base directory to set country-specific legal agreements for your capsule. For each country that your capsule will be made available in, you should specify the appropriate legal agreements. For more information, see the Provide Legal Agreements section in the Preparing for Release developer guide.

Example

legal {
country-documents {
store-country(US)
terms-and-conditions {
url(https://my-capsules-toc.us.com/)
}
privacy-policy {
url(https://my-capsules-privacy-policy.us.com/)
}
additional-terms-and-conditions {
url(https://my-capsules-addl-toc.us.come/)
}
cross-border-data-transfer {
url(https://my-capsules-cbdt.us.com/)
}
}
country-documents {
store-country(CA)
store-country(MX)
terms-and-conditions {
url(https://my-capsules-toc.com)
}
privacy-policy {
url(https://my-capsules-privacy-policy.com/)
}
}
country-documents {
store-country(CA)
additional-terms-and-conditions {
url(https://my-capsules-addl-toc.ca.com/)
}
}
}

19Q Capsule SDK Release Notes

Updated: October 1, 2019

'$vivContext.userId' Deprecated

See 19S Release Notes for updated information.

Bixby Views Updates

Numeric Keypad Support for Text Input

We've added support for numeric keypad input within form elements. If set to true, enables the numeric keypad on devices with screens to allow users to provide numbers.

Example

text-input {
pattern {
regex ("\\d{5}") {
on-error ("Please enter a 5-digit ZIP code")
numeric-keypad-enabled (true)
}
}
}
New Object Fit Component within Image Lists

We've added the object-fit option for image-list, which determines how an image fits within the image-list component.