Skip to content

Updates hc 0.6#135

Open
zippy wants to merge 6 commits into
mainfrom
updates-hc-0.6
Open

Updates hc 0.6#135
zippy wants to merge 6 commits into
mainfrom
updates-hc-0.6

Conversation

@zippy

@zippy zippy commented Nov 11, 2025

Copy link
Copy Markdown
Member

Summary

updates to crates due to changes in the Holochain API under 0.6 inlcudes:

  • removing Paused and Running options in the renamed AppStatus enum (was AppInfoStatus)
  • updating the Kotlin parcelers
  • updating the fixtures and example app
  • updating tests
  • updating the docs
  • updating the DEVELOPMENT.md readme with better instructions for when updating a major Holochain version.

TODO:

  • CHANGELOG(s) updated with appropriate info
  • docs updated (pnpm run build:doc)

Summary by CodeRabbit

  • New Features

    • Integrated Volla-Messages support.
  • Chores

    • Upgraded Holochain to 0.6.0-rc.0 and related dependencies.
    • Updated development tooling and build configurations.
    • Bumped package versions for runtime, client, and service components.
    • Updated build dependencies for Android, Gradle, and npm packages.

@zippy zippy requested review from Amirhesp and mattyg November 11, 2025 01:40
@zippy zippy had a problem deploying to Android Service Runtime Release November 11, 2025 01:40 — with GitHub Actions Failure
@zippy zippy had a problem deploying to Android Service Runtime Release November 11, 2025 01:40 — with GitHub Actions Failure
@zippy zippy had a problem deploying to Android Service Runtime Release November 11, 2025 01:40 — with GitHub Actions Failure
@coderabbitai

coderabbitai Bot commented Nov 11, 2025

Copy link
Copy Markdown

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

This 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

Cohort / File(s) Summary
Release & Version Management
CHANGELOG.md, crates/runtime*/Cargo.toml, crates/tauri-plugin*/Cargo.toml, crates/runtime/Cargo.toml, apps/android-service-runtime/package.json, apps/android-service-runtime/src-tauri/Cargo.toml, apps/android-service-runtime/src-tauri/tauri.conf.json
Version bumps across workspace crates from 0.2.2 to 0.2.3; Android runtime app bumped to 0.1.6; new changelog entries for holochain 0.6.0-rc.0 integration
Holochain Workspace Dependency Updates
Cargo.toml, apps/example-client-app/Cargo.toml, apps/example-client-app/package.json, flake.nix
Updated holochain, holochain_conductor_api, and holochain_types from 0.5.6 to 0.6.0-rc.0; hdi/hdk deps updated to 0.7.0-rc.0/0.6.0-rc.0; hc-spin and holochain client frontend deps bumped; flake inputs updated to holonix/main-0.6
FFI Type System Refactoring
crates/runtime-types-ffi/Cargo.toml, crates/runtime-types-ffi/src/types.rs
Removed PausedAppReasonFfi and UseExisting variant; renamed AppInfoStatusFfi to AppStatusFfi; changed Running to Enabled, Paused to Disabled; updated DisabledAppReasonFfi to remove DeletingAgentKey variant; added bytes = "1.10.1" dependency
Runtime Implementation Updates
crates/runtime-ffi/src/runtime.rs, crates/runtime/src/runtime.rs, crates/runtime/src/config.rs
Updated test expectations for renamed AppStatusFfi types; modified AppEnabled handling to remove conditional error logic; added danger_bind_addr: None to AttachAppInterface; removed device_seed_lair_tag initialization
Link Query API Migration
apps/example-client-app/dnas/forum/zomes/coordinator/posts/Cargo.toml, apps/example-client-app/dnas/forum/zomes/coordinator/posts/src/all_posts.rs, apps/example-client-app/dnas/forum/zomes/coordinator/posts/src/comment.rs, apps/example-client-app/dnas/forum/zomes/coordinator/posts/src/post.rs
Replaced GetLinksInputBuilder with LinkQuery::try_new; added GetStrategy::default() calls; updated delete_link to pass GetOptions::default(); added holochain_serialized_bytes dependency
DNA & HAPP Manifest Updates
apps/example-client-app/dnas/forum/workdir/dna.yaml, apps/example-client-app/workdir/happ.yaml, apps/example-client-app/workdir/web-happ.yaml
Changed manifest_version from '1' to '0'; replaced bundled: with path: field references; updated clone_limit from 100 to 0 in happ.yaml
Android Client Library Type Updates
libraries/client/src/main/java/org/holochain/androidserviceruntime/client/Json.kt, libraries/client/src/main/java/org/holochain/androidserviceruntime/client/Parcelables.kt, libraries/client/src/main/java/org/holochain/androidserviceruntime/client/Parcelers.kt, libraries/client/src/androidTest/kotlin/JsonTest.kt, libraries/client/src/androidTest/kotlin/ParcelablesTest.kt
Replaced AppInfoStatusFfi with AppStatusFfi; removed PausedAppReasonFfiParcel; updated parceler type mappings for Enabled/AwaitingMemproofs variants; removed UseExisting role setting variant; updated test assertions
Android Library Version & Documentation
libraries/client/README.md, libraries/client/build.gradle.kts, libraries/service/README.md, libraries/service/build.gradle.kts, crates/tauri-plugin-client/Cargo.toml, crates/tauri-plugin-client/android/build.gradle.kts, crates/tauri-plugin-service/Cargo.toml, crates/tauri-plugin-service/android/build.gradle.kts
Bumped Android client/service library versions from 0.0.19 to 0.0.20; updated Maven publishing coordinates and build dependencies; updated tauri-plugin dependency versions to 0.2.3
Auto-Generated FFI Documentation
libraries/client/docs/org.holochain.androidserviceruntime.client/*
Comprehensive documentation updates reflecting AppStatusFfi rename from AppInfoStatusFfi; removed documentation for PausedAppReasonFfi, PausedAppReasonFfiParcel/Parceler, and RoleSettingsFfi.UseExisting; added documentation for new AppStatusFfi variants (Enabled); updated Disabled variant documentation; updated package-list index
Development Process Documentation
DEVELOPMENT.md
Replaced single-sentence holochain version bump instruction with detailed enumerated checklist including Cargo.toml updates, nix flake updates, crate validation via npm test, fixture creation, and component publication sequence

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60–90 minutes

  • crates/runtime-types-ffi/src/types.rs: Major FFI type system refactoring with removal of PausedAppReasonFfi, renaming of AppInfoStatusFfi to AppStatusFfi, variant changes (Running→Enabled, Paused removal), and removal of DeletingAgentKey variant—requires verification of all conversion paths and impact on dependent types
  • crates/runtime/src/runtime.rs: AppEnabled error handling simplified from conditional logic on errors field to unconditional Ok(app); verify this change doesn't lose error context needed elsewhere
  • apps/example-client-app/dnas/forum/zomes/coordinator/posts/src/*.rs: LinkQuery migration pattern appears across three files with GetStrategy::default() additions and GetOptions::default() for delete_link—verify consistency and correctness of strategy application
  • Parceler type mappings in Kotlin: DisabledAppReasonFfiParceler read/write tag remapping (removing DeletingAgentKey index) requires verification of serialization compatibility and test coverage
  • Manifest version changes: Verify DNA and HAPP manifest v1→v0 migration impact on runtime behavior and backward compatibility

Possibly related PRs

  • Chore/v0.1.5 #133: Related release PR performing holochain workspace dependency version bumps and changelog entries for 0.6.0-rc.0 integration

Suggested reviewers

  • mattyg

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings, 1 inconclusive)
Check name Status Explanation Resolution
Description check ⚠️ Warning The description covers the changes well and follows the template structure, but both TODO items remain incomplete (both unchecked), indicating the PR is not yet ready. Complete the TODO items before merging: update CHANGELOG(s) with appropriate info and run 'pnpm run build:doc' to update generated documentation.
Docstring Coverage ⚠️ Warning Docstring coverage is 36.36% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check ❓ Inconclusive The title 'Updates hc 0.6' is vague and lacks specificity about what changed, using an abbreviation without context. Provide a more descriptive title that clearly conveys the main change, such as 'Update Holochain dependencies to 0.6.0-rc.0' or 'Migrate to Holochain 0.6.0-rc.0 with API refactoring'.

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 and usage tips.

@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: 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 AppInfoStatusFfiAppStatusFfi, GetLinksInputBuilderLinkQuery, removal of Paused/Running states), 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 Disabled variant of AppStatusFfi. Consider adding tests for Enabled, AwaitingMemproofs, and Running variants to ensure complete JSON serialization coverage for all status types.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4514bf6 and 49cdd85.

⛔ Files ignored due to path filters (2)
  • Cargo.lock is excluded by !**/*.lock
  • flake.lock is 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.kts for 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 AppStatusFfi type rename (from AppInfoStatusFfi), 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.json and 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_bytes as 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 AppStatusFfiParcel constructor, consistent with the rename from AppInfoStatusFfi to AppStatusFfi described 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 GetLinksInputBuilder to LinkQuery::try_new() with explicit GetStrategy::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_links call to use LinkQuery with GetStrategy::default(), and the delete_link call to explicitly pass GetOptions::default().

apps/example-client-app/dnas/forum/zomes/coordinator/posts/src/all_posts.rs (1)

7-10: LGTM! Correct LinkQuery migration.

The migration from GetLinksInputBuilder to LinkQuery::try_new() with GetStrategy::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 AppStatusFfi type, consistent with the broader migration from AppInfoStatusFfi to AppStatusFfi across 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_links migration to LinkQuery with GetStrategy::default() and the delete_link call with explicit GetOptions::default() are correctly updated for Holochain 0.6.


97-100: LGTM! Correct LinkQuery migration.

The function correctly uses LinkQuery::try_new() with GetStrategy::default(), consistent with the API changes across the codebase.


107-110: LGTM! Correct get_links_details migration.

The migration to get_links_details with LinkQuery and GetStrategy::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 status parameter type from AppInfoStatusFfi to AppStatusFfi, 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-ffi are 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 AppStatusFfiParceler object and its functions, reflecting the rename from AppInfoStatusFfiParceler to AppStatusFfiParceler as 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 AppInfoStatusFfi to AppStatusFfi is 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::Enabled instead of the previous AppInfoStatusFfi::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::Disabled structure with the reason field set to DisabledAppReasonFfi::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 AppStatusFfiParceler rename from AppInfoStatusFfiParceler, 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 AwaitingMemproofs status variant as part of the updated AppStatusFfi API 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 status property type from AppInfoStatusFfi to AppStatusFfi, 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 AppInfoFfi constructor signature correctly uses AppStatusFfi instead of AppInfoStatusFfi, 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 status property documentation correctly references AppStatusFfi instead 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 (AppInfoStatusFfiParcelerAppStatusFfiParceler) and the return type update to AppStatusFfi.

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 Enabled status variant, which replaces the previous Running state in the updated AppStatusFfi API for Holochain 0.6.

libraries/client/src/androidTest/kotlin/ParcelablesTest.kt (2)

11-12: LGTM!

The import updates correctly reflect the API rename from AppInfoStatusFfi to AppStatusFfi.


326-377: LGTM!

