Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 0 additions & 28 deletions .changeset/olive-donkeys-smile.md

This file was deleted.

28 changes: 28 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,33 @@
# @smooai/audit

## 0.4.0

### Minor Changes

- ccc4f4e: Give every language the same emit posture: retry with backoff, and never fail
silently.
- **Retry on transient failure in Python, Rust, Go, and .NET** — previously
TypeScript only. Transport errors and HTTP 5xx are retried with exponential
backoff; a 4xx is surfaced immediately. The retried POST carries the same
canonical bytes, since ingest dedupes on the event hash. The defaults now live
in `spec/parity-corpus.json`'s `retryPolicy` (3 attempts, 100 ms base,
doubling) and every language's tests assert their client against it, rather
than five copies of the same magic numbers.
- **BREAKING (Python): `swallow_errors` now defaults to `False`.** It defaulted
to `True`, so a misconfigured endpoint or an expired token dropped every audit
event and reported success — fail-open on the exact path that carries the
record. Pass `swallow_errors=True` to keep the old behaviour; `on_error` now
fires whether or not the error is swallowed. (The old docstring also claimed
this matched the TypeScript client. It never did — TS has always thrown.)
- **New: `AuditClient.emit_async` in Python**, running the blocking `urllib`
POST off the event loop via `asyncio.to_thread`.
- Rust's `AuditClientOptions` gains `max_retries` / `retry_backoff_ms` (both
`Option`, `None` = the shared default) and an `AuditClientOptions::new`
constructor. Go's `AuditClient` gains `MaxRetries` / `RetryBackoff` (zero =
default). .NET's `AuditClientOptions` gains `MaxRetries` / `RetryBackoffMs`.
- Go's `Emit` stays synchronous on purpose — `go client.Emit(ctx, event)` is how
Go does async — and now honours context cancellation between retries too.

## 0.3.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion dotnet/src/SmooAI.Audit/SmooAI.Audit.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

<PropertyGroup>
<PackageId>SmooAI.Audit</PackageId>
<Version>0.3.0</Version>
<Version>0.4.0</Version>
<Authors>SmooAI</Authors>
<Company>SmooAI</Company>
<Description>Polyglot client SDK for tamper-evident, SQL-queryable audit logging. .NET port of @smooai/audit — a canonical event schema, a per-org-per-day SHA-256 hash chain, and an emit client, verified byte-for-byte against a shared parity corpus.</Description>
Expand Down
2 changes: 1 addition & 1 deletion go/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@
package audit

// Version is the current version of the smooai-audit Go package.
const Version = "0.3.0"
const Version = "0.4.0"
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@smooai/audit",
"version": "0.3.0",
"version": "0.4.0",
"description": "A polyglot client SDK for tamper-evident, SQL-queryable audit logging: a canonical event schema, a per-org-per-day SHA-256 hash chain, and an emit client — with byte-for-byte parity across TypeScript, Python, Rust, Go, and .NET.",
"homepage": "https://github.com/SmooAI/audit#readme",
"bugs": {
Expand Down
2 changes: 1 addition & 1 deletion python/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "smooai-audit"
version = "0.3.0"
version = "0.4.0"
description = "Polyglot client SDK for tamper-evident, SQL-queryable audit logging — Python port of @smooai/audit."
readme = "README.md"
authors = [{ name = "SmooAI", email = "brent@smooai.com" }]
Expand Down
2 changes: 1 addition & 1 deletion python/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion rust/audit/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion rust/audit/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "smooai-audit"
version = "0.3.0"
version = "0.4.0"
edition = "2021"
description = "Polyglot client SDK for tamper-evident, SQL-queryable audit logging — Rust port of @smooai/audit."
license = "MIT"
Expand Down
Loading