## [0.9.2](https://git.mifi.dev/mifi/logger/compare/v0.9.1...v0.9.2) (2026-08-05) ### Bug Fixes * **ci:** authenticate semantic release pushes ([1c63e58](1c63e58809)) * **ci:** install CA certificates for release workflows ([d211d9f](d211d9f8bc)) * **ci:** install git for release workflows ([afd2ca1](afd2ca1978))
@mifi/logger
Intentional, namespaced logging for TypeScript browser and Node.js applications.
import { createLogger } from "@mifi/logger";
const logger = createLogger({ environment: "production" });
logger.child("WIDGET").debug("Rendered", () => ({ expensive: "only evaluated when shown" }));
Runtime policy
Development shows every level, staging shows warn and error, and production shows error only. Browser sessions can override the policy with sessionStorage.showLoggingFor:
debug
debug:WIDGET,API
Containers can use MIFI_LOG_LEVEL and MIFI_LOG_NAMESPACES. Explicit level options take precedence.
Sentry
The Sentry adapter has no SDK dependency. Provide the SDK that your application already uses. In a production browser, errors go to Sentry without also appearing in the console. In Node, they go to both Sentry and stderr.
import * as Sentry from "@sentry/nextjs";
import { createLogger } from "@mifi/logger";
import { createSentrySink } from "@mifi/logger/sentry";
const logger = createLogger({ environment: "production", sentry: createSentrySink(Sentry) });
Releases
Woodpecker verifies pull requests and main, reports CI to Mattermost, then automatically releases from Conventional Commits merged to main. It updates package.json and CHANGELOG.md, creates a vX.Y.Z tag, and publishes to the private @mifi registry.
Use fix: for a patch, feat: for a minor release, and ! or a BREAKING CHANGE: footer for a major release. Commits such as docs:, test:, and chore: do not release a package. Before enabling the automation, publish and tag the existing v0.9.1 once as its baseline.
The release workflow uses the existing global gitea_package_token, gitea_registry_username, gitea_release_token, mattermost_bot_access_token, mattermost_tests_channel_id, mattermost_pushes_channel_id, and mattermost_post_api_url secrets.
The repository includes a guarded, one-time manual bootstrap workflow for v0.9.1; remove it after that initial package version has been published.