The parcel tests comprehensively cover all AppStatusFfi variants (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 returning app. 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_addr field is set to None. 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::Bytes construction now uses .into() to convert Vec<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 AppInfoStatusFfiParcel to AppStatusFfiParcel, with the corresponding TypeParceler annotation updated to reference AppStatusFfiParceler. The structure and implementation remain sound.

libraries/client/src/main/java/org/holochain/androidserviceruntime/client/Parcelers.kt (4)

131-131: LGTM!

The AppInfoFfiParceler correctly updated to use AppStatusFfiParcel for 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 regarding RoleSettingsFfi parceling index changes. The documentation search showed that the UseExisting variant 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 Provisioned variant at index 1, with no handling for UseExisting
  • Documentation files discovered still reference UseExisting as an existing variant of the sealed class
  • Without confirmed prior indexes and current communicating component versions, the actual impact cannot be determined

Ensure that:

  1. All service and client components are updated together in the same deployment
  2. Any pre-release or version-specific testing confirms backward compatibility or validates migration paths
  3. 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:

  1. Old cached/persistent parcel data is cleared or migrated on deployment
  2. This update is deployed atomically across all IPC consumers
  3. 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—only AppStatusFfiParceler exists. 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() expects AppStatusFfi.Running to be parcelable, but the write() method (lines 196–205) and create() method have no case for the Running state. 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.status field type is correctly updated to AppStatusFfi (line 21), and all three new AppStatusFfi family types are properly documented and linked (sealed class, parcel, parceler at lines 24–26). Source code verification confirms AppStatusFfi types exist in Parcelers.kt and Parcelables.kt, and AppInfoStatusFfi has been completely removed with no stale references remaining.

Comment thread apps/example-client-app/dnas/forum/workdir/dna.yaml
Comment thread apps/example-client-app/workdir/web-happ.yaml
url2 = { workspace = true }
serde = { workspace = true } No newline at end of file
serde = { workspace = true }
bytes = "1.10.1"

@coderabbitai coderabbitai Bot Nov 11, 2025

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 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.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

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?

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🧩 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.

@cocogitto-bot

cocogitto-bot Bot commented Nov 11, 2025

Copy link
Copy Markdown

✔️ e95e1b1...49cdd85 - Conventional commits check succeeded.

@Amirhesp Amirhesp had a problem deploying to Android Service Runtime Release November 11, 2025 10:30 — with GitHub Actions Failure
@Amirhesp Amirhesp had a problem deploying to Android Service Runtime Release November 11, 2025 10:30 — with GitHub Actions Failure
@Amirhesp Amirhesp had a problem deploying to Android Service Runtime Release November 11, 2025 10:30 — with GitHub Actions Failure

@cdunster cdunster 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.

Just the question about the clone_limit change but it LGTM.

network_seed: null
properties: null
installed_hash: null
clone_limit: 100

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Was this a deliberate change?

@Amirhesp Amirhesp deployed to Maven Central Release November 11, 2025 10:36 — with GitHub Actions Active
@Amirhesp Amirhesp had a problem deploying to Maven Central Release November 11, 2025 11:12 — with GitHub Actions Failure
Comment thread DEVELOPMENT.md
# 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:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
To bump the holochain version you will need to do these things:
## Upgrading Holochain Version
To upgrade the holochain version, follow these steps:

Comment thread DEVELOPMENT.md

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

@mattyg mattyg Nov 11, 2025

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
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`

Comment thread DEVELOPMENT.md
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.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
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`.

Comment thread DEVELOPMENT.md
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`

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
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.

Comment thread DEVELOPMENT.md
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`)

@mattyg mattyg Nov 11, 2025

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
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`.

Comment thread DEVELOPMENT.md
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:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
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:

Comment thread CHANGELOG.md


# 0.2.3
- integrate with Volla-Messages

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

What does this mean? Can we describe the actual change?

Comment thread CHANGELOG.md
- 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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should probably be a major or minor version bump when we upgrade holochain versions, not a patch.

Comment thread Cargo.toml
holochain_serialized_bytes = "0.0.56"
sodoken = "0.1.0"
url2 = "0.0.6"
lair_keystore_api = "0.6.2"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
lair_keystore_api = "0.6.3"

"uuid": "^11.1.0"
},
"devDependencies": {
"@sveltejs/vite-plugin-svelte": "^3.1.2",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I believe this should match the svelte major version

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

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",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
"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",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

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 -> {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This was deprecated, but not removed in 0.6, right?

@mattyg mattyg left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

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 a main-0.5 branch, 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.

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.

4 participants