Skip to content

Latest commit

 

History

History
228 lines (135 loc) · 22 KB

File metadata and controls

228 lines (135 loc) · 22 KB

Changelog

0.7.0 (2026-07-11)

⚠ BREAKING CHANGES

  • kv: #192 KV MCP LLM ergonomics — created signal, batch, size, value_path, JSON docs (#193)
  • kv: async set/set_as/set_batch return SetOutcome/BatchSetOutcome
  • kv: async twin — reshape AsyncKvStore set/set_as/set_batch
  • kv: sync set/set_as/set_batch return SetOutcome/BatchSetOutcome
  • commits the plan produces, per release-please.

Features

  • commits the plan produces, per release-please. (f6e5789)
  • kv: #192 KV MCP LLM ergonomics — created signal, batch, size, value_path, JSON docs (#193) (52a3ba0)
  • kv: add async set_if_absent/byte_size/entries/set_batch_if_absent (a166813)
  • kv: add set_if_absent and set_batch_if_absent to AsyncKvStore (d116b12)
  • kv: add sync KvStore::byte_size and entries (aea9ea5)
  • kv: add sync KvStore::set_batch_if_absent atomic guard (4a88aa3)
  • kv: add sync KvStore::set_if_absent write guard (4f1ca85)
  • kv: async set/set_as/set_batch return SetOutcome/BatchSetOutcome (6af0649)
  • kv: async twin — reshape AsyncKvStore set/set_as/set_batch (89a7767)
  • kv: sync set/set_as/set_batch return SetOutcome/BatchSetOutcome (5aeab78)
  • mcp: add kv_set_many atomic batch write tool (34f15f7)
  • mcp: add values flag to kv_list for whole-store reads (f0b3527)
  • mcp: kv_set reports created/value_bytes, adds overwrite guard + value_path (fd89084)
  • mcp: kv_size reports total value bytes (0967c05)

Bug Fixes

  • mcp: #192 cap kv_set value_path file size before reading (0fda8ec)
  • mcp: preserve PermissionDenied and steer JSON errors to ::json cast (e1acbcd)

0.6.1 (2026-07-10)

