Repository navigation
docs: how to open & add the full Makepad catalog - #40
Merged
Merged
Conversation
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>
ymote
force-pushed
the
docs/open-makepad-apps
branch
from
September 27, 2026 14:27
b1a6fd2 to
f03d239
Compare
Contributor
|
Merged — thank you, @amosgeek! I rebased it onto current 🤖 Generated with Claude Code |
This was referenced Sep 28, 2026
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
…ecurity ADR 0002 agentic app security model; ADR 0003 app hub and store
chrislearn
pushed a commit
to chrislearn/OctoSense
that referenced
this pull request
Sep 29, 2026
docs: how to open & add the full Makepad catalog
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>
ymote
added a commit
that referenced
this pull request
Oct 1, 2026
A glance card may declare `sys.digest(app:, id:)` (Octoscript #40); the glance service fills it in when it realizes the card, from the toolbox run results the host keeps for the calling app, instead of the card carrying the findings as text. - glance_digest.rs: reads `<apps root>/.host/toolbox/<app>/toolbox/runs/ <template>/<run>.json` (host-owned, outside the app's jail, so an app cannot forge a digest) and returns one template-independent record: status, topic, language, summary, retrieved_at, count, points {id, text, label, cite, citations: [source index]}, sources {id, n, title, source, url, published_at}. A source is kept only if the run's host provenance lists its id with the same http(s) URL; a point only if it still cites a kept source; model text with a URL is dropped. Caps on the file (512 KiB) and every field. Missing, expired (48 h after the run), malformed or failed digests resolve to an empty record with $state failed. - glance.rs: `app` must be the caller (its id or launcher id), never an argument's say-so; the resolved value and $status replace anything the publisher sent; a bound card expires no later than its digest; after a publish, each template folder keeps its 8 newest results plus every run a live card binds. - news-brief.card: the M4 News digest card bound to `sys.digest(app: "os.news", id: "glance")`; OCTOSENSE_GLANCE_DEMO=digest publishes it. - Repin Octoscript to 30a21b78 (Octoscript #40 merged) via Octoscript-Makepad d8bee94c (Octoscript-Makepad #50; moves to its merge commit once it merges). - glance_digest::digest_root reads under the host storage's apps root (octosense_ai_host::toolbox_root), where the toolbox writes its runs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ymote
added a commit
that referenced
this pull request
Oct 2, 2026
A glance card may declare `sys.digest(app:, id:)` (Octoscript #40); the glance service fills it in when it realizes the card, from the toolbox run results the host keeps for the calling app, instead of the card carrying the findings as text. - glance_digest.rs: reads `<apps root>/.host/toolbox/<app>/toolbox/runs/ <template>/<run>.json` (host-owned, outside the app's jail, so an app cannot forge a digest) and returns one template-independent record: status, topic, language, summary, retrieved_at, count, points {id, text, label, cite, citations: [source index]}, sources {id, n, title, source, url, published_at}. A source is kept only if the run's host provenance lists its id with the same http(s) URL; a point only if it still cites a kept source; model text with a URL is dropped. Caps on the file (512 KiB) and every field. Missing, expired (48 h after the run), malformed or failed digests resolve to an empty record with $state failed. - glance.rs: `app` must be the caller (its id or launcher id), never an argument's say-so; the resolved value and $status replace anything the publisher sent; a bound card expires no later than its digest; after a publish, each template folder keeps its 8 newest results plus every run a live card binds. - news-brief.card: the M4 News digest card bound to `sys.digest(app: "os.news", id: "glance")`; OCTOSENSE_GLANCE_DEMO=digest publishes it. - Octoscript #40 (sys.digest) is already in main's pins (Octoscript 5991dfae, Octoscript-Makepad 8f103d0c); rebased onto main, the PR's own repin commits are dropped. - Rebased onto main: composes with the in-card sys.chat (glance_chat.rs): digests resolve into the card's data first, then its chat is seeded and the card lowered; the card keeps both its digests and its L0 source. - glance_digest::digest_root reads under the host storage's apps root (octosense_ai_host::toolbox_root), where the toolbox writes its runs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ymote
added a commit
that referenced
this pull request
Oct 2, 2026
A glance card may declare `sys.digest(app:, id:)` (Octoscript #40); the glance service fills it in when it realizes the card, from the toolbox run results the host keeps for the calling app, instead of the card carrying the findings as text. - glance_digest.rs: reads `<apps root>/.host/toolbox/<app>/toolbox/runs/ <template>/<run>.json` (host-owned, outside the app's jail, so an app cannot forge a digest) and returns one template-independent record: status, topic, language, summary, retrieved_at, count, points {id, text, label, cite, citations: [source index]}, sources {id, n, title, source, url, published_at}. A source is kept only if the run's host provenance lists its id with the same http(s) URL; a point only if it still cites a kept source; model text with a URL is dropped. Caps on the file (512 KiB) and every field. Missing, expired (48 h after the run), malformed or failed digests resolve to an empty record with $state failed. - glance.rs: `app` must be the caller (its id or launcher id), never an argument's say-so; the resolved value and $status replace anything the publisher sent; a bound card expires no later than its digest; after a publish, each template folder keeps its 8 newest results plus every run a live card binds. - news-brief.card: the M4 News digest card bound to `sys.digest(app: "os.news", id: "glance")`; OCTOSENSE_GLANCE_DEMO=digest publishes it. - Octoscript #40 (sys.digest) is already in main's pins (Octoscript 5991dfae, Octoscript-Makepad 8f103d0c); rebased onto main, the PR's own repin commits are dropped. - Rebased onto main: composes with the in-card sys.chat (glance_chat.rs): digests resolve into the card's data first, then its chat is seeded and the card lowered; the card keeps both its digests and its L0 source. - glance_digest::digest_root reads under the host storage's apps root (octosense_ai_host::toolbox_root), where the toolbox writes its runs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ymote
added a commit
that referenced
this pull request
Oct 2, 2026
A glance card may declare `sys.digest(app:, id:)` (Octoscript #40); the glance service fills it in when it realizes the card, from the toolbox run results the host keeps for the calling app, instead of the card carrying the findings as text. - glance_digest.rs: reads `<apps root>/.host/toolbox/<app>/toolbox/runs/ <template>/<run>.json` (host-owned, outside the app's jail, so an app cannot forge a digest) and returns one template-independent record: status, topic, language, summary, retrieved_at, count, points {id, text, label, cite, citations: [source index]}, sources {id, n, title, source, url, published_at}. A source is kept only if the run's host provenance lists its id with the same http(s) URL; a point only if it still cites a kept source; model text with a URL is dropped. Caps on the file (512 KiB) and every field. Missing, expired (48 h after the run), malformed or failed digests resolve to an empty record with $state failed. - glance.rs: `app` must be the caller (its id or launcher id), never an argument's say-so; the resolved value and $status replace anything the publisher sent; a bound card expires no later than its digest; after a publish, each template folder keeps its 8 newest results plus every run a live card binds. - news-brief.card: the M4 News digest card bound to `sys.digest(app: "os.news", id: "glance")`; OCTOSENSE_GLANCE_DEMO=digest publishes it. - Octoscript #40 (sys.digest) is already in main's pins (Octoscript 5991dfae, Octoscript-Makepad 8f103d0c); rebased onto main, the PR's own repin commits are dropped. - Rebased onto main: composes with the in-card sys.chat (glance_chat.rs): digests resolve into the card's data first, then its chat is seeded and the card lowered; the card keeps both its digests and its L0 source. - glance_digest::digest_root reads under the host storage's apps root (octosense_ai_host::toolbox_root), where the toolbox writes its runs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ymote
added a commit
that referenced
this pull request
Oct 2, 2026
A glance card may declare `sys.digest(app:, id:)` (Octoscript #40); the glance service fills it in when it realizes the card, from the toolbox run results the host keeps for the calling app, instead of the card carrying the findings as text. - glance_digest.rs: reads `<apps root>/.host/toolbox/<app>/toolbox/runs/ <template>/<run>.json` (host-owned, outside the app's jail, so an app cannot forge a digest) and returns one template-independent record: status, topic, language, summary, retrieved_at, count, points {id, text, label, cite, citations: [source index]}, sources {id, n, title, source, url, published_at}. A source is kept only if the run's host provenance lists its id with the same http(s) URL; a point only if it still cites a kept source; model text with a URL is dropped. Caps on the file (512 KiB) and every field. Missing, expired (48 h after the run), malformed or failed digests resolve to an empty record with $state failed. - glance.rs: `app` must be the caller (its id or launcher id), never an argument's say-so; the resolved value and $status replace anything the publisher sent; a bound card expires no later than its digest; after a publish, each template folder keeps its 8 newest results plus every run a live card binds. - news-brief.card: the M4 News digest card bound to `sys.digest(app: "os.news", id: "glance")`; OCTOSENSE_GLANCE_DEMO=digest publishes it. - Octoscript #40 (sys.digest) is already in main's pins (Octoscript 5991dfae, Octoscript-Makepad 8f103d0c); rebased onto main, the PR's own repin commits are dropped. - Rebased onto main: composes with the in-card sys.chat (glance_chat.rs): digests resolve into the card's data first, then its chat is seeded and the card lowered; the card keeps both its digests and its L0 source. - glance_digest::digest_root reads under the host storage's apps root (octosense_ai_host::toolbox_root), where the toolbox writes its runs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Adds two how-to guides under docs/ and links them from the README's "Add an app" section:
Both record the exact steps that got Weather (and the rest of the Makepad apps) running inside OctoSense tiles, including the offline
cargo metadatacache fix.🤖 Generated with Claude Code