Skip to content

Run Octoscript mini apps with Matrix and shared Octos services - #24

Merged
ymote merged 11 commits into
mainfrom
feat/octoscript-miniapps
Sep 27, 2026
Merged

ymote merged 11 commits into
mainfrom
feat/octoscript-miniapps

Conversation

@ymote

@ymote ymote commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor

Rinx can import and review local OctoSense mini-app bundles (main.splash or 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.splash and L0 mini apps received real deepseek-v4-flash answers through Rinx and the shared AppCard core on MacBook and OnePlus 6. The desktop L0 test rendered 42 for 17 + 25. The phone test caught a saved answer arriving before the final stream fragments; Rinx commit d2469eab ignores 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.

ymote and others added 4 commits September 26, 2026 13:28
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>
ymote and others added 5 commits September 26, 2026 20:29
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)
@ymote

ymote commented Sep 27, 2026

Copy link
Copy Markdown
Contributor Author

ADR 0007 (host-owned Octos app peers and Rinx deployment modes) is now stacked onto this branch via #25: KernelProvider::shared / AppCard discovery are replaced by the scoped octosense-app-peers service (hosted, standalone local, standalone remote), Rinx is on makepad db4691d0 / OctoScript-Makepad c3d53ba8 / App Hub 46d67e51, and CI passes on the stacked head (run 36293588084). Note for the local working tree with uncommitted ADR 0006/0007 changes: please rebase onto this branch; the uncommitted HostedRinxModule/OctosHost boundary is superseded by #25's design.

@ymote
ymote merged commit 5cf70a8 into main Sep 27, 2026
2 checks passed
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.

1 participant