Updates hc 0.6#135
Conversation
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (1)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including You can disable this status message by setting the WalkthroughThis PR performs a major version bump from holochain 0.5.x to 0.6.0-rc.0, updating workspace dependencies, refactoring FFI type system (renaming AppInfoStatusFfi to AppStatusFfi, removing PausedAppReasonFfi), migrating DNA/HAPP manifests from v1 to v0 format, replacing GetLinksInputBuilder with LinkQuery API, and bumping Android library versions to 0.0.20. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60–90 minutes
Possibly related PRs
Suggested reviewers
Pre-merge checks and finishing touches❌ Failed checks (2 warnings, 1 inconclusive)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
libraries/service/build.gradle.kts (1)
82-82: Update client dependency version to 0.0.20.The service library version is being bumped to 0.0.20 (line 51), but the client dependency remains at 0.0.19. This version mismatch should be resolved for consistency with the coordinated release.
Apply this diff to update the client dependency:
- implementation("org.holochain.androidserviceruntime:client:0.0.19") + implementation("org.holochain.androidserviceruntime:client:0.0.20")
🧹 Nitpick comments (3)
DEVELOPMENT.md (1)
3-8: Consider minor grammar improvements.The expanded documentation is excellent and provides valuable detail for version bumps. Two minor comma placements could improve readability:
- Line 3: "To bump the holochain version**,** you will need..."
- Line 5: "...to a major version**,** you may need..."
-To bump the holochain version you will need to do these things: +To bump the holochain version, you will need to do these things: 1. update all holochain dependencies in the top-level `Cargo.toml` file -2. do a `nix flake update` before `nix develop` to bring down the latest Holochain version. Note that if you are updating to a major version you may need to change the source for `holonix.url` and `taurie-plugin-holochain.url` in the `flake.nix` file first. +2. do a `nix flake update` before `nix develop` to bring down the latest Holochain version. Note that if you are updating to a major version, you may need to change the source for `holonix.url` and `taurie-plugin-holochain.url` in the `flake.nix` file first.CHANGELOG.md (1)
6-9: Consider expanding CHANGELOG entries based on PR scope.The PR description's TODO list indicates "CHANGELOG(s) updated with appropriate info" remains incomplete. Given the scope of this upgrade (API surface changes like
AppInfoStatusFfi→AppStatusFfi,GetLinksInputBuilder→LinkQuery, removal ofPaused/Runningstates), consider adding more specific entries about breaking changes and migration guidance for consumers.libraries/client/src/androidTest/kotlin/JsonTest.kt (1)
30-43: Consider adding test coverage for additional AppStatusFfi variants.The test only covers the
Disabledvariant ofAppStatusFfi. Consider adding tests forEnabled,AwaitingMemproofs, andRunningvariants to ensure complete JSON serialization coverage for all status types.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (2)
Cargo.lockis excluded by!**/*.lockflake.lockis excluded by!**/*.lock
📒 Files selected for processing (69)
CHANGELOG.md(1 hunks)Cargo.toml(1 hunks)DEVELOPMENT.md(1 hunks)apps/android-service-runtime/package.json(1 hunks)apps/android-service-runtime/src-tauri/Cargo.toml(1 hunks)apps/android-service-runtime/src-tauri/tauri.conf.json(1 hunks)apps/example-client-app/Cargo.toml(1 hunks)apps/example-client-app/dnas/forum/workdir/dna.yaml(1 hunks)apps/example-client-app/dnas/forum/zomes/coordinator/posts/Cargo.toml(1 hunks)apps/example-client-app/dnas/forum/zomes/coordinator/posts/src/all_posts.rs(1 hunks)apps/example-client-app/dnas/forum/zomes/coordinator/posts/src/comment.rs(2 hunks)apps/example-client-app/dnas/forum/zomes/coordinator/posts/src/post.rs(3 hunks)apps/example-client-app/package.json(1 hunks)apps/example-client-app/ui/package.json(1 hunks)apps/example-client-app/workdir/happ.yaml(2 hunks)apps/example-client-app/workdir/web-happ.yaml(1 hunks)crates/runtime-ffi/Cargo.toml(1 hunks)crates/runtime-ffi/src/runtime.rs(2 hunks)crates/runtime-types-ffi/Cargo.toml(2 hunks)crates/runtime-types-ffi/src/types.rs(4 hunks)crates/runtime/Cargo.toml(1 hunks)crates/runtime/src/config.rs(0 hunks)crates/runtime/src/runtime.rs(13 hunks)crates/tauri-plugin-client/Cargo.toml(2 hunks)crates/tauri-plugin-client/android/build.gradle.kts(1 hunks)crates/tauri-plugin-service/Cargo.toml(2 hunks)crates/tauri-plugin-service/android/build.gradle.kts(1 hunks)flake.nix(1 hunks)libraries/client/README.md(1 hunks)libraries/client/build.gradle.kts(1 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-ffi/-app-info-ffi.md(1 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-ffi/index.md(2 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-ffi/status.md(1 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-status-ffi-parcel/-app-info-status-ffi-parcel.md(0 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-status-ffi-parcel/inner.md(0 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-status-ffi-parceler/index.md(0 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-status-ffi-parceler/write.md(0 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-status-ffi/-awaiting-memproofs/index.md(0 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-status-ffi/-disabled/-companion/index.md(0 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-status-ffi/-paused/-paused.md(0 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-status-ffi/-paused/index.md(0 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-status-ffi/-paused/reason.md(0 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-status-ffi/-running/index.md(0 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-status-ffi/index.md(0 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi-parcel/-app-status-ffi-parcel.md(1 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi-parcel/index.md(1 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi-parcel/inner.md(1 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi-parceler/create.md(1 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi-parceler/index.md(1 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi-parceler/write.md(1 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi/-awaiting-memproofs/index.md(1 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi/-companion/index.md(1 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi/-disabled/-companion/index.md(1 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi/-disabled/-disabled.md(1 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi/-disabled/index.md(2 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi/-disabled/reason.md(1 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi/-enabled/index.md(1 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi/index.md(1 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-disabled-app-reason-ffi/index.md(0 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/-role-settings-ffi/index.md(0 hunks)libraries/client/docs/org.holochain.androidserviceruntime.client/index.md(1 hunks)libraries/client/docs/package-list(2 hunks)libraries/client/src/androidTest/kotlin/JsonTest.kt(2 hunks)libraries/client/src/androidTest/kotlin/ParcelablesTest.kt(4 hunks)libraries/client/src/main/java/org/holochain/androidserviceruntime/client/Json.kt(1 hunks)libraries/client/src/main/java/org/holochain/androidserviceruntime/client/Parcelables.kt(1 hunks)libraries/client/src/main/java/org/holochain/androidserviceruntime/client/Parcelers.kt(6 hunks)libraries/service/README.md(1 hunks)libraries/service/build.gradle.kts(1 hunks)
💤 Files with no reviewable changes (14)
- libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-status-ffi/-running/index.md
- libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-status-ffi-parceler/index.md
- crates/runtime/src/config.rs
- libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-status-ffi/-disabled/-companion/index.md
- libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-status-ffi-parcel/inner.md
- libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-status-ffi/-paused/reason.md
- libraries/client/docs/org.holochain.androidserviceruntime.client/-role-settings-ffi/index.md
- libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-status-ffi/-paused/index.md
- libraries/client/docs/org.holochain.androidserviceruntime.client/-disabled-app-reason-ffi/index.md
- libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-status-ffi/index.md
- libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-status-ffi/-awaiting-memproofs/index.md
- libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-status-ffi-parceler/write.md
- libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-status-ffi-parcel/-app-info-status-ffi-parcel.md
- libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-status-ffi/-paused/-paused.md
🧰 Additional context used
🧬 Code graph analysis (3)
apps/example-client-app/dnas/forum/zomes/coordinator/posts/src/comment.rs (1)
apps/example-client-app/dnas/forum/zomes/coordinator/posts/src/post.rs (1)
links(65-78)
crates/runtime-ffi/src/runtime.rs (1)
libraries/client/src/androidTest/kotlin/JsonTest.kt (1)
status(31-33)
crates/runtime-types-ffi/src/types.rs (1)
crates/tauri-plugin-service/guest-js/tauri-commands/index.ts (4)
AppInfo(25-28)CellInfo(21-23)CellId(5-8)DnaModifiers(10-13)
🪛 LanguageTool
DEVELOPMENT.md
[uncategorized] ~3-~3: Possible missing comma found.
Context: # Contributing To bump the holochain version you will need to do these things: 1. up...
(AI_HYDRA_LEO_MISSING_COMMA)
[typographical] ~5-~5: It seems that a comma is missing.
Context: ...ote that if you are updating to a major version you may need to change the source for `...
(IF_COMMA)
[grammar] ~6-~6: It appears that a noun is missing after “the”.
Context: ...ll the crates and test the client and the service 4. if there have been major ...
(THE_CC)
🪛 markdownlint-cli2 (0.18.1)
libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi/index.md
7-7: Heading levels should only increment by one level at a time
Expected: h2; Actual: h4
(MD001, heading-increment)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
- GitHub Check: Build apps (android-service-runtime)
- GitHub Check: Build tauri plugins (tauri-plugin-client)
- GitHub Check: Build tauri plugins (tauri-plugin-service)
- GitHub Check: Build apps (example-client-app)
- GitHub Check: Build apps (android-service-runtime, system_settings)
- GitHub Check: Static Analysis
- GitHub Check: Test Rust Crates (ubuntu-latest)
- GitHub Check: Test Kotlin Libraries (28, x86_64, x86_64-linux-android)
🔇 Additional comments (54)
libraries/client/README.md (1)
26-26: Version update is accurate and consistent with PR objectives.The dependency version bump from 0.0.19 to 0.0.20 aligns with the PR's stated goal of "bumping Android library versions to 0.0.20" as part of the holochain 0.6.0-rc.0 upgrade. The documentation remains clear and will guide users to the correct published version.
libraries/client/build.gradle.kts (1)
51-51: Version bump is properly scoped.The maven publishing coordinate version update from 0.0.19 to 0.0.20 aligns with patch-level changes and is consistent with companion module updates seen in the PR.
apps/android-service-runtime/src-tauri/tauri.conf.json (1)
3-3: Version bump is consistent.The patch-level increment from 0.1.5 to 0.1.6 aligns with companion version updates in this module.
libraries/service/README.md (1)
26-26: Documentation example correctly updated.The maven dependency example now matches the version published by this library. Ensure this aligns with the corresponding
build.gradle.ktsfor the service module (not visible in this review).libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi/-disabled/-disabled.md (1)
1-1: Documentation generation artifact correctly updated.The breadcrumb path reflects the
AppStatusFfitype rename (fromAppInfoStatusFfi), which is a generated documentation artifact aligned with the Holochain 0.6 API surface changes mentioned in the PR objectives.apps/android-service-runtime/src-tauri/Cargo.toml (1)
3-3: Version bump is synchronized.The patch-level increment from 0.1.5 to 0.1.6 is consistent with the corresponding update in
tauri.conf.jsonand aligns with module-level version synchronization.crates/tauri-plugin-client/android/build.gradle.kts (1)
50-50: Dependency version correctly updated.The client library dependency is updated from 0.0.19 to 0.0.20, matching the published version from
libraries/client/build.gradle.kts.crates/tauri-plugin-service/android/build.gradle.kts (1)
62-63: Dependency versions correctly coordinated.Both service (0.0.20) and client (0.0.20) library dependencies are updated consistently, matching the published versions from their respective modules.
apps/example-client-app/Cargo.toml (1)
12-13: I need to verify the correct versions for holochain 0.6. Let me search for the official version requirements:Let me search more specifically for holochain 0.6 versions:
No critical version incompatibilities found; version strategy is consistent with holochain ecosystem patterns.
HDI versions typically exceed HDK versions in Holochain—for example, HDI 0.66.2 and HDK 0.5.2 are compatible with Holochain 0.5.3. The workspace dependency choice of hdi 0.7.0-rc.0 and hdk 0.6.0-rc.0 follows this established pattern. The zomes in the example app correctly inherit these versions via
{ workspace = true }, ensuring consistency across the project.While these appear to be pre-release versions for Holochain 0.6.0-rc.0, official documentation for this upcoming release is limited. Monitor for final 0.6.0 release notes to confirm version compatibility once available.
apps/example-client-app/package.json (1)
18-18: Version bump appropriately scoped to CLI tooling.The hc-spin update to 0.600.0-rc.0 aligns with the holochain 0.6 upgrade. Since this is build-time tooling only, the RC version is acceptable.
apps/example-client-app/workdir/happ.yaml (1)
1-15: Manifest format appropriately migrated to v0.The transition from manifest_version '1' to '0' with corresponding field changes (bundled→path, clone_limit updates) aligns with holochain 0.6 manifest specification.
libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi/-disabled/-companion/index.md (1)
1-1: Auto-generated documentation reflects API rename.The documentation path correctly reflects the refactored API names (AppInfoStatusFfi→AppStatusFfi, Paused→Disabled), consistent with the holochain 0.6 enum changes.
apps/android-service-runtime/package.json (1)
4-4: Version bump appropriately coordinated.The patch version bump (0.1.5→0.1.6) reflects the coordinated holochain 0.6 update across the runtime ecosystem without introducing dependency changes.
crates/runtime/Cargo.toml (1)
3-3: Version bump aligned with workspace coordination.The crate version bump to 0.2.3 reflects the coordinated holochain 0.6 integration without dependency changes.
apps/example-client-app/ui/package.json (2)
16-16: Verify compatibility of major Svelte/Vite/tsconfig upgrades.This file bundles multiple major version upgrades (Svelte 4→5, Vite 5→6, tsconfig 3→5.0.4) without visible evidence of testing. Confirm that:
- The UI code is compatible with Svelte 5 and Vite 6
- No breaking changes affect this application
- These upgrades were tested end-to-end
Also applies to: 19-19, 22-22
10-10: No changes required — @holochain/client ^0.20.0-dev.2 is necessary and justified.The latest stable version is 0.19.3, which supports Holochain 0.5.x. The 0.20.x line is for Holochain 0.6.x but is currently only published as dev/rc builds. Since a stable 0.20 release doesn't exist yet, pinning to ^0.20.0-dev.2 is the correct choice for Holochain 0.6 compatibility.
crates/runtime-ffi/Cargo.toml (1)
3-3: Version bump coordinated across runtime ecosystem.The patch version bump to 0.2.3 maintains consistency with related runtime crates and their workspace dependency coordination.
apps/example-client-app/dnas/forum/zomes/coordinator/posts/Cargo.toml (1)
13-13: LGTM! Clean dependency addition.Adding
holochain_serialized_bytesas a workspace dependency aligns with the holochain 0.6 upgrade and ensures version consistency.flake.nix (1)
5-10: LGTM! Nix flake inputs updated for holochain 0.6.The changes correctly update the flake inputs to align with the holochain 0.6 upgrade, matching the guidance in DEVELOPMENT.md.
libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi-parcel/-app-status-ffi-parcel.md (1)
1-6: LGTM! Documentation for renamed type.This new documentation file correctly documents the
AppStatusFfiParcelconstructor, consistent with the rename fromAppInfoStatusFfitoAppStatusFfidescribed in the PR objectives.Cargo.toml (1)
24-26: Verify holochain 0.6.0-rc.0 stability for production use.The workspace dependencies are correctly updated to holochain 0.6.0-rc.0. However, since this is a release candidate (rc.0), ensure the team has validated its stability for production use and is prepared for potential breaking changes before the final 0.6.0 release.
apps/example-client-app/dnas/forum/zomes/coordinator/posts/src/post.rs (3)
22-25: LGTM! Correct migration to LinkQuery API.The migration from
GetLinksInputBuildertoLinkQuery::try_new()with explicitGetStrategy::default()is correct and aligns with Holochain 0.6 API changes.
61-64: LGTM! Consistent LinkQuery migration.The change correctly applies the same LinkQuery pattern for fetching PostUpdates links.
110-117: LGTM! Complete migration including delete_link.The migration correctly updates both the
get_linkscall to useLinkQuerywithGetStrategy::default(), and thedelete_linkcall to explicitly passGetOptions::default().apps/example-client-app/dnas/forum/zomes/coordinator/posts/src/all_posts.rs (1)
7-10: LGTM! Correct LinkQuery migration.The migration from
GetLinksInputBuildertoLinkQuery::try_new()withGetStrategy::default()is correctly applied, consistent with the API changes in Holochain 0.6.libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi-parcel/inner.md (1)
1-6: LGTM! Documentation properly reflects AppStatusFfi rename.This generated documentation correctly references the renamed
AppStatusFfitype, consistent with the broader migration fromAppInfoStatusFfitoAppStatusFfiacross the codebase.apps/example-client-app/dnas/forum/zomes/coordinator/posts/src/comment.rs (3)
50-57: LGTM! Correct LinkQuery and delete_link migration.Both the
get_linksmigration toLinkQuerywithGetStrategy::default()and thedelete_linkcall with explicitGetOptions::default()are correctly updated for Holochain 0.6.
97-100: LGTM! Correct LinkQuery migration.The function correctly uses
LinkQuery::try_new()withGetStrategy::default(), consistent with the API changes across the codebase.
107-110: LGTM! Correct get_links_details migration.The migration to
get_links_detailswithLinkQueryandGetStrategy::default()is correct. The filtering logic for non-empty deletes is properly preserved.libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-ffi/-app-info-ffi.md (1)
6-6: LGTM! Documentation correctly reflects AppStatusFfi rename.The constructor signature documentation correctly updates the
statusparameter type fromAppInfoStatusFfitoAppStatusFfi, consistent with the Holochain 0.6 API changes throughout this PR.crates/tauri-plugin-service/Cargo.toml (1)
3-3: LGTM! Coordinated version bump to 0.2.3.The package version and dependency version for
holochain-conductor-runtime-types-ffiare correctly bumped to 0.2.3, aligning with the workspace-wide release for Holochain 0.6.0-rc.0 support.Also applies to: 17-17
libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi-parceler/index.md (1)
1-14: LGTM! Documentation for renamed AppStatusFfiParceler.This generated documentation correctly describes the
AppStatusFfiParcelerobject and its functions, reflecting the rename fromAppInfoStatusFfiParcelertoAppStatusFfiParceleras part of the Holochain 0.6 migration. All cross-references and function signatures appear correct.libraries/client/src/main/java/org/holochain/androidserviceruntime/client/Json.kt (1)
91-91: LGTM! API rename properly reflected in JSON serialization.The update from
AppInfoStatusFfitoAppStatusFfiis consistent with the broader API refactor for Holochain 0.6. The sealed class handling ensures proper JSON serialization of the renamed type.crates/runtime-ffi/src/runtime.rs (2)
307-307: LGTM! Test assertion updated for renamed enum variant.The assertion correctly uses
AppStatusFfi::Enabledinstead of the previousAppInfoStatusFfi::Running, reflecting the API changes in Holochain 0.6.
332-334: LGTM! Test assertion updated for new Disabled variant structure.The assertion correctly matches the new
AppStatusFfi::Disabledstructure with thereasonfield set toDisabledAppReasonFfi::User, reflecting the updated API surface.libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi-parceler/write.md (1)
1-6: LGTM! Documentation updated for renamed parceler.The documentation correctly reflects the
AppStatusFfiParcelerrename fromAppInfoStatusFfiParceler, maintaining the standard Android parcelable write method signature.libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi/-awaiting-memproofs/index.md (1)
1-12: LGTM! Documentation for new AwaitingMemproofs variant.The documentation correctly introduces the
AwaitingMemproofsstatus variant as part of the updatedAppStatusFfiAPI surface in Holochain 0.6.libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-ffi/status.md (1)
6-6: LGTM! Property type reference updated.The documentation correctly updates the
statusproperty type fromAppInfoStatusFfitoAppStatusFfi, consistent with the API rename.libraries/client/docs/org.holochain.androidserviceruntime.client/-app-info-ffi/index.md (3)
6-6: LGTM! Data class signature updated with renamed type.The
AppInfoFficonstructor signature correctly usesAppStatusFfiinstead ofAppInfoStatusFfi, reflecting the API changes.
12-12: LGTM! Constructor documentation aligned with signature.The constructor documentation correctly reflects the updated parameter type
AppStatusFfi.
27-27: LGTM! Property type reference updated.The
statusproperty documentation correctly referencesAppStatusFfiinstead of the previous type name.libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi-parceler/create.md (1)
1-6: LGTM! Parceler create method documentation updated.The documentation correctly reflects both the parceler rename (
AppInfoStatusFfiParceler→AppStatusFfiParceler) and the return type update toAppStatusFfi.libraries/client/docs/org.holochain.androidserviceruntime.client/-app-status-ffi/-enabled/index.md (1)
1-12: LGTM! Documentation for renamed Enabled variant.The documentation correctly introduces the
Enabledstatus variant, which replaces the previousRunningstate in the updatedAppStatusFfiAPI for Holochain 0.6.libraries/client/src/androidTest/kotlin/ParcelablesTest.kt (2)
11-12: LGTM!The import updates correctly reflect the API rename from
AppInfoStatusFfitoAppStatusFfi.
326-377: LGTM!The parcel tests comprehensively cover all
AppStatusFfivariants (Running, AwaitingMemproofs, Disabled with NeverStarted, and Disabled with Error). The test function renames and assertions are consistent with the API changes.crates/runtime/src/runtime.rs (3)
111-113: Verify removal of error handling from AppEnabled response.The response handling was simplified from destructuring
{ app, errors }to just returningapp. Ensure this change aligns with the Holochain 0.6 API and that error conditions are now handled differently or are no longer possible.
289-289: Confirm default value for danger_bind_addr.The new
danger_bind_addrfield is set toNone. Verify that this is the appropriate default for the Holochain 0.6 API and document the security implications if a non-None value is ever needed.
325-325: LGTM!The
AppBundleSource::Bytesconstruction now uses.into()to convertVec<u8>into the expected type, which is the correct idiomatic approach in Rust.Also applies to: 439-439
libraries/client/src/main/java/org/holochain/androidserviceruntime/client/Parcelables.kt (1)
62-65: LGTM!The parcelable data class correctly renamed from
AppInfoStatusFfiParceltoAppStatusFfiParcel, with the correspondingTypeParcelerannotation updated to referenceAppStatusFfiParceler. The structure and implementation remain sound.libraries/client/src/main/java/org/holochain/androidserviceruntime/client/Parcelers.kt (4)
131-131: LGTM!The
AppInfoFfiParcelercorrectly updated to useAppStatusFfiParcelfor reading and writing the status field, maintaining consistency with the renamed types.Also applies to: 141-141
10-37: Based on the provided review comment and verification context, I cannot find sufficient information to confirm or deny the breaking change claim regardingRoleSettingsFfiparceling index changes. The documentation search showed that theUseExistingvariant still exists in the sealed class hierarchy, which conflicts with the review comment's assertion that it was removed. Without direct access to the actual implementation files showing the current state, I must flag this for manual verification.Insufficient evidence to verify the RoleSettingsFfi parceling index change claim.
The review raises concerns about a potential breaking change in parcel index mappings for
RoleSettingsFfi, but verification is inconclusive:
- The code snippet shows only the
Provisionedvariant at index 1, with no handling forUseExisting- Documentation files discovered still reference
UseExistingas an existing variant of the sealed class- Without confirmed prior indexes and current communicating component versions, the actual impact cannot be determined
Ensure that:
- All service and client components are updated together in the same deployment
- Any pre-release or version-specific testing confirms backward compatibility or validates migration paths
- Internal documentation or CHANGELOG reflects this as a breaking change requiring coordinated rollout
450-474: Remove "uncoordinated" concern; verify migration strategy and old data handling.The index remapping is confirmed and intentional, part of commit 49cdd85 ("updates to ffi crates...work with hc 0.6"). Both Kotlin Parcelers.kt and Rust FFI types were updated atomically:
- OLD: 1→NeverStarted, 2→NotStartedAfterProvidingMemproofs, 3→DeletingAgentKey, 4→User, 5→Error
- NEW: 1→NeverStarted, 2→NotStartedAfterProvidingMemproofs, 3→User, 4→Error
However, there is no backwards compatibility or migration path. Old serialized parcels with index 3/4/5 will deserialize to wrong types (User→DeletingAgentKey mismatch). Verify that:
- Old cached/persistent parcel data is cleared or migrated on deployment
- This update is deployed atomically across all IPC consumers
- No stale parcel data exists from pre-upgrade instances
180-205: Ignore this review comment; the referenced previous parceler does not exist.The review references a "previous
AppInfoStatusFfiParceler" that is not found anywhere in the codebase—onlyAppStatusFfiParcelerexists. There is no prior implementation to break from, so the claim about a breaking change is incorrect. No versioning or migration scheme is mentioned or needed for this new parceler.However, a separate issue exists: the parceler is incomplete. The test
testAppStatusFfiParcelRunning()expectsAppStatusFfi.Runningto be parcelable, but thewrite()method (lines 196–205) andcreate()method have no case for theRunningstate. This will cause the test to fail.Likely an incorrect or invalid review comment.
libraries/client/docs/org.holochain.androidserviceruntime.client/index.md (1)
21-21: API surface changes correctly reflected in documentation — VERIFIED.The documentation accurately reflects the Holochain 0.6 API refactoring:
AppInfoFfi.statusfield type is correctly updated toAppStatusFfi(line 21), and all three newAppStatusFfifamily types are properly documented and linked (sealed class, parcel, parceler at lines 24–26). Source code verification confirmsAppStatusFfitypes exist inParcelers.ktandParcelables.kt, andAppInfoStatusFfihas been completely removed with no stale references remaining.
| url2 = { workspace = true } | ||
| serde = { workspace = true } No newline at end of file | ||
| serde = { workspace = true } | ||
| bytes = "1.10.1" |
There was a problem hiding this comment.
🧩 Analysis chain
Verify the new bytes dependency is actually used.
A new dependency bytes = "1.10.1" was added but the justification is unclear. Verify that this crate actually imports and uses the bytes crate, otherwise this introduces unnecessary supply-chain risk.
🏁 Script executed:
#!/bin/bash
# Check if bytes crate is imported in runtime-types-ffi
rg -n "use bytes" crates/runtime-types-ffi/src/
# Also check for any bytes:: usage
rg -n "bytes::" crates/runtime-types-ffi/src/Length of output: 0
---
🏁 Script executed:
```shell
#!/bin/bash
# Find the main entry point and structure of runtime-types-ffi
echo "=== Crate structure ==="
find crates/runtime-types-ffi -name "*.rs" -type f | head -20
echo -e "\n=== Search all .rs files for bytes imports/usage ==="
rg -n "bytes" crates/runtime-types-ffi/src/ --type rust
echo -e "\n=== Check lib.rs or main.rs for any bytes references ==="
if [ -f crates/runtime-types-ffi/src/lib.rs ]; then
cat crates/runtime-types-ffi/src/lib.rs | head -50
fi
echo -e "\n=== Check Cargo.toml to see if bytes is actually listed ==="
grep -A 2 -B 2 "bytes" crates/runtime-types-ffi/Cargo.toml
Length of output: 735
---
🏁 Script executed:
```shell
#!/bin/bash
# Check if bytes is transitively required by examining dependencies
echo "=== Check Cargo.toml dependencies ==="
cat crates/runtime-types-ffi/Cargo.toml
echo -e "\n=== Check if holochain or other deps transitively pull in bytes ==="
# Look at workspace Cargo.toml for holochain version
if [ -f Cargo.toml ]; then
grep -A 20 "^\[workspace" Cargo.toml | head -30
fi
echo -e "\n=== Verify bytes is NOT used in lib.rs full content ==="
cat crates/runtime-types-ffi/src/lib.rs
echo -e "\n=== Check types.rs for any bytes crate usage (context around 'bytes' mentions) ==="
rg -B 3 -A 3 "bytes" crates/runtime-types-ffi/src/types.rs --type rust
Length of output: 461
Remove the unused bytes dependency from line 19.
The bytes crate (1.10.1) appears to be unused in this crate. Code search found only false positives: .bytes() method calls on non-bytes objects, a bytes field name, and comments. No actual imports or usages of the bytes crate exist. Remove this dependency to eliminate unnecessary supply-chain risk.
🤖 Prompt for AI Agents
In crates/runtime-types-ffi/Cargo.toml around line 19, remove the unused
dependency bytes = "1.10.1" because the crate is not imported or referenced
anywhere; edit Cargo.toml to delete that dependency entry and run cargo
metadata/cargo build to verify no compilation or dependency resolution issues
remain, and update Cargo.lock by running cargo update if needed.
There was a problem hiding this comment.
I think this is right -- it looks like the crate isn't needed. If it is needed can we move the version number to the workspace Cargo.toml?
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check if bytes crate is actually imported or used in types.rs
echo "=== Checking for bytes imports in types.rs ==="
rg -n "^use.*bytes" crates/runtime-types-ffi/src/types.rs
echo -e "\n=== Checking for any bytes:: usage in types.rs ==="
rg -n "bytes::" crates/runtime-types-ffi/src/types.rs
echo -e "\n=== Checking for Bytes type usage (capital B) ==="
rg -n "\\bBytes\\b" crates/runtime-types-ffi/src/types.rs
echo -e "\n=== Check workspace Cargo.toml for bytes ==="
rg -n "^bytes" Cargo.toml
echo -e "\n=== Context around the .into() change in InstallAppPayloadFfi ==="
rg -B 5 -A 5 "AppBundleSource::Bytes" crates/runtime-types-ffi/src/types.rs
Length of output: 801
🏁 Script executed:
#!/bin/bash
# Check the InstallAppPayloadFfi definition to see what type source is
echo "=== Find InstallAppPayloadFfi struct definition ==="
rg -B 3 -A 10 "pub struct InstallAppPayloadFfi" crates/runtime-types-ffi/src/types.rs
# Check if holochain_conductor_api or holochain_types re-exports Bytes
echo -e "\n=== Check what AppBundleSource expects ==="
rg -B 2 -A 5 "enum AppBundleSource" crates/runtime-types-ffi/src/
# Alternative: search in holochain crate if available
echo -e "\n=== Check imports in types.rs to understand dependencies ==="
head -30 crates/runtime-types-ffi/src/types.rs
Length of output: 1452
@mattyg Good catch! The bytes dependency is actually needed for the Holochain 0.6 API update.
Looking at line 337 in types.rs, the code does AppBundleSource::Bytes(self.source.into()) which converts Vec<u8> to bytes::Bytes. This is required by the updated Holochain API in version 0.6.0.
However, you're absolutely right about using the workspace version! The workspace Cargo.toml already has bytes = "1.9.0" at line 46, but this crate added bytes = "1.10.1" directly, creating a version inconsistency.
Recommendation: Change line 19 in crates/runtime-types-ffi/Cargo.toml from:
bytes = "1.10.1"to:
bytes = { workspace = true }This will use the workspace version (1.9.0) and maintain consistency across the project.
|
✔️ e95e1b1...49cdd85 - Conventional commits check succeeded. |
cdunster
left a comment
There was a problem hiding this comment.
Just the question about the clone_limit change but it LGTM.
| network_seed: null | ||
| properties: null | ||
| installed_hash: null | ||
| clone_limit: 100 |
| # Contributing | ||
|
|
||
| To bump the holochain version you will need to update all holochain dependencies in the top-level `Cargo.toml` file, and then publish all the components listed in the following order: | ||
| To bump the holochain version you will need to do these things: |
There was a problem hiding this comment.
| To bump the holochain version you will need to do these things: | |
| ## Upgrading Holochain Version | |
| To upgrade the holochain version, follow these steps: |
|
|
||
| To bump the holochain version you will need to update all holochain dependencies in the top-level `Cargo.toml` file, and then publish all the components listed in the following order: | ||
| To bump the holochain version you will need to do these things: | ||
| 1. update all holochain dependencies in the top-level `Cargo.toml` file |
There was a problem hiding this comment.
| 1. update all holochain dependencies in the top-level `Cargo.toml` file | |
| 1. Update all holochain dependencies in the top-level `Cargo.toml` file, as well as `apps/example-client-app/Cargo.toml` |
| To bump the holochain version you will need to update all holochain dependencies in the top-level `Cargo.toml` file, and then publish all the components listed in the following order: | ||
| To bump the holochain version you will need to do these things: | ||
| 1. update all holochain dependencies in the top-level `Cargo.toml` file | ||
| 2. do a `nix flake update` before `nix develop` to bring down the latest Holochain version. Note that if you are updating to a major version you may need to change the source for `holonix.url` and `taurie-plugin-holochain.url` in the `flake.nix` file first. |
There was a problem hiding this comment.
| 2. do a `nix flake update` before `nix develop` to bring down the latest Holochain version. Note that if you are updating to a major version you may need to change the source for `holonix.url` and `taurie-plugin-holochain.url` in the `flake.nix` file first. | |
| 2. Update the nix flake: | |
| 1. Modify the `holonix.url` to the matching version of holonix. | |
| 2. Modify the `tauri-plugin-holochain.url` to the matching version of `tauri-plugin-holochain`. | |
| 3. Update the nix flake and re-enter the nix shell: `nix flake update && git add flake.nix flake.lock && nix develop`. |
| To bump the holochain version you will need to do these things: | ||
| 1. update all holochain dependencies in the top-level `Cargo.toml` file | ||
| 2. do a `nix flake update` before `nix develop` to bring down the latest Holochain version. Note that if you are updating to a major version you may need to change the source for `holonix.url` and `taurie-plugin-holochain.url` in the `flake.nix` file first. | ||
| 3. make any updates necessary to the crates due to any changes in Holochain. You should be able to check this by running `npm test` which should build all the crates and test the `client` and the `service` |
There was a problem hiding this comment.
| 3. make any updates necessary to the crates due to any changes in Holochain. You should be able to check this by running `npm test` which should build all the crates and test the `client` and the `service` | |
| 3. Make any changes necessary to the rust crates and kotlin libraries for compatibility with the upgraded Holochain. Build issues can be identified by running `npm test` which will build all the rust crates and test the `client` and the `service` kotlin libraries. |
| 1. update all holochain dependencies in the top-level `Cargo.toml` file | ||
| 2. do a `nix flake update` before `nix develop` to bring down the latest Holochain version. Note that if you are updating to a major version you may need to change the source for `holonix.url` and `taurie-plugin-holochain.url` in the `flake.nix` file first. | ||
| 3. make any updates necessary to the crates due to any changes in Holochain. You should be able to check this by running `npm test` which should build all the crates and test the `client` and the `service` | ||
| 4. if there have been major changes you many need to create new fixtures for the tests in `crates/runtime/fixtures` and `crates/runtime-ffi/fixtures` by using the scaffolding tool from the current version of Holochain to build the `forum.happ` file (which you do by running `hc-scaffold example` and the following the instructions to initialize the generated repo and finally running `npm run package`) |
There was a problem hiding this comment.
| 4. if there have been major changes you many need to create new fixtures for the tests in `crates/runtime/fixtures` and `crates/runtime-ffi/fixtures` by using the scaffolding tool from the current version of Holochain to build the `forum.happ` file (which you do by running `hc-scaffold example` and the following the instructions to initialize the generated repo and finally running `npm run package`) | |
| 4. If the Holochain upgrade is not compatible with `.happ` bundles built on the prior version, you will need to create a new fixture happ. To do so: | |
| 1. Update the example app in `apps/example-client-app` to be compatible with the upgraded Holochain version. | |
| 2. Bundle it into a `.happ` file with `npm run package`. | |
| 2. Copy the file `workdir/forum.happ` into `crates/runtime/fixtures`, as well as the `crates/runtime-ffi/fixtures`. |
| 2. do a `nix flake update` before `nix develop` to bring down the latest Holochain version. Note that if you are updating to a major version you may need to change the source for `holonix.url` and `taurie-plugin-holochain.url` in the `flake.nix` file first. | ||
| 3. make any updates necessary to the crates due to any changes in Holochain. You should be able to check this by running `npm test` which should build all the crates and test the `client` and the `service` | ||
| 4. if there have been major changes you many need to create new fixtures for the tests in `crates/runtime/fixtures` and `crates/runtime-ffi/fixtures` by using the scaffolding tool from the current version of Holochain to build the `forum.happ` file (which you do by running `hc-scaffold example` and the following the instructions to initialize the generated repo and finally running `npm run package`) | ||
| 5. Finally you to actually do a release you publish all the components listed in the following order: |
There was a problem hiding this comment.
| 5. Finally you to actually do a release you publish all the components listed in the following order: | |
| 5. Publish all the components listed in the following order: |
|
|
||
|
|
||
| # 0.2.3 | ||
| - integrate with Volla-Messages |
There was a problem hiding this comment.
What does this mean? Can we describe the actual change?
| - The 'Open Settings' button will first attempt to open the android-service-runtime app via the system settings (i.e. for 'system' builds). If that fails it will fallback to opening the app via the launcher (i.e. for 'user' builds). | ||
|
|
||
|
|
||
| # 0.2.3 |
There was a problem hiding this comment.
Should probably be a major or minor version bump when we upgrade holochain versions, not a patch.
| holochain_serialized_bytes = "0.0.56" | ||
| sodoken = "0.1.0" | ||
| url2 = "0.0.6" | ||
| lair_keystore_api = "0.6.2" |
There was a problem hiding this comment.
| lair_keystore_api = "0.6.3" |
| "uuid": "^11.1.0" | ||
| }, | ||
| "devDependencies": { | ||
| "@sveltejs/vite-plugin-svelte": "^3.1.2", |
There was a problem hiding this comment.
I believe this should match the svelte major version
There was a problem hiding this comment.
This is outside the workspace so you need to rebuild its Cargo.lock as well.
| "test": "pnpm run build:zomes && hc app pack workdir --recursive && pnpm run test --workspace tests", | ||
| "package": "pnpm run build:happ && pnpm run package --workspace ui && hc web-app pack workdir --recursive", | ||
| "build:happ": "pnpm run build:zomes && hc app pack workdir --recursive", | ||
| "build:zomes": "cargo build --release --target wasm32-unknown-unknown --workspace --exclude forum-tauri", |
There was a problem hiding this comment.
| "build:zomes": "RUSTFLAGS='--cfg getrandom_backend=\"custom\"' cargo build --release --target wasm32-unknown-unknown --workspace --exclude forum-tauri", |
| "bestzip": "^2.2.1", | ||
| "rimraf": "^5.0.10", | ||
| "svelte": "^4.0.0", | ||
| "svelte": "^5.0.0", |
There was a problem hiding this comment.
The svelte code won't be compatible with svelte 5.x -- if you want to bump svelte you could re-scaffold the forum example and copy in the relevant changes.
| flags: Int, | ||
| ) { | ||
| when (this) { | ||
| is RoleSettingsFfi.UseExisting -> { |
There was a problem hiding this comment.
This was deprecated, but not removed in 0.6, right?
There was a problem hiding this comment.
Nice! Thanks for adding to the developer docs.
It looks like there are some build issues in CI. I went over the code and requested some changes inline.
Also, I didn't get all the way to building and running the apps locally, but I will upon re-review.
Then before actually merging, I have 2 more requests:
- Before merging into
main-- can you create amain-0.5branch, so we can track the latest commit that is compatible with 0.5? - Rather than doing bumping the patch version for the crates, libraries, tauri plugins and example apps, can we do a major or minor version bump? Maybe this is a good time to just bump all the way to 0.6.0 to mirror holochain's version.
Summary
updates to crates due to changes in the Holochain API under 0.6 inlcudes:
PausedandRunningoptions in the renamed AppStatus enum (was AppInfoStatus)TODO:
pnpm run build:doc)Summary by CodeRabbit
New Features
Chores