Skip to main content

algo_widget 0.2.0 copy "algo_widget: ^0.2.0" to clipboard
algo_widget: ^0.2.0 copied to clipboard

Algo Widget for Flutter — in-app bug reporting with screen recording, voice narration, a recorded interaction trace, and automatic crash capture.

algo_widget #

In-app bug reporting for Flutter apps. A user reports a problem from inside your app — text, screenshot, voice narration, screen recording, and a recorded interaction trace — and reports land in AlgoSoft OS as first-class issues.

Part of algo-widget-mobile. The wire contract is documented in PROTOCOL.md.

What makes a report worth having #

The interaction trace — ~50 KB against a video's ~50 MB, and the part a fix is actually derived from. Every event names the element it touched through an identity ladder, so "I tap here and this breaks" becomes a string an agent can grep for in your repository:

Semantics(
  identifier: 'submit_order',   // ← the best rung
  child: ElevatedButton(onPressed: submit, child: const Text('Save')),
)

If your widgets already carry Keys or Semantics(identifier:), you are most of the way there.

Privacy #

Not negotiable, and checked in CI rather than promised in prose:

  • the trace records that a field was typed into, never what — there is no code path that reads a value;
  • nothing is captured before Record is pressed. No always-on buffer, ever;
  • requests carry no headers, no bodies and no query strings;
  • cancel() discards everything on-device.

Usage #

final client = AlgoWidgetClient(
  host: 'https://os.example.com',
  portalKey: 'pk_…',
  platform: AlgoPlatform.android,
  appId: 'com.acme.orders',
  app: const AppFacts(appVersion: '3.2.1', buildNumber: '451'),
  attest: (challenge) => PlayIntegrity.token(nonce: challenge),
);

final recorder = TraceRecorder(
  platform: AlgoPlatform.android,
  framework: AlgoFramework.flutter,
  maxSeconds: client.portal?.recordingMaxSeconds ?? 300,
)..start('/orders/42');

recorder.tap(el: const TraceElement(testid: 'orders_refresh'));
recorder.navigate('/orders/42/edit');

final trace = await client.stageTrace(recorder.stop());
await client.report(
  description: 'Saving an order does nothing',
  route: '/orders/42',
  attachments: [if (trace != null) trace],
);

Register your app first in AlgoSoft OS — Settings → Algo Widget → Mobile apps — with its package name and, on Android, both signing certificate fingerprints. With Play App Signing a Play Store build presents a different certificate than the same build off your machine, and registering only one locks out half your users.

Licence #

Apache-2.0.

0
likes
0
points
99
downloads

Documentation

Documentation

Publisher

unverified uploader

Weekly Downloads

Algo Widget for Flutter — in-app bug reporting with screen recording, voice narration, a recorded interaction trace, and automatic crash capture.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, http, webview_flutter

More

Packages that depend on algo_widget