Skip to content

WSL support for Mistral Vibe #1630

Closed

Description

@mriffault

Description

Mistral Vibe is installed inside WSL (Debian), but Codeburn (Windows app, v0.9.25) does not detect any sessions from it. The provider does not appear at all — not even in settings.

Environment

  • Codeburn: 0.9.25 (Windows, Microsoft Store)
  • WSL distro: Debian
  • Mistral Vibe: installed via uv in WSL
  • Sessions location: ~/.vibe/logs/session/ (pre-Unified Harness sessions with meta.json + messages.jsonl)

Root cause

PR #1062 added WSL path discovery but only covers Claude and Codex — quoting the PR description: "V1 covers claude and codex (the two providers with an existing multi-root seam; others when reported)".

Mistral Vibe was added as a provider in 0.9.21, but never received the WSL discovery seam.

Expected behavior

Codeburn should scan \\wsl.localhost\<distro>\home\<user>\.vibe\logs\session\ the same way it scans WSL paths for Claude Code.

Related

Activity

  1. mriffault commented on Oct 5, 2026

    @mriffault
    Author

    Suggested fix

    Same pattern as PR #1062 (Claude/Codex WSL support) — three small changes to src/providers/mistral-vibe.ts:

    --- a/src/providers/mistral-vibe.ts
    +++ b/src/providers/mistral-vibe.ts
    @@ -7,6 +7,7 @@ import { calculateCost } from '../models.js'
     import { extractBashCommands } from '../bash-utils.js'
     import type { ProbeRoot, Provider, SessionSource, SessionParser, ParsedProviderCall } from './types.js'
     import { safeNumber } from '../parser.js'
    +import { wslHomes } from '../wsl.js'
    
    @@ -397,6 +398,11 @@ export function createMistralVibeProvider(sessionsDir?: string): Provider {
       const dir = getMistralVibeSessionsDir(sessionsDir)
    
    +  // Extra WSL homes' ~/.vibe/logs/session (#1630); empty off-win32 and when a
    +  // caller passes an explicit sessionsDir override (test / env-var scenario).
    +  const wslVibeDirs = (): string[] =>
    +    sessionsDir ? [] : wslHomes().map(home => join(home, '.vibe', 'logs', 'session'))
    +
       return {
    @@ -413,14 +416,17 @@ export function createMistralVibeProvider(sessionsDir?: string): Provider {
         async probeRoots(): Promise<ProbeRoot[]> {
    -      return [{ path: dir, label: 'sessions' }]
    +      const local: ProbeRoot[] = [{ path: dir, label: 'sessions' }]
    +      const wslRoots: ProbeRoot[] = wslVibeDirs().map(d => ({ path: d, label: 'sessions' }))
    +      return [...local, ...wslRoots]
         },
    
         async discoverSessions(): Promise<SessionSource[]> {
    -      const dirs = await discoverSessionDirs(dir)
    +      const allRoots = [dir, ...wslVibeDirs()]
    +      const allDirs = (await Promise.all(allRoots.map(discoverSessionDirs))).flat()
           const sources: SessionSource[] = []
    
    -      for (const sessionDir of dirs) {
    +      for (const sessionDir of allDirs) {

    Verified: tsc --noEmit passes with no errors on 0.9.25.

    My setup for reference: Debian WSL, Mistral Vibe installed via uv, sessions at ~/.vibe/logs/session/session_XXXXXXXX_*/ (legacy format — meta.json + messages.jsonl). The sessions exist and are valid; the Windows app simply never scans the WSL path for this provider.

  2. iamtoruk commented on Oct 7, 2026

    @iamtoruk
    Member

    Thanks @mriffault, shipped in #1681: Vibe sessions inside WSL distros are now picked up when CodeBurn runs on Windows, both the legacy and the unified log layouts. It lands in the next release.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: windowsThe Windows tray app and Windows-specific behaviourenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions