Skip to content

Restore the Ruby Client Runtime and Add a Smoke Test Gate #1

@cferrys

Description

@cferrys

Summary

The repository currently documents and ships examples for a modular Hlquery::Client, but the runtime library files are missing, causing every example to fail immediately with LoadError: cannot load such file -- hlquery.

Context

README.md describes a usable Ruby client with lib/hlquery.rb, endpoint modules, auth support, and search/vector APIs. The examples in example.rb and examples/*.rb all call require "hlquery" and instantiate Hlquery::Client, but the lib/ implementation was removed in a recent commit while the documentation remained.

For a high-performance RocksDB-backed search engine wrapper, client availability is a release-blocking concern: users cannot create collections, ingest documents, run searches, or validate health checks from Ruby at all.

Proposed Implementation

Restore or regenerate the Ruby client runtime under lib/hlquery, including:

  • Hlquery::Client with collection, document, search, vector search, auth, and system helper APIs.
  • HTTP transport with clear response objects and typed exceptions for connection, timeout, auth, validation, and server errors.
  • A minimal gemspec or load-path strategy so require "hlquery" works consistently.
  • A CI smoke test that runs ruby -Ilib example.rb or a mocked equivalent to catch missing runtime files before merge.
  • Unit tests for request construction, auth headers, JSON parsing, and search parameter inference from searchable_fields.

Impact

This turns the repository back into a functional Ruby API client instead of documentation-only examples. It prevents broken releases, restores the primary integration path for Ruby users, and creates a safety net for future endpoint work around search, ingestion, and vector query performance.

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