Skip to content

Implement native directory identity, recovery, and handle lifecycle #5

Description

@kylebernhardy

Outcome

Make native file-backed index handles safe for standalone callers and Harper's generation lifecycle.

Acceptance criteria

  • Canonicalize native directory identity and reject duplicate live writers, including path aliases; lock contention must not trigger destructive rebuild.

  • Validate index identity/schema/format and expose the committed opaque payload when reopening.

  • Define graceful close, rollback, worker loss and deadline behavior; prove native tasks and mappings no longer use a generation before release.

  • Support bounded reader lifetime and cross-worker attachment/refresh without opening a writer in every query worker.

  • Surface missing/corrupt/unsupported state with typed errors so Harper can decide replay or rebuild.

  • Keep generation selection, database drop/restore, local path policy, cleanup scheduling, and authoritative recovery in Harper. Supply safe native close semantics rather than another lifecycle catalog.

  • Qualify POSIX and Windows mapping, locking, deletion, and restart behavior.

  • Distinguish a draining prior owner as retryable acquisition/quiescence failure; never classify it as corruption or rebuild/delete its live directory.

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