Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 438242df07 | |||
| 1bb48b2530 | |||
| 3e76662933 | |||
| efb49b67c6 | |||
| bbe56247bd | |||
| 71a0ec3202 |
20
changelog.md
20
changelog.md
@@ -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
|
||||
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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.'
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user