DevLogBus

Compatibility Policy

This policy describes the intended v1 compatibility surface for public users. DevLogBus uses semantic versioning for public releases.

Versioning

Record Schema

The v1 record fields are:

id
time
level
source
message
attrs

Compatibility promises:

Levels

The canonical public levels are:

DEBUG
INFO
WARN
ERROR

Aliases such as warn, warning, err, and dbg may continue to normalize to canonical levels.

HTTP API

The following endpoints are part of the v1 compatibility surface:

GET    /api/health
GET    /api/about
GET    /api/records
POST   /api/records
DELETE /api/records/expunge
GET    /api/stream

Compatibility promises:

Socket Wire Protocol

The newline-delimited JSON envelope protocol is public for SDK and advanced CLI use:

log
subscribe
replay_complete
expunge
expunge_result
error

Envelope field names should remain stable through v1.x.

Go SDK

Packages intended for public use:

github.com/dan-sherwin/devlogbus/pkg/protocol
github.com/dan-sherwin/devlogbus/pkg/client
github.com/dan-sherwin/devlogbus/pkg/sloghandler
github.com/dan-sherwin/devlogbus/pkg/runtime

Compatibility promises:

HTTP SDKs

The C, .NET/C#, Rust, Java/Kotlin, Node/TypeScript, and Python SDKs publish through the public HTTP API.

Compatibility promises:

C SDK

The C SDK is a small libcurl publisher for the public HTTP API.

Compatibility promises:

.NET/C# SDK

The .NET SDK is an HttpClient publisher for the public HTTP API.

Compatibility promises:

Rust SDK

The Rust SDK is a small dependency-free publisher for the public HTTP API.

Compatibility promises:

Java/Kotlin SDK

The Java/Kotlin SDK is a Java-first JVM publisher for the public HTTP API.

Compatibility promises:

CLI

The main public commands are:

devlogbus emit
devlogbus tail
devlogbus tui
devlogbus expunge
devlogbus endpoint
devlogbus version
devlogbus buildinfo

Compatibility promises:

Browser Tap

Browser Tap compatibility centers on record shape and source grouping:

Chrome permission names and review requirements may change outside DevLogBus control.

Deprecation

When a public v1 feature needs to change, prefer:

  1. Add the replacement.
  2. Document the old behavior as deprecated.
  3. Keep the deprecated behavior through at least one minor release.
  4. Remove it only in the next major release unless there is a security reason.