> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gethaki.space/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Every notable change to Haki, in order. Same source as CHANGELOG.md in the repository.

<Update label="v0.2.0" description="2026-08-17">
  **Added**

  * **Cross-encoder reranker** (opt-in, `HAKI_RERANK_ENABLED`): re-scores
    the top retrieval candidates for higher accuracy before packing the
    context. Measured effect on a real A/B test: **+33.4 points
    accuracy** on the cases it targets (`eval/`, same protocol
    before/after).
  * **Temporal grounding**: a fact extracted from a relative time
    expression ("last week", "il y a trois jours") now carries an exact
    resolved ISO date range instead of losing that information at write
    time. Every rendered date also ships a precomputed, verified offset
    ("21 days before the question") so the reading model never has to do
    date arithmetic itself — an LLM given raw dates alone gets that
    arithmetic right only 13.5-16% of the time (Test-of-Time benchmark).
  * **Pseudo-relevance feedback (PRF) expansion**: retrieval now also
    considers entity names that recur across the top-ranked candidates,
    closing gaps where the right memory shares no exact keyword with the
    query.
  * Animated demo of `haki verify` in the README Quickstart.

  **Changed**

  * Default context budget raised from 900 to 2000 tokens, backed by
    published accuracy-vs-budget curves (the gain flattens well before
    4000 tokens on a `gpt-4o-mini`-class reader; 900 was leaving real
    accuracy on the table for no latency benefit).
  * README rewritten and fully translated to English; roadmap, test
    badge, and internal links corrected to match what is actually in
    this repository.

  **Fixed**

  * **Security** (external review): constant-time comparison for
    shared-secret checks, a missing rate limit on `/v1/context`, an
    unbounded request payload size on capture, and a missing
    row-level-security policy on `forget_receipts`. None were
    exploitable in practice at the time they were found, but all four
    are closed.
  * **Security**: rate-limiting was declared on every relevant route but
    never actually activated in this repository's `app/main.py`. Wired
    in.
  * **Extraction**: an out-of-enum `fact_kind`, `volatility`, or
    `memory_form` value from the extraction model — observed on a real
    `gpt-4o-mini` run — used to silently destroy the entire candidate
    fact instead of falling back to that field's own documented
    default. Found the same day it started biasing a real measurement.
  * **Consolidation**: automatic "conflict overflow" reclassification now
    flags the facts it activates as such instead of serving them as
    silently certain.
  * 6 additional correctness and robustness bugs found by an internal
    code review across the retrieval and consolidation code.
  * `httpx` timeout raised from 60s to 180s on the extraction provider,
    for long conversations whose prompt occasionally exceeded the old
    limit.
  * The public benchmarks section no longer implies pre-published
    results live in this repository — the harness is real and
    reproducible, but no cherry-picked number is ever committed here;
    run it yourself.
</Update>

<Update label="v0.1.3" description="2026-08-14">
  SDK coverage for mechanism D (`as_of`, volatility that degrades instead
  of excluding a stale fact) and the calibration eval protocol.
</Update>

<Update label="v0.1.2" description="2026-08-13">
  SDK coverage for the temporal tie-break fix and contested-conflict
  serving introduced the same day.
</Update>

<Update label="v0.1.1" description="2026-08-10">
  Follow-up fix shortly after the initial release.
</Update>

<Update label="v0.1.0" description="2026-08-10">
  Initial public release: Python and TypeScript SDKs, the `haki` CLI, the
  MCP server, and the OpenAI-compatible gateway.
</Update>
