Skip to content

deps(flutter): bump flutter_foreground_task from 8.17.0 to 9.2.2#12

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pub/flutter_foreground_task-9.2.2
Open

deps(flutter): bump flutter_foreground_task from 8.17.0 to 9.2.2#12
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pub/flutter_foreground_task-9.2.2

Conversation

@dependabot
Copy link
Copy Markdown

@dependabot dependabot Bot commented on behalf of github Apr 28, 2026

Bumps flutter_foreground_task from 8.17.0 to 9.2.2.

Changelog

Sourced from flutter_foreground_task's changelog.

9.2.2

  • [FIX] Resolved frequent ForegroundServiceDidNotStartInTime and ForegroundServiceDidNotStopInTime exceptions by avoiding redundant foreground service start contracts. #377

9.2.1

  • [FIX] Prevent crash in onDestroy #372

9.2.0

  • [FEAT] Add allowAutoRestart option, which enables the service to automatically restart if it is terminated by the system.
  • [FEAT] Add stopWithTask option, to ensure service termination when the app UI is dismissed.
  • [FEAT] Add mediaProcessing foreground service type.
  • [FIX] Fix FLAG_STOP_WITH_TASK bitmask check error.

9.1.0

  • [FEAT] Support manual foregroundServiceType via serviceTypes in startService

9.0.0

  • [CHORE] Bump minimum supported SDK version to Flutter 3.22/Dart 3.4
  • [CHORE] Bump kotlin_version(1.7.10 -> 1.9.10), gradle(7.3.0 -> 8.6.0) for Android 15
  • [FEAT] Add isTimeout param to the onDestroy callback
  • [FIX] Fix "null object" error #332
  • [FIX] Fix "Reply already submitted" error #330
  • [FIX] Prevent crash by catching exceptions during foreground service start
  • Check migration_documentation for changes
Commits

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

@dependabot @github
Copy link
Copy Markdown
Author

dependabot Bot commented on behalf of github Apr 28, 2026

Labels

The following labels could not be found: dependencies, flutter. Please create them before Dependabot can add them to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

