# SearchAI Index Server 1.3.1 (2026-10-05)

A drop-in patch over 1.3.0 that sharpens OpenSearch client compatibility during
startup and connection setup. No configuration changes, no on-disk format
changes, and no wire-protocol changes — upgrade in place.

## Platforms (all built natively)
- searchai-index-server-1.3.1-linux-arm64.tar.gz (Graviton/ARM servers)
- searchai-index-server-1.3.1-linux-amd64.tar.gz (x86_64 glibc servers)
- searchai-index-server-1.3.1-osx-arm64.tar.gz (Apple Silicon dev)

## Fixed
- **TLS handshake on the plaintext port no longer stalls the connection.** A
  client that opened an HTTPS/TLS connection to the plaintext HTTP port would
  send a TLS ClientHello, which the server tried to read as an HTTP request and
  waited on indefinitely — hanging that client mid-handshake. The server now
  detects a TLS handshake on a plaintext listener and closes the connection
  immediately, matching stock OpenSearch, so the client fails fast and falls
  back to plaintext. This unblocks clients that probe the engine over multiple
  schemes during startup.
- **`HEAD` returns the real `Content-Length`.** `HEAD /{index}` and
  `HEAD /{index}/_doc/{id}` now report the same `Content-Length` the equivalent
  `GET` would (with the body omitted, per HTTP), instead of `Content-Length: 0`,
  matching OpenSearch's HEAD semantics.
- **`_open` / `_close` are acknowledged.** `POST /{index}/_open` and
  `POST /{index}/_close` now return `200 {"acknowledged":true}` (indices are
  always open; there is no closed state), so client startup routines that toggle
  index state succeed instead of erroring. A genuinely missing index still 404s.

## Compatibility
- Linux builds now target a portable CPU baseline (`x86-64-v3` on amd64, the
  `armv8-a` baseline on arm64) so a single bundle runs across instance families
  — amd64 on t3/c5/c6/c7 and arm64 on Graviton2 and newer. (Earlier bundles were
  compiled for the build host's CPU and could fail to start with an illegal
  instruction on older/smaller instance types.)

## Upgrade
Drop-in over 1.3.0 — replace the binary and bundle, keep your existing
`server.properties` and data directory. No reindexing.

Verify the download:
```
sha256sum -c searchai-index-server-1.3.1-<platform>.tar.gz.sha256
```
