Skip to content

chore(deps): Bump appfunctions-service to 1.0.0-alpha10#83

Open
touyou wants to merge 1 commit into
mainfrom
chore/appfunctions-alpha10-service
Open

chore(deps): Bump appfunctions-service to 1.0.0-alpha10#83
touyou wants to merge 1 commit into
mainfrom
chore/appfunctions-alpha10-service

Conversation

@touyou

@touyou touyou commented Jul 13, 2026

Copy link
Copy Markdown
Owner

Summary

What changed in alpha10

  • AppFunctionServiceEntryPoint (new, breaking): All @AppFunction methods must now live in a class that extends AppFunctionService AND is annotated with @AppFunctionServiceEntryPoint. Previously the plain GeneratedAppFunctions class was sufficient.
  • AppFunctionConfiguration deprecated: Will be removed in a future release; replaced by @AppFunctionServiceEntryPoint. This project does not use AppFunctionConfiguration directly, so no immediate action required.
  • searchAppFunctions API added: New AppFunctionManager.searchAppFunctions() + functionNames field on AppFunctionSearchSpec (additive, no action needed).
  • AppFunctionInstruction / AppFunctionSignature annotations added: New optional annotations for runtime-registered function declarations (additive, no action needed).
  • AppFunctionService callback support: AppFunctionService API updated to support callbacks (service-side; no Dart-facing change).

Diff

// app/android/app/build.gradle.kts
dependencies {
    implementation("androidx.appfunctions:appfunctions:1.0.0-alpha10")
-   // appfunctions-service alpha10 has not actually been published to Google Maven yet
-   // (the release notes page lists it, but the artifact 404s) — keep this pinned to
-   // alpha09 until Google publishes it, or the build fails to resolve dependencies.
-   implementation("androidx.appfunctions:appfunctions-service:1.0.0-alpha09")
+   implementation("androidx.appfunctions:appfunctions-service:1.0.0-alpha10")
    ksp("androidx.appfunctions:appfunctions-compiler:1.0.0-alpha10")
}

CLAUDE.md updated to:

  • Remove the stale "publish lag" gotcha for alpha09
  • Document the @AppFunctionServiceEntryPoint breaking change and migration path
  • Note AppFunctionConfiguration deprecation

Follow-up needed

⚠️ @AppFunctionServiceEntryPoint migration (likely build-breaking)

The current KotlinGenerator emits a plain class GeneratedAppFunctions { ... }. Alpha10 requires this class to extend AppFunctionService and carry @AppFunctionServiceEntryPoint. Until the follow-up lands, :app:kspDebugKotlin may fail when appfunctions-service:1.0.0-alpha10 is resolved.

Required follow-up changes:

  1. KotlinGenerator._generateAppFunctionsClass — add @AppFunctionServiceEntryPoint annotation and AppFunctionService() superclass; add imports androidx.appfunctions.service.AppFunctionService and androidx.appfunctions.service.AppFunctionServiceEntryPoint
  2. AndroidManifest.xml in the example app — verify whether the KSP-generated service class name changes; update <service> registration if needed
  3. Regenerate GeneratedAppFunctions.kt with make kotlin-gen
  4. Verify build with flutter build apk --debug

Note: The authoritative source (dl.google.com/dl/android/maven2/.../maven-metadata.xml) was inaccessible from the CI sandbox (proxy blocks dl.google.com). The bump is based on the official AndroidX release notes page explicitly listing all three artifacts at alpha10 with Gradle dependency declarations, 12 days after the July 1 release date. Recommend verifying appfunctions-service:1.0.0-alpha10 resolves before merging (e.g. ./gradlew :app:dependencies --configuration debugRuntimeClasspath | grep appfunctions).

🤖 Generated by weekly appfunctions maintenance routine


Generated by Claude Code

Summary by CodeRabbit

  • Updates
    • Updated Android AppFunctions tooling to version alpha10.
    • Refreshed Android integration guidance to reflect alpha10 requirements and migration steps.
    • Removed outdated alpha09 workaround guidance and documented resolved service publishing availability.

Google Maven has published appfunctions-service:1.0.0-alpha10 (released
2026-07-01), resolving the publishing lag that kept it pinned at alpha09.
Remove the mixed-version pin and align all three artifacts at alpha10.

Note CLAUDE.md gotcha: alpha10 introduced @AppFunctionServiceEntryPoint
as a mandatory annotation on AppFunctionService subclasses. The generated
GeneratedAppFunctions class does not yet conform; a follow-up issue is
needed to update KotlinGenerator and AndroidManifest accordingly.
@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The Android AppFunctions service dependency was upgraded from alpha09 to alpha10. CLAUDE.md now documents the alpha10-only toolchain, breaking API requirements, deprecation details, resolved publishing status, and migration guidance.

Changes

Android AppFunctions alpha10 migration

Layer / File(s) Summary
Align dependency and integration guidance
app/android/app/build.gradle.kts, CLAUDE.md
The Gradle dependency and Android AppFunctions documentation were updated from alpha09 to alpha10, including alpha10 API requirements, deprecation notes, publishing status, and migration guidance.

Estimated code review effort: 2 (Simple) | ~10 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description covers the change well but omits several required template sections like related issues, type, affected packages, test plan, and checklist. Add the missing template sections, especially related issues, type of change, affected packages, test plan, and checklist items.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely states the main change: bumping appfunctions-service to alpha10.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/appfunctions-alpha10-service

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/android/app/build.gradle.kts`:
- Line 50: Revert the appfunctions-service dependency in the Gradle
configuration to the pre-alpha10 version until migration is complete. Do not
retain the alpha10 bump while GeneratedAppFunctions and AndroidManifest.xml
still use the legacy service class and registration; update those migration
pieces separately before restoring alpha10.

In `@CLAUDE.md`:
- Line 37: Update the remaining Android AppFunctions version references in the
documentation sections corresponding to docs/architecture.md and docs/usage.md,
replacing appfunctions-service alpha09 guidance with the consistent alpha10
version used by CLAUDE.md and app/android/app/build.gradle.kts. Ensure no
mixed-version pinning instructions remain.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 1d97aec6-550b-46a3-8b9c-6eecc4c96a7e

📥 Commits

Reviewing files that changed from the base of the PR and between b7fa224 and 714169f.

📒 Files selected for processing (2)
  • CLAUDE.md
  • app/android/app/build.gradle.kts

// (the release notes page lists it, but the artifact 404s) — keep this pinned to
// alpha09 until Google publishes it, or the build fails to resolve dependencies.
implementation("androidx.appfunctions:appfunctions-service:1.0.0-alpha09")
implementation("androidx.appfunctions:appfunctions-service:1.0.0-alpha10")

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | 🏗️ Heavy lift

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n== build.gradle.kts ==\n'
sed -n '1,140p' app/android/app/build.gradle.kts

printf '\n== CLAUDE.md mentions appfunctions ==\n'
rg -n "appfunctions|AppFunctionService|AppFunctionServiceEntryPoint|alpha10|alpha09|GeneratedAppFunctions" CLAUDE.md app/android -S

printf '\n== candidate files ==\n'
fd -a "GeneratedAppFunctions|AppFunctionService|AndroidManifest.xml|build.gradle.kts" app/android app | sed -n '1,120p'

Repository: touyou/flutter_intents

Length of output: 7434


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n== app/android/app/build.gradle.kts ==\n'
cat -n app/android/app/build.gradle.kts | sed -n '1,140p'

printf '\n== CLAUDE.md appfunctions sections ==\n'
rg -n -C 3 "appfunctions|AppFunctionService|AppFunctionServiceEntryPoint|GeneratedAppFunctions|alpha10|alpha09" CLAUDE.md

printf '\n== relevant source files ==\n'
fd -a "GeneratedAppFunctions|AppFunctionService|AndroidManifest.xml" app/android

Repository: touyou/flutter_intents

Length of output: 10055


🌐 Web query:

androidx.appfunctions appfunctions-service 1.0.0-alpha10 AppFunctionServiceEntryPoint AppFunctionService requirements

💡 Result:

In the androidx.appfunctions library (version 1.0.0-alpha10), AppFunctionServiceEntryPoint and AppFunctionService are core components used to expose app functions to the Android system [1][2][3]. AppFunctionServiceEntryPoint is an annotation used to mark an abstract class as an entry point for App Functions [2][4]. When applied, the compiler generates a concrete service implementation and an XML asset file describing the exposed functions [2][4]. It requires two parameters: serviceName: The name of the generated service class [2][4]. appFunctionXmlFileName: The name of the generated app function XML file, which will be placed in the assets directory [2][4]. AppFunctionService is the base class for implementing these services [3]. To use it, you must declare the service in your AndroidManifest.xml with the required permission and intent filter [3]: Functions within your service class are exposed by annotating them with @AppFunction [5][6]. The compiler bridges these annotated methods with the service's execution logic [2][4]. Note that AppFunctionService requires API level 36 or higher [3].

Citations:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n== GeneratedAppFunctions.kt ==\n'
cat -n app/android/app/src/main/kotlin/com/example/app/generated/GeneratedAppFunctions.kt | sed -n '1,220p'

printf '\n== AndroidManifest.xml ==\n'
cat -n app/android/app/src/main/AndroidManifest.xml | sed -n '1,220p'

Repository: touyou/flutter_intents

Length of output: 9113


Hold the alpha10 bump until the AppFunctions migration lands app/android/app/src/main/kotlin/com/example/app/generated/GeneratedAppFunctions.kt is still a plain class, and app/android/app/src/main/AndroidManifest.xml still uses the old APP_FUNCTIONS_SERVICE / BIND_APP_FUNCTIONS_SERVICE registration. Alpha10 expects the @AppFunctionServiceEntryPoint / AppFunctionService path, so the generator and manifest need to move together.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/android/app/build.gradle.kts` at line 50, Revert the appfunctions-service
dependency in the Gradle configuration to the pre-alpha10 version until
migration is complete. Do not retain the alpha10 bump while
GeneratedAppFunctions and AndroidManifest.xml still use the legacy service class
and registration; update those migration pieces separately before restoring
alpha10.

Comment thread CLAUDE.md
| Deep Linking | **app_links** package |
| Android Minimum | **API 36** (Android 16, for AppFunctions) |
| Android AppFunctions | **Jetpack `androidx.appfunctions` 1.0.0-alpha10** (`appfunctions-service` pinned at alpha09 pending Google Maven publish — see Gotchas) |
| Android AppFunctions | **Jetpack `androidx.appfunctions` 1.0.0-alpha10** (all three artifacts at alpha10 as of July 2026) |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

Update the remaining alpha09 documentation references.

docs/architecture.md:358-370 and docs/usage.md:55-70 still instruct readers to pin appfunctions-service at alpha09, contradicting this file and app/android/app/build.gradle.kts:50. Update those references to prevent users from recreating the mixed-version configuration.

Based on learnings, persistent project documentation should be updated when integration details change.

Also applies to: 565-565

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@CLAUDE.md` at line 37, Update the remaining Android AppFunctions version
references in the documentation sections corresponding to docs/architecture.md
and docs/usage.md, replacing appfunctions-service alpha09 guidance with the
consistent alpha10 version used by CLAUDE.md and
app/android/app/build.gradle.kts. Ensure no mixed-version pinning instructions
remain.

Source: Learnings

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