Bumps [flutter_foreground_task](https://github.com/Dev-hwang/flutter_foreground_task) from 8.17.0 to 9.2.2.
- [Changelog](https://github.com/Dev-hwang/flutter_foreground_task/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Dev-hwang/flutter_foreground_task/commits)

---
updated-dependencies:
- dependency-name: flutter_foreground_task
  dependency-version: 9.2.2
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot force-pushed the dependabot/pub/flutter_foreground_task-9.2.2 branch from 2415767 to e94385a Compare April 28, 2026 10:00
physercoe pushed a commit that referenced this pull request May 23, 2026
ADR-035 W11 fix-up wedge #12 — agy's MCP tools/call STILL failed
after v1.0.654's dot-name filter. Different error, same root family.

## Root cause: JSON-RPC 2.0 §4.1 violation

JSON-RPC 2.0 §4.1: 'The Server MUST NOT reply to a Notification.'
A notification is a request without an `id` field. Our hub's MCP
handler had a default-case error path that wrote an error frame for
every unknown method — including notifications.

agy 1.0.1 sends `notifications/roots/list_changed` to every
connected MCP server periodically (host-verified in agytest's
stderr log). Our hub fell through to default → wrote a JSON-RPC
error response. The bridge piped that to agy's stdin as an
unsolicited frame. agy's strict MCP client read the unsolicited
frame, classified it as a protocol violation, and closed the
stdio transport. Every subsequent tools/call from the LLM hit
the dead transport → 'connection closed: client is closing:
invalid request'.

The same hub also failed for any other notification method we
didn't explicitly enumerate (notifications/cancelled, etc.) —
notifications/initialized only worked because it had its own case.

## Smoking gun

agytest's stderr log captured the exact frame:
  IN {"jsonrpc":"2.0","method":"notifications/roots/list_changed","params":{}}

agytest's permissive Python parser silently ignored it; our strict
hub responded with an error. The cross-server log diff (agytest
worked, termipod didn't, same input frame) was the load-bearing
clue.

Manual reproduction:
  $ echo '{"jsonrpc":"2.0","method":"notifications/roots/list_changed"}' | hub-mcp-bridge
  {"jsonrpc":"2.0","error":{"code":-32601,"message":"method not found: ..."}}

(should have been empty body per JSON-RPC spec)

## Fix

Insert a notification gate BEFORE the per-method switch in
server/mcp.go. The standalone daemon (hubmcpserver/run.go) already
handles this correctly via a 'no id → no reply' branch; only the
in-process /mcp/<token> route was buggy.

Lock test: TestMCP_NotificationsGetNoResponse exercises 5
notifications including the host-verified
notifications/roots/list_changed and an unknown-method case (to
confirm the default-path no longer fires for notifications). Each
must return 204 with empty body.

## Why agy's prior diagnosis missed it

agy proposed three theories — stdout corruption, PATH discrepancy,
sandbox restrictions — all wrong. The actual cause was a
wire-level frame agy sent AFTER initialize that hadn't been
considered. Finding it required reading the agytest server's
stderr log (where agy ALSO sent notifications/roots/list_changed)
and comparing what agytest's permissive parser ignored vs what
our strict-handler responded to. Verify-don't-guess + cross-server
log comparison was the load-bearing technique.

## MCP debug arc summary

Four wedges, each a distinct layer of the strict-client wall:

  v1.0.649 — hard-coded protocolVersion → agy 2025-11-25 rejected
  v1.0.653 — workdir .mcp.json pinned stale token → 401
  v1.0.654 — dot-named tool aliases → tools/list batch rejected
  v1.0.656 — replied to notifications → client closed transport

Each surfaced only after the prior was fixed — strict clients fail
at the first wall they hit, hiding everything behind it.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
physercoe pushed a commit that referenced this pull request May 24, 2026
…th token pill (v1.0.668-alpha)

ADR-027 W11 fix-up wedge #12. Two M4 polish gaps from v1.0.667 dev-box
smoke: context chip works now, but cancel-button stuck after MCP-tool
turns + token-flow pill blank.

- Cancel-button race: hookStop posted turn.result SYNCHRONOUSLY the
  moment claude invoked Stop hook — before the JSONL tailer had a
  chance to read + post the preceding assistant text frame. Wire seq
  order: turn.result(N) → text(N+1) → usage(N+2). Mobile's
  _isAgentBusy walks tail-first: usage skip (v1.0.667), text → busy.
  turn.result at lower seq never reached.

  Fix: emit turn.result from the JSONL's own system{subtype:
  turn_duration} frame (LAST frame of a turn, written after text +
  stop_hook_summary). Now turn.result has the HIGHEST seq, walker
  hits it first, idle. Dropped turn.result emission from hookStop;
  FSM transition kept.

- Token-flow pill: _TelemetryStrip gates on modelTotals.isNotEmpty,
  populated only from turn.result.by_model (codex/claude stream-json
  shape). M4's turn.result has no by_model. Pill suppressed even
  though usage was flowing.

  Fix: synthesise a _ModelTokens entry from per-message usage when
  modelTotals is empty. SET semantics on every field (NOT add) so
  the pre-v1.0.662 sum-across-tool-use-iterations bug doesn't
  reappear. Bucket key = per-message model or "claude-code".

Tests: TestMapLine_TurnDurationSystemEmitsTurnResult (new mapper
shape), TestOnHook_StopOnlyTransitionsFSM (rewrites the
"hookStop emits turn.result" assertion to "hookStop posts nothing").

Latency note: turn.result lands ~250ms later than before (one
tailer poll-tick after turn_duration frame written), in exchange
for deterministic seq ordering against text/usage. Net win — the
prior fast-but-out-of-order path left the cancel button stuck.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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.

0 participants