Bug Fixes

  • mcp: surface the KV store in the crates.io README and map caller-fixable identifier errors to INVALID_ARGUMENT (#188) (a5993d5)

0.6.0 (2026-07-10)

Features

  • mcp: key-value scratchpad tools + database-targeted KV API (#185) (c24e291)

0.5.6 (2026-06-16)

Bug Fixes

  • api: parameterized FromRow methods (fetch_*_as_params / stream_as_params) (#152) (c576945)
  • api: point query_as!/query_scalar! param comments at #137 (#153) (926019d)
  • ci: grant contents:write to release publish job (5160975)

0.5.5 (2026-06-16)

Bug Fixes

  • deps: bump npm dependencies to resolve Dependabot alerts (f37c2d7)

0.5.4 (2026-06-10)

Bug Fixes

  • api: IntoValue + Inserter::add_geography for Geography (#65) (c26242e)
  • api: ToSqlParam for Numeric (scale=0), Interval, and JSON (#65) (2e4a4d7)
  • catalog rename metadata, data_url field, and ToSqlParam/IntoValue type coverage (#134) (00fd333)
  • mcp: add data_url field to _table_catalog for mechanical refresh (#60) (50cdb25)
  • mcp: preserve catalog metadata on ALTER TABLE RENAME (#59) (e979bba)

0.5.3 (2026-06-09)

Bug Fixes

  • mcp: avoid deadlock in heartbeat by passing health port directly (26fd046)
  • mcp: default chart inline to true for immediate display (8792ef3)
  • mcp: heartbeat deadlock, chart inline default, lock-free status fast path (#118) (#126) (8115109)
  • mcp: lock-free status fast path so diagnostics never hang (#118) (0f8fa5a)
  • remove redundant Duration import in connect_named_pipe (02feadc)

0.5.2 (2026-06-08)

Bug Fixes

  • bootstrap: download hyperd from the Java API bundle, not C++ (#121) (9ca4f24)

0.5.1 (2026-06-08)

Bug Fixes

  • client: enable TCP keepalive on hyperd connections (8de3b0e)
  • daemon: stop redundant off-base daemon after concurrent cold-start (655560e)

0.5.0 (2026-06-07)

Features

  • daemon: identified PONG handshake + port-scan resolver groundwork (751fd75)
  • daemon: keep daemon resident by default; CLI auto-discovers port (e123688)
  • daemon: port-scanning locator + newer-client version takeover (114a155)
  • mcp: surface hyperd endpoint + daemon health port in status tool (293a7a0)

Bug Fixes

  • mcp: harden daemon discovery — identified PONG, port scanning, version takeover, resident-by-default (#115) (05019b9)

0.4.0 (2026-06-02)

Features

  • streaming FromRow mapping (stream_as) — constant-memory struct-mapped queries (#91) (#94) (3327fc0)
  • opt-in compile-time SQL validation — query_as! / query_scalar! validate SQL against #[derive(Table)] structs at build time, with VS Code diagnostics (#93) (73f9b0f)

Bug Fixes

  • release: wrap hyperdb-compile-check pin in release-please markers (#97) (1f07015)

0.3.1 (2026-05-29)

Patch release that fixes two related but distinct bugs surfaced by #84 — wrong NUMERIC values in MCP query results and Node bindings.

Bug Fixes

  • Core: Numeric::Display no longer drops the sign for sub-unit negatives. Values in the open interval (-1, 0) previously rendered without the minus sign — Numeric::new(-5000, 4).to_string() returned "0.5000" instead of "-0.5000". The Display impl now computes the sign explicitly and formats the magnitude via unsigned_abs(), which also removes a latent i128::MIN overflow panic. This silently flipped the sign of any correlation, 0-1 index, or regression residual that crossed the stringify path — including the MCP query tool's JSON serialization. (#84, #86)
  • Node bindings: NUMERIC columns no longer decode as garbage / NaN. extract_row and the columnar fast path were calling row.get_f64() for SqlType::Numeric columns, which reinterpreted the unscaled-integer bytes as IEEE-754 doubles. Every NUMERIC cell was wrong, regardless of sign. The bindings now use schema-aware row.get_numeric(), which honors the column scale and dispatches on wire form. getString returns the exact decimal text (preserving scale and sign), getFloat64 returns the lossy-but-correct double, getInt32/getInt64 return the truncated integer, and the columnar getFloat64Column returns correct f64 values. Related to #84.
  • Node bindings: getBigInt now preserves precision on NUMERIC(p, 0) columns. Previously getBigInt returned null for any NUMERIC cell. It now preserves the full 128-bit unscaled value for integer-shaped numerics — use it instead of getInt64 for NUMERIC integer values above Number.MAX_SAFE_INTEGER. On NUMERIC(p, scale>0) columns it returns null (use getString for exact text or getFloat64 for a lossy value). Related to #84.

0.3.0 (2026-05-29)

This release aggregates a coordinated set of breaking and additive API changes that landed across four PRs during the v0.3.0 bundle window. See MIGRATING-0.3.md for complete migration recipes covering every change.

⚠ BREAKING CHANGES

  • Flat Error enum. The public hyperdb_api::Error is now a flat canonical structure per the Microsoft Pragmatic Rust Guidelines — no Box<dyn StdError> cause channel, no kind() method, no Other catch-all variant. Error::new and Error::with_cause are deleted in favor of domain-specific snake_case constructors (Error::connection, Error::server, Error::conversion, etc.). The ErrorKind re-export from hyperdb_api is removed. (#70, #71)
  • Transaction API consolidation. Connection::begin_transaction / commit / rollback (and the async equivalents) are deprecated and #[doc(hidden)]. Use the RAII guard at Connection::transaction() / AsyncConnection::transaction() instead. (#69, #73)
  • FromRow modernization. FromRow::from_row(&Row) becomes FromRow::from_row(RowAccessor<'_>). The blanket 1/2/3/4-tuple FromRow impls are deleted — define a struct with #[derive(FromRow)] instead. New RowAccessor carries a per-query cached column-name → index lookup; new Row::get_by_name for one-off named access. (#61, #62, #74)
  • Structured SQLSTATE on Cancelled / Closed / Connection. Error::Cancelled and Error::Closed change from tuple to struct variants carrying sqlstate: Option<String>. Error::Connection gains the same field. Error::sqlstate() now returns Some(...) for these variants when the server provided a code (previously Server-only). New Error::InvalidOperation variant separates caller-API misuse from library invariant violations. (#76)

Features

  • #[derive(FromRow)] proc-macro with #[hyperdb(rename = "...")] and #[hyperdb(index = N)] attributes, lives in the new re-exported hyperdb-api-derive crate (#74)
  • RowAccessor accessors: get / get_opt (name-based) and position / position_opt (index-based) (#74)
  • Ergonomic snake_case constructors workspace-wide for every error variant — &str, String, format!(...) accepted without .to_string() ceremony (#71)
  • Typed io::Error sources preserved on HyperProcess lifecycle errors (#76)
  • stabilize v0.3.0 public API bundle (#77) (ac39b2c)

Deferred

  • Internal client::Error flatten — deferred to v0.3.x as #75 (internal type, zero external consumers; scope grew on second look).

0.2.3 (2026-05-27)

Bug Fixes

  • ci: use exact-name match for required check-runs (no regex) (#54) (fc13637)

0.2.2 (2026-05-27)

Bug Fixes

  • ci: defer fromJson(release.outputs.pr) into a run block (#51) (dd78df9)
  • clean version stamps on release builds (no -dirty markers) (#50) (5962a4e)

0.2.1 (2026-05-26)

Bug Fixes

  • build: add make targets for API-only build and test (#44) (7f81ead)

0.2.0 (2026-05-26)

Features

  • mcp: ephemeral-primary + persistent-attached two-database model (#29) (025ffa7)
  • mcp: finish persistent — remove all v1 limitations + per-database catalog (#32) (b420532)
  • mcp: per-tool database parameter and persist shorthand (#31) (37336c8)
  • single-instance daemon for shared hyperd across MCP clients (#26) (e2c6204)

Bug Fixes

  • chart time-axis rendering, auto-detection, and MCP ergonomic fixes (#39) (e6d14d3)
  • ci: add release-please version markers to hyperdb-mcp (#41) (f566bc7)
  • ci: add release-please version markers to hyperdb-mcp dependency (f566bc7)
  • ci: resolve daemon test interference on macOS/Windows and disable release-please (#28) (51fc9fe)
  • mcp: cross-process catalog write safety via optimistic concurrency (#38) (54e3f18)
  • mcp: finish-persistent follow-ups — alias canonicalization, execute reconcile, e2e harness (#33) (242be20)
  • tests: relax timing assertion and increase daemon startup timeout (#30) (56a19d1)

0.1.3 (2026-05-18)

Bug Fixes

  • v0.1.2 release — bump versions and add safety net (#17) (bae4536)

0.1.2 (2026-05-18)

Bug Fixes

  • ci: include README.md in hyperdb-mcp npm package (c8ccc22)
  • ci: include README.md in hyperdb-mcp npm package (#12) (b1ddb33)
  • ci: prevent npm-publish chmod step from failing on missing binaries (2708ee4)
  • ci: prevent npm-publish chmod step from failing on missing binaries (#11) (bc9bee5)
  • ci: remove brew rust on macOS before installing toolchain (b331607)
  • ci: remove brew-rust uninstall steps that delete cargo/rustc on new image (af798f1)
  • ci: restructure release-please config for workspace version inheritance (d5ad018)
  • ci: restructure release-please config for workspace version inheritance (#13) (fd18a8b)
  • ci: use simple release-type to avoid Cargo workspace member walking (3884162)
  • ci: use simple release-type to avoid Cargo workspace member walking (#14) (42f0524)