Repository navigation
Conversation
Collaborator
Author
|
Verified that the new skills in
|
ludoch
force-pushed
the
cloudtasks-runtime-okhttp
branch
from
October 24, 2026 12:50
15e9a3f to
73920f3
Compare
ludoch
force-pushed
the
agent-skills-runtime-deps
branch
from
October 24, 2026 12:50
3b7e368 to
539240e
Compare
The Cloud Tasks client bundled in runtime_impl_jetty12/121 only needs a gRPC transport found through the ManagedChannelProvider SPI; nothing in gax, gax-grpc, grpc-auth or the Cloud Tasks stubs references netty directly. Replace grpc-netty-shaded (about 4 MB compressed in each jar) with grpc-okhttp. grpc-okhttp depends on okio 3.x, which is written in Kotlin and pulls in kotlin-stdlib (another 1.5 MB). Exclude it and use okio 1.17.6 (pure Java, 92 KB) instead: every okio method and field referenced by grpc-okhttp 1.85.0 exists in okio 1.17.6, which also has the fix for CVE-2023-3635. runtime-impl-jetty121.jar: 33.7 MB with netty -> 29.3 MB.
The runtime jars bundle grpc-okhttp with the pure Java okio 1.17.6. okio 2+ is written in Kotlin and needs kotlin-stdlib, which the runtime jars don't bundle (the shade artifactSet is an allowlist), so an okio upgrade would break the Cloud Tasks client at runtime. - Move the okio version to an okio.version property in the root pom. - Add a maven-enforcer requireProperty rule to the runtime_impl poms that fails the build, with an explanation, unless okio.version is 1.x. - Tell Dependabot to ignore okio >= 2.0.0. Majors are already ignored globally; this makes the okio case explicit. Mirror it in the (disabled) renovate.json.
…e deps RuntimeJarDependencyClosureTest runs jdeps on runtime-impl-jetty12.jar and runtime-impl-jetty121.jar, with the other runtime deployment jars on the class path, follows every reference from com.google.appengine / com.google.apphosting classes through the bundled libraries, and fails on any missing class that is not a known, unused optional dependency. It reports the chain that reaches each missing class. On the main branch it reports 88 classes per jar, including com.google.auth.Credentials <- CloudTasksClientWrapper. Agent skills in .agent/skills (read by Antigravity; .claude/skills is a symlink to it for Claude Code): - runtime-jar-deps: keep the runtime jars' bundled libraries complete. - internal-runtime-usage: find API calls made by the runtime itself and test them end to end, including behind feature flags. - pom-dependency-change: check history, dependency trees, shaded jars and size before changing pom dependencies (with scripts/jar_size_diff.sh). - runtime-e2e-tests: build and run runtime/test, and known local pitfalls.
SKILL.md must start with its YAML frontmatter for Claude Code and Antigravity to read the skill name and description, so the header follows the frontmatter.
ludoch
force-pushed
the
cloudtasks-runtime-okhttp
branch
from
October 24, 2026 15:48
73920f3 to
e8f9158
Compare
ludoch
force-pushed
the
agent-skills-runtime-deps
branch
from
October 24, 2026 15:48
539240e to
8537760
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #548 → #547. Only the last commit is new. The closure test needs the runtime jars from #547/#548 to pass, so retarget to
mainafter they are merged.RuntimeJarDependencyClosureTest(CI guard)runtime/test/src/test/java/com/google/apphosting/runtime/RuntimeJarDependencyClosureTest.java, parameterized overruntime-impl-jetty12.jarandruntime-impl-jetty121.jar:jdeps -verbose:class(throughToolProvider) on the jar from the runtime deployment, withruntime-main.jarand theruntime-shared-*.jaron the class path.com.google.appengine.*/com.google.apphosting.*through the bundled libraries.KNOWN_MISSING_PACKAGESlist. The listed exceptions are pre-existing, on unused paths, each with a reason: antlr for the borgcron Groc parser, google-api-client for the Cloud Datastore v1 client,io.grpc.alts(DirectPath), Jetty ALPN, and JNDI transactions.com.google.auth.Credentials <- com.google.appengine.api.taskqueue.CloudTasksClientWrapper.jdepsisn't available (JRE only). It takes about 4 s per jar.Verified:
main: both fail, 88 missing classes per jar (Cloud Tasks v2/v2beta3, gRPC, gax,com.google.auth, andcom.google.api.client.httpused by the Cloud Datastore v1 client).Agent skills (Antigravity and Claude Code)
The skills live in
.agent/skills/<name>/SKILL.md(Antigravity's workspace skills location)..claude/skillsis a symlink to../.agent/skills, so Claude Code reads the same files. Both use the sameSKILL.mdformat (YAMLname/description+ Markdown).runtime-jar-depsartifactSet,ServicesResourceTransformer, internal BUILD noteinternal-runtime-usageDeferredDatastoreSessionStore,DeferredTaskServlet,SweeperServlet, ...), e2e testing with the flag on (CloudTasksSessionTestas template), internal BUILD notepom-dependency-changegit log -Shistory, dependency trees, which shaded jar to check, guarded pins likeokio.version,scripts/jar_size_diff.shfor the PR size reportruntime-e2e-testsruntime/test-pl runtime/deployment,runtime/test -am -DskipITs), full-JDK requirement, JDK-dependent test parameters, local failures that are not regressions, Cloud Tasks calling the real endpointVerified in both tools:
.claude/skillssymlink and listed as available skills.agyCLI): the skills in.agent/skills/are discovered and loaded automatically; followingruntime-jar-deps,RuntimeJarDependencyClosureTestpassed (2 tests, 0 failures);scripts/jar_size_diff.shruns (see this comment).All new files carry the Apache copyright header; in
SKILL.mdit follows the YAML frontmatter, which must come first for both tools to read the skill's name and description.On Windows checkouts without symlink support,
.claude/skillsis a plain file; Antigravity is unaffected.