loghound 0.0.10
loghound: ^0.0.10 copied to clipboard
AI-friendly local log investigation harness for Dart and Flutter: collect structured app logs, store them as JSON Lines, and query the exact slice you need.
Changelog #
0.0.10 #
- Add HTTP investigation filters to
loghound http list:--path,--method,--status,--since,--until,--limit, and--contains. - Add
loghound http summaryfor endpoint-level counts, latest timestamps, statuses, average duration, and failure counts. - Add
loghound context --around-http <path-or-url-fragment>to build timeline context around a matching HTTP request. - Improve HTTP summaries and
doctorbody coverage by reporting whether request/response bodies were captured separately. - Improve subcommand help output with command-specific usage, options, and examples.
- Document the HTTP investigation workflow and body-capture guidance.
0.0.9 #
- Add
loghound versionto print the installed CLI version andloghound updateto rundart pub global activate loghound. - Fix
loghound runtiming out while waiting for--vmservice-out-filewhen the wrappedflutter runprocess is still alive. LogHound now keeps waiting for the VM Service URI file until Flutter exits. - Start paused isolate resume setup before Extension stream setup, and finish
initial isolate resume before disposing the VM Service if Extension stream
setup fails. This avoids leaving
--start-pausedFlutter apps stuck when collector initialization partially fails.
0.0.8 #
- Fix
loghound runhanging after the wrapped app exits while the VM Service extension stream is still awaiting events. Collection now races active stream reads against the wrapped process exit signal and stops cleanly. - Add a real Dart VM Service regression test that starts a
--pause-isolates-on-startapp, injects a transient startup connection failure, resumes both the main isolate and a worker isolate named like an asset UTF8 decoder, and verifies that a.loghoundsession record is written.
0.0.7 #
- Fix
loghound runabandoning VM Service collection after a transient startup connection failure. While the wrappedflutter runprocess is still active, LogHound now keeps retrying the VM Service connection so--start-pausedisolates can be resumed once the service accepts WebSocket clients. - Stop those retry attempts when the wrapped Flutter process exits, so
rundoes not hang if the VM Service never becomes reachable.
0.0.6 #
- Fix
loghound runleaving--start-pausedFlutter isolates paused when DDS acceptsreadyToResumebut keeps the isolate waiting for a user resume. LogHound now verifies the isolate state afterreadyToResumeand falls back toresumefor both startup and worker isolates that are still atPauseStart.
0.0.5 #
- Harden
loghound runisolate resume handling for--start-pausedFlutter runs. LogHound now resumes all paused app isolates visible at VM Service connection time, catches PauseStart events without a listener race, and avoids force-resuming through DDS whenreadyToResumeis available. - Keep VM Service extension event collection alive when debug stream setup or isolate inspection is slow, unavailable, or racing with app shutdown.
- Restore the VM Service event factory test seam when a connector is also supplied.
0.0.4 #
- Fix
loghound runleaving isolates spawned after startup paused whenflutter run --start-pausedis used internally. This prevents large Dio JSON responses from hanging when Dio decodes them in a worker isolate.
0.0.3 #
- Remove device-specific examples from the README, example docs, and product
overview. The default setup now shows
loghound runandloghound staywithout requiring users to think about a specific simulator or device name.
0.0.2 #
- Replace the local HTTP receiver capture path with hidden Dart VM Service extension events for debug/profile Flutter sessions.
- Add
loghound runto startflutter run, auto-detect FVM Flutter SDKs, collect VM Service events, and write routed JSONL records under.loghound/. - Add
loghound stayfor a background collector that can discover the active Flutter VM Service and reconnect across app restarts. - Remove the old
serve/receiver-oriented workflow and the relatedLOGHOUND_URL,loghound.env, and device binding setup. - Route records to
.loghound/<flavor>/<platform>/sessions/<session_id>.jsonl,.loghound/<flavor>/<platform>/latest.jsonl, and.loghound/catalog.jsonl. - Read legacy
loghound/roots when.loghound/does not exist, so existing sessions and settings remain discoverable during migration. - Make
query,tail,latest-error,context,actions,http,body, andstatsread routed.loghound/sessions by default;--filenow opts into a single JSONL file explicitly. - Keep CLI-side redaction for VM Service collection before records are persisted.
- Add
loghound run --flavorand--dart-define-from-filepassthrough for common Flutter launch setups. - Add built-in Dio support through
LogHoundDioInterceptor, with opt-in HTTP request/response body capture settings. loghound settingwith no subcommand now prints one structured JSON record per setting (key/label/description/type/value/default/command) instead of a single flat object; in an interactive terminal it opens a navigable list (↑↓ move, space toggles and saves, →/enter expands the description, q/Esc quits).- Add
language(en/ja) andcontext_format(markdown/jsonl) settings; the interactiveloghound settinglist edits enums by cycling with space, localizes to the language setting, and colorizes on a capable terminal.loghound contextusescontext_formatas its default when--formatis not given. NDJSON output stays English and uncolored. - Add
capture_http_request_bodyandcapture_http_response_bodysettings so agents can tell whether HTTP body logging is intentionally enabled. - Restore non-interactive
loghound setting <key> <value>writes and reject unknown setting keys with a non-zero exit. - Harden CLI failures for missing Flutter executables, VM Service connection errors, malformed settings files, malformed stdin bytes, and interactive setting write failures.
0.0.1 #
- Rename package and CLI to loghound.
- Add local HTTP log receiver.
- Add JSON Lines log storage.
- Add AI-friendly
query,tail, andlatest-errorCLI commands. - Add
contextCLI command for Markdown context around the latest warning/error. - Add
trace_id,request_id,session_id, anduser_idquery filters. - Add streaming reads for query and latest-error scans.
- Serialize concurrent JSONL appends to preserve valid line boundaries.
- Add OpenTelemetry-style severity support.
- Add fire-and-forget Dart HTTP client.
- Add default redaction for common secret keys and inline header values.
- Add redaction for common secret-looking value patterns.
- Bind the receiver to loopback by default and reject oversized request bodies.
- Document the planned Flutter/API/action observability direction.
- Add
loghound staywith app/flavor/platform/session routing. - Add
apps,sessions,actions,http,body, andstatsCLI commands. - Add routed directory storage and session catalog support.
- Add
LogHound.runbootstrap for debug app sessions. - Add semantic
LogHound.action,screen,error, andhttphelpers. - Show a mascot startup banner on
serve/stay(color on a TTY, honoringNO_COLOR). - Add SDK-side redaction and HTTP body truncation metadata.
- Add timeline summaries to
contextMarkdown output. - Add OSS release docs, GitHub Actions CI, security policy, contributing guide, and issue templates.
- Add public API dartdocs, enable
public_member_api_docs, add anexample/README.md, and update CI to run onmaster.