Skip to content
This repository was archived by the owner on Jan 15, 2025. It is now read-only.
This repository was archived by the owner on Jan 15, 2025. It is now read-only.

bf luis:cross-train detection logic for discovering child dialogs is wrong and incomplete. #997

Description

Versions

4.10.1 (and looking at the source code)

Describe the bug

Looking at the source code I see that the detection of child dialogs is incomplete:

  1. actions can be arbitrarily nested (for example if there is a "If" condition, the action code which is attempting to enumerate begindialogs will not detect the dialog.
  2. it is assuming that there are no direct references to dialogs by resource id
  3. it is assuming that all of the content of a dialog is in one file (and the declarative file system allows you to import portions of the dialog from an external .dialog into the context of the dialog.

To Reproduce

look at confighelper.js line 77, it is simply assuming that the actions are shallow, and is only looking for BeginDialog.
if (action.$type !== 'Microsoft.BeginDialog') continue

Expected behavior

  1. actions can be nested arbitrarily deep.
  2. BeginDialog is not the only way that dialogs can be invoked. You can just refer to a dialog directly by name, and other actions may invoke dialogs as well. (RepeatDialog, GotoDialog, etc.)

Unless you are using the declarative type loader to follow all references this approach is completely flawed.

Screenshots

If applicable, add screenshots to help explain your problem.

Additional context

Add any other context about the problem here.

[bug]

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions