commit bb8c76c25027b2c8871c35fec82fe3b75bab6d05
parent 2626ab342494a993f277cb3ebf8bdec7536b8a31
Author: triesap <tyson@radroots.org>
Date: Sun, 2 Aug 2026 19:37:06 +0000
build(core): verify the native FFI library
- build the UniFFI crate as a current-host dynamic library
- retain the Rust library form for workspace verification
- document the canonical Cargo artifact location
- record the successful native artifact checkpoint
Diffstat:
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/docs/architecture/rust-ffi-boundary.md b/docs/architecture/rust-ffi-boundary.md
@@ -25,3 +25,17 @@ The public snapshot DTO carries revisioned lifecycle, account, session, relay,
profile, and safe-error values. It contains no credential field. A generated
account's nsec is confined to the explicit one-time receipt added with the
command boundary.
+
+## Native artifact
+
+The FFI crate builds as both an `rlib` for Rust tests and a `cdylib` for the JVM
+binding. Build the current-host development artifact from the capsule root:
+
+```sh
+cargo build --manifest-path core/Cargo.toml -p radroots-studio-ffi
+```
+
+On macOS this produces
+`core/target/debug/libradroots_studio_ffi.dylib`. Other desktop hosts use the
+platform-equivalent `radroots_studio_ffi` dynamic-library filename under the
+same Cargo profile directory.
diff --git a/docs/implementation/nostr-runtime-rcld.md b/docs/implementation/nostr-runtime-rcld.md
@@ -524,7 +524,7 @@ handoff commit sequence.
- [x] 41. Create UniFFI scaffolding and DTO mapping.
- [x] 42. Expose approved AppCore commands through UniFFI.
- [x] 43. Expose observer callback and deregistration through UniFFI.
-- [ ] 44. Build native library artifacts from Cargo.
+- [x] 44. Build native library artifacts from Cargo.
- [ ] 45. Add Gradle task for Cargo build.
- [ ] 46. Add Gradle UniFFI binding generation and generated source set.
- [ ] 47. Stage native library for development, tests, and packaged app.