Files
2026-05-27 23:29:53 +01:00

1.9 KiB

Tasks: enterprise-logger

Status key: ✅ done | 🔄 in progress | ⬜ pending

Wave 1 — Scaffold

  • ⬜ 1.1 Create packages/universal/logger/ with package.json, tsconfig.lib.json, vite.config.ts, vitest.config.ts, biome.json
  • ⬜ 1.2 Create src/index.ts barrel (empty, filled incrementally)

Wave 2 — Foundation modules

  • ⬜ 2.1 src/errors/ — LoggerError + LOGGER_CODES
  • ⬜ 2.2 src/record/ — LogRecord type + Zod schemas
  • ⬜ 2.3 src/otel/ — getOtelTraceContext()
  • ⬜ 2.4 src/redaction/ — RedactionEngine + rules + property tests
  • ⬜ 2.5 src/sampling/ — HeadSampler, TailSampler, RuleSampler + property tests

Wave 3 — Sink layer

  • ⬜ 3.1 src/sink/sink — Sink interface + SinkOptions
  • ⬜ 3.2 src/sink/console-sink — ANSI dev output
  • ⬜ 3.3 src/sink/json-sink — NDJSON writer
  • ⬜ 3.4 src/sink/buffered-sink — bounded queue, drop/block, AbortSignal flush

Wave 4 — Logger core (refactored)

  • ⬜ 4.1 src/abstract/ — Logger interface + AbstractLogger with Sink[], redaction, sampling, OTel, clock injection
  • ⬜ 4.2 src/console/ — ConsoleLogger (wraps ConsoleSink)
  • ⬜ 4.3 src/event/ — EventLogger (emits via @suaveplan/events)
  • ⬜ 4.4 src/storage/ — StorageLogger (batched StorageInterface writes)

Wave 5 — High-level API

  • ⬜ 5.1 src/factory/ — createLogger() overloaded factory
  • ⬜ 5.2 src/error-bridge/ — installSuaveplanErrorInterceptor()
  • ⬜ 5.3 src/init/ — initLogger()

Wave 6 — Quality

  • ⬜ 6.1 Wire all exports in src/index.ts
  • ⬜ 6.2 Add src/__benchmarks__/logger.bench.ts (mitata)
  • ⬜ 6.3 Add tree-shake test
  • ⬜ 6.4 Run pre-publish gate: bunx turbo lint typecheck test:coverage --filter=@suaveplan/logger
  • ⬜ 6.5 Fix any issues found in gate
  • ⬜ 6.6 Update CLAUDE.md package listing + root README.md