Skip to content

Restore a Functional Ruby Client Runtime and Add a Loadable Smoke Test #2

@cferrys

Description

@cferrys

Summary

The repository’s current HEAD no longer ships the Ruby client implementation under lib/, but the README and all example scripts still instruct users to require "hlquery" and instantiate Hlquery::Client. As a result, the client is effectively unusable in its current state. This should be treated as a high-priority issue because the package currently presents a working SDK surface while publishing only documentation and examples.

Context

Recent history shows a sharp regression in repository functionality:

This is especially important for a high-performance search engine wrapper because client correctness is the entry point for every integration, benchmark, and production workload. Right now, users cannot even establish a baseline connection or exercise search, document, or collection APIs from Ruby.

Proposed Implementation

  1. Restore a supported runtime under lib/, either by reintroducing the modular client from 208418a or replacing it with a smaller maintained implementation that preserves the documented API.
  2. Align the public contract across README.md, example.rb, and examples/*.rb so every documented call maps to code that actually exists.
  3. Add a minimal smoke test or CI check that only verifies:
    • require "hlquery" succeeds
    • Hlquery::Client.new(...) is loadable
    • the documented top-level entry points (health, collections, documents, search) are defined
  4. Fail CI on any future commit where docs/examples reference methods or files that are no longer shipped.

Impact

Fixing this restores the repository from a documentation-only shell to a usable SDK. It prevents users from hitting immediate runtime failures, re-establishes trust in the Ruby client, and creates a basic guardrail against future regressions where public examples drift away from the actual shipped client surface.

Metadata

Metadata

Assignees

Labels

No labels
No labels

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