fluttersdk_telescope 0.0.1
fluttersdk_telescope: ^0.0.1 copied to clipboard
Passive runtime inspector for Flutter. Captures HTTP, logs, exceptions, DB queries, and Magic events via VM Service extensions. CLI tail and MCP tools for Claude Code.
Changelog #
All notable changes to this project will be documented in this file.
This project follows Semantic Versioning 2.0.0. Entries follow the Keep a Changelog shape.
[Unreleased] #
Changed #
telescope:installmagic-detect branch now injectsimport 'package:magic/telescope_integration.dart';instead ofimport 'package:magic/magic.dart';. Pairs with magic 1.0.0-alpha.15 which extracts the integration class into a dedicated sub-barrel.
Removed #
magic: ^1.0.0-alphadev_dependency dropped. The package is now vanilla-Flutter clean with zeromagicreferences in production or default-test surface. Magic-stack consumers continue to opt intopackage:magic/telescope_integration.dartfrom the magic repo via the install command's runtime detection.pubspec_overrides.yamlfile deleted. All three former path overrides (fluttersdk_artisan,fluttersdk_dusk,magic) are gone; artisan now resolves from pub.dev hosted (^0.0.2) and dusk + magic are no longer dev dependencies.test/src/magic/integration test directory (6 files:magic_cache_watcher_test.dart,magic_event_watcher_test.dart,magic_gate_watcher_test.dart,magic_http_facade_adapter_test.dart,magic_model_watcher_test.dart,magic_query_watcher_test.dart) deleted. Magic-stack adapter and watcher contract regression now lives in the magic repo.dart_test.yamlmagictag definition + 4-line comment block removed. Theintegrationtag remains as the sole entry undertags:.--exclude-tags=integration,magicreduced to--exclude-tags=integrationin.github/workflows/ci.ymland.github/workflows/publish.yml. Agent-instruction files (.github/copilot-instructions.md,.github/instructions/tests.instructions.md,.claude/rules/tests.md) cleaned of magic-tag references in lockstep.example_magic/example directory (154 files) deleted along with its.pubignoreexclusion block; the vanillaexample/directory stays as the sole example tree.
0.0.1 - 2026-05-20 #
Initial public release of fluttersdk_telescope. Passive runtime inspector for Flutter apps with a framework-agnostic core and optional Magic-stack integration. Plugin of fluttersdk_artisan ^0.0.1.
Watchers #
9 watchers across vanilla Flutter and Magic-stack:
LogWatcher(auto-installed):package:loggingLogger calls captured to thelogsring buffer.ExceptionWatcher:FlutterError.onError+PlatformDispatcher.instance.onError, chain-preserve previous handlers.DumpWatcher:debugPrintcapture (vanilla Flutter); debug-only.MagicHttpFacadeAdapter: MagicHttpfacade interceptor.MagicModelWatcher:ModelCreated/ModelSaved/ModelDeletedevents from Magic.MagicCacheWatcher:CacheHit/CacheMiss/CachePut/CacheForget/CacheFlushevents.MagicEventWatcher: curated event subscription (auth, db connection, gate-define).MagicGateWatcher:GateAccessCheckedevent after everyGate.allows/Gate.denies.MagicQueryWatcher:QueryExecutedevent from the magic database connector.
Records #
9 immutable record types: HttpRequestRecord, LogRecordEntry, ExceptionRecord, MagicModelRecord, MagicCacheRecord, EventRecord, GateRecord, DumpRecord, QueryRecord.
9-buffer TelescopeStore #
Per-buffer Queue
VM Service extensions (11) #
ext.telescope.requests, .console, .exceptions, .events, .gates, .dumps, .queries, .caches, .clear, .pause, .resume. Every registration goes through registerExtensionIdempotent (from fluttersdk_artisan) for hot-restart safety.
MCP tools (9) #
telescope_tail, telescope_requests, telescope_exceptions, telescope_clear, telescope_events, telescope_gates, telescope_dumps, telescope_queries, telescope_caches. Each is a McpToolDescriptor const instance contributed via TelescopeArtisanProvider.mcpTools().
CLI commands (6) #
telescope:install, telescope:tail, telescope:requests, telescope:queries, telescope:caches, telescope:clear. telescope:install is a one-shot bootstrap that scaffolds the consumer artisan harness, runs plugin:install fluttersdk_telescope, and injects TelescopePlugin.install() into lib/main.dart (Magic-stack anchor or vanilla runApp anchor).
Three public contracts #
TelescopeWatcher:namegetter +install()+uninstall().TelescopeHttpAdapter: same 3-method shape + optionalpendingCountgetter (default 0).McpToolDescriptor: const-constructible; shape owned byfluttersdk_artisan.
TelescopeStore extension surface #
pendingHttpCountgetter sumsTelescopeHttpAdapter.pendingCountacross every registered adapter; consumed byext.dusk.wait_for_network_idlefor network-idle detection.
CI + automated publishing #
.github/workflows/ci.yml: format + analyze + flutter test (--exclude-tags integration,magic) + 80% line-coverage floor (lcov + awk gate) + codecov upload + dart pub publish --dry-run..github/workflows/publish.yml: SemVer tag push triggers validate -> pub.dev publish via the officialdart-lang/setup-dart/.github/workflows/publish.yml@v1reusable workflow with OIDC authentication + github-release job auto-extracting CHANGELOG entry..github/dependabot.yml: weekly pub root + weekly github-actions bumps.
Documentation #
README.mdtwo-path Quick Start (one-shot self-bootstrap viadart run fluttersdk_telescope telescope:install; manual wiring for consumers who prefer to drive the artisan dispatcher by hand). After install, the consumer's./bin/fsanative AOT launcher is the recommended entry point for every subsequent telescope command.doc/tree:getting-started/,watchers/,mcp/.llms.txtat repo root per llmstxt.org spec.skills/fluttersdk-telescope/LLM-agent skill (SKILL.md + 2 references).
Compatibility #
- Dart SDK >=3.4.0 <4.0.0; Flutter >=3.22.0.
- Platforms: Android, iOS, macOS, Linux, Windows, Web (debug-only on every platform; release builds tree-shake the entire telescope subsystem via
kDebugModegate). - Magic-stack integration optional. Vanilla Flutter consumers use Dio adapter + LogWatcher + ExceptionWatcher + DumpWatcher with no Magic dependency.
Test coverage #
307+ tests green at release time. 80% line coverage floor enforced in CI.