Changelog
[Unreleased]
Section titled “[Unreleased]”- Demo video — 25s silent promo embedded on the landing page (
/#demo): real example output, real report screenshots, install command. Composition committed underwebsite/video/. - Live Dashboard guide — routes, configuration, CORS, and reconnection replay for the
live/sub-package. - README trust sections — “Who is this for?” and “When NOT to use this”.
GOEXPERIMENT=jsonv2documented for consumers — downstream builds fail without the flag; the error text and fix are now in the Installation guide.- Docs retrofit —
lastUpdated+ “Edit this page” on every page, curated “Where to go next” sections, OG image, sibling libraries in Related Tools.
- Changelog page was two releases stale (stopped at v0.8.0); now includes v0.9.0 and v0.10.0.
- API reference: added
RunID,SetOnEvent,Enable,Write*String,StreamEvents,MultiWriter; Config fields completed; sample schema version corrected to0.3.0. - Contributing page coverage gate corrected to 94% (was 95%).
- Landing demo terminal now matches real example output.
[0.10.0] — 2026-08-14
Section titled “[0.10.0] — 2026-08-14”A minor release for integrations that must create the plugin before they know their runtime configuration. Non-breaking.
Plugin.SetOnEvent(fn)— sets or replaces theOnEventcallback afterNew(). Race-safe with recording goroutines; replaces (does not chain) anyConfig.OnEventcallback — compose withMultiWriterbeforehand if several sinks must all keep receiving events.Plugin.Enable()— turns audit logging on after construction, regardless ofConfig.EnabledorDO_AUDITLOG_ENABLED. Idempotent.
Changed
Section titled “Changed”- Dependency upgrades:
go-ssev0.5.0,go-atomic-writev0.5.0.
[0.9.0] — 2026-08-12
Section titled “[0.9.0] — 2026-08-12”A minor release introducing RunID for cross-system event correlation, MultiWriter for event fan-out, StreamEvents for callback-based NDJSON replay, SSE reconnection replay with a ring buffer, Write*String convenience methods, time-based flush for NDJSONStreamer, and full keyboard navigation across both dashboards. The health/ sub-package was extracted to its own project, go-health.
Breaking: NewRecorder and NewReport signatures gained a RunID parameter. Report schema version bumped from 0.2.0 to 0.3.0 (old reports are auto-upgraded via MigrateReport).
RunIDbranded type — 128-bit hex correlation ID, auto-generated viacrypto/randand stamped on everyEventand theReport. Override viaConfig.RunID.MultiWriter— event fan-out to multipleOnEventcallbacks simultaneously (streaming + live dashboard + custom handlers from a single recorder). Thread-safe, preserves callback order.StreamEvents— callback-based NDJSON reader for replaying event files without full materialization.WithFlushInterval— time-based flush option onNDJSONStreamerfor bounded-latency flushing.Write*Stringmethods —WriteMermaidString,WritePlantUMLString,WriteDOTString,WriteD2String,WriteHTMLString,WriteTreeString,WriteHTMLTreeString,WriteTableStringreturn output as astring— noio.Writerneeded.- SSE ring-buffer replay (
live/) — reconnecting clients with aLast-Event-IDheader receive missed events via the configurableReplayBufferSize. - Full keyboard navigation in both dashboards — skip link, ARIA tablist,
?shortcuts dialog with focus trap,/focus search, sortable column headers witharia-sort. - Timing deltas in
DiffResult—TotalBuildDurationMsDeltaandTotalShutdownDurationMsDelta. - Exported
testhelpers/— write integration tests against the audit-log types from downstream modules. - Goreleaser + RELEASE.md — release automation for the
auditlogCLI binary (linux/darwin amd64/arm64).
[0.8.0] — 2026-07-26
Section titled “[0.8.0] — 2026-07-26”A minor release: ALPHA→BETA status promotion, exported sentinel errors, and
dependency upgrades (go-atomic-write v0.4.0, go-error-family v0.10.0,
go-output v0.32.0, go-sse v0.2.1). Go 1.26.5 is now the required minimum.
Non-breaking.
Changed
Section titled “Changed”- Project status: ALPHA → BETA. The
README.mdandSTABILITY.mdpre-1.0 notices have been updated accordingly. - Exported sentinel errors — 11 previously-unexported sentinels (e.g.
errContainerIDPathSep→ErrContainerIDPathSep) are now exported so consumers can match them witherrors.Is. - Adopted the new
go-atomic-writeAPI —WriteFunc(path, fn, Fingerprint{})migrated to the plainWriteFunc(path, fn)variant. - Go 1.26.5 required minimum across
go.mod, the Nix devShell, CI, and docs.
DiffResult.HasChanges()— polarity reconciliation with thego-workflow-auditlogtwin.
[0.7.1] — 2026-07-25
Section titled “[0.7.1] — 2026-07-25”A patch release: Go version regression. Non-breaking.
Changed
Section titled “Changed”- Go 1.26.5 → 1.26.4 in
go.mod, aligning with the documented Nix devShell pin and docs. (Re-bumped to 1.26.5 in v0.8.0 — see above.)
[0.7.0] — 2026-07-25
Section titled “[0.7.0] — 2026-07-25”A feature release: real-time SSE live dashboard, cross-project feature ports (error classification, atomic writes, NDJSON streaming, diagram direction, table column selection), typed identifiers, ServiceInfo domain split, and go-output v0.31.1. Includes breaking changes for typed identifiers and the ServiceInfo split.
- Real-time live dashboard (
live/sub-package): SSE streaming HTTP server with an interactive warm-amber HTML dashboard. Six endpoints with configurable route prefix. 35 tests. - Cross-project feature ports from
go-workflow-auditlog:go-error-familyclassification,go-atomic-writecrash-safe writes, NDJSON streaming, diagram direction option, table column selection. - Typed identifiers + ServiceInfo domain split (
ContainerID/ScopeID/ServiceNamenamed string types;ServiceInfosplit intoServiceIdentity/ServiceLifecycle/ServiceHealth/ServiceGraphembedded structs). Breaking for composite literals. - GitHub Actions SHA pinning in
ci.yml.
[0.6.0] — 2026-07-22
Section titled “[0.6.0] — 2026-07-22”A feature release: public documentation website, Nix flake modernization, and comprehensive docs-accuracy audit. Non-breaking.
- Public documentation website: full Astro v7 + Starlight + Tailwind v4 site deployed at
do-auditlog.lars.softwarewith 11 docs pages, landing page, Firebase hosting, and CI deploy workflow. - Newsletter subscription component on the project website.
Changed
Section titled “Changed”- Nix flake modernization: migrated from
flake-utils/eachDefaultSystemtoflake-partswithtreefmt-nixfor standardized formatting checks. - Nix build check: added
buildoutput as a check in the treefmt configuration. - Dependency updates:
golang.org/x/syncv0.21.0 to v0.22.0,golang.org/x/sysv0.46.0 to v0.47.0,golang.org/x/termv0.44.0 to v0.45.0, nixpkgs bumped to latest. - TODO_LIST.md cleanup: all 127 completed items removed — they are comprehensively documented in this CHANGELOG. The file now contains only the 2 genuinely deferred items and 5 explicitly rejected proposals.
- Docs-accuracy audit: corrected linter count (108 to 109),
GraphStyletoNodeStyle(renamed in go-output v0.30.0), Go version (1.26.3 to 1.26.4 ingo.mod), coverage gate threshold (95% to 94% in 4 locations to match actual CI config),MigrateReportdescription,RenderTableDatatoRenderTable, stale test/parallelism counts, release versioning pattern (v0.0.xtov0.x.y).
- BuildFlow
go-auto-upgraderevert: reverted a catastrophic automated migration toencoding/json/v2+encoding/json/jsontext(build-constraint-excluded in Go 1.26.4) that left the project uncompilable. Documented the incident and theencoding/json/v2exclusion policy inAGENTS.md. - godoclint false positive:
godoclintreported “package has more than one godoc” because it counted the// templ: version:header in generatedhtml_templ.goas a second package doc. Added a text-based exclusion rule in.golangci.yml. - Stale HTML golden file:
testdata/golden/report.htmlwas from a pre-formatting-normalization commit, causingTestReport_WriteHTML_GoldenFileto fail. Regenerated viaUPDATE_GOLDEN=1. - govulncheck CI: replaced
golang/govulncheck-action@v1with directgo run golang.org/x/vuln/cmd/govulncheck@latestto avoid action version drift.
[0.5.0] — 2026-07-07
Section titled “[0.5.0] — 2026-07-07”A patch release: go-output hotfix bump. Non-breaking.
Changed
Section titled “Changed”- go-output v0.30.0 to v0.30.1: picked up upstream patch fixes across all go-output modules.
[0.4.0] — 2026-07-06
Section titled “[0.4.0] — 2026-07-06”A maintenance release: go-output v0.30.0 API adoption. Non-breaking.
Changed
Section titled “Changed”- go-output v0.23.x to v0.30.0: adopted the go-output v0.30.0 API across diagram and table rendering code.
d2.NewD2Diagram()tod2.NewDiagram().output.GraphStyletooutput.NodeStyle(diagram theming).output.TableDatatooutput.Table,output.RenderTableData()tooutput.RenderTable().
[0.3.1] — 2026-07-02
Section titled “[0.3.1] — 2026-07-02”A maintenance release: daghtml SDK adoption, hook refactoring, and dependency upgrades. Non-breaking.
Changed
Section titled “Changed”- daghtml SDK adoption: replaced 306 lines of inline Sugiyama DAG JavaScript in
html.templwith thego-output/daghtmlSDK. - Hook refactoring: centralized per-hook preamble logic into
hookContexthelpers inhooks.go. - CSS token extraction: extracted inline CSS color values into named constants for maintainability.
- Test infrastructure: centralized test fixtures and extracted shared helpers into
helpers_test.go. - Go 1.26.4: bumped Go version and updated tooling dependencies.
[0.3.0] — 2026-06-21
Section titled “[0.3.0] — 2026-06-21”A feature release: tree and table export formats, plus CLI coverage. Non-breaking.
- Tree export: dependency DAG rendered as ASCII tree or HTML nested-list tree.
- Table export: service summary table in 16+ formats (table, json, csv, tsv, markdown, xml, d2, yaml, html, tree, mermaid, dot, jsonl, asciidoc, toml, plantuml).
- CLI
convertsubcommand extensions:tree,htmltree, andtableoutput formats.
[0.2.0] — 2026-06-21
Section titled “[0.2.0] — 2026-06-21”A feature release: D2 diagram export, go-output adoption, and Plugin API parity. Non-breaking.
- D2 diagram export via
go-output/d2. - Plugin-level diagram wrappers: all 9 export formats now have both Write and Export methods.
Changed
Section titled “Changed”- Diagram rendering adopted
go-output: replaced the hand-rolleddiagramFormatterinterface with validated go-output renderers.
[0.1.0] — 2026-06-19
Section titled “[0.1.0] — 2026-06-19”A milestone release: CLI tool, replay engine, NDJSON import/export, JSON Schema, CSV/TSV/DOT export.
- Replay engine (
ReplayEvents): reconstructs a Report from a flat event stream. - NDJSON reader (
ReadEvents): line-delimited JSON events with 1 MB max-line guard. - Loader API (
LoadReport): auto-detects JSON vs NDJSON. - CSV/TSV export: service data as delimited values.
- DOT diagram export: Graphviz digraph.
- JSON Schema: Draft 2020-12 schema generated from Go types.
- CLI tool (
cmd/auditlog): info, convert, diff, validate, schema subcommands. - NewReport constructor: builds a validated Report from core data.
- Real-time event streaming via
Config.OnEventcallback.
Breaking
Section titled “Breaking”- Removed
LoadReportFromJSON(useMigrateReport). - Removed
LoadReportFromNDJSON(useLoadReportFromReaderwithFormatNDJSON).
[0.0.4] — 2026-06-17
Section titled “[0.0.4] — 2026-06-17”- MigrateReport scope counting: migration now reuses
countScopeNodes.
[0.0.3] — 2026-06-17
Section titled “[0.0.3] — 2026-06-17”- Filtered reports: functional options to slice by name, type, scope, event type, time range.
- PlantUML export: component diagram format.
[0.0.2] — 2026-06-16
Section titled “[0.0.2] — 2026-06-16”- Mermaid export: flowchart format for GitHub/GitLab/Notion.
- Health check recording:
RecordHealthCheckwrapper. - Config.OnEvent callback.
[0.0.1] — 2026-06-15
Section titled “[0.0.1] — 2026-06-15”- Initial release.
- Plugin with hooks for registration, invocation, shutdown.
- JSON and NDJSON export.
- HTML visualization with warm amber dark theme.
- Dependency graph inference via invocation stack.
- Scope tree tracking.
- Service type detection (lazy, eager, transient, alias).