Skip to content

[v2] Inline completions websocket does not the serverSettings passed so sometimes it uses wrong URL #1499

@krassowski

Description

@krassowski

Description

It accepts serverSettings here:

export class CompletionWebsocketHandler implements IDisposable {
/**
* The server settings used to make API requests.
*/
readonly serverSettings: ServerConnection.ISettings;
/**
* Create a new completion handler.
*/
constructor(options: AiService.IOptions = {}) {
this.serverSettings =
options.serverSettings ?? ServerConnection.makeSettings();
}

But they are not passed there:

activate: async (
app: JupyterFrontEnd,
completionManager: ICompletionProviderManager,
languageRegistry: IEditorLanguageRegistry,
settingRegistry: ISettingRegistry,
statusItem: IJaiStatusItem | null
): Promise<JaiCompletionToken> => {
if (typeof completionManager.registerInlineProvider === 'undefined') {
// Gracefully short-circuit on JupyterLab 4.0 and Notebook 7.0
console.warn(
'Inline completions are only supported in JupyterLab 4.1+ and Jupyter Notebook 7.1+'
);
return null;
}
const completionHandler = new CompletionWebsocketHandler();

Reproduce

  1. Change app URL by providing a custom baseURL in page config or custom serverSettings
  2. See that inline completer webscocket does not connect

Expected behavior

It connects

Context

See:

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugBugs reported by users

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions