Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -209,3 +209,22 @@ jobs:
rustflags: ""
- run: cargo install cargo-audit --locked
- run: cargo audit --deny warnings

version-consistency:
# Ensures version.txt (release-please source of truth) stays in sync
# with Cargo.toml workspace version. Catches release-please PRs that
# bump one but not the other.
name: version consistency
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v6
- name: Check version.txt matches Cargo.toml workspace version
run: |
set -euo pipefail
CARGO_VERSION=$(grep -A1 'x-release-please-version' Cargo.toml | tail -1 | sed 's/.*"\(.*\)".*/\1/')
TXT_VERSION=$(cat version.txt | tr -d '[:space:]')
if [[ "$CARGO_VERSION" != "$TXT_VERSION" ]]; then
echo "::error::version.txt ($TXT_VERSION) does not match Cargo.toml workspace version ($CARGO_VERSION)"
exit 1
fi
18 changes: 9 additions & 9 deletions .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
{
".": "0.1.2",
"hyperdb-api-node": "0.1.1",
"hyperdb-api-node": "0.1.2",
"hyperdb-mcp/npm": "0.1.2",
"hyperdb-mcp/npm/darwin-arm64": "0.1.1",
"hyperdb-mcp/npm/linux-x64-gnu": "0.1.1",
"hyperdb-mcp/npm/win32-x64-msvc": "0.1.1",
"hyperdb-api-node/npm/darwin-arm64": "0.1.1",
"hyperdb-api-node/npm/linux-arm64-gnu": "0.1.1",
"hyperdb-api-node/npm/linux-x64-gnu": "0.1.1",
"hyperdb-api-node/npm/linux-x64-musl": "0.1.1",
"hyperdb-api-node/npm/win32-x64-msvc": "0.1.1"
"hyperdb-mcp/npm/darwin-arm64": "0.1.2",
"hyperdb-mcp/npm/linux-x64-gnu": "0.1.2",
"hyperdb-mcp/npm/win32-x64-msvc": "0.1.2",
"hyperdb-api-node/npm/darwin-arm64": "0.1.2",
"hyperdb-api-node/npm/linux-arm64-gnu": "0.1.2",
"hyperdb-api-node/npm/linux-x64-gnu": "0.1.2",
"hyperdb-api-node/npm/linux-x64-musl": "0.1.2",
"hyperdb-api-node/npm/win32-x64-msvc": "0.1.2"
}
14 changes: 7 additions & 7 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ members = [

[workspace.package]
# x-release-please-version
version = "0.1.1"
version = "0.1.2"
edition = "2021"
rust-version = "1.81"
license = "MIT OR Apache-2.0"
Expand Down
3 changes: 2 additions & 1 deletion hyperdb-api-core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,8 @@ serde = { workspace = true }
serde_json = { workspace = true }

# Salesforce OAuth authentication (optional, via standalone crate)
hyperdb-api-salesforce = { path = "../hyperdb-api-salesforce", version = "=0.1.1", optional = true }
# x-release-please-version
hyperdb-api-salesforce = { path = "../hyperdb-api-salesforce", version = "=0.1.2", optional = true }

# Arrow parsing for catalog operations (optional, used by authenticated_client)
arrow = { version = "58.0", optional = true }
Expand Down
2 changes: 1 addition & 1 deletion hyperdb-api-node/npm/darwin-arm64/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "hyperdb-api-node-darwin-arm64",
"version": "0.1.1",
"version": "0.1.2",
"os": [
"darwin"
],
Expand Down
2 changes: 1 addition & 1 deletion hyperdb-api-node/npm/darwin-x64/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "hyperdb-api-node-darwin-x64",
"version": "0.1.1",
"version": "0.1.2",
"os": [
"darwin"
],
Expand Down
2 changes: 1 addition & 1 deletion hyperdb-api-node/npm/linux-arm64-gnu/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "hyperdb-api-node-linux-arm64-gnu",
"version": "0.1.1",
"version": "0.1.2",
"os": [
"linux"
],
Expand Down
2 changes: 1 addition & 1 deletion hyperdb-api-node/npm/linux-x64-gnu/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "hyperdb-api-node-linux-x64-gnu",
"version": "0.1.1",
"version": "0.1.2",
"os": [
"linux"
],
Expand Down
2 changes: 1 addition & 1 deletion hyperdb-api-node/npm/linux-x64-musl/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "hyperdb-api-node-linux-x64-musl",
"version": "0.1.1",
"version": "0.1.2",
"os": [
"linux"
],
Expand Down
2 changes: 1 addition & 1 deletion hyperdb-api-node/npm/win32-x64-msvc/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "hyperdb-api-node-win32-x64-msvc",
"version": "0.1.1",
"version": "0.1.2",
"os": [
"win32"
],
Expand Down
2 changes: 1 addition & 1 deletion hyperdb-api-node/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "hyperdb-api-node",
"version": "0.1.1",
"version": "0.1.2",
"description": "Node.js bindings for the Hyper database API, powered by napi-rs",
"main": "index.js",
"types": "index.d.ts",
Expand Down
3 changes: 2 additions & 1 deletion hyperdb-api/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ categories = ["database"]
autobenches = false

[dependencies]
hyperdb-api-core = { path = "../hyperdb-api-core", version = "=0.1.1" }
# x-release-please-version
hyperdb-api-core = { path = "../hyperdb-api-core", version = "=0.1.2" }
bytes = { workspace = true }
thiserror = { workspace = true }
tracing = { workspace = true }
Expand Down
2 changes: 1 addition & 1 deletion hyperdb-mcp/npm/darwin-arm64/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "hyperdb-mcp-darwin-arm64",
"version": "0.1.1",
"version": "0.1.2",
"description": "HyperDB MCP server binary for macOS ARM64",
"os": ["darwin"],
"cpu": ["arm64"],
Expand Down
2 changes: 1 addition & 1 deletion hyperdb-mcp/npm/darwin-x64/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "hyperdb-mcp-darwin-x64",
"version": "0.1.1",
"version": "0.1.2",
"description": "HyperDB MCP server binary for macOS x64",
"os": ["darwin"],
"cpu": ["x64"],
Expand Down
2 changes: 1 addition & 1 deletion hyperdb-mcp/npm/linux-x64-gnu/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "hyperdb-mcp-linux-x64-gnu",
"version": "0.1.1",
"version": "0.1.2",
"description": "HyperDB MCP server binary for Linux x64 (glibc)",
"os": ["linux"],
"cpu": ["x64"],
Expand Down
2 changes: 1 addition & 1 deletion hyperdb-mcp/npm/win32-x64-msvc/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "hyperdb-mcp-win32-x64-msvc",
"version": "0.1.1",
"version": "0.1.2",
"description": "HyperDB MCP server binary for Windows x64",
"os": ["win32"],
"cpu": ["x64"],
Expand Down
33 changes: 19 additions & 14 deletions hyperdb-mcp/src/ingest.rs
Original file line number Diff line number Diff line change
Expand Up @@ -684,18 +684,23 @@ pub fn ingest_csv(
// Write CSV to a temp file before starting the transaction (it's a pure
// filesystem operation and doesn't need to be atomic with the DB work).
//
// The filename mixes PID and a nanosecond timestamp so parallel tests
// (and parallel ingest calls from a multi-client MCP) don't race on
// the same path and produce `unable to read from external source`
// errors when one caller's COPY overlaps another's write/remove.
let temp_dir = std::env::temp_dir();
let temp_path = temp_dir.join(format!(
"hyperdb_mcp_csv_{}_{}.csv",
std::process::id(),
std::time::SystemTime::now()
.duration_since(std::time::UNIX_EPOCH)
.map_or(0, |d| d.as_nanos())
));
// Uses `tempfile::NamedTempFile` for OS-guaranteed unique paths — the
// previous PID+nanosecond scheme could collide on macOS where timer
// resolution is coarser, causing parallel tests to race on the same file.
// `into_temp_path()` closes the file handle immediately while retaining
// the auto-delete-on-drop guarantee. This is required on Windows where
// `hyperd` cannot open a file held by another process.
let temp_path = tempfile::Builder::new()
.prefix("hyperdb_mcp_csv_")
.suffix(".csv")
.tempfile()
.map_err(|e| {
McpError::new(
ErrorCode::InternalError,
format!("Failed to create temp CSV file: {e}"),
)
})?
.into_temp_path();
std::fs::write(&temp_path, csv_text).map_err(|e| {
McpError::new(
ErrorCode::InternalError,
Expand Down Expand Up @@ -724,8 +729,8 @@ pub fn ingest_csv(
engine.execute_command(&copy_sql)
});

// Always clean up the temp file, success or failure.
let _ = std::fs::remove_file(&temp_path);
// `temp_path` (TempPath) auto-deletes the file when dropped at end of scope.
drop(temp_path);
let row_count = row_count?;

let elapsed = timer.elapsed_ms();
Expand Down
2 changes: 2 additions & 0 deletions release-please-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@
"changelog-path": "CHANGELOG.md",
"extra-files": [
"Cargo.toml",
"hyperdb-api-core/Cargo.toml",
"hyperdb-api/Cargo.toml",
{
"type": "json",
"path": "hyperdb-mcp/npm/package.json",
Expand Down
1 change: 1 addition & 0 deletions version.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0.1.2
Loading