Skip to content

Preserve mobile Back dispatch with hosted Rinx - #41

Merged
ymote merged 4 commits into
mainfrom
feat/rinx-miniapps-latest
Sep 27, 2026
Merged

ymote merged 4 commits into
mainfrom
feat/rinx-miniapps-latest

Conversation

@ymote

@ymote ymote commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor

Forward mobile platform Back events into the foreground module before returning Home, so closing a Rinx mini app keeps navigation inside Rinx when the app handles Back.

Merge current main and preserve its hosted Rinx integration: the shell owns the shared Octos kernel, provider configuration and app-peer service. AppCard stays opt-in. Use canonical App Hub 46d67e51, the current prepared runtime/System Apps sources, and merged Rinx 5cf70a82. Remove the old App Hub URL-alias workaround.

Validation: locked mobile-apps build and workspace build with optional AppCard enabled; prepared-source and single-runtime checks; hosted Rinx/shared-kernel/AppCard-exclusion dependency checks on macOS and aarch64 Android; three Android kernel packaging tests. No phone installation or live Matrix/LLM test in this update.

@ymote

ymote commented Sep 27, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #50 (merged, c806921): hosted Rinx lands on current pins — App Hub 46d67e51 (no www.github.com patch), OctoScript-Makepad c3d53ba8 / makepad db4691d0, System-Apps cc1cee3e — with AppCard still opt-in. Rinx's assistant is the shell's (Rinx ADR 0007): a scoped octosense-app-peers service injected at module creation, backed by an octos peer owned by the system agent on the shell kernel; Rinx never starts a kernel or borrows AppCard's connection.

@ymote ymote closed this Sep 27, 2026
@ymote ymote changed the title Enable Rinx mini apps with the shared Octos runtime Preserve mobile Back dispatch with hosted Rinx Sep 27, 2026
@ymote ymote reopened this Sep 27, 2026
@ymote
ymote merged commit 1e8b217 into main Sep 27, 2026
2 checks passed
ymote added a commit to amosarc/OctoSense-Desktop that referenced this pull request Sep 27, 2026
- Apps' assistant access: src/app_peers_host.rs gives each native module
  whose declared octos.* services host policy grants a scoped service from
  octosense-app-peers (System-Apps crates/app-peers), offered for the
  duration of its create and released at teardown. It is backed by ONE octos
  peer per app and account, owned by the system agent
  _main:api:octosense#system, on the shell's kernel. Modules without granted
  services get no peer.
- Rinx (app-rinx, now in default) at hagency-org/Rinx with octosense-module
  only; app-rinx implies octos-core. CI checks that Rinx's standalone entry
  and local kernel stay out of the graph; System-Apps crates resolve to the
  sibling checkout (no URL aliases).
- Runtime: OctoScript-Makepad c3d53ba8 (makepad db4691d0: Splash
  reapply_text, stateful mini-app inputs); System-Apps 4fa0f122 (app-peers).

