0.12.2
Upgrade Notice
Re-run install-service after updating to apply the new launchd plist and remove the old newsyslog configuration:
copilot-bridge install-service # npm package
npm run install-service # from sourceWithout this, the old plist will continue redirecting stdout to a file that newsyslog rotates out from under the bridge, causing log loss.
Self-Managed Log Rotation
The bridge now handles its own log rotation instead of relying on macOS newsyslog/launchd. This fixes the long-standing issue where newsyslog would rotate the file out from under the bridge's stdout redirect, causing all subsequent logs to be lost.
- Logs are written synchronously via file descriptor for durability
- Configurable rotation size, max files, and compression via
config.json - Old rotated files are automatically compressed with gzip
install-serviceremoves leftover newsyslog configs automatically- Permissions set to
0600on log files
Configure in config.json:
{
"logging": {
"maxSize": "10MB",
"maxFiles": 5,
"compress": true
}
}Closes #168.
Dependency Updates
ws8.19.0 -> 8.20.0cronstrue3.13.0 -> 3.14.0vitest4.1.0 -> 4.1.1picomatch4.0.3 -> 4.0.4
Note: TypeScript 6.0.2 was skipped due to @mattermost/client peer dependency constraint (^4.3.0 || ^5.0.0).
Other
- Logger rotation tests now use deterministic awaits instead of sleeps (#172)