Skip to content

desktop: link the two app-open how-to guides from the docs row - #234

Closed
amosarc wants to merge 64 commits into
OctoSense-org:mainfrom
amosarc:docs/open-makepad-apps
Closed

amosarc wants to merge 64 commits into
OctoSense-org:mainfrom
amosarc:docs/open-makepad-apps

Conversation

@amosarc

@amosarc amosarc commented Sep 30, 2026

Copy link
Copy Markdown
Contributor

Adds open-apps.md and add-all-makepad-apps.md to the docs/ row of desktop/README.md. The guide bodies already landed under desktop/docs/ in the repo restructure; this just makes them discoverable from the table.

🤖 Generated with Claude Code

guofoo and others added 30 commits September 20, 2026 01:00
…rom-github

Resolve catalog apps through Cargo's pinned Makepad sources
- rinx path dependency (default-features off, octosense-module), app-rinx
  feature, registered in linked_modules().
- Patches: Rinx's kevinaboos makepad URL and ruma; markdown crates added to
  the existing OctoSense-org/makepad table (one canonical source).
- AppCard is out of this graph for the MVP: its octos-core (rusqlite 0.32 ->
  libsqlite3-sys 0.30) conflicts with the Matrix SDK's 0.38. Octos >= dc96b927
  (rusqlite 0.40) resolves it.
- Cargo.lock seeded with Rinx's locked git packages (matrix-sdk 0.18 etc.).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- ModuleHost: each instance's ModuleWindows (supported only outside the phone
  shell; updated on style switches). The WM turns Open requests into module
  tiles drawn in the owner's isolate (focusing an open one), closes them on
  request without reporting back, reports person-closed windows to the owner,
  and closes an instance's windows with it or on switching to a phone style.
- MpModuleView sets ModalBounds to its rect while drawing the root.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…d#24

- rinx: git dependency at 65aa09c2 (octosense-module, no standalone entry).
- makepad-* pins: d9372c61 (rinx/octosense-module-windows = d4502ef1 + Rinx's
  Markdown/math commits + module windows and pane-bounded modals).
- native-runtime.lock.json is NOT updated: it needs an Octoscript-Makepad
  release selecting this makepad.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… one behind

MpModuleView raised its tile on any press inside its rect, ignoring the desk's
topmost-first claim. With an app's extra window over its main window, every
click in the extra window also raised the main one, which (handled later)
won. Now a tile raises only on a press no window in front took, and claims an
unclaimed press inside it, so windows behind do not react to it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
AppCard 9a1a8a70 moves to octos-core 18fcd3f1 (rusqlite 0.40 /
libsqlite3-sys 0.38), the same SQLite as Rinx's matrix-sdk, so both
modules link into one binary. AppCard's makepad pin follows d9372c61.

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>
bd124a7a (branch release/rinx-module-d9372c61) is b1596d9 with makepad
d4502ef1 -> d9372c61: the module windows, modal bounds and Rinx
markdown/math support this branch builds on.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…7f9d8630

makepad#25 put the module windows, modal bounds and Markdown/math
libraries on makepad main, and Octoscript-Makepad#36 released it, so this
branch no longer needs the off-main release/rinx-module-d9372c61.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…, Rinx 127cd2ec, AppCard 1cf78120

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Link Rinx as a module; module windows on the desktop shell (draft: AppCard Octos upgrade needed)
…sed windows)

A window's popups, modals and glass (`begin_overlay_*`) went into the
desktop window's overlay list, which paints after every window. AppCard's
root is a GlassPanel, so its whole shell stayed on top of any window raised
over it.

WindowFrame, the texture each rounded window is drawn into, now opens a
nested overlay and a CaptureGauss for the app (as makepad's apps/wm
WindowFrame does). The app's overlays composite inside its own surface, and
its glass samples a pyramid built from that surface, so they follow the
window's stacking. Frames that go away forget their gauss state, because
the pass slot is reused.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…rlay-scope

Window surfaces scope their app's overlays and blur (AppCard over raised windows)
…d 9e8e4898, Rinx 5ad2c173

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…c4c96822

