release: Android 1.15.0, Plugin 1.11.1, CLI+UI 0.4.0-beta.6 - #525
Merged
Conversation
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 5 to 6. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](actions/setup-java@v5...v6) --- updated-dependencies: - dependency-name: actions/setup-java dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps the testing group with 2 updates: [io.github.takahirom.roborazzi:roborazzi](https://github.com/takahirom/roborazzi) and [io.github.takahirom.roborazzi:roborazzi-compose](https://github.com/takahirom/roborazzi). Updates `io.github.takahirom.roborazzi:roborazzi` from 1.72.0 to 1.73.0 - [Release notes](https://github.com/takahirom/roborazzi/releases) - [Commits](takahirom/roborazzi@1.72.0...1.73.0) Updates `io.github.takahirom.roborazzi:roborazzi-compose` from 1.72.0 to 1.73.0 - [Release notes](https://github.com/takahirom/roborazzi/releases) - [Commits](takahirom/roborazzi@1.72.0...1.73.0) --- updated-dependencies: - dependency-name: io.github.takahirom.roborazzi:roborazzi dependency-version: 1.73.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: testing - dependency-name: io.github.takahirom.roborazzi:roborazzi-compose dependency-version: 1.73.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: testing ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `markdown-renderer` from 0.44.0 to 0.45.0. Updates `com.mikepenz:multiplatform-markdown-renderer-m3` from 0.44.0 to 0.45.0 - [Release notes](https://github.com/mikepenz/multiplatform-markdown-renderer/releases) - [Changelog](https://github.com/mikepenz/multiplatform-markdown-renderer/blob/develop/CHANGELOG.md) - [Commits](mikepenz/multiplatform-markdown-renderer@v0.44.0...v0.45.0) Updates `com.mikepenz:multiplatform-markdown-renderer-code` from 0.44.0 to 0.45.0 - [Release notes](https://github.com/mikepenz/multiplatform-markdown-renderer/releases) - [Changelog](https://github.com/mikepenz/multiplatform-markdown-renderer/blob/develop/CHANGELOG.md) - [Commits](mikepenz/multiplatform-markdown-renderer@v0.44.0...v0.45.0) --- updated-dependencies: - dependency-name: com.mikepenz:multiplatform-markdown-renderer-m3 dependency-version: 0.45.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: com.mikepenz:multiplatform-markdown-renderer-code dependency-version: 0.45.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps androidx.navigation:navigation-compose from 2.9.8 to 2.10.0. --- updated-dependencies: - dependency-name: androidx.navigation:navigation-compose dependency-version: 2.10.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [org.jetbrains.compose](https://github.com/JetBrains/compose-multiplatform) from 1.11.1 to 1.12.0. - [Release notes](https://github.com/JetBrains/compose-multiplatform/releases) - [Changelog](https://github.com/JetBrains/compose-multiplatform/blob/master/CHANGELOG.md) - [Commits](JetBrains/compose-multiplatform@v1.11.1...v1.12.0) --- updated-dependencies: - dependency-name: org.jetbrains.compose dependency-version: 1.12.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `haze` from 1.7.2 to 1.7.3. Updates `dev.chrisbanes.haze:haze` from 1.7.2 to 1.7.3 - [Release notes](https://github.com/chrisbanes/haze/releases) - [Changelog](https://github.com/chrisbanes/haze/blob/1.7.3/CHANGELOG.md) - [Commits](chrisbanes/haze@1.7.2...1.7.3) Updates `dev.chrisbanes.haze:haze-materials` from 1.7.2 to 1.7.3 - [Release notes](https://github.com/chrisbanes/haze/releases) - [Changelog](https://github.com/chrisbanes/haze/blob/1.7.3/CHANGELOG.md) - [Commits](chrisbanes/haze@1.7.2...1.7.3) --- updated-dependencies: - dependency-name: dev.chrisbanes.haze:haze dependency-version: 1.7.3 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: dev.chrisbanes.haze:haze-materials dependency-version: 1.7.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `coil` from 3.5.0 to 3.6.0. Updates `io.coil-kt.coil3:coil-compose` from 3.5.0 to 3.6.0 - [Release notes](https://github.com/coil-kt/coil/releases) - [Changelog](https://github.com/coil-kt/coil/blob/main/CHANGELOG.md) - [Commits](coil-kt/coil@3.5.0...3.6.0) Updates `io.coil-kt.coil3:coil-gif` from 3.5.0 to 3.6.0 - [Release notes](https://github.com/coil-kt/coil/releases) - [Changelog](https://github.com/coil-kt/coil/blob/main/CHANGELOG.md) - [Commits](coil-kt/coil@3.5.0...3.6.0) Updates `io.coil-kt.coil3:coil-network-okhttp` from 3.5.0 to 3.6.0 - [Release notes](https://github.com/coil-kt/coil/releases) - [Changelog](https://github.com/coil-kt/coil/blob/main/CHANGELOG.md) - [Commits](coil-kt/coil@3.5.0...3.6.0) --- updated-dependencies: - dependency-name: io.coil-kt.coil3:coil-compose dependency-version: 3.6.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: io.coil-kt.coil3:coil-gif dependency-version: 3.6.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: io.coil-kt.coil3:coil-network-okhttp dependency-version: 3.6.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Preserve the route-owned ChatHandler as the rendered state source from first composition and cover fast/delayed history plus handler replacement and on-device lifecycle recovery. Supersedes PR #453 while preserving contributor credit. Co-authored-by: layerflex <254160994+layerflex@users.noreply.github.com>
…-lifecycle-refresh fix(android): render Bot Chat history after binding
…v/actions/setup-java-6 chore(deps): bump actions/setup-java from 5 to 6
…e-notes-expansion # Conflicts: # CHANGELOG.md
test(android): refresh v1.14 What's New assertions
…e-notes-expansion # Conflicts: # app/src/test/kotlin/com/hermesandroid/relay/screenshots/ChangelogHistoryScreenshotTest.kt # app/src/test/kotlin/com/hermesandroid/relay/screenshots/WhatsNewToastScreenshotTest.kt
Co-authored-by: Upbeat7898 <upbeat7898@noreply.git.meberthosting.de>
…lent compaction Server-side context compaction summarizes the transcript with NO deltas or tool events flowing until it finishes. Near the context ceiling that silence routinely exceeds TURN_TIMEOUT_MS (180s), so the idle watchdog fired session.interrupt on a healthy compression, rolled back its work, and retriggered on the next prompt — an infinite 'Operation interrupted' loop that makes near-full sessions permanently unresponsive from mobile. Observed against a live gateway: four turns killed at exactly prompt+~251s (visible tool work + 180.0s of silent compaction), server compression telemetry aborted at 180469/180233/180219ms with failure_class=explicit_interrupt. Fix: treat a status.update event with kind 'compacting' like the ask events that already arm longer leashes (same watchdogTimeoutFor seam): arm COMPACTING_TIMEOUT_MS (600s) instead of the 180s default. Any regular event rearms TURN_TIMEOUT_MS as before. Pairs with the gateway fix that emits periodic compacting heartbeats during compression (NousResearch/hermes-agent#98371); a single compacting event at compaction start already engages the longer leash on current gateways. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
chore(android): serialize Windows build lanes
…e-notes-expansion
…s-expansion feat(android): make What's New a complete release record
…ay-salvage fix(android): harden supervised Gateway setup
…retention fix(android): retain generated image results
…port-affinity # Conflicts: # CHANGELOG.md
# Conflicts: # CHANGELOG.md
…ffinity fix(android): keep chat transport ownership stable
# Conflicts: # CHANGELOG.md # docs/spec.md
…staller-compat # Conflicts: # CHANGELOG.md
…r-compat fix(plugin): restore native installer compatibility
# Conflicts: # CHANGELOG.md
…activity fix(android): show passive external session activity
# Conflicts: # CHANGELOG.md # docs/spec.md # docs/upstream-surface-matrix.md
…eness fix(android): settle owned streams from live idle state
# Conflicts: # CHANGELOG.md # README.md # docs/localization-status.json # docs/upstream-surface-matrix.md # user-docs/features/connections.md # user-docs/features/index.md # user-docs/guide/index.md # user-docs/guide/remote-access.md # user-docs/reference/configuration.md
# Conflicts: # README.md
feat(android): prefer upstream standard surfaces
Comment on lines
+78
to
+81
| - name: Run repository checks and focused sideload tests | ||
| run: python3 scripts/android-prepush.py --skip-lint | ||
|
|
||
| - name: Run the same focused tests for Google Play |
Comment on lines
+81
to
+92
| - name: Run the same focused tests for Google Play | ||
| shell: bash | ||
| run: | | ||
| mapfile -t focused_tests < <(python3 -c \ | ||
| "import runpy; print(*runpy.run_path('scripts/android-prepush.py')['FOCUSED_TESTS'], sep='\n')") | ||
| test_args=() | ||
| for test_name in "${focused_tests[@]}"; do | ||
| test_args+=(--tests "$test_name") | ||
| done | ||
| ./gradlew :app:testGooglePlayDebugUnitTest "${test_args[@]}" --console=plain | ||
|
|
||
| - name: Upload failed test reports |
Comment on lines
+121
to
+134
| - name: Validate Android repository inputs | ||
| run: | | ||
| python3 scripts/check-android-locales.py | ||
| python3 scripts/check-user-docs-locales.py | ||
| python3 scripts/check-android-collection-apis.py | ||
| python3 scripts/check-android-release-notes.py | ||
| python3 scripts/check-version-tracks.py | ||
| if [[ -f scripts/tests/android_prepush_test.py ]]; then | ||
| python3 -m unittest scripts.tests.android_prepush_test | ||
| fi | ||
| python3 -m unittest scripts.tests.check_android_release_notes_test | ||
| python3 -m unittest scripts.tests.check_android_native_compat_test | ||
|
|
||
| - name: Run Android lint |
Comment on lines
+134
to
+137
| - name: Run Android lint | ||
| run: ./gradlew lint --console=plain | ||
|
|
||
| - name: Upload lint reports |
Comment on lines
+166
to
+169
| - name: Build debug APKs | ||
| run: ./gradlew assembleDebug --console=plain | ||
|
|
||
| - name: Verify packaged native compatibility |
Comment on lines
+169
to
+175
| - name: Verify packaged native compatibility | ||
| run: | | ||
| python3 scripts/check-android-native-compat.py \ | ||
| app/build/outputs/apk/googlePlay/debug/*.apk \ | ||
| app/build/outputs/apk/sideload/debug/*.apk | ||
|
|
||
| - name: Upload debug APKs |
Comment on lines
+203
to
+206
| - name: Build release bundles and APKs | ||
| run: ./gradlew bundleRelease assembleRelease --console=plain | ||
|
|
||
| - name: Scan release DEX for unsupported collection APIs |
Comment on lines
+206
to
+212
| - name: Scan release DEX for unsupported collection APIs | ||
| run: | | ||
| python3 scripts/check-android-collection-apis.py \ | ||
| --apk app/build/outputs/apk/googlePlay/release/*.apk \ | ||
| --apk app/build/outputs/apk/sideload/release/*.apk | ||
|
|
||
| - name: Verify packaged native compatibility |
Comment on lines
+212
to
+218
| - name: Verify packaged native compatibility | ||
| run: | | ||
| python3 scripts/check-android-native-compat.py \ | ||
| app/build/outputs/apk/googlePlay/release/*.apk \ | ||
| app/build/outputs/apk/sideload/release/*.apk | ||
|
|
||
| - name: Upload release smoke artifacts |
12 tasks
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.
Summary
Promote the fully integrated and release-prepared
devtree tomainfor Hermes-Relay Android 1.15.0, Hermes-Relay Plugin 1.11.1, and Hermes-Relay CLI+UI 0.4.0-beta.6.Changes
Verification
devfrom exact tested heade55662e0e13c755fa29c0f1e3d1574318fa65179; its Required checks aggregate passed.devSHAe6368dada87d0316fcc2b5d3f0e4f4be55b1b52b, including signed release artifacts, final DEX scan, and private Production-draft upload.Screenshots
No additional release-PR UI changes. The included Android changes were tested on a Samsung phone; release metadata uses the existing in-app What’s New screenshot coverage.
Compatibility / risk
Standard Hermes remains upstream-only and works against unmodified current upstream Hermes. Relay is optional for normal Chat, Voice, Manage, sessions, media, and attachments; it supplies compatibility fallback and Relay-exclusive enhancements. Android stable publication is fail-closed on an exact-tree Play preflight artifact, followed by the main-only approval workflow.
Lineage / contributor credit
devhistory.Checklist
dev, unless this is adev→mainrelease PR or a focused production-tag hotfix PR tomainCHANGELOG.mdis updated for user-visible changes, or N/A is listed above