refactor(logging): adopt pino logger across daemon, memory, ingest, sdk#52
Merged
Conversation
Replace ad-hoc console.log/error/warn calls with a centralized pino-based
logger (src/lib/logger.ts) that pretty-prints in development and emits
JSON in production. Every module gets a child logger keyed on its name
via createLogger("module-name"); bracket prefixes like "[cron-engine]"
are dropped since the module context now lives in the log record.
Errors are passed as { err } so pino's stdSerializers.err formats stack
traces correctly. Multi-arg console calls become structured fields. CLI
commands (src/cli/*) and Ink UI (src/ui/*) keep console.log because
their chalk-styled output is intentional terminal UX.
Also clears 11 pre-existing oxlint warnings:
- Drops dead variables/imports (diskPath, existingPaths, gwsServices,
clientSecretPath, MARKETPLACE_BASE, readdir, execAsync, label).
- Replaces the [...buffers.keys()] spread in flushAll() with a named
Array.from() snapshot (the copy is intentional: flush() mutates
buffers mid-loop) so the rule no longer fires.
- Swaps NUL-byte sentinels in slack-mrkdwn for U+E000 (Private Use
Area) so the no-control-regex rule is satisfied without weakening
the "won't collide with real text" guarantee.
pnpm typecheck, pnpm lint (0/0), pnpm test (269/269), pnpm build all
pass.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replace ad-hoc console.log/error/warn calls with a centralized pino-based logger (src/lib/logger.ts) that pretty-prints in development and emits JSON in production. Every module gets a child logger keyed on its name via createLogger("module-name"); bracket prefixes like "[cron-engine]" are dropped since the module context now lives in the log record.
Errors are passed as { err } so pino's stdSerializers.err formats stack traces correctly. Multi-arg console calls become structured fields. CLI commands (src/cli/) and Ink UI (src/ui/) keep console.log because their chalk-styled output is intentional terminal UX.
Also clears 11 pre-existing oxlint warnings:
pnpm typecheck, pnpm lint (0/0), pnpm test (269/269), pnpm build all pass.
Summary
Changes
Test plan
pnpm checkpasses (format, typecheck, lint)pnpm testpassesRelated issues