Skip to content

Repin makepad to main 68d1f4ec and Octoscript-Makepad to aa80f72c - #349

Merged
ymote merged 1 commit into
mainfrom
chore/runtime-makepad-68d1f4ec
Oct 7, 2026
Merged

ymote merged 1 commit into
mainfrom
chore/runtime-makepad-68d1f4ec

Conversation

@ymote

@ymote ymote commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Moves the runtime from makepad c155f61d to makepad main 68d1f4ec, through Octoscript-Makepad aa80f72c (Octoscript-Makepad #78). The new makepad changes:

#99 and #100 were already here as runtime patches. Each makepad PR's tree equals c155f61d plus the patch, byte for byte, so the two patches go.

Octoscript-Makepad main also brings:

What moves

Checks

🤖 Generated with Claude Code

@ymote ymote mentioned this pull request Oct 6, 2026
ymote added a commit that referenced this pull request Oct 7, 2026
OctosCode (octos-org/octoscode-app) is itself an octos client. Inside
OctoSense it gets no listener, no token and no pairing. Instead it opens a
kernel port that the shell's router holds to a coding scope (ADR 0003, item
9; the person chose this over host authority and over a new octos token).

- makepad #101 (in makepad main 68d1f4ec, #349): Makepad's `OctosUiPort`,
  parked for the host the way a peer link is.
- Kernel router: scoped consumers.
  - Each request of a scoped consumer is checked first, and a refused one is
    answered by the router (`scope_denied`) and logged.
  - A session's frames wait for the scope's preparation (its exact tool
    list).
  - The consumer hears only its own sessions; a host-only frame about one of
    them goes to the shell instead.
  - Results pass the scope's filter, and so do the notifications it lets
    through (`Scope::rewrite`): octos repeats an opened session as a
    `session/open` notification with its whole capability list.
  - The consumer may answer only the kernel requests it was sent.
  - `serve_scoped` runs a port on the kernel's runtime, with `Reset` on a
    kernel restart.
- Shell: the module host claims ports per isolate, as it does peer links.
  native-apps.json `kernel: "coding"` grants one; any other port is closed
  with the reason. The coding scope (`coding_scope.rs`):
  - own sessions: `_main:api:code-<id>`, no topic, profile `_main`;
  - folders: its jail, or under a granted read-write root (home on a
    desktop), never OctoSense's or the kernel's data, a hidden top-level
    folder, or a folder holding any of them;
  - a coding client's methods only, and every list of supported methods it
    is told is trimmed to those;
  - each session's tool list is octos's external-turn list, so no command
    runs.
- Module host: point the preludes' `theme` at `mod.theme` before a module
  registers. A styled isolate's diverged, so a module's own theme roles
  never reached its widgets.
- OctosCode's entry: octoscode-app main 8039d44c (#4, built against octos
  39e22d45 like this repository, #350), default on desktop and phone,
  `home:rw`, `kernel: coding`. octoscript-render is patched to `.sources`
  like the rest of Octoscript-Makepad, whose pin #349 moved.
- Docs: ADR 0003 item 9; the architecture guides (App ↔ kernel, the native
  apps table); the README dependency table; AGENTS.md.

Tests:
- router 11, coding scope 4, module ports 2, kernel 62; tools 115;
- desktop shell 857 passed; phone shell 946 passed, including the
  reserved-name test (App Hub 7bb63ff9's contract reserves `octoscode`).

Verified in a hidden desktop shell (octos 39e22d45, OctosCode 8039d44c):
- the port was granted; both `session/open` frames list 53 methods;
- a `code-…` session in the picked folder ran read_file;
- answers streamed in full and the strip returned to Ready;
- the model picker lists the providers' models but cannot switch them
  (`profile/llm/select` changes the profile's model; Setup owns it).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The org-wide makepad release after makepad #99-#101, through
Octoscript-Makepad aa80f72c (#78):
- #99 and #100 are the Calculator relayout and the Terminal's own agent
  this repository carried as runtime patches. Their patches go: makepad
  main now has them, byte for byte.
- #101 adds ai-services' ui_port, the kernel port an app that is itself
  an octos client opens. Nothing here uses it yet; #341 does.

Octoscript-Makepad main now carries the Mail draft and review
capabilities this repository already pinned by branch (#75, Octoscript
2e37d9e6, OctoScript #58), and OctosCode's measured-design lowering (#77).
#77 gives the L0 node attributes a right inset, so AppCard's evaluator
reads `padright` too.

The remaining stacked patches reapply unchanged; the stack's tree is
07accf83. AppCard's own native-runtime.lock.json, which still named
2cc5ef37, names the same release as the root again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ymote
ymote force-pushed the chore/runtime-makepad-68d1f4ec branch from 52932fd to 2bb2e29 Compare October 7, 2026 00:49
@ymote
ymote merged commit 8f165f0 into main Oct 7, 2026
5 checks passed
@ymote

ymote commented Oct 7, 2026

Copy link
Copy Markdown
Contributor Author

Merged as a two-PR train (#349, then #350) on local CI. tools/ci-local.sh --only all --linux-host ran on 15b0040, the head of #350, which contains #349's 2bb2e29. Both were rebased on main 1eeedac after #351 landed. Result: PASSED in 36m09s, 37 steps passed and 0 failed, Linux-host jobs included. The 8 skipped steps are all rom.yml, which these PRs' paths do not trigger. The first run, on 7fce1e8, failed one compile step in 7 places: AppCard's exhaustive match missed octos's new ContextStateReported, now fixed in #350. Main's tree after both merges (2baa5c1) equals the tested tree.

ymote added a commit that referenced this pull request Oct 7, 2026
OctosCode (octos-org/octoscode-app) is itself an octos client. Inside
OctoSense it gets no listener, no token and no pairing. Instead it opens a
kernel port that the shell's router holds to a coding scope (ADR 0003, item
9; the person chose this over host authority and over a new octos token).

- makepad #101 (in makepad main 68d1f4ec, #349): Makepad's `OctosUiPort`,
  parked for the host the way a peer link is.
- Kernel router: scoped consumers.
  - Each request of a scoped consumer is checked first, and a refused one is
    answered by the router (`scope_denied`) and logged.
  - A session's frames wait for the scope's preparation (its exact tool
    list).
  - The consumer hears only its own sessions; a host-only frame about one of
    them goes to the shell instead.
  - Results pass the scope's filter, and so do the notifications it lets
    through (`Scope::rewrite`): octos repeats an opened session as a
    `session/open` notification with its whole capability list.
  - The consumer may answer only the kernel requests it was sent.
  - `serve_scoped` runs a port on the kernel's runtime, with `Reset` on a
    kernel restart.
- Shell: the module host claims ports per isolate, as it does peer links.
  native-apps.json `kernel: "coding"` grants one; any other port is closed
  with the reason. The coding scope (`coding_scope.rs`):
  - own sessions: `_main:api:code-<id>`, no topic, profile `_main`;
  - folders: its jail, or under a granted read-write root (home on a
    desktop), never OctoSense's or the kernel's data, a hidden top-level
    folder, or a folder holding any of them;
  - a coding client's methods only, and every list of supported methods it
    is told is trimmed to those;
  - each session's tool list is octos's external-turn list, so no command
    runs.
- Module host: point the preludes' `theme` at `mod.theme` before a module
  registers. A styled isolate's diverged, so a module's own theme roles
  never reached its widgets.
- OctosCode's entry: octoscode-app main f8561625 (#4; #7 builds it on
  the same makepad, Octoscript-Makepad, Octoscript and octos as this
  repository), default on desktop and phone, `home:rw`, `kernel: coding`. octoscript-render is patched to `.sources`
  like the rest of Octoscript-Makepad, whose pin #349 moved.
- Docs: ADR 0003 item 9; the architecture guides (App ↔ kernel, the native
  apps table); the README dependency table; AGENTS.md.

Tests:
- router 11, coding scope 4, module ports 2, kernel 62; tools 115;
- desktop shell 857 passed; phone shell 946 passed, including the
  reserved-name test (App Hub 7bb63ff9's contract reserves `octoscode`).

Verified in a hidden desktop shell (octos 39e22d45, OctosCode f8561625):
- the port was granted; both `session/open` frames list 53 methods;
- a `code-…` session in the picked folder ran read_file;
- answers streamed in full and the strip returned to Ready;
- the model picker lists the providers' models but cannot switch them
  (`profile/llm/select` changes the profile's model; Setup owns it).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ymote added a commit that referenced this pull request Oct 7, 2026
…d1f4ec

rom docs: the runtime's Makepad and Octoscript-Makepad hashes after #349
ymote added a commit that referenced this pull request Oct 7, 2026
OctosCode (octos-org/octoscode-app) is itself an octos client. Inside
OctoSense it gets no listener, no token and no pairing. Instead it opens a
kernel port that the shell's router holds to a coding scope (ADR 0003, item
9; the person chose this over host authority and over a new octos token).

- makepad #101 (in makepad main 68d1f4ec, #349): Makepad's `OctosUiPort`,
  parked for the host the way a peer link is.
- Kernel router: scoped consumers.
  - Each request of a scoped consumer is checked first, and a refused one is
    answered by the router (`scope_denied`) and logged.
  - A session's frames wait for the scope's preparation (its exact tool
    list).
  - The consumer hears only its own sessions; a host-only frame about one of
    them goes to the shell instead.
  - Results pass the scope's filter, and so do the notifications it lets
    through (`Scope::rewrite`): octos repeats an opened session as a
    `session/open` notification with its whole capability list.
  - The consumer may answer only the kernel requests it was sent.
  - `serve_scoped` runs a port on the kernel's runtime, with `Reset` on a
    kernel restart.
- Shell: the module host claims ports per isolate, as it does peer links.
  native-apps.json `kernel: "coding"` grants one; any other port is closed
  with the reason. The coding scope (`coding_scope.rs`):
  - own sessions: `_main:api:code-<id>`, no topic, profile `_main`;
  - folders: its jail, or under a granted read-write root (home on a
    desktop), never OctoSense's or the kernel's data, a hidden top-level
    folder, or a folder holding any of them;
  - a coding client's methods only, and every list of supported methods it
    is told is trimmed to those;
  - each session's tool list is octos's external-turn list, so no command
    runs.
- Module host: point the preludes' `theme` at `mod.theme` before a module
  registers. A styled isolate's diverged, so a module's own theme roles
  never reached its widgets.
- OctosCode's entry: octoscode-app main f8561625 (#4; #7 builds it on
  the same makepad, Octoscript-Makepad, Octoscript and octos as this
  repository), default on desktop and phone, `home:rw`, `kernel: coding`. octoscript-render is patched to `.sources`
  like the rest of Octoscript-Makepad, whose pin #349 moved.
- Docs: ADR 0003 item 9; the architecture guides (App ↔ kernel, the native
  apps table); the README dependency table; AGENTS.md.

Tests:
- router 11, coding scope 4, module ports 2, kernel 62; tools 115;
- desktop shell 857 passed; phone shell 946 passed, including the
  reserved-name test (App Hub 7bb63ff9's contract reserves `octoscode`).

Verified in a hidden desktop shell (octos 39e22d45, OctosCode f8561625):
- the port was granted; both `session/open` frames list 53 methods;
- a `code-…` session in the picked folder ran read_file;
- answers streamed in full and the strip returned to Ready;
- the model picker lists the providers' models but cannot switch them
  (`profile/llm/select` changes the profile's model; Setup owns it).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ymote added a commit that referenced this pull request Oct 8, 2026
OctosCode (octos-org/octoscode-app) is itself an octos client. Inside
OctoSense it gets no listener, no token and no pairing. Instead it opens a
kernel port that the shell's router holds to a coding scope (ADR 0003, item
9; the person chose this over host authority and over a new octos token).

- makepad #101 (in makepad main 68d1f4ec, #349): Makepad's `OctosUiPort`,
  parked for the host the way a peer link is.
- Kernel router: scoped consumers.
  - Each request of a scoped consumer is checked first, and a refused one is
    answered by the router (`scope_denied`) and logged.
  - A session's frames wait for the scope's preparation (its exact tool
    list).
  - The consumer hears only its own sessions; a host-only frame about one of
    them goes to the shell instead.
  - Results pass the scope's filter, and so do the notifications it lets
    through (`Scope::rewrite`): octos repeats an opened session as a
    `session/open` notification with its whole capability list.
  - The consumer may answer only the kernel requests it was sent.
  - `serve_scoped` runs a port on the kernel's runtime, with `Reset` on a
    kernel restart.
- Shell: the module host claims ports per isolate, as it does peer links.
  native-apps.json `kernel: "coding"` grants one; any other port is closed
  with the reason. The coding scope (`coding_scope.rs`):
  - own sessions: `_main:api:code-<id>`, no topic, profile `_main`;
  - folders: its jail, or under a granted read-write root (home on a
    desktop), never OctoSense's or the kernel's data, a hidden top-level
    folder, or a folder holding any of them;
  - a coding client's methods only, and every list of supported methods it
    is told is trimmed to those;
  - each session's tool list is octos's external-turn list, so no command
    runs.
- Module host: point the preludes' `theme` at `mod.theme` before a module
  registers. A styled isolate's diverged, so a module's own theme roles
  never reached its widgets.
- OctosCode's entry: octoscode-app main f8561625 (#4; #7 builds it on
  the same makepad, Octoscript-Makepad, Octoscript and octos as this
  repository), default on desktop and phone, `home:rw`, `kernel: coding`. octoscript-render is patched to `.sources`
  like the rest of Octoscript-Makepad, whose pin #349 moved.
- Docs: ADR 0003 item 9; the architecture guides (App ↔ kernel, the native
  apps table); the README dependency table; AGENTS.md.

Tests:
- router 11, coding scope 4, module ports 2, kernel 62; tools 115;
- desktop shell 857 passed; phone shell 946 passed, including the
  reserved-name test (App Hub 7bb63ff9's contract reserves `octoscode`).

Verified in a hidden desktop shell (octos 39e22d45, OctosCode f8561625):
- the port was granted; both `session/open` frames list 53 methods;
- a `code-…` session in the picked folder ran read_file;
- answers streamed in full and the strip returned to Ready;
- the model picker lists the providers' models but cannot switch them
  (`profile/llm/select` changes the profile's model; Setup owns it).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ymote added a commit that referenced this pull request Oct 8, 2026
OctosCode (octos-org/octoscode-app) is itself an octos client. Inside
OctoSense it gets no listener, no token and no pairing. Instead it opens a
kernel port that the shell's router holds to a coding scope (ADR 0003, item
9; the person chose this over host authority and over a new octos token).

- makepad #101 (in makepad main 68d1f4ec, #349): Makepad's `OctosUiPort`,
  parked for the host the way a peer link is.
- Kernel router: scoped consumers.
  - Each request of a scoped consumer is checked first, and a refused one is
    answered by the router (`scope_denied`) and logged.
  - A session's frames wait for the scope's preparation (its exact tool
    list).
  - The consumer hears only its own sessions; a host-only frame about one of
    them goes to the shell instead.
  - Results pass the scope's filter, and so do the notifications it lets
    through (`Scope::rewrite`): octos repeats an opened session as a
    `session/open` notification with its whole capability list.
  - The consumer may answer only the kernel requests it was sent.
  - `serve_scoped` runs a port on the kernel's runtime, with `Reset` on a
    kernel restart.
- Shell: the module host claims ports per isolate, as it does peer links.
  native-apps.json `kernel: "coding"` grants one; any other port is closed
  with the reason. The coding scope (`coding_scope.rs`):
  - own sessions: `_main:api:code-<id>`, no topic, profile `_main`;
  - folders: its jail, or under a granted read-write root (home on a
    desktop), never OctoSense's or the kernel's data, a hidden top-level
    folder, or a folder holding any of them;
  - a coding client's methods only, and every list of supported methods it
    is told is trimmed to those;
  - each session's tool list is octos's external-turn list, so no command
    runs.
- Module host: point the preludes' `theme` at `mod.theme` before a module
  registers. A styled isolate's diverged, so a module's own theme roles
  never reached its widgets.
- OctosCode's entry: octoscode-app main f8561625 (#4; #7 builds it on
  the same makepad, Octoscript-Makepad, Octoscript and octos as this
  repository), default on desktop and phone, `home:rw`, `kernel: coding`. octoscript-render is patched to `.sources`
  like the rest of Octoscript-Makepad, whose pin #349 moved.
- Docs: ADR 0003 item 9; the architecture guides (App ↔ kernel, the native
  apps table); the README dependency table; AGENTS.md.

Tests:
- router 11, coding scope 4, module ports 2, kernel 62; tools 115;
- desktop shell 857 passed; phone shell 946 passed, including the
  reserved-name test (App Hub 7bb63ff9's contract reserves `octoscode`).

Verified in a hidden desktop shell (octos 39e22d45, OctosCode f8561625):
- the port was granted; both `session/open` frames list 53 methods;
- a `code-…` session in the picked folder ran read_file;
- answers streamed in full and the strip returned to Ready;
- the model picker lists the providers' models but cannot switch them
  (`profile/llm/select` changes the profile's model; Setup owns it).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
chrislearn pushed a commit to chrislearn/OctoSense that referenced this pull request Oct 8, 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.

1 participant