flighthouse 0.1.0
flighthouse: ^0.1.0 copied to clipboard
Flutter accessibility, performance, Lighthouse-style report, and CI gate. Merges attest, Lighthouse, axe, and integration_test results into one scored report with a baseline diff.
flighthouse #
One Lighthouse-style scored report for Flutter apps, covering accessibility, performance, responsiveness, and memory, that works as a CI gate.
Status: pre-release. The pipeline and CLI work with attest and Lighthouse reports; other sources are in progress. Progress is tracked in the phase epics.
What it does #
flighthouse does not audit anything itself. It ingests the outputs of tools you may already run:
- attest accessibility widget-test reports
- Lighthouse JSON reports
- axe-core results
integration_testTimelineSummaryframe timings- flutter_lighthouse output
It normalizes them to one schema, scores them with Lighthouse's log-normal curves, diffs against a committed
baseline, and writes report.json and a self-contained report.html. In CI it fails only on new findings or on
score drops past a threshold you set.
For Flutter web apps it can also build the app with semantics enabled, serve it, and run Lighthouse and axe against a list of routes. That part needs Node, Lighthouse, and Chrome. Everything else needs only a Dart SDK.
Install #
dart pub global activate flighthouse
Usage #
flighthouse collect # copy each source's raw outputs into <reportDir>/raw
flighthouse report # write report.json and report.html
flighthouse ci # report, then gate against the baseline
flighthouse baseline --update # accept the current findings and scores as the baseline
Exit codes: 0 passed, 1 the gate failed, 2 usage or config error, 3 unusable input or missing tool.
Today flighthouse reads attest and Lighthouse JSON reports. axe, TimelineSummary, and flutter_lighthouse
adapters are in progress.
Configuration lives in flighthouse.yaml. See example/.
Design #
Decisions are recorded as ADRs in docs/adr/.
License #
MIT. The scoring function is ported from Lighthouse (Apache-2.0); see NOTICE.