6 Commits

Author SHA1 Message Date
438242df07 v5.2.5
Some checks failed
CI / Type Check & Lint (push) Failing after 4s
CI / Build Test (Current Platform) (push) Failing after 4s
CI / Build All Platforms (push) Failing after 4s
Publish to npm / npm-publish (push) Failing after 6s
Release / build-and-release (push) Failing after 5s
2026-02-26 17:06:40 +00:00
1bb48b2530 fix(package): remove CLI bin wrapper and exclude bin/ from published files 2026-02-26 17:06:40 +00:00
3e76662933 v5.2.4
Some checks failed
CI / Type Check & Lint (push) Failing after 4s
CI / Build Test (Current Platform) (push) Failing after 4s
CI / Build All Platforms (push) Failing after 4s
Publish to npm / npm-publish (push) Failing after 5s
Release / build-and-release (push) Failing after 4s
2026-02-26 17:02:19 +00:00
efb49b67c6 fix(repo): no changes detected — no version bump required 2026-02-26 17:02:19 +00:00
bbe56247bd v5.2.3
Some checks failed
CI / Type Check & Lint (push) Failing after 7s
CI / Build Test (Current Platform) (push) Failing after 6s
CI / Build All Platforms (push) Failing after 5s
Publish to npm / npm-publish (push) Failing after 7s
Release / build-and-release (push) Failing after 6s
2026-02-26 16:58:06 +00:00
71a0ec3202 fix(delivery): prevent throttle reset timer from firing after stop and avoid scheduling duplicate timers 2026-02-26 16:58:06 +00:00
4 changed files with 35 additions and 8 deletions

View File

@@ -1,5 +1,25 @@
# Changelog
## 2026-02-26 - 5.2.5 - fix(package)
remove CLI bin wrapper and exclude bin/ from published files
- Removed "bin" entry from package.json (mailer wrapper)
- Removed "bin/" from files array to prevent including CLI wrapper in published package
## 2026-02-26 - 5.2.4 - fix(repo)
no changes detected — no version bump required
- git diff contains no changes
- package.json version is 5.2.3
- no files modified — no release required
## 2026-02-26 - 5.2.3 - fix(delivery)
prevent throttle reset timer from firing after stop and avoid scheduling duplicate timers
- add throttleResetTimer property to track scheduled throttle-reset timeout
- clear throttleResetTimer when stopping to prevent it firing after shutdown
- clear existing throttleResetTimer before scheduling a new one and null it when fired to avoid duplicate timers and potential leaks
## 2026-02-12 - 5.2.2 - fix(deps)
bump dependencies: @push.rocks/smartrust to ^1.2.1, lru-cache to ^11.2.6

View File

@@ -1,6 +1,6 @@
{
"name": "@push.rocks/smartmta",
"version": "5.2.2",
"version": "5.2.5",
"description": "A high-performance, enterprise-grade Mail Transfer Agent (MTA) built from scratch in TypeScript with Rust acceleration.",
"keywords": [
"mta",
@@ -30,9 +30,6 @@
"exports": {
".": "./dist_ts/index.js"
},
"bin": {
"mailer": "./bin/mailer-wrapper.js"
},
"scripts": {
"test": "tstest test/ --logfile --verbose --timeout 60",
"build": "tsbuild tsfolders && tsrust",
@@ -61,7 +58,6 @@
"files": [
"ts/**/*",
"dist_ts/**/*",
"bin/",
"scripts/install-binary.js",
"dist_rust/**/*",
"readme.md",

View File

@@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@push.rocks/smartmta',
version: '5.2.2',
version: '5.2.5',
description: 'A high-performance, enterprise-grade Mail Transfer Agent (MTA) built from scratch in TypeScript with Rust acceleration.'
}

View File

@@ -108,6 +108,7 @@ export class MultiModeDeliverySystem extends EventEmitter {
private activeDeliveries: Set<string> = new Set();
private running: boolean = false;
private throttled: boolean = false;
private throttleResetTimer: ReturnType<typeof setTimeout> | null = null;
private rateLimitLastCheck: number = Date.now();
private rateLimitCounter: number = 0;
private emailServer?: UnifiedEmailServer;
@@ -211,7 +212,13 @@ export class MultiModeDeliverySystem extends EventEmitter {
}
this.running = false;
// Clear throttle reset timer to prevent it firing after stop
if (this.throttleResetTimer) {
clearTimeout(this.throttleResetTimer);
this.throttleResetTimer = null;
}
// Wait for active deliveries to complete
if (this.activeDeliveries.size > 0) {
logger.log('info', `Waiting for ${this.activeDeliveries.size} active deliveries to complete`);
@@ -776,7 +783,11 @@ export class MultiModeDeliverySystem extends EventEmitter {
// Schedule throttle reset
const resetDelay = 60000 - elapsed;
setTimeout(() => {
if (this.throttleResetTimer) {
clearTimeout(this.throttleResetTimer);
}
this.throttleResetTimer = setTimeout(() => {
this.throttleResetTimer = null;
this.throttled = false;
this.rateLimitLastCheck = Date.now();
this.rateLimitCounter = 0;