AppCard stays opt-in. Supersedes OctoSense-org#41.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
ymote added a commit that referenced this pull request Sep 28, 2026
Terminal was a developer program: built on first launch from the Makepad
checkout, then run as a child process. It now links in-process like Rinx:
the new `app-terminal` feature (on in the desktop's default set) registers
makepad-terminal's TERMINAL_MODULE, and `terminal` joins robrix and finance
as a module hosted in-process by default unless the person switched it
(`terminal: Process` in wm/apps.splash keeps the process form, whose
config/apps.json row stays).

- Opens instantly: no compile on first launch, no swapchain round trip.
- On macOS its PTY helper is `octosense` itself (Cx::pre_start answers
  `--exec-pty`), so nothing ships beside the binary.
- It declares `process` and `clipboard` and no `octos.*` service. The
  assistant gets read_screen and read_scrollback only; `run` (an unsandboxed
  shell, rated Risk::Act) is not offered by a default system app.
- Phone builds are unchanged: `mobile-apps` does not include it.

Builds on the current makepad pin (75e3e24d), which already carries
TERMINAL_MODULE, the PTY-helper fallback and the macOS signal-wake fix
(OctoSense-org/makepad #40, #41); Cargo.toml pins makepad-terminal there.
Tabs, panes, settings and terminal-ctl (makepad #47) arrive with a later
pin bump.

Verified locally with those makepad commits applied under .sources/makepad:
- cargo check --locked -p octosense (and --features mobile-apps)
- bash tools/check-shell-graph.sh -p octosense
- cargo test --locked -p octosense-shell --features app-terminal: 333 passed
- from phone/: cargo test --locked --features mobile-apps -p octosense-shell:
  342 passed
- hidden desktop over MAKEPAD_REMOTE: Terminal opens from the dock as
  "in-process, terminal"; the shell's parent is octosense; octoscode's
  composer stayed clean on 3 of 3 launches; closing the tile ended zsh and
  octoscode and freed the isolate; two Terminals ran two shells.
Rebased onto main: cargo build --locked -p octosense and
tools/check-shell-graph.sh pass against the pinned makepad with the reviewed
runtime patches; cargo test -p octosense-shell --features app-terminal: 345 passed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ymote added a commit that referenced this pull request Sep 28, 2026
Terminal was a developer program: built on first launch from the Makepad
checkout, then run as a child process. It now links in-process like Rinx:
the new `app-terminal` feature (on in the desktop's default set) registers
makepad-terminal's TERMINAL_MODULE, and `terminal` joins robrix and finance
as a module hosted in-process by default unless the person switched it
(`terminal: Process` in wm/apps.splash keeps the process form, whose
config/apps.json row stays).

- Opens instantly: no compile on first launch, no swapchain round trip.
- On macOS its PTY helper is `octosense` itself (Cx::pre_start answers
  `--exec-pty`), so nothing ships beside the binary.
- It declares `process` and `clipboard` and no `octos.*` service. The
  assistant gets read_screen and read_scrollback only; `run` (an unsandboxed
  shell, rated Risk::Act) is not offered by a default system app.
- Phone builds are unchanged: `mobile-apps` does not include it.

Builds on the current makepad pin (75e3e24d), which already carries
TERMINAL_MODULE, the PTY-helper fallback and the macOS signal-wake fix
(OctoSense-org/makepad #40, #41); Cargo.toml pins makepad-terminal there.
Tabs, panes, settings and terminal-ctl (makepad #47) arrive with a later
pin bump.

Verified locally with those makepad commits applied under .sources/makepad:
- cargo check --locked -p octosense (and --features mobile-apps)
- bash tools/check-shell-graph.sh -p octosense
- cargo test --locked -p octosense-shell --features app-terminal: 333 passed
- from phone/: cargo test --locked --features mobile-apps -p octosense-shell:
  342 passed
- hidden desktop over MAKEPAD_REMOTE: Terminal opens from the dock as
  "in-process, terminal"; the shell's parent is octosense; octoscode's
  composer stayed clean on 3 of 3 launches; closing the tile ended zsh and
  octoscode and freed the isolate; two Terminals ran two shells.
Rebased onto main: cargo build --locked -p octosense and
tools/check-shell-graph.sh pass against the pinned makepad with the reviewed
runtime patches; cargo test -p octosense-shell --features app-terminal: 345 passed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ymote added a commit that referenced this pull request Sep 28, 2026
Terminal was a developer program: built on first launch from the Makepad
checkout, then run as a child process. It now links in-process like Rinx:
the new `app-terminal` feature (on in the desktop's default set) registers
makepad-terminal's TERMINAL_MODULE, and `terminal` joins robrix and finance
as a module hosted in-process by default unless the person switched it
(`terminal: Process` in wm/apps.splash keeps the process form, whose
config/apps.json row stays).

- Opens instantly: no compile on first launch, no swapchain round trip.
- On macOS its PTY helper is `octosense` itself (Cx::pre_start answers
  `--exec-pty`), so nothing ships beside the binary.
- It declares `process` and `clipboard` and no `octos.*` service. The
  assistant gets read_screen and read_scrollback only; `run` (an unsandboxed
  shell, rated Risk::Act) is not offered by a default system app.
- Phone builds are unchanged: `mobile-apps` does not include it.

Builds on the current makepad pin (75e3e24d), which already carries
TERMINAL_MODULE, the PTY-helper fallback and the macOS signal-wake fix
(OctoSense-org/makepad #40, #41); Cargo.toml pins makepad-terminal there.
Tabs, panes, settings and terminal-ctl (makepad #47) arrive with a later
pin bump.

Verified locally with those makepad commits applied under .sources/makepad:
- cargo check --locked -p octosense (and --features mobile-apps)
- bash tools/check-shell-graph.sh -p octosense
- cargo test --locked -p octosense-shell --features app-terminal: 333 passed
- from phone/: cargo test --locked --features mobile-apps -p octosense-shell:
  342 passed
- hidden desktop over MAKEPAD_REMOTE: Terminal opens from the dock as
  "in-process, terminal"; the shell's parent is octosense; octoscode's
  composer stayed clean on 3 of 3 launches; closing the tile ended zsh and
  octoscode and freed the isolate; two Terminals ran two shells.
Rebased onto main: cargo build --locked -p octosense and
tools/check-shell-graph.sh pass against the pinned makepad with the reviewed
runtime patches; cargo test -p octosense-shell --features app-terminal: 345 passed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
chrislearn pushed a commit to chrislearn/OctoSense that referenced this pull request Sep 29, 2026
…-location

ADRs 0002/0003: the hub's code lives in octosense-app-hub
chrislearn pushed a commit to chrislearn/OctoSense that referenced this pull request Sep 29, 2026
- Apps' assistant access: src/app_peers_host.rs gives each native module
  whose declared octos.* services host policy grants a scoped service from
  octosense-app-peers (System-Apps crates/app-peers), offered for the
  duration of its create and released at teardown. It is backed by ONE octos
  peer per app and account, owned by the system agent
  _main:api:octosense#system, on the shell's kernel. Modules without granted
  services get no peer.
- Rinx (app-rinx, now in default) at hagency-org/Rinx with octosense-module
  only; app-rinx implies octos-core. CI checks that Rinx's standalone entry
  and local kernel stay out of the graph; System-Apps crates resolve to the
  sibling checkout (no URL aliases).
- Runtime: OctoScript-Makepad c3d53ba8 (makepad db4691d0: Splash
  reapply_text, stateful mini-app inputs); System-Apps 4fa0f122 (app-peers).

AppCard stays opt-in. Supersedes OctoSense-org#41.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
chrislearn pushed a commit to chrislearn/OctoSense that referenced this pull request Sep 29, 2026
…apps-latest

Preserve mobile Back dispatch with hosted Rinx
chrislearn pushed a commit to chrislearn/OctoSense that referenced this pull request Sep 29, 2026
… Hub 64bd6c01

makepad main 975c5630 adds OctoSense-org#37 (Slug text in one supersample loop), OctoSense-org#39
(cursor and glass shaders with one call site per figure and blur level),
OctoSense-org#38 (PerfGraph quads) and OctoSense-org#40 + OctoSense-org#41 (in-process terminal module; its
`run` needs the person's confirmation). Octoscript-Makepad#49 releases it;
App Hub#21 pins the same set.

The makepad-settings runtime patch reapplies unchanged on the new base
(same sha256); runtime-patches.lock.json records the new base and tree.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
chrislearn pushed a commit to chrislearn/OctoSense that referenced this pull request Sep 29, 2026
makepad main b0cbc9bc adds OctoSense-org#41 (the terminal asks the person to confirm
each run before it types into the shell) and OctoSense-org#42 (a resting finger on a
trackpad or Magic Mouse no longer scrolls mouse-reporting apps such as
Claude Code; FingerScrollEvent gains is_mouse). Octoscript-Makepad#51
releases it as 6351524b.

run_view forwards is_mouse from the scroll itself: it sent
e.device.is_mouse(), which is always true for scrolls, so a hosted
terminal took every trackpad delta for a wheel notch and still scrolled
a line per sub-pixel jitter.

The makepad-settings runtime patch reapplies unchanged on the new base
(same sha256); runtime-patches.lock.json records the new base and tree.
App Hub and Rinx pins are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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