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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions