Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[submodule "vendor/pocketjs"]
path = vendor/pocketjs
url = https://github.com/pocket-stack/pocketjs.git
url = https://github.com/pocket-nexus/pocketjs.git
branch = main
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Pocket Shell is a product built on PocketJS, which arrives as the
`vendor/pocketjs` submodule. Nothing in `vendor/` is edited here: a runtime
change lands in [pocket-stack/pocketjs](https://github.com/pocket-stack/pocketjs)
change lands in [pocket-nexus/pocketjs](https://github.com/pocket-nexus/pocketjs)
first, and this repository moves its pin.

The repository holds **four shells**, and a change belongs
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Pocket Shell

Pocket Shell provides shells for handheld devices and desktop operating
systems, built on [PocketJS](https://github.com/pocket-stack/pocketjs).
systems, built on [PocketJS](https://github.com/pocket-nexus/pocketjs).
The applications live in one repository with one runtime submodule. Each
shell owns its interface and input model.

Expand Down Expand Up @@ -51,7 +51,7 @@ Run commands from the repository root. Bun, Rust and the
Native targets have additional requirements in their shell's README.

```sh
git clone --recurse-submodules https://github.com/pocket-stack/pocket-shell.git
git clone --recurse-submodules https://github.com/pocket-nexus/pocket-shell.git
cd pocket-shell
bun run setup
rustup target add wasm32-unknown-unknown
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"description": "Pocket Shell for Nintendo 3DS, iPod touch, touch navigation and desktop operating systems",
"repository": {
"type": "git",
"url": "git+https://github.com/pocket-stack/pocket-shell.git"
"url": "git+https://github.com/pocket-nexus/pocket-shell.git"
},
"scripts": {
"setup": "bun install --frozen-lockfile && git submodule update --init && bun install --cwd vendor/pocketjs --frozen-lockfile && bun scripts/setup.ts",
Expand Down
6 changes: 3 additions & 3 deletions shells/3ds/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ rather than incidental:
[docs/DESIGN.md](docs/DESIGN.md), "The clock".

The 3DS application has no other backend and no portability layer. A sibling
product, [Pocket Term](https://github.com/pocket-stack/pocket-term), runs on
product, [Pocket Term](https://github.com/pocket-nexus/pocket-term), runs on
the same console and shares nothing but the runtime.

## Requirements
Expand All @@ -172,7 +172,7 @@ to `shells/3ds/`; build outputs and pairing keys stay at the repository root.
## Quick start

```sh
git clone --recursive https://github.com/pocket-stack/pocket-shell
git clone --recursive https://github.com/pocket-nexus/pocket-shell
cd pocket-shell
bun run setup # vendor install + runtime links

Expand Down Expand Up @@ -241,7 +241,7 @@ for their commands and shared setup.
## Built on PocketJS

The guest is a [Solid](https://solidjs.com) application compiled to a native
package by [PocketJS](https://github.com/pocket-stack/pocketjs), which supplies
package by [PocketJS](https://github.com/pocket-nexus/pocketjs), which supplies
the QuickJS runtime, the Rust core, the citro3d backend and the console
toolchain. It arrives as the `vendor/pocketjs` submodule and is not edited
here: a runtime change lands there first and this repository moves its pin.
Expand Down
2 changes: 1 addition & 1 deletion shells/3ds/pocket.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://pocketjs.dev/schema/pocket-2.json",
"pocket": 2,
"id": "dev.pocket-stack.pocket-shell",
"id": "dev.pocket-nexus.pocket-shell",
"name": "pocket-shell",
"title": "Pocket Shell",
"version": "0.1.0",
Expand Down
6 changes: 3 additions & 3 deletions shells/desktop/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ Choose a theme from **Start → Settings** (the logo menu on Aqua), or press

```text
pocket.system.json
├─ roles.systemUI → dev.pocket-stack.desktop.system-ui
├─ roles.systemUI → dev.pocket-nexus.desktop.system-ui
├─ installation snapshot
└─ installed Pocket app catalog
↓
Expand All @@ -72,8 +72,8 @@ The System UI is in `src/system-ui`. Demo applications are consumed from the
pinned `vendor/pocketjs` submodule and are not copied into this product.

The experimental framework implementation is pinned directly in
`vendor/pocketjs` from [PocketJS PR #399](https://github.com/pocket-stack/pocketjs/pull/399),
which adds GPU composition on top of [PR #390](https://github.com/pocket-stack/pocketjs/pull/390). A fresh `setup` uses
`vendor/pocketjs` from [PocketJS PR #399](https://github.com/pocket-nexus/pocketjs/pull/399),
which adds GPU composition on top of [PR #390](https://github.com/pocket-nexus/pocketjs/pull/390). A fresh `setup` uses
that exact published commit; no checkout-local patches are applied.
The desktop host no longer links gpui, CoreText or Fontconfig. Native window
APIs handle the window, input and clipboard. The existing `pocket-ui-wgpu`
Expand Down
2 changes: 1 addition & 1 deletion shells/desktop/THIRD_PARTY.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
## PocketJS

`../../vendor/pocketjs` is a pinned Git submodule of
[pocket-stack/pocketjs](https://github.com/pocket-stack/pocketjs), licensed
[pocket-nexus/pocketjs](https://github.com/pocket-nexus/pocketjs), licensed
under the MIT License. PocketJS remains a separate MIT dependency.

## Inter
Expand Down
2 changes: 1 addition & 1 deletion shells/desktop/docs/PORTABLE-TEXT.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ cd vendor/pocketjs
bun tools/text-wasm.ts
bun tools/pocket.ts build --target psp --manifest apps/text-offload/pocket.json --project-root . -- --release
bun tools/text-provider.ts --usb /path/to/host0-root \
--app dev.pocket-stack.text-offload --pak dist/text-offload-main.pak
--app dev.pocket-nexus.text-offload --pak dist/text-offload-main.pak
```

USB pairing is the explicit local tether/share grant, scoped by app ID. The
Expand Down
2 changes: 1 addition & 1 deletion shells/desktop/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"license": "GPL-3.0-only",
"repository": {
"type": "git",
"url": "git+https://github.com/pocket-stack/pocket-shell.git",
"url": "git+https://github.com/pocket-nexus/pocket-shell.git",
"directory": "shells/desktop"
},
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion shells/desktop/pocket.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://pocketjs.dev/schema/pocket-2.json",
"pocket": 2,
"id": "dev.pocket-stack.desktop.system-ui",
"id": "dev.pocket-nexus.desktop.system-ui",
"name": "pocket-desktop-system-ui",
"title": "Pocket Shell Desktop",
"version": "0.1.0",
Expand Down
52 changes: 26 additions & 26 deletions shells/desktop/pocket.system.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
{
"$schema": "https://pocketjs.dev/schema/pocket-system-1.json",
"pocketSystem": 1,
"id": "dev.pocket-stack.desktop",
"id": "dev.pocket-nexus.desktop",
"name": "pocket-desktop",
"title": "Pocket Shell Desktop",
"version": "0.1.0",
"roles": {
"systemUI": "dev.pocket-stack.desktop.system-ui"
"systemUI": "dev.pocket-nexus.desktop.system-ui"
},
"applications": {
"installPolicy": {
Expand All @@ -16,72 +16,72 @@
"backgroundExecution": "suspend",
"catalog": [
{
"package": "dev.pocket-stack.desktop.system-ui",
"package": "dev.pocket-nexus.desktop.system-ui",
"manifest": "shells/desktop/pocket.json",
"required": true
},
{
"package": "dev.pocket-stack.hero",
"package": "dev.pocket-nexus.hero",
"manifest": "vendor/pocketjs/apps/hero/pocket.json",
"required": false,
"presentation": { "title": "Hero", "viewport": [640, 360] }
},
{
"package": "dev.pocket-stack.settings",
"package": "dev.pocket-nexus.settings",
"manifest": "vendor/pocketjs/apps/settings/pocket.json",
"required": false,
"presentation": { "title": "Settings", "viewport": [480, 272] }
},
{
"package": "dev.pocket-stack.motions",
"package": "dev.pocket-nexus.motions",
"manifest": "vendor/pocketjs/apps/motions/pocket.json",
"required": false,
"presentation": { "title": "Motions", "viewport": [480, 272] }
},
{
"package": "dev.pocket-stack.cards",
"package": "dev.pocket-nexus.cards",
"manifest": "vendor/pocketjs/apps/cards/pocket.json",
"required": false,
"presentation": { "title": "Cards", "viewport": [480, 272] }
},
{
"package": "dev.pocket-stack.chrome",
"package": "dev.pocket-nexus.chrome",
"manifest": "vendor/pocketjs/apps/chrome/pocket.json",
"required": false,
"presentation": { "title": "Chrome", "viewport": [480, 272] }
},
{
"package": "dev.pocket-stack.cursor",
"package": "dev.pocket-nexus.cursor",
"manifest": "vendor/pocketjs/apps/cursor/pocket.json",
"required": false,
"presentation": { "title": "Cursor", "viewport": [480, 272] }
},
{
"package": "dev.pocket-stack.gallery",
"package": "dev.pocket-nexus.gallery",
"manifest": "vendor/pocketjs/apps/gallery/pocket.json",
"required": false,
"presentation": { "title": "Gallery", "viewport": [480, 272] }
},
{
"package": "dev.pocket-stack.library",
"package": "dev.pocket-nexus.library",
"manifest": "vendor/pocketjs/apps/library/pocket.json",
"required": false,
"presentation": { "title": "Library", "viewport": [480, 272] }
},
{
"package": "dev.pocket-stack.music",
"package": "dev.pocket-nexus.music",
"manifest": "vendor/pocketjs/apps/music/pocket.json",
"required": false,
"presentation": { "title": "Music", "viewport": [480, 272] }
},
{
"package": "dev.pocket-stack.notifications",
"package": "dev.pocket-nexus.notifications",
"manifest": "vendor/pocketjs/apps/notifications/pocket.json",
"required": false,
"presentation": { "title": "Notifications", "viewport": [480, 272] }
},
{
"package": "dev.pocket-stack.stats",
"package": "dev.pocket-nexus.stats",
"manifest": "vendor/pocketjs/apps/stats/pocket.json",
"required": false,
"presentation": { "title": "Stats", "viewport": [480, 272] }
Expand All @@ -90,18 +90,18 @@
},
"installation": {
"installedPackages": [
"dev.pocket-stack.desktop.system-ui",
"dev.pocket-stack.hero",
"dev.pocket-stack.settings",
"dev.pocket-stack.motions",
"dev.pocket-stack.cards",
"dev.pocket-stack.chrome",
"dev.pocket-stack.cursor",
"dev.pocket-stack.gallery",
"dev.pocket-stack.library",
"dev.pocket-stack.music",
"dev.pocket-stack.notifications",
"dev.pocket-stack.stats"
"dev.pocket-nexus.desktop.system-ui",
"dev.pocket-nexus.hero",
"dev.pocket-nexus.settings",
"dev.pocket-nexus.motions",
"dev.pocket-nexus.cards",
"dev.pocket-nexus.chrome",
"dev.pocket-nexus.cursor",
"dev.pocket-nexus.gallery",
"dev.pocket-nexus.library",
"dev.pocket-nexus.music",
"dev.pocket-nexus.notifications",
"dev.pocket-nexus.stats"
]
}
}
2 changes: 1 addition & 1 deletion shells/desktop/scripts/linux.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ if (packageArchive) {
);
chmodSync(launcher, 0o755);
await Bun.write(
resolve(appsDir, "dev.pocket-stack.desktop.desktop"),
resolve(appsDir, "dev.pocket-nexus.desktop.desktop"),
`[Desktop Entry]\nType=Application\nName=Pocket Shell Desktop\nComment=Run isolated Pocket applications in one native desktop process\nExec=pocket-desktop\nIcon=pocket-desktop\nTerminal=false\nCategories=Utility;\nStartupNotify=true\n`,
);
const arch = process.arch === "arm64" ? "aarch64" : process.arch === "x64" ? "x86_64" : process.arch;
Expand Down
2 changes: 1 addition & 1 deletion shells/desktop/scripts/web-smoke.ts
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ try {
const value = await evaluate<string>(
"document.querySelector('#log')?.textContent ?? ''",
);
return value.includes("composited AppInstance dev.pocket-stack.hero")
return value.includes("composited AppInstance dev.pocket-nexus.hero")
? value
: null;
}, 30_000);
Expand Down
6 changes: 3 additions & 3 deletions shells/desktop/site/docs/architecture/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<title>Architecture — Pocket Shell Desktop</title><meta name="description" content="How Pocket System resolution, AppInstances and native composition fit together."><meta name="theme-color" content="#07130f">
<link rel="icon" href="/favicon.svg" type="image/svg+xml"><link rel="stylesheet" href="/site.css"><script type="module" src="/site.js"></script></head>
<body>
<nav class="top-nav"><a class="brand" href="/"><img src="/favicon.svg" width="28" height="28" alt=""><span>Pocket<br>Shell</span></a><div class="nav-links"><a href="/docs/" aria-current="page">Docs</a><a href="/docs/architecture/">Architecture</a><a href="/docs/themes/">Themes</a><a href="https://github.com/pocket-stack/pocket-shell">GitHub ↗</a></div><a class="nav-launch" href="/play/">Launch <span>↗</span></a></nav>
<nav class="top-nav"><a class="brand" href="/"><img src="/favicon.svg" width="28" height="28" alt=""><span>Pocket<br>Shell</span></a><div class="nav-links"><a href="/docs/" aria-current="page">Docs</a><a href="/docs/architecture/">Architecture</a><a href="/docs/themes/">Themes</a><a href="https://github.com/pocket-nexus/pocket-shell">GitHub ↗</a></div><a class="nav-launch" href="/play/">Launch <span>↗</span></a></nav>
<main class="docs-layout">
<aside class="docs-toc"><small>On this page</small><a href="#system">Pocket System</a><a href="#runtime">Runtime</a><a href="#composition">Composition</a><a href="#lifecycle">Lifecycles</a><a href="#benchmark">Baseline</a></aside>
<article class="doc-prose"><div class="eyebrow">Architecture</div><h1>Product policy resolves before runtime machinery starts.</h1><p class="intro">Pocket Shell Desktop defines what is installed and which package fills the System UI role. PocketJS validates that definition and produces the complete input consumed by a generic host.</p>
Expand All @@ -30,8 +30,8 @@ <h2 id="composition">Composition and focus</h2><p><strong>The native compositor
<p>Each visible child's DrawList and raster-resource revision participate in repaint detection. Releasing a texture that is still referenced therefore invalidates the composite even when the DrawList words did not change.</p>
<h2 id="lifecycle">Independent lifecycles</h2>
<table><thead><tr><th>Layer</th><th>States</th></tr></thead><tbody><tr><td>Package</td><td>available → installed → removed</td></tr><tr><td>AppInstance</td><td>absent → running ⇄ suspended → failed / absent</td></tr><tr><td>JavaScript engine</td><td>JSRuntime → JSContext / Realm</td></tr></tbody></table>
<h2 id="benchmark">Classic baseline</h2><p>The checked-in 23 August 2026 baseline measures a release build on an Apple M3 Max with 128 GiB RAM. The complete runtime is 25.35 MiB, process-cold/cache-warm median launch to first paint is 179.62 ms, and settled process-tree RSS is 86.73 MiB. The maximum sampled process count is one.</p><p>See <a href="https://github.com/pocket-stack/pocket-shell/blob/main/shells/desktop/docs/bench/classic-2026-08-23.md">the measurement protocol and raw result context</a>.</p>
<h2 id="benchmark">Classic baseline</h2><p>The checked-in 23 August 2026 baseline measures a release build on an Apple M3 Max with 128 GiB RAM. The complete runtime is 25.35 MiB, process-cold/cache-warm median launch to first paint is 179.62 ms, and settled process-tree RSS is 86.73 MiB. The maximum sampled process count is one.</p><p>See <a href="https://github.com/pocket-nexus/pocket-shell/blob/main/shells/desktop/docs/bench/classic-2026-08-23.md">the measurement protocol and raw result context</a>.</p>
</article>
</main>
<footer><a class="brand footer-brand" href="/"><img src="/favicon.svg" width="24" height="24" alt=""><span>Pocket Shell Desktop</span></a><p>The desktop OS shell in Pocket Shell.</p><div><a href="/docs/">Docs</a><a href="https://github.com/pocket-stack/pocket-shell">Source</a><a href="/docs/contributing/">GPLv3</a></div></footer>
<footer><a class="brand footer-brand" href="/"><img src="/favicon.svg" width="24" height="24" alt=""><span>Pocket Shell Desktop</span></a><p>The desktop OS shell in Pocket Shell.</p><div><a href="/docs/">Docs</a><a href="https://github.com/pocket-nexus/pocket-shell">Source</a><a href="/docs/contributing/">GPLv3</a></div></footer>
</body></html>
8 changes: 4 additions & 4 deletions shells/desktop/site/docs/contributing/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@
<title>Contributing and licensing — Pocket Shell Desktop</title><meta name="description" content="Pocket Shell Desktop contribution checks, GPLv3 licensing and third-party asset notices."><meta name="theme-color" content="#07130f">
<link rel="icon" href="/favicon.svg" type="image/svg+xml"><link rel="stylesheet" href="/site.css"><script type="module" src="/site.js"></script></head>
<body>
<nav class="top-nav"><a class="brand" href="/"><img src="/favicon.svg" width="28" height="28" alt=""><span>Pocket<br>Shell</span></a><div class="nav-links"><a href="/docs/" aria-current="page">Docs</a><a href="/docs/architecture/">Architecture</a><a href="/docs/themes/">Themes</a><a href="https://github.com/pocket-stack/pocket-shell">GitHub ↗</a></div><a class="nav-launch" href="/play/">Launch <span>↗</span></a></nav>
<nav class="top-nav"><a class="brand" href="/"><img src="/favicon.svg" width="28" height="28" alt=""><span>Pocket<br>Shell</span></a><div class="nav-links"><a href="/docs/" aria-current="page">Docs</a><a href="/docs/architecture/">Architecture</a><a href="/docs/themes/">Themes</a><a href="https://github.com/pocket-nexus/pocket-shell">GitHub ↗</a></div><a class="nav-launch" href="/play/">Launch <span>↗</span></a></nav>
<main class="docs-layout">
<aside class="docs-toc"><small>On this page</small><a href="#workflow">Workflow</a><a href="#license">Licensing</a><a href="#assets">Assets</a></aside>
<article class="doc-prose"><div class="eyebrow">Contributing</div><h1>Contribute to the desktop shell.</h1><p class="intro">Pocket Shell Desktop accepts code, documentation and original theme assets under GNU GPL version 3 only, within the Pocket Shell repository.</p>
<h2 id="workflow">Workflow</h2><p>Open an issue before substantial product, protocol or theme work. Pull requests use Conventional Commit titles and must pass the native, Linux distribution and WebAssembly preview checks.</p><pre><code><span class="token prompt">$</span> bun run setup
<span class="token prompt">$</span> bun run desktop check
<span class="token prompt">$</span> bun run desktop build</code></pre>
<h2 id="license">Licensing</h2><p>This desktop shell is distributed under <strong>GNU GPL version 3 only</strong>. Read the <a href="https://github.com/pocket-stack/pocket-shell/blob/main/shells/desktop/LICENSE">GPLv3 terms</a> and the repository <a href="https://github.com/pocket-stack/pocket-shell/blob/main/CONTRIBUTING.md">contribution rules</a>. Contributors retain copyright and preserve the applicable GPL notices.</p>
<h2 id="assets">Third-party assets</h2><p>Do not import icons, fonts or theme graphics without recording provenance and license terms. Original project assets and independently implemented drawing code are preferred. Existing third-party notices are maintained in <a href="https://github.com/pocket-stack/pocket-shell/blob/main/shells/desktop/THIRD_PARTY.md">THIRD_PARTY.md</a>.</p>
<h2 id="license">Licensing</h2><p>This desktop shell is distributed under <strong>GNU GPL version 3 only</strong>. Read the <a href="https://github.com/pocket-nexus/pocket-shell/blob/main/shells/desktop/LICENSE">GPLv3 terms</a> and the repository <a href="https://github.com/pocket-nexus/pocket-shell/blob/main/CONTRIBUTING.md">contribution rules</a>. Contributors retain copyright and preserve the applicable GPL notices.</p>
<h2 id="assets">Third-party assets</h2><p>Do not import icons, fonts or theme graphics without recording provenance and license terms. Original project assets and independently implemented drawing code are preferred. Existing third-party notices are maintained in <a href="https://github.com/pocket-nexus/pocket-shell/blob/main/shells/desktop/THIRD_PARTY.md">THIRD_PARTY.md</a>.</p>
</article>
</main>
<footer><a class="brand footer-brand" href="/"><img src="/favicon.svg" width="24" height="24" alt=""><span>Pocket Shell Desktop</span></a><p>The desktop OS shell in Pocket Shell.</p><div><a href="/docs/">Docs</a><a href="https://github.com/pocket-stack/pocket-shell">Source</a><a href="/docs/contributing/">GPLv3</a></div></footer>
<footer><a class="brand footer-brand" href="/"><img src="/favicon.svg" width="24" height="24" alt=""><span>Pocket Shell Desktop</span></a><p>The desktop OS shell in Pocket Shell.</p><div><a href="/docs/">Docs</a><a href="https://github.com/pocket-nexus/pocket-shell">Source</a><a href="/docs/contributing/">GPLv3</a></div></footer>
</body></html>
Loading
Loading