v5.1.0-beta.2
Pre-release
Pre-release
What's Changed
- chore(deps): bump @harperfast/rocksdb-js to 2.0.0 (#1220)
- Merge pull request #1201 from HarperFast/claude/fix-1193
- test: TTL edge-case integration tests (#1210)
- Merge pull request #1218 from HarperFast/ci/bump-issue-to-pr-pin-441d2a31
- Increase Bun csvDataLoad timeout from 60s to 120s
- test(embed-directive): poll for async embed count before asserting
- ci: bump issue-to-pr pin to ai-review-prompts#58
- fix: cap the typed-structure dictionary in RecordEncoder
- harden replicated get_analytics peer-response unwrap
- feat(analytics): add replicated mode to get_analytics
- fix(resources): broaden arg normalizer guard to URLSearchParams (not just RequestTarget)
- fix(resources): detect RequestTarget in transactional arg normalizer (two-object form)
- fix(components): prevent eager EntryHandler creation before handleEntry() is called (RE-8)
- Merge pull request #1167 from HarperFast/feat-mcp-metadata-1095
- Merge pull request #1129 from HarperFast/kris/dbis-records-mode-downgrade
- Merge branch 'main' into kris/dbis-records-mode-downgrade
- test(nodeName): regression for hostnameToUrl undefined/null/empty hostname
- fix(nodeName): hostnameToUrl returns undefined when hostname is missing
- fix(installer): warn when DEFAULTS_MODE is set to an unrecognized value (RE-6)
- fix: only record structure update after txn commits
- fix: report a non-committed shared-structure save as not-saved
- chore: bump version to 5.1.0-beta.2
- Merge pull request #1147 from HarperFast/fix/1137-commutative-op-double-apply
- Merge pull request #1174 from HarperFast/ci/bump-arp-pin-3f2300a3
- test(jobs): add job-queue lifecycle integration test
- fix: read typeDef.attributes (Array) for primary-key lookup post-merge
- Merge remote-tracking branch 'origin/main' into feat-mcp-metadata-1095
- rework: detect re-delivered out-of-order duplicate up front (#1137)
- fix(table): don't double-apply re-delivered commutative op in capped out-of-order walk (#1137)
- fix(indexing): yield the event loop during a synchronous custom-index backfill
- test: make OpenDBIObject config test immune to a leaked envMngr.get stub
- test: stub envMngr.get instead of mutating config (suite-stable)
- test: cover the global storage.randomAccessFields path in OpenDBIObject
- fix: skip timestamp-prefix heuristic for audit values (classic-record collision)
- fix: copy-on-mutate frozen records in the save and source-resolve write paths
- feat: make typed random-access structures configurable (config + @table directive)
- chore(test): remove legacy API test suite and related infrastructure
- fix(deploy): collapse hdb_deployment write burst so peers converge
- Merge pull request #1180 from HarperFast/kris/msgpackr-2.0.4-main
- fix: bump msgpackr to 2.0.4 (two-byte over-cap record decode fix)
- Merge pull request #1178 from HarperFast/kris/fix-installation-test-stub-leak
- Merge branch 'main' into kris/fix-installation-test-stub-leak
- Merge pull request #1175 from HarperFast/kris/fix-log-rotator-regression
- test: restore leaked envMngr.get stub in installation.test.js
- Merge pull request #1140 from HarperFast/fix/1135-1136-txnlog-replay-corruption
- fix(logging): scope logRotator state per instance
- ci: also bump ai-review-prompts-ref input to 3f2300a3
- Merge pull request #778 from HarperFast/claude/api-tests-northwind
- Merge pull request #761 from HarperFast/claude/api-tests-delete
- ci: bump ai-review-prompts pin to 3f2300a3 (week-of-06-01 calibration)
- fix(integration): fix Bun runtime detection and csvDataLoad timeout
- fix(integration): fix csvDataLoad return type and Bun-specific test failures
- fix(integration): correct csvPath and apply formatting
- fix(integration): address cross-model review blockers in northwind suite
- fix(integration): address northwind test setup and assertion gaps
- test(integration): port Northwind test suite to self-contained framework
- fix(integration): add missing fixtures and fix duplicate hash_value
- test(integration): port delete operations tests to self-contained framework
- feat: expose urlPath in deploy_component operation and CLI (#1113)
- feat: log application path and table init during startup (#1109)
- fix: overwrite stale boot props when settings_path no longer exists (#1108)
- fix(dev): graphql schema changes trigger worker restart in dev mode (#1112)
- fix(logging): require logRotator .default and improve error message (#1111)
- Drop outputSchema on delete_* (claude bot follow-up review on #1167)
- test(hnsw): use describe.skip for the lmdb skip (review)
- fix(hnsw): don't drop int8 graph nodes read cold/frozen from disk
- Address bot review findings on #1167
- OpenAPI: per-property descriptions, path-level descriptions, @hidden, ResourceSchema description (#1095)
- MCP resources: description prefix on https:// + harper://schema, @hidden filter (#1095)
- MCP operations: hand-authored catalog, idempotentHint set, coverage lint (#1095)
- MCP application: verbDescription composer, outputSchema, warn-once, @hidden (#1095)
- MCP deriver: per-attribute descriptions, outputSchema, @hidden filter (#1095)
- GraphQL parser: capture docstrings, @hidden directive, properties Record (#1095)
- Foundation: type widening for class-level metadata (#1095)
- Merge pull request #1144 from HarperFast/fix/1138-waitfor-timing-races
- style: apply prettier formatting fixes
- Require structon >=1.0.5 for the plain-array shared-structures buffer
- Gate struct-mode encoding to primary DBIs for v4 downgrade compatibility
- Merge pull request #304 from HarperFast/read_txn_expiration
- Merge remote-tracking branch 'origin/main' into read_txn_expiration
- fix: Harper login can use inquirer for easier parsing
- Merge branch 'main' into fix/1138-waitfor-timing-races
- fix(downgrade): store is_hash_attribute in dbis for harperdb@4.x compat
- test(upgrade): skip downgrade subtest; harperdb@4 incompatible with hdb_deployment DBI
- fix(ci): clean stale Harper data dir before integration test run
- fix(replay): contain rocksdb-js corrupt-entry throws to a single log
- test: replace fixed-delay sleep-then-assert with waitFor (#1138)
- tidy: trim verbose/redundant code comments
- review: align return()/throw() delegation with reviewers' suggested form
- address review: delegate return()/throw() in endIteratorOnCorruptFrame
- fix(replay): recover from corrupt transaction-log frames instead of aborting startup
- fix(upgrade): run upgrade directives without interactive confirmation
- test(upgrade): auto-confirm CONFIRM_UPGRADE in 4.x->5.x upgrade test
- fix(upgrade): version hdb_deployment directive to 5.1.0 so 5.0.x→5.1 upgrades create the table
- Merge pull request #1124 from HarperFast/ci/review-always-on-toggle
- ci: use plain 'Note:' instead of 'NB:' in the label pointer comment
- ci: point caller comments at where the opt-in label is matched
- Require structon >=1.0.5 for the plain-array shared-structures buffer
- Gate struct-mode encoding to primary DBIs for v4 downgrade compatibility
- Merge origin/main (ai-review-prompts pin → 2be0f70) into toggle branch
- Merge pull request #1118 from HarperFast/chore/bump-ai-review-prompts-2be0f70
- ci: add always-on toggle + opt-in Gemini review caller
- chore(deps): bump @harperfast/rocksdb-js to ^1.4.2
- fix(table): bound out-of-order audit-chain walk to prevent full-copy OOM
- fix(replay): never let aged-log purge failure block recovery replay
- fix(replay): purge aged transaction logs during recovery before replay
- ci: drop the Gemini caller from this PR
- ci: add opt-in Gemini review caller (gemini-review label, org-member-gated)
- ci: scope to the review caller + correct the version comment
- ci: bump ai-review-prompts pin to 2be0f70
- fix(ci): add registry-url to setup-node in publish-harper-npm-package job
- fix(ci): use env var indirection to prevent shell injection in publish workflow
- feat(ci): add workflow_dispatch to publish-npm workflow
- fix(ci): checkout before setup-node in publish-harper-npm-package job
- Merge branch 'main' into read_txn_expiration
- Merge branch 'main' into read_txn_expiration
- Merge branch 'main' into read_txn_expiration
- fix(record-encoder): skip wrapped Txn.done if already done
- test: skip Read Txn Expiration suite on RocksDB
- fix: correct CONFIG_PARAMS key + make read-txn expiration test verify expiration
- chore: prettier format resources/databases.ts
- Merge branch 'main' into read_txn_expiration
- Update utility/hdbTerms.ts
- Merge branch 'main' into read_txn_expiration
- Merge branch 'main' into read_txn_expiration
- remove clamping + increase exp time
- fix formatting
- make read txn timeout configurable and set default to 1min
Full Changelog: v5.1.0-beta.1...v5.1.0-beta.2