Skip to content

Remove control-value tracking from Flutter SDK - #31

Merged
Chinmay-KB merged 2 commits into
mainfrom
fix/remove-control-value-tracking
Aug 3, 2026
Merged

Remove control-value tracking from Flutter SDK#31
Chinmay-KB merged 2 commits into
mainfrom
fix/remove-control-value-tracking

Conversation

@Chinmay-KB

Copy link
Copy Markdown
Collaborator

Summary

  • Remove control-value and semantic-annotation capture from the Flutter SDK, including public APIs and event payload fields.
  • Publish the intentional compatibility boundary as 0.5.0 with session schema v9 and migration guidance.
  • Retain structural interaction replay and add regressions for both absent value telemetry and typed Radio controls.

Why

The SDK should not track control values or semantic label/value telemetry. Structural replay data remains available without those fields.

Compatibility

Consumers of historic schemas v6-v8 should tolerate the removed fields as optional historic data. New captures emit schema v9 without controlValue, controlValueTransition, or semanticAnnotation.

Validation

  • dart run melos run analyze
  • flutter test --concurrency=1 --reporter compact in packages/tugboat (296 passed)

The default parallel Flutter runner is flaky in this checkout; the serial package-local suite is green.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes all control-value and semantic-annotation capture from the Tugboat Flutter SDK, establishing a breaking compatibility boundary at package 0.5.0 and session schema v9 while preserving structural interaction replay.

Changes:

  • Stop emitting controlValue, controlValueTransition, and semanticAnnotation in event payloads; bump session schema writers to v9.
  • Remove public APIs and internal implementation for control-value and semantic-annotation extraction/merging.
  • Update tests and documentation to reflect the new privacy/telemetry model and verify legacy JSON readability (v6–v8) alongside v9 writers.

Reviewed changes

Copilot reviewed 24 out of 24 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packages/tugboat/test/tugboat_replay_test.dart Updates replay tests to assert value/semantic telemetry is not emitted and bumps expected schema version to 9.
packages/tugboat/test/semantics_flags_compat_test.dart Simplifies semantics flags compatibility tests to match reduced compat surface.
packages/tugboat/test/integration/release_compatibility_matrix_test.dart Adjusts compatibility test to validate v6–v8 readability with v9 writers and legacy value fields present only in historic JSON.
packages/tugboat/test/helpers/json_roundtrip.dart Extends test-only JSON reader to accept schema version 9.
packages/tugboat/test/fingerprint_test.dart Adds regression coverage for typed Radio<T> role detection and anchor resolution.
packages/tugboat/test/control_value_test.dart Removes control-value/semantic-annotation telemetry test suite consistent with feature removal.
packages/tugboat/README.md Documents 0.5.0 breaking change, schema v9, removed exports, and updated telemetry guarantees.
packages/tugboat/pubspec.yaml Bumps package version to 0.5.0.
packages/tugboat/lib/tugboat.dart Removes barrel exports for control-value and semantic-annotation public APIs and helpers.
packages/tugboat/lib/src/widget_roles.dart Hardens Radio/RadioListTile enablement inspection to avoid generic callback cast hazards.
packages/tugboat/lib/src/semantics_flags_compat.dart Removes checked/toggled/selected compat helpers, retaining enabled-state compat only.
packages/tugboat/lib/src/sdk_version.dart Updates embedded SDK version constant to 0.5.0.
packages/tugboat/lib/src/models.dart Bumps tugboatSessionSchemaVersion to 9 and updates schema documentation.
packages/tugboat/lib/src/interaction_transaction.dart Removes control/semantic metadata fields from interaction transaction model and result serialization.
packages/tugboat/lib/src/controller.dart Eliminates control-value/semantic capture and post-frame resampling; removes corresponding event payload fields.
packages/tugboat/lib/src/control_value.dart Removes the entire control-value + semantic-annotation implementation.
packages/tugboat/lib/src/anchors.dart Drops control_value.dart part and now-unneeded imports.
packages/tugboat/lib/src/anchor_resolver.dart Removes interaction metadata sampling/resampling and semantic annotation helpers; tap context now returns only inventory + target.
packages/tugboat/example/test/widget_test.dart Removes example tests that depended on semantic-annotation payload emission.
packages/tugboat/example/pubspec.yaml Updates example dependency constraint to tugboat: ^0.5.0.
packages/tugboat/example/lib/screens/profile_screen.dart Removes example UI that existed primarily to demonstrate semantic parameter/value capture.
packages/tugboat/CHANGELOG.md Adds 0.5.0 changelog entry documenting breaking removals and schema v9 behavior.
docs/README.md Updates docs “current compatibility” values to 0.5.0 / schema 9.
docs/design/capture-and-fingerprint.md Updates design docs to reflect schema v9 and removal of value/semantic event telemetry.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Chinmay-KB
Chinmay-KB merged commit b16332a into main Aug 3, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants