Agents 7 min read

AppFunctions 1.0.0-rc01: Every Breaking Change Since alpha10, and How to Migrate

AppFunctions, the Jetpack library that lets AI agents discover and call functions in your app, reached 1.0.0-rc01 on Nov 4, 2026. The release itself is tiny: the release notes say only that it is a version bump to RC and that the legacy aggregation compiler option is removed. The real story is the five releases before it. If you followed my earlier AppFunctions post, written against alpha10, a good part of that code no longer compiles. This is the checklist, built from the AndroidX release notes.

rc01
Nov 4, 2026: API surface now considered final for 1.0
5
releases since alpha10: alpha11, alpha12, alpha13, beta01, rc01
3
artifacts: appfunctions, appfunctions-compiler, appfunctions-testing

Why rc matters: per the AndroidX stage definitions, a release candidate has a final API surface and may only receive critical last-minute fixes. If you were waiting to start, the churn below is the reason to wait no longer.

1. The annotation was renamed

In alpha13 (Oct 7, 2026) the AppFunction annotation became AppFunctionDeclaration. The same release renamed ObserveAppFunctionsEvent to AppFunctionsChangeEvent and surfaced AppFunctionMetadata in AppFunctionService.

Then beta01 (Oct 21, 2026) removed the default value of isDescribedByKDoc from AppFunctionDeclaration, AppFunctionSerializable and AppFunctionSignature. You must now say explicitly whether the KDoc is the description the agent sees:

// alpha10
@AppFunction(isDescribedByKDoc = true)
suspend fun listNotes(appFunctionContext: AppFunctionContext): List<Note>?

// rc01: new name, and the flag has no default so it must stay explicit
@AppFunctionDeclaration(isDescribedByKDoc = true)
suspend fun listNotes(/* see section 2 for the context parameter */): List<Note>?

Do the same for every @AppFunctionSerializable class, otherwise the build fails.

2. AppFunctionContext and AppFunctionConfiguration are gone

Alpha12 (Sep 23, 2026) removed both AppFunctionContext and AppFunctionConfiguration. That is why the first-parameter-must-be-context rule from my alpha10 post is obsolete. The release notes do not spell out the replacement for execution info, so check the 1.0 reference for your signatures instead of guessing. The alpha10 notes had already flagged AppFunctionConfiguration for removal in favor of @AppFunctionServiceEntryPoint, which stays: declarations still live inside an AppFunctionService annotated with it.

3. Gradle setup changed

The rc01 dependency snippet on the release page lists two lines: the runtime artifact and the KSP compiler. The separate appfunctions-service artifact I used in the alpha10 post does not appear in it, while appfunctions-testing is released alongside.

dependencies {
    implementation("androidx.appfunctions:appfunctions:1.0.0-rc01")
    ksp("androidx.appfunctions:appfunctions-compiler:1.0.0-rc01")
    androidTestImplementation("androidx.appfunctions:appfunctions-testing:1.0.0-rc01")
}

rc01 also removes the legacy aggregation compiler option. If your build passes a KSP argument for aggregation, delete it and rebuild.

4. Other renames and type moves in beta01

5. State is no longer part of metadata

Alpha11 (Aug 26, 2026) added AppFunctionState and AppFunctionManager#getAppFunctionStates, replacing AppFunctionMetadata#isEnabled. Metadata is now purely descriptive. If a settings screen reads isEnabled to show a toggle, switch it to the states API:

// alpha10 style, no longer available
val on = metadata.isEnabled

// since alpha11: ask the manager for state, keyed to the function
val states = appFunctionManager.getAppFunctionStates(/* search spec or ids */)

I am leaving the call arguments as a placeholder because the release notes name the method but not its signature. Alpha11 also added getAppFunctionActivityStates and changed observeAppFunctions to match the platform API.

6. New in the alphas, mostly experimental

7. Bug fixes worth knowing

Migration checklist

Sources: the AndroidX release notes for androidx.appfunctions (versions alpha09 through 1.0.0-rc01, retrieved Nov 5, 2026) and the AndroidX all-channel release page listing Nov 4, 2026.

Comments 0

No comments yet. Be the first to leave one!

Leave a comment