HarperFast / HarperFast/fulltext

Implement mutation batching, commit publication, reader reload, and status

Open
#8 0 comments 0 reactions 1 assignee Claimed by @kylebernhardy View on GitHub
area:api area:native
Dominant language
Rust
Stars
0
Forks
0
Avg merge
3h 53m
Merged PRs (30d)
18

Description

## Outcome

Complete native mutation and checkpoint publication contracts without implementing source-log semantics in the wrapper.

## Acceptance criteria

- Provide ordered packed upsert/replace-by-ID and delete operations with fully validated batches and deterministic replay behavior.
- Keep authoritative version/conflict resolution in Harper; do not add a durable per-record version ledger to the wrapper.
- Expose opaque bounded commit payload publication/readback in native mode; payload and covered mutation state commit together.
- Serialize apply/commit/publish operations and make publish resolve only after durable commit plus local reader reload.
- Specify compatibility with standalone commit/reload and prevent plain commits from attaching stale checkpoint claims to new mutations.
- Treat ambiguous commit/reload failures as uncertain state requiring reopen; preserve native poison and backend recovery semantics.
- Report queue, apply, commit/reload, visibility and health metrics with versioned Rust/TypeScript codec parity.

- Enforce commit-after-payload rejection in the writer actor, including queued publish-then-commit and reopened generations. Recovered payload, not poisoned status counters, determines durable progress.

## Design

[Native Tantivy storage and Harper derived indexes](https://github.com/HarperFast/fulltext/blob/codex/native-storage-design/docs/native-storage-integration.md). 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)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.