Repository navigation
Run Octoscript mini apps with Matrix and shared Octos services - #24
Merged
Merged
Conversation
This was referenced Sep 26, 2026
Rinx no longer discovers AppCard's published connection. It consumes the
scoped assistant service of octosense-app-peers (OctoSense-System-Apps
crates/app-peers) in three deployments:
- Hosted: the OctoSense shell offers a service when it creates the Rinx
module; RinxModule::create claims it for its instance. No fallback
kernel, no AI credentials, no AppCard; without an offer Rinx has no
assistant. The module declares the four exact octos.* services.
- Standalone local: Rinx owns one runtime, the packaged octos beside the
executable (never PATH), under its own data root. It starts on the first
authorized request and stops on exit (only that runtime).
- Standalone remote: an explicit server authenticated by its token (kept in
memory only); the server provisions the workspace and keeps running.
Every mini-app instance gets its own kernel request context of Rinx's peer
(separate transcript, workspace and memory namespace; octos UPCR-2026-034).
Admission and dispatch use exact service names, account changes revoke,
hosted close releases, and stale replies are dropped. The octos-local and
octos-remote features keep the runtime out of octosense-module builds.
Adds ADR 0007 with its implementation record, and process-level tests
against a real kernel and a real authenticated octos serve with scripted
models (tests/standalone_{local,remote}.rs, gated on RINX_TEST_OCTOS_BIN).
App Hub moves to 46d67e51, which publishes the service names.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
makepad db4691d0 (makepad#35) and OctoScript-Makepad c3d53ba8 (#46) carry the Splash reapply_text and stateful-input support the mini-app host uses on the current runtime (d0a9def5 / 99c1e5ee), so OctoSense shells can link Rinx at their pins. octosense-app-peers 4fa0f122 carries the kernel's host token (octos UPCR-2026-034 review); Rinx keeps it under octos/peers (0600) so a restart resumes its peer. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
One source identity for octosense-app-policy when a shell links Rinx, without URL-alias patches. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Host-owned Octos app peers and Rinx deployment modes (ADR 0007)
Contributor
Author
|
ADR 0007 (host-owned Octos app peers and Rinx deployment modes) is now stacked onto this branch via #25: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rinx can import and review local OctoSense mini-app bundles (
main.splashor L0), run their native UI, and expose the A2App-compatible Matrix service contract plus scoped Octos session/turn services. Hosted Rinx captures AppCard's existing core connection; standalone Rinx can explicitly configure a provider.The mobile article editor now keeps compact controls inside the header. Rinx also publishes its resource directory to cargo-makepad when linked as a Git dependency, so hosted Android builds include navigation icons. OnePlus 6 native validation confirmed saved text visible with the IME open, switching to Preview dismissing the IME, Back returning to the library, and the Back arrow visible. The final APK contains all 97 Rinx resource files. Full-screen containment and keyboard resizing are in the coordinated ROM PR.
The host freezes and verifies bundle bytes, enforces declared/user-granted capabilities and optional room boundaries, revokes work on account changes or close, and handles native tool approval outside the script. Adds ADR 0005, both example formats, a packaging helper, and desktop/mobile entry points. Matrix SDK is pinned to the tested 0.18 revision. Signed catalog installation and A2App watch/share lifecycle are outside this change.
Validation: 30 portable contract tests and 8 Rinx integration tests pass. Native Metal on MacBook and GLES on OnePlus 6 exercised both formats, live Matrix profile, shared Octos session/history, input, close/reopen, Back key and system edge swipe. Release desktop/APK builds passed. Published Cargo metadata confirms one Makepad, one Octoscript runtime, one transport and one core; all dependency pins are published commits.
Known limits: native tool approvals remain unverified. Write-side Matrix calls and standalone remote-provider UI were not live-tested. Seven AppCard failures reproduce on unchanged upstream app sources and are recorded in the ADR. The OnePlus run used a separate test package with current ROM Home code; no system image was flashed.
Dependencies (land before consumer PRs; pins already reference their exact commits):
Publication checks: release library check passes; 40 portable article tests pass with refreshed standalone lockfiles; the i18n catalog check passes. The unrelated local homeserver timeout change is excluded.
Coordinated integration PRs:
Live generation: both
main.splashand L0 mini apps received realdeepseek-v4-flashanswers through Rinx and the shared AppCard core on MacBook and OnePlus 6. The desktop L0 test rendered42for 17 + 25. The phone test caught a saved answer arriving before the final stream fragments; Rinx commitd2469eabignores those late fragments for persisted segments, with a regression test. Both phone formats were retested and their displayed answers matched the saved core text. One shared core process was verified. Credentials remain in private test profiles. Native tool approvals remain unverified.