Lock Octoscript-Makepad main c4c96822 (makepad 1d3d383e); AppCard and Rinx main
tools/setup-native.py now prepares every sibling source itself, the way
OctoSense ROM's Home does:

- octoscript-makepad at native-runtime.lock.json, makepad and octoscript at
  that release's runtime.json;
- makepad with the reviewed patch runtime-patches.lock.json names
  (OctoSense-org/makepad#30: contained script apps, host services), checked
  by sha256 and resulting tree; a clean checkout of the patch's source
  commit is the same tree and is accepted as prepared;
- ../OctoSense-System-Apps at native-apps.lock.json: the system app bundles,
  the Mail host service and the AppCard assistant.

--cargo-manifest also rejects a second octos source.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The AppCard module mounts octos-app from the pinned OctoSense-System-Apps
checkout (apps/appcard/app/app, no default features) instead of
Octoscript-AppCard@9e8e4898. octos-app takes every octos crate from git
octos-org/octos at 18fcd3f1, so the graph has one octos source
(`cargo tree -i octos-core --target all`). OCTOSENSE_WORKSPACE (..)
already points its asset embedding at the sibling framework checkouts; the
desktop does not build for OpenHarmony, so it takes no nix patch.

The module test's InstanceHandles gains the `windows` field the module
contract has had since the module-windows change.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The desktop takes its apps the way OctoSense ROM's Home does. The default
`app-hub` feature links octosense-app-hub-app (OctoSense-App-Hub
crates/app-hub-app @4605128d) and the Mail host service
(octosense-mail-service from the pinned OctoSense-System-Apps checkout):

- system-apps.json selects News, Photos, Maps, Camera and Mail from
  ../OctoSense-System-Apps/apps; .cargo/config.toml names it in
  OCTOSENSE_SYSTEM_APPS. No asset mount: the desktop has no photo library,
  so Photos runs on its bundle's thumbnails.
- apps.rs: the App Hub and Card modules; system_card_apps (short ids,
  `--system=os.<name>`), installed_card_apps (`hub:<id>`), card_apps,
  card_manifest_id, matches_running_app, register_host_services (mail, or
  its demo mailbox with MAKEPAD_APP_CONFIG mail_demo). Card apps and the
  store have no process form: always module-hosted.
- clients::registry merges the catalog, the linked modules, the system apps
  and the installed apps; a system app replaces a catalog row of the same
  id in place.
- main.rs: the Card runner opens the row's manifest id; installed apps are
  checked against the catalog, `os.*` ids are not; App Hub's launch and
  install actions; the data root.
- style.rs: installed and system app icons (Camera's own art), App Hub's
  icon, Maps drawn with the route art.
- module_host.rs: nested Card isolates can replay the theme's fonts.
- Photos is the system app; `app-photos` (Makepad's native Photos) leaves
  mobile-apps and the phone targets and stays a comparison switch.

Every App Hub library resolves through one source: the Mail service pins
App Hub's appstore at an older rev, and two copies would be two host
service registries.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…mples

config/apps.overlay.json drops Makepad's example `mail` and `photos`
programs; config/apps.json and config/apps.makepad.json are regenerated with
`scripts/upstream.py catalog --apply`. The other Makepad programs stay as
the desktop's developer and tool apps.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
System apps, store apps, native modules and developer programs; the sibling
sources and the runtime patch; running Mail with its demo mailbox and the
keychain note. Validation record for this change.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…version

Rewrites the README around the post-App-Hub state: where the repo sits
among the OctoSense repositories, layout, sibling setup with
tools/setup-native.py, build/run and Cargo features, the app model
(system apps, store apps, host services and host-owned sheets, native
modules, developer programs, AppCard), demos (Mail demo, remote-control
bridge, hidden-window runs), pinning, testing, CI scope, known gaps and
contributing. Adds README.zh-CN.md with a language switcher in both.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
README: full guide to the desktop shell, plus a Simplified Chinese version
- AGENTS.md says it works the same for Codex, Claude Code, Cursor,
  Gemini CLI, Copilot or a person, and CLAUDE.md / GEMINI.md import it
  for agents that only read those names.
- tools/octo is this repo's own CLI around hub and card-host; it is
  unrelated to octos and needs no AI service.
- Links to OctoSense-AppCard (being deleted) point at
  OctoSense-System-Apps apps/appcard, where the runtime and L0 live now.
- Agent-specific leftovers removed (a For-Claude skill line, a
  'Hypotheses for Codex' heading, local scratch paths).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ostic

Docs: agent-agnostic AGENTS.md and READMEs
…ystem-apps

App Hub: system apps from OctoSense-System-Apps in the Card runner; AppCard from System-Apps
ymote and others added 27 commits September 26, 2026 15:40
…-audit

README: app-builder signpost; try your own app from a local catalog
Pin OctoSense-System-Apps to c8d50732 (System-Apps#9), whose AppCard takes
octos-core/octos-cli from octos main (the merge of octos-org/octos#2541,
6ad76e5c) instead of branch appcard/mate70-on-main. Cargo.lock moves the octos
crates to that rev. AppCard stays strictly opt-in (--features app-appcard);
the default and mobile-apps builds still do not link octos.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…main

AppCard (opt-in): octos from octos main via System-Apps c8d50732
App Hub 0d36f50b -> 3e993d4c (card vocabulary once per thread,
OctoSense-App-Hub#12), matching System-Apps' host services, so one
octosense-appstore and no [patch]. System-Apps c8d50732 -> c0f2199c.
Cargo.lock also gains octosense-llm-config, which System-Apps'
AppCard (opt-in) now links.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…e993d4c

App Hub 3e993d4c, System-Apps c0f2199c
Link the AI providers system app from the pinned OctoSense-System-Apps
(c0f2199c, which carries OctoSense-org#1: the AI providers app, the
octosense-llm-service `llm` host service and octosense-llm-config) on
App Hub 3e993d4c (which has the `llm` capability), the rev both the Mail and
llm services pin: one App Hub in the graph, no alias.

- system-apps.json selects ai-providers.
- The `app-hub` feature links octosense-llm-service and -config;
  register_host_services registers `llm` next to Mail with the AppCard
  kernel's octos home as its core dir, the desktop image picker (the open
  panel, filtered to PNG and JPEG) and image drops on the import sheet
  (src/llm_image.rs; OCTOSENSE_LLM_TEST_IMAGE answers a pick for hidden
  test runs).
- With app-appcard linked, a change to the provider set restarts the
  running AppCard module so its kernel reads the new profile; without it
  nothing is registered as a change hook.
- Start > Settings becomes Appearance plus AI providers once the build
  ships the app.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
scripts/system_apps_remote.sh and scripts/ai_providers_remote.sh drive a
hidden release build (MAKEPAD_HIDE_WINDOWS=1, --remote) with a temp
OCTOSENSE_HOME, octos core dir and file vaults. The AI providers run is
sandboxed with outbound HTTPS denied and uses fake keys only: the add
wizard, paste, drop and picker imports of the QR-A fixture, and the phone
QR export read back and compared with the saved profile.

The system-apps run also treats the Card runner building an app's first
Splash VM on the UI thread as a known first-open hang, as it already did
for the bundle unpack.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
AI providers system app and the llm host service
Docs audit for hackathon contestants (second pass): docs/local-ai.md linked `../README.md#add-an-app`, an anchor that no longer exists; point it at "Developer programs and the catalog".

Kernel/AppCard/octos text is left to the in-flight octos-core work.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…-audit2

Docs: fix a dead anchor in local-ai.md
System-Apps 47b96a0 (OctoSense-System-Apps#11): octosense-octos-core owns
the octos kernel. OctoSense-Desktop now links it in every standard build:

- feature `octos-core`, default, in `mobile-apps`, implied by
  `app-appcard`; Android and iOS always link it;
- configured at startup (apps::configure_octos_kernel: the data dir, the
  shell's log), stopped on shutdown; on a desktop a kernel runs only when
  OCTOS_APP_CORE_BIN names one;
- the `llm` service registers on the kernel's core dir with its
  `octos-core` feature, so a provider change restarts the kernel and its
  consumers reconnect; the app-appcard-only restart of AppCard instances is
  gone;
- tools/android-kernel.py cross-builds octos at the rev Cargo.lock pins and
  runs the packager with MAKEPAD_ANDROID_EXTRA_LIBS=liboctos.so=..., so an
  APK bundles the kernel (tests in tools/test_android_kernel.py);
- CI: the kernel service must be in the default and mobile-apps graphs; the
  AppCard UI (octosense-appcard) must not be;
- docs (en + zh-CN): the kernel service, AI providers wording, octos pin
  6ad76e5c, opt-out, the Android bundling.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The octos kernel as a shell service (octos-core); APKs bundle it
…7e51, System-Apps d30c67cb

One makepad (d0a9def5, via OctoScript-Makepad 99c1e5ee), one App Hub
(46d67e51, the rev System-Apps' Mail and llm host services name), System-Apps
d30c67cb (its runtime repin, on top of the octos kernel service).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…99c1e5ee

Runtime: OctoScript-Makepad 99c1e5ee (makepad d0a9def5), App Hub 46d67e51, System-Apps d30c67cb
- 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>
…767dd)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Hosted Rinx with the shell's assistant (Rinx ADR 0007)
…apps-latest

Preserve mobile Back dispatch with hosted Rinx
- Pin Rinx a72e4b00 (hagency-org/Rinx#28): its ServiceExecutor serves
  status, list_rooms, open_room, draft_message, read_room (per-account
  room grant), open_mini_app and send_message (confirmed in Rinx's own
  sheet).
- Runtime: makepad 6cf03859 (OctoSense-org/makepad#36) via
  OctoScript-Makepad 6881fb6c (OctoSense-org#47). A tool declared confirmed_by_app
  skips the pane's confirm card.
- ai_bus: a process client cannot vouch for the person's consent, so
  its registrations lose that claim; only in-process modules keep it.
  Tests cover the bus and, end to end through the pane's engine, that a
  module's self-confirmed tool runs at once while its other destructive
  tools and another process's claim still get the card.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…stant-executor

Rinx assistant tools on the chat pane; runtime with self-confirmed tools
…6ea8505)

octos-org/octos#2560: the system agent can no longer approve a hosted
app peer's tool approvals (nor is it woken for them), and a second
peer_send_input is no longer dropped when a provider reuses tool-call ids.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…pps-59d0806d

System-Apps 59d0806d: app peers' approvals stay the person's (octos a6ea8505)
System-Apps now pins Octoscript-Makepad 6881fb6c / makepad 6cf03859 for
AppCard, matching this shell; octos stays a6ea8505.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…pps-03350348

System-Apps 03350348: AppCard on the shells' runtime (6881fb6c)
Two guides under docs/ plus README links:
- open-apps.md: launch the desktop, open an app in a tile, fix an
  empty catalog (offline cargo metadata), add a new catalog entry.
- add-all-makepad-apps.md: point the desktop at apps.makepad.json and
  open any Makepad app.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- The default catalog (config/apps.json) already lists the full Makepad
  set; apps.makepad.json is an identical copy for --apps.
- Makepad's Photos and Mail left the catalogs; the system apps replace
  them (note added).
- Machine-specific paths replaced with the standard layout.
- README points to both guides (Chinese).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@amosarc

amosarc commented Sep 30, 2026

Copy link
Copy Markdown
Contributor Author

Merge notes (auto-generated):

Rebased this branch onto a fresh origin/main. The repo has been restructured
(desktop/, crates/shell, etc.), so the original commit's root-level
docs/ paths moved under desktop/docs/. The two guide bodies
(open-apps.md, add-all-makepad-apps.md) are already tracked there with
post-restructure content; this PR only adds the missing desktop/README.md
links to those two files.

No conflicts left after rebase. The branch on the fork was force-updated
to match.

@amosarc

amosarc commented Sep 30, 2026

Copy link
Copy Markdown
Contributor Author

Closing: the fork branch on GitHub is one commit behind local (workflow-scope blocked the force-push). Reopening under the existing PR #40 with the same head ref.

@amosarc amosarc closed this Sep 30, 2026
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.

3 participants