Skip to content

[ENHANCEMENT] Upgrade semble to v0.4.1 and localize provider status messages #733

Description

@navedmerchant

Problem (one or two sentences)

The bundled semble code-search binary is pinned to v0.3.1, whose JSON output wraps each result in a chunk object. Semble v0.4.0+ flattens that output, so the current provider can no longer parse search results. Additionally, the SembleProvider surfaces hard-coded English status strings, and a version bump leaves the prior release's archive orphaned on disk.

Context (who is affected and when)

Affects any user relying on the built-in code-index/embeddings search backed by semble. The breakage is most visible immediately after semble publishes a new release: the cached archive from the old version can fail checksum verification against the new SEMBLE_SHA256, and the provider mis-parses the flattened result shape. Non-English users also see untranslated provider status messages.

Desired behavior (conceptual, not technical)

  • The extension should ship and correctly consume the latest semble release.
  • A semble version upgrade should never reuse or fail to verify a stale on-disk archive.
  • SembleProvider status messages should be translatable across all supported locales.

Acceptance criteria

  • Given semble v0.4.1 is released
  • When the extension downloads/verifies the binary
  • Then it uses the updated SHA256 checksums and a version-prefixed archive cache path
  • And stale archives from prior versions are cleaned up best-effort
  • And search results are parsed from the flat v0.4.0+ format (file_path, start_line, end_line, score, content)
  • And provider status strings are sourced from i18n across all locales
  • But the old chunk-wrapped shape is no longer expected

Proposed approach

  • Bump SEMBLE_VERSION to v0.4.1 and refresh SEMBLE_SHA256.
  • Flatten SembleSearchResult (remove SembleChunk); update provider.ts and semble-cli.ts parsing.
  • Version-prefix the local archive cache path and add cleanupStaleArchives.
  • Move provider status strings into embeddings.json semble.* keys across all locales.
  • Update unit tests for provider, CLI, and downloader.

Trade-offs / risks

  • Checksums are hard-coded per release; a future release requires another bump.
  • Stale-archive cleanup is best-effort and swallows errors.

Request checklist

  • I've searched existing Issues and Discussions for duplicates
  • This describes a specific problem with clear context and impact

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions