Skip to content

feat: configurable log levels for pulse and provision events#67

Merged
jbiskur merged 1 commit intomainfrom
feat/logger-integration
Apr 8, 2026
Merged

feat: configurable log levels for pulse and provision events#67
jbiskur merged 1 commit intomainfrom
feat/logger-integration

Conversation

@jbiskur
Copy link
Copy Markdown
Contributor

@jbiskur jbiskur commented Apr 8, 2026

Summary

Extends LogLevelConfig with four new optional fields and adds structured logging to pulse and provision events.

New config (LogLevelConfig):

Field Default What
pulseSuccess debug Log level for successful pulses
pulseFailure warn Log level for pulse emission failures
provisionSuccess info Log level for virtual pathway registration success
provisionFailure error Log level for virtual pathway registration failure

Provision logging:

  • Success: logger[provisionSuccess]("Virtual pathway registered", { pathwayName, pathwayId, status, flowTypes })
  • Failure (network): logger[provisionFailure]("Virtual pathway registration failed", { pathwayName, url, error, phase: "network" }) before throw
  • Failure (response): logger[provisionFailure]("Virtual pathway registration failed", { pathwayName, url, status, body, phase: "response" }) before throw

Pulse logging (via data-pump):

  • Log levels propagated through PathwayPumpOptions.pulse.successLogLevel / failureLogLevel to the data-pump PulseEmitter

Why: NoopLogger consumers (e.g. usable-chat) had zero visibility into provision/pulse failures. Now structured context is logged via the configured logger at configurable severity.

Requires

Test plan

  • deno check clean
  • deno lint + deno fmt clean
  • All 15 existing tests pass

🤖 Generated with Claude Code

New LogLevelConfig options on PathwaysBuilder:
- pulseSuccess (default: 'debug') — successful pulse emissions
- pulseFailure (default: 'warn') — pulse emission failures
- provisionSuccess (default: 'info') — virtual pathway registered
- provisionFailure (default: 'error') — virtual pathway registration failed

Structured context added to provision() logs:
- success: { pathwayName, pathwayId, status, flowTypes }
- failure: { pathwayName, url, status, body, phase } (now logged
  BEFORE the throw so NoopLogger consumers still get the crash message
  but structured loggers capture full context)

Log levels propagated through PathwayPumpOptions.pulse to the
data-pump PulseEmitter (requires @flowcore/data-pump with matching
pulse log level support).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jbiskur jbiskur merged commit 214752f into main Apr 8, 2026
1 check passed
@jbiskur jbiskur deleted the feat/logger-integration branch April 8, 2026 10:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant