Internal platform changes that are not visible to capsule developers will be communicated via internal status updates.
Updated: January 22, 2020
The 19V release was combined with 19W.
The following NL categories were added this release:
LanguageLearning
Videos
FlightInfo
FlightBooking
Events
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.
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
...
}
}
}
Learn more about the deprecation stages.
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")
hint ("Ask ACME Smart Helper to start the car")
hint ("In ACME Smart Helper, 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")
hint ("Ask ACME Smart Helper to start the car")
hint ("In ACME Smart Helper, turn on the lights")
}
}
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/)
}
...
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.
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)
}
}
}
Learn more about the deprecation stages.
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.
Updated: November 6, 2019
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.
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)
}
}
}
Learn more about the deprecation stages.
Updated: November 6, 2019
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.
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).
Learn more about the deprecation stages.
We're replacing the compare
Expression Language 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.
For more information, see Using Expression Language.
Learn more about the deprecation stages.
We've deprecated the exists()
and size()
Expression Language node evaluation functions for action parameters as they are unsupported with actions.
Learn more about the deprecation stages.
Because it is not supported, we now warn you if indexed access is performed on an action node, (such as someAction[0])
).
Learn more about the deprecation stages.
Bixby Views now allows you to float certain components on the left-side of the screen. This is currently limited to TV devices.
Updated: October 21, 2019
The 19R release was combined with 19S.
Bixby now supports right-hand named dispatch, so utterances that end like the following are now supported:
In order to make Bixby more secure, we're deprecating $vivContext.userId
, and introducing $vivContext.bixbyUserId
to access user context information. 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.
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.
Learn more about the deprecation stages.
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.
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, "Run Movie Quiz" 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.
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 Developers' 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/)
}
}
}
Updated: October 1, 2019
See 19S Release Notes for updated information.
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)
}
}
}
We've added the object-fit
option for image-list
, which determines how an image fits within the image-list
component.