Skip to content

0.12.2

Choose a tag to compare

@ChrisRomp ChrisRomp released this 31 Mar 18:27
· 83 commits to main since this release
f12d91a

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 source

Without 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-service removes leftover newsyslog configs automatically
  • Permissions set to 0600 on log files

Configure in config.json:

{
  "logging": {
    "maxSize": "10MB",
    "maxFiles": 5,
    "compress": true
  }
}

Closes #168.

Dependency Updates

  • ws 8.19.0 -> 8.20.0
  • cronstrue 3.13.0 -> 3.14.0
  • vitest 4.1.0 -> 4.1.1
  • picomatch 4.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)