Releases: SmooAI/logger
v4.1.11
Patch Changes
- 71c47e7: SMOODEV-966: Add
RotatingFileOutputto the .NET port — size-based rollover, gzip-compressed archives, configurable retention (MaxArchivedFiles), and a configurable filename pattern. Wired intoSmooLoggerviaSmooLoggerOptions.Rotation, mirroring the TSRotationOptionsand Rustrotation.rssurfaces.
v4.1.10
Patch Changes
- 627bda0: Migrate build tooling from tsup to tsdown — faster, oxc-based, drop-in replacement. The
esbuild-plugin-aliasshim used to swaprotating-file-streamfor a no-op stub in the browser build is replaced with@rollup/plugin-alias(rolldown-compatible).src/decycle.cjs(a side-effect CJS file that patches globalJSON) is marked external so rolldown leaves it alone. Output extensions shift from.js/.mjs/.d.tsto.cjs/.mjs/.d.cts/.d.mts(tsdown defaults); theexportsmap + the CLI bin path are updated to match. No public API change.
v4.1.9
Patch Changes
- 60745c7: SMOODEV-966: Add
RotatingFileOutputto the .NET port — size-based rollover, gzip-compressed archives, configurable retention (MaxArchivedFiles), and a configurable filename pattern. Wired intoSmooLoggerviaSmooLoggerOptions.Rotation, mirroring the TSRotationOptionsand Rustrotation.rssurfaces.
v4.1.8
Patch Changes
-
393b229: SMOODEV-942 follow-up: Fix Rust test races. The redaction + AWS context PRs (SMOODEV-942 / SMOODEV-943) added new tests in
logger.rs+aws.rsthat each had their own per-moduleTEST_LOCK/ENV_LOCK. cargo runs tests across modules in parallel, so the three module test groups raced on the globalCONTEXT→set_namespacegot wiped between writes and reads, and panicking tests poisoned the local lock and cascaded.Hoists a single
pub(crate) static TEST_GLOBAL_LOCKinlib.rs(#[cfg(test)]) and switches every test that touches the global context — incontext.rs,logger.rs,aws.rs— to acquire that one lock withunwrap_or_else(|e| e.into_inner())so a panic in one test no longer blocks the others. All 15 lib tests now pass under default parallel execution.
v4.1.4
Patch Changes
- d8f0487: Fix
ReferenceError: Cannot access '__filename' before initialization(TDZ) whenAwsServerLoggeris loaded under tsx CJS interop. The old code destructuredimport.meta.urlinto locals named__dirname/__filename— when bundlers compile this to CJS they rewriteimport.meta.urlto a shim that reads the module-scope__filename, and a same-namedconston the LHS creates a TDZ for that reference. Use a differently-named holder (esmPaths) so the compiled CJS doesn't self-reference a not-yet-initialized binding. This bit any tsx-run script that transitively imported@smooai/fetch→@smooai/logger(SMOODEV-908 inspect-runs, SMOODEV-918 ghl-import).
v4.1.3
Patch Changes
- 3aeac72: SMOODEV-666: Multi-target the SmooAI.Logger NuGet package to
net8.0;net9.0;net10.0so consumers on every current .NET LTS + STS release get a native framework match in thelib/folder. Microsoft.Extensions.Logging.Abstractions 8.0.2 resolves cleanly on all three — no per-TFM conditionals needed. - 1fffdde: SMOODEV-667: Drop invalid
loggingcrates.io category slug that was aborting the release pipeline before it could reach the NuGet publish step. crates.io only accepts categories from its fixed list (development-tools::debuggingstays). This unblocksSmooAI.LoggerNuGet publishes for the first time since the .NET port landed — NuGet was stuck on the 0.1.0 placeholder while npm had advanced to 4.1.2.
v4.1.2
Patch Changes
- 13a5834: SMOODEV-664: Rewrite the .NET (NuGet) README to value-frame the package — lead with correlation-IDs-across-services, typed user/request/response context, and caller-location-on-every-line. Drop the implementation-detail lead, add a quick-start showing a real request trace, and link cross-language siblings. Republishes SmooAI.Logger with the new README.
v4.1.1
v4.1.0
Minor Changes
-
94daf9b: Add top-level
browserexport condition + bare./browserentry@smooai/loggeralready shipped a browser-safe build under./browser(exposingBrowserLogger, a browser-nativeLogger, and a fullindex), but the top-level.entry had nobrowsercondition. Browser bundlers therefore resolvedimport { Logger } from '@smooai/logger'to the Node entry, pullingrotating-file-stream,node:fs, and related Node-only dependencies into the bundle.Adding the
browsercondition on.means consumers can now do:import { Logger } from "@smooai/logger";
…and the bundler automatically picks the browser-safe dist when building for a browser target. No aliasing or explicit
/browsersubpath import required.Also added a bare
./browserentry (in addition to the existing./browser/*subpath pattern) soimport X from '@smooai/logger/browser'resolves todist/browser/index.*without needing the explicit/indexsuffix.
Patch Changes
-
d2af83b: Drop deprecated
baseUrlfrom tsconfigThe previous attempt used
ignoreDeprecations: "5.0"which works locally but CI expects"6.0"(depends on exact patch version of TypeScript). Nothing in the codebase relies on baseUrl (nopaths, no imports start with./src/...from a module root), so the cleaner fix is to just remove it. This unblocks the Release workflow which has been red since TypeScript began flagging the deprecation. -
c192d42: Fix Rust clippy
useless_conversionlint (Rust 1.95)Rust 1.95's clippy flags
args.extend(sub.into_iter())as useless —.extend()already acceptsIntoIterator. Remove the.into_iter()call so the Release workflow's lint step passes on the pinned-stable toolchain. -
cc30c41: Silence TS5101 deprecation warning for
baseUrlin tsconfigTypeScript 5.0+ flags the
baseUrlcompiler option as deprecated (to be removed in TS 7.0). The repo'stsconfig.jsonstill usesbaseUrl: "./"; recent Release workflow runs failed during typecheck with:tsconfig.json: error TS5101: Option 'baseUrl' is deprecatedAdds
"ignoreDeprecations": "5.0"to quiet the warning until we do a wider tsconfig modernisation. No behavioural change.