2 Commits

Author SHA1 Message Date
0c39e157c2 v1.2.1
Some checks failed
Default (tags) / security (push) Successful in 34s
Default (tags) / test (push) Failing after 3m58s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2026-02-12 21:25:11 +00:00
b7e3e30ce5 fix(rust-binary-locator): auto-fix missing execute permission for located Rust binaries 2026-02-12 21:25:11 +00:00
4 changed files with 19 additions and 3 deletions

View File

@@ -1,5 +1,12 @@
# Changelog # Changelog
## 2026-02-12 - 1.2.1 - fix(rust-binary-locator)
auto-fix missing execute permission for located Rust binaries
- If a located binary exists but lacks the execute bit, attempt to chmod it to 0o755 and treat it as executable.
- Logs an info message when the auto-fix is applied: 'Auto-fixed missing execute permission on: <filePath>'.
- Addresses cases where npm/pnpm installs remove the execute permission from bundled binaries.
## 2026-02-11 - 1.2.0 - feat(rustbridge) ## 2026-02-11 - 1.2.0 - feat(rustbridge)
add streaming responses and robust large-payload/backpressure handling to RustBridge add streaming responses and robust large-payload/backpressure handling to RustBridge

View File

@@ -1,6 +1,6 @@
{ {
"name": "@push.rocks/smartrust", "name": "@push.rocks/smartrust",
"version": "1.2.0", "version": "1.2.1",
"private": false, "private": false,
"description": "a bridge between JS engines and rust", "description": "a bridge between JS engines and rust",
"main": "dist_ts/index.js", "main": "dist_ts/index.js",

View File

@@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@push.rocks/smartrust', name: '@push.rocks/smartrust',
version: '1.2.0', version: '1.2.1',
description: 'a bridge between JS engines and rust' description: 'a bridge between JS engines and rust'
} }

View File

@@ -124,7 +124,16 @@ export class RustBinaryLocator {
await plugins.fs.promises.access(filePath, plugins.fs.constants.X_OK); await plugins.fs.promises.access(filePath, plugins.fs.constants.X_OK);
return true; return true;
} catch { } catch {
return false; // File may exist but lack execute bit (common after npm/pnpm install).
// Try to make it executable.
try {
await plugins.fs.promises.access(filePath, plugins.fs.constants.F_OK);
await plugins.fs.promises.chmod(filePath, 0o755);
this.logger.log('info', `Auto-fixed missing execute permission on: ${filePath}`);
return true;
} catch {
return false;
}
} }
} }