NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev
Flutter add-on for ailog: automatic error hooks, navigation breadcrumbs, and a bridge so native Kotlin/Swift code logs into the same JSONL file.
Last release 2 months ago
27 Jul 2026
Too new to tell
only 1 dated releases
Nearly every release is documented
notes for 1 of 1 stable releases
Nothing withdrawn
no release was ever pulled
2 months old
1 releases · first in 2026
One column per month.
A `flutter build` release now ships with logging off. This follows ailog 0.4.0, where Logger.create's enabled defaults to !isReleaseBuild: debug and p
flutter build release now ships with logging off. This follows
ailog 0.4.0, where Logger.create's enabled defaults to
!isReleaseBuild: debug and profile are unaffected, and a release build
writes nothing to a user's device unless you pass enabled: true (or a
runtime flag, for a diagnostics toggle in settings). AilogFlutter.install
and runAppGuarded are unchanged — they route errors into whatever logger
you hand them, and a disabled one accepts every call and produces nothing.
If you ship a way to retrieve the file, opt back in; the README's
"Debug / profile / release" section covers both directions.ailog's new
installDebugSync + ailog_sync. It is now the first option under
"Getting the log off a real device", because it is the only one with no
manual step: flutter run already opens the VM Service, so a command on
your machine can pull the log continuously while you use the app. Release
builds are unaffected — they serve no VM Service at all.AilogLifecycleObserver — foreground/background/termination, with both
ends of each transition (paused → resumed). A handful of events over a
session, and repeatedly decisive: "crashes when you come back to the app"
is invisible in a log that only records what the code did. Defaults to
trace, so it stays out of a production file while remaining available as
a breadcrumb.ailog's new
logger.interaction(). Deliberately no automatic "log every tap":
measured against a real widget tree, a root Listener plus a hit test
recovers a useful label only for text-labelled buttons — an IconButton
yields "a button", a TextField nothing — while costing a hit test per
pointer-down and carrying a privacy problem regex redaction cannot solve
(semantic labels contain user data: a contacts row is labelled with a
person's name). The README states this, with the numbers and a recipe for
anyone who wants it anyway.runAppGuarded gains capturePrint / forwardPrintsToConsole: plain
print() calls (yours or a dependency's) are routed into the structured
log via ailog's capturePrints.ailog ^0.4.0 as a hosted dependency, making the package
publishable; local development uses pubspec_overrides.yaml.The digest over-counted errors, corrupting its own ranking. Idiomatic
usage logs one failure more than once as it propagates — span() records
the failure passing through it, then the caller catches the same exception
at a boundary and logs it again. Both are correct; together they doubled
the reported frequency, and could rank a deep-stack error above a
shallower but genuinely more widespread one. Verified on a realistic
session: two failed requests were reported as ×4.
ErrorGroup now tracks incidents (distinct traces) alongside
occurrences (raw log events), ranks by the former, and reports both when
they diverge. Untraced events count individually, since they can't be
attributed to a request.
ErrorGroup.count renamed to ErrorGroup.occurrences; incidents added.
The digest's JSON output gains incidents and renames count to
occurrences.Your coding agent can read these notes before it upgrades. Set up the MCP server →