Repository navigation
Releases
Releases · dialoguebranch/platform
v0.10.0
Highlights
- Core: load a project and play a dialogue in a few lines; each step comes ready to show (speaker, text, replies), and replies can be selected without passing a time.
- Core: a dialogue follows replies into other dialogues by itself, in the same language and with the same variables.
- Core: an embedding application can keep a log of the conversation, go back a step, cancel, and resume later from the log, as the Web Service does.
- Core: one exception lists every parse error of a project, and dialogues can be looked up by name and language, falling back to the source language.
- Core: clear errors for a reply that isn't in the current step or a dialogue that has already finished.
- Command-line tool: plays a dialogue in the source language when it isn't translated, and keeps variables across dialogues.
- Web Service: an unknown step or reply answers 404 instead of 500, also in test sessions.
- Studio: after a reply into another dialogue, the workspace follows the new dialogue's log.
Breaking changes
- Core:
ActiveDialoguenow needs aDialogueResolver: create it withActiveDialogue(resolver, resolvedDialogue, variables), or useExecutableProject.startDialogue/createDialogue. - Core:
processReplyAndGetNodePointerandprogressDialogue(...)are replaced byselectReply(...), which returns the next node. - Core:
setUserGenderTranslationsis replaced by the user-gender translations of theResolvedDialogue.
Full details: CHANGELOG.md
v0.9.2
Highlights
- Web service: the list of a project's variables now also says which dialogues read and write each variable, so a client can show the variables of one dialogue. The client-js authoring client returns this too.
- Web service: the project variables list is now a stable part of the API, covered by the compatibility policy.
- Web service: reading or setting variables, listing dialogues, or asking for the ongoing dialogue in a project that doesn't exist now answers "not found", instead of a server error or an empty answer.
Full details: CHANGELOG.md
v0.9.1
Highlights
- Web service, BFF and mock variable service: upgraded to Spring Boot 4.1, which fixes critical vulnerabilities in Tomcat, Spring MVC and Spring Security.
- Studio: security updates for its HTML sanitizer and front-end libraries.
- Docker images for the web service and Studio no longer have known critical or high vulnerabilities.
Upgrading
- The Studio Docker image now serves the build with nginx on Alpine instead of Apache httpd. It still listens on port 80, but any custom httpd configuration needs replacing.
Full details: CHANGELOG.md
v0.9.0
Highlights
- Projects can define their speakers, each with a name, a gender and an optional default, in Configure Project and the node editor.
- Renaming a speaker also renames it in the project's nodes and translations, after showing what will change.
- A node whose speaker isn't one of the project's speakers gets a warning, in the publish wizard and the editors. It never stops a project from publishing or running.
- Translations can now follow the gender of the speaker and of the end user, who is set through the reserved variable
$dlb.userGender. - The Translation Editor adds Female user and Male user translations, and dialogues can be tested as a female or male user.
- Nodes can have any colour, not just one of the ten presets.
- Moving several selected nodes in the graph editor now saves all of their positions.
- Saving Configure Project no longer replaces the project's name in the header with its slug.
Breaking changes
- Variable names starting with
dlb.are now reserved. Setting an undefined one, or a defined one to a value it doesn't allow, is refused. Rename any variable of your own that starts withdlb.. - The node header tag
colorId(orcolorID) is replaced bynodeColor, written as#rrggbb. Existing content isn't converted: nodes show the default colour until they get a new one, and dialogues run as before. The changelog lists the colour for each old value.
Upgrading
- A new database migration (
V12) runs automatically on startup.
Full details: CHANGELOG.md
v0.8.1
Highlights
- Simultaneous requests are safe: two requests of the same user at the same moment, such as a double tap, a retry or two open tabs, no longer overwrite each other. No dialogue step or variable change is lost.
- New users: a new user's first requests no longer fail with a server error when several arrive at once.
- Draft edits: changes to draft nodes and translations are saved all at once, so a dialogue's Draft status stays correct even if saving fails halfway.
- Project import: a project zipped with macOS Finder's Compress imports again, whether you compress the project's folder or its contents.
Full details: CHANGELOG.md
v0.8.0
Highlights
- Dotted variable names: a name such as
$settings.themeis one variable, so a project with many variables can give them structure. - External Variable Service:
- the Web Service now authenticates to it with a Keycloak token instead of a shared key;
- a slow or unreachable service no longer stalls or breaks a dialogue;
- Studio's status bar shows whether the service is running, and admins see the details in Technical Information;
- a service can mark the variables it supports with a type, allowed values and read-only, which Studio's Variable Browser shows.
- Testing never touches real data: testing a dialogue runs against a copy of the user's variables. Admins can simulate a user to look into a problem without changing anything, and acting for real as a user is clearly marked.
- User data: admins can erase everything stored about a user, from a new Users page. Deleting a project keeps its users' data unless you choose otherwise, and deleted projects can be cleaned up later.
- Studio:
- a reworked main screen: a mode bar showing Live or Authoring mode, aligned panels, and collapsible side panels;
- a project search;
- dialogs that no longer close, and lose what you typed, when you click outside them.
- Translations: a translated node now shows a variable correctly when the node sets it just before the text.
- Clearer errors: a request the caller got wrong is answered with its own 4xx status and the reason, instead of
500. - Compatibility policy: a new docs page lists which parts of Dialogue Branch are stable and which are internal to Studio.
Breaking changes
- Language: a dot followed by a letter or underscore is now part of a variable name.
$settings.themeis one variable, and in an expression$m.keyno longer reads a field of a map held in$m. - External Variable Service authentication:
dlb.external-variable-service.api-keyis gone. Setdlb.external-variable-service.oauth2.token-uri,client-idandclient-secret(and optionallyscope) instead; the Web Service won't start with the integration enabled and these missing.- Your service must check the Keycloak token, as described on the External Variable Service docs page.
- External Variable Service updates: the
retrieve-updatesresponse now only needs each variable'snameandvalue. AnupdatedTimeit sends is ignored, and the Web Service records when it received the update. - Deleting a project:
POST /project/delete-projectkeeps the project's users' variables and dialogue logs unless you passdeleteVariablesanddeleteLogs. client-js'sdeleteProjecttakes them as options.
Upgrading
- Database: a new migration (
V11, marking deleted projects) runs automatically on startup. - External Variable Service (only if you use one):
- In Keycloak, register a confidential client with a service account for the Web Service, and a client for your service with a role the Web Service's account is given. The External Variable Service docs page has the details.
- Configure the new
oauth2settings, and keep the client secret as a secret. - The new timeouts
connect-timeout(default2s) andread-timeout(default5s) are optional.
- Test sessions: the new setting
dlb.test-session.idle-timeout-minutes(default30) is optional.
Full details: CHANGELOG.md
v0.7.0
Highlights
- Discard draft changes: bring a single dialogue, or a whole project's draft, back to its latest published version.
- Delete a dialogue from Studio. It can be restored until the next publish.
- Dialogue Browser: a dialogue's actions moved into a context menu, opened by right-clicking a row or with its ⋯ button. The menu works with the keyboard.
Full details: CHANGELOG.md
v0.6.0
Highlights
- Import into an existing project: import
.dlbscripts into a folder as draft dialogues, and translation files into a translation language. Both show what already exists first and replace only when asked. - Export a single dialogue as a
.dlbfile from the Dialogue Browser. - Translation Editor:
- shows translations it used to hide: those stored under whitespace-different source texts, and gender-specific ones;
- lists stale entries that no longer match any text, so you can delete them.
- Variable history: filter it by date range in Studio. The API accepts a
from/torange too. - Translations are speaker-aware: an entry only applies to text of its own speaker, and multi-word speaker names work.
- Fixes:
- Import Project works again.
- Invalid translation content is refused when saved, instead of breaking publishing later.
- A translation containing a command no longer crashes the parser.
- A collapsed preamble leaves an icon on the graph canvas.
Breaking changes
- Core: a translation entry only applies to text of its own speaker. A text without an entry for its speaker stays in the source language. Entries outside a speaker group are a parse error, and
ContextTranslationgains aspeakercomponent. - Language: the speaker name
_useris reserved for the user's replies. Indlb-core-java,DialogueBranchConstants.DLB_USER_SPEAKERreplacesSourceTranslatable.USER.
Upgrading
- A database migration runs automatically on startup. It adds indexes for the variable history date-range lookup.
Full details: CHANGELOG.md
v0.5.0
Highlights
- Dialogue preambles: the comment block at the start of a script now belongs to the dialogue. Studio shows it at the top of the graph editor and lets you edit it as plain text.
- Node comments: a new
commenttag holds a short note about a node for authors. Studio edits it in the node panel and shows it on the node's card. - Studio: moving or saving a node no longer deletes the comments in its header or cuts off values containing
//. - Web service: importing a project now stores scripts correctly whatever their line endings or separator lines. A script that can't be stored is refused with its name and line number instead of being stored wrongly.
Breaking changes
- Language: a node header contains only
key: valuetags.//is part of a value, and comments in a header are an error. Use acommenttag, a body comment or the preamble instead. - Web service: the authoring node end-points (
list-nodes,create-node,update-node,rename-node) exchange a node's header as a list of{key, value}tags instead of text.create-nodetakes the title from itstitletag. - Web service:
create-nodeandupdate-noderefuse a header whosetitledoesn't match the node. Rename a node withrename-node. - client-js:
createDraftNodeandupdateDraftNodetake tags, andrenameDraftNoderesolves to{ node, referencesUpdated }.
Upgrading
- A database migration runs automatically on startup. It removes comments from stored node headers, moving the comment lines at the start of a dialogue into its preamble. What any dialogue does stays the same.
Full details: CHANGELOG.md
v0.4.0
Highlights
- New
supervisorrole: follow other users' progress by reading their variables, variable history and dialogue logs, without being able to act on their behalf or administer anything. - Studio: the participant view starts its dialogue again (it failed for every user).
- Web service:
languageis now optional when starting a dialogue. Without it, the dialogue starts in the project's source language. - Web service: reading another user's data no longer changes that user's time zone and no longer creates users for unknown subjects. An unknown user is answered with
404. - Web service: starting a dialogue in a language the project doesn't have now logs a warning.
Upgrading
- Add the
supervisorclient role to your Keycloak realm if you want to use it. The bundled realm import already includes it.
Full details: CHANGELOG.md