Skip to content

Define the TypeScript façade, packed native ABI, errors, and lifecycle contract #14

Description

@kylebernhardy

Outcome

Expose a stable TypeScript API over one native storage backend and a versioned packed ABI.

Acceptance criteria

  • Type and document schema, packed mutation, commit, opaque publication/readback, search/pagination, results, status, cancellation and close.
  • One native call represents a batch/search/publication/lifecycle operation; buffer ownership and bounds are explicit.
  • Keep native low-level exports private and generic checkpoint content opaque to the wrapper.
  • Typed errors and ABI validation preserve actionable context without exposing source data or unsafe native details.
  • Close is asynchronous/idempotent, rejects new work and deterministically settles admitted work; worker loss/deadline does not prove rollback or quiescence.
  • Preserve existing standalone commit/reload compatibility while specifying checkpoint interactions.
  • Version Rust/TypeScript codec additions together and test packed-artifact parity.
  • Document panic containment limits; caught panics are not process isolation.
  • Remove the experimental hosted storage factory from the supported API; Harper uses the native facade.

Design

Native Tantivy storage and Harper derived indexes. Native Tantivy files are the only delivery target for standalone use and Harper. Proposed APIs and integration gates are not claims of completed implementation.

Comment generated by kAIle (GPT-6)

Activity

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

Metadata

Metadata

Assignees

Labels

area:apiPublic Node.js and native APIarea:nativeRust, Tantivy, and Node-API implementation

Type

Fields

Priority

P3

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions