Skip to content

Commit a3471f1

Browse files
committed
docs(design): what landed for #622 in each repository, and where each claim was measured
1 parent 13f5a8a commit a3471f1

3 files changed

Lines changed: 107 additions & 7 deletions

File tree

.agents/docs/2026-09-12-622-a-ui-framework-on-android-ios-and-web.md

Lines changed: 102 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
---
22
subject: targets
3-
status: active
3+
status: landed
44
---
55

66
# A UI framework on Android, iOS and Web: where each item of #622 lands, and the three it does not list
77

8-
**Status:** implemented in mcpp (engine items A1 to A7, A10, A11; the version
8+
**Status:** landed. Engine in mcpp 2026.9.12.3 and 2026.9.12.4; payloads and runner programs in openxlings/xim-pkgindex (#825, #827); `mcpp:plugins` 0.8.0; the published form verified in a sandbox (§9).
99
is assigned at release); ecosystem changes follow. Every "measured" statement
1010
below was checked against `main` at `85df514a` (mcpp 2026.9.12.2),
1111
`mcpp-plugins` at `9064107` (0.6.0) and `openxlings/xim-pkgindex` at `571f845`,
@@ -999,3 +999,103 @@ directory. Both become packages, found the way every other payload is found.
999999

10001000
Each is a reading a sub-issue takes before its criterion is written down as
10011001
met; none changes a shape above.
1002+
1003+
## 9. What landed, and where each claim was measured
1004+
1005+
Written after the fact, 2026-09-12. The plan's waves ran as ten subagent tasks
1006+
in their own worktrees and merged without conflict; the corrections the
1007+
implementation forced on this record are in §2.3, §2.5, §2.6 and §2.10.
1008+
1009+
| repository | change | measured on the published form |
1010+
|---|---|---|
1011+
| mcpp | #623 (`c765c8cd`), the engine half: A1 to A7, A10, A11; docs/04, 10, 21, 22, 30, 31 and their zh mirrors; CHANGELOG; version 2026.9.12.3 | 39 of 40 checks green on the PR head (the iOS probe job is manual by design); an independent review of the diff found one missed `is_program` site, fixed before merge; main's own run on `22cedfa9` was 10 of 10 |
1012+
| mcpp | #624 (`22cedfa9`): the distributable is the terminal artifact, and a library-form application stages its runtime files | found by the first `dist-apk` build against #623: `adb-run` received the unsigned `base.apk`, and the Android staged tree carried no `assets/` |
1013+
| mcpp | #625 (`5260dec4`): e2e 658, a program on an attached Android device through `adb-run`; the verification script | PASS in 18 s on a 2211133C (arm64-v8a) over USB, exit status crossing the session in both directions |
1014+
| mcpp | #626 (`fe3a008a`) and #628: the bootstrap pin, to 2026.9.12.3 and then 2026.9.12.4 | each moved after its release was indexed and the sandbox reading was green |
1015+
| mcpp | #627 (`13f5a8a9`), 2026.9.12.4: the build program's host toolchain under a cross target resolves the native default when the row's pin replaced nothing, and carries the host's C-library payload paths | found by the sandbox's section J on 2026.9.12.3 (`features.h: No such file` while compiling the `mcpp` module for a Web project's build program in a fresh home); reproduced in the sandbox with the released binary and green with the fix; the development machine had masked it through a subos sysroot leaked into the shared-store gcc's search path |
1016+
| mcpp | tags `v2026.9.12.3` at `22cedfa9` and `v2026.9.12.4` at `13f5a8a9` | `release.yml` six jobs green; four platform archives GET 200 on both `xlings-res` hosts with the upstream sizes; no manual GitCode repair was needed |
1017+
| openxlings/xim-pkgindex | #825 (`2cd3a6a`): `android-build-tools`, `android-platform`, `adb-run`, `simctl-run` 0.2.0, `android-debug-keystore` | installed from the local checkout; the keystore's sha256 matched through both mirrors; the asset is on both `xlings-res` hosts, GET-verified |
1018+
| openxlings/xim-pkgindex | #827 (`2d94ff2`): `adb-run` returns when the activity finishes; the emulator finds its SDK root | both defects were met by the first real run and measured again after the fix: the emulator boots to `sys.boot_completed=1` with no environment set by hand |
1019+
| openxlings/xim-pkgindex | #828 (`f9a2761`) and #831 (`6d60234`), the bot's bumps to 2026.9.12.3 and 2026.9.12.4 | `xlings install mcpp@<ver>` in the shared store; the sandbox binary reports the version |
1020+
| openxlings/xlings | #590 | the resolver's alias-key defect, found by the build-tools recipe and worked around with an exact pin and a run-time fallback |
1021+
| mcpp-plugins | #19 (`db16e277`), 0.8.0, tag `v0.8.0`: `dist-apk`, `dist-web`, the iOS row of `dist-apple`, `dist-wix` through `xim:wix` | Linux: the APK is signed (`CN=Android Debug`), lists the library, `libc++_shared.so`, the deploy'd asset and the run sidecar, `minSdkVersion:'24'`; macOS: the simulator installed the bundle through `simctl-run` and the program printed `1-2-3`; Windows: the MSI carries the program with no host `wix` on PATH |
1022+
| mcpplibs/mcpp-index | #404 (`92a1ba6`): `mcpp:plugins` 0.8.0, CI pin 2026.9.12.3 | the GitHub tag archive and the `mcpp-res` asset are byte-identical (250406 bytes); `mcpp index update` on the released engine carries the entry |
1023+
1024+
Off the repositories: `mcpp run --format apk` printed the program's line on the
1025+
x86_64 emulator and on an arm64 phone; `mcpp run --format app` printed it on
1026+
the macos-15 simulator. A local, unpublished set of `localtest:` recipes
1027+
stands up an Intel macOS guest under QEMU/KVM for the `x86_64-ios-sim` row;
1028+
it stops at the installer, and mcpp ships no Intel macOS binary, so it is a
1029+
path for a future measurement and not one taken here.
1030+
1031+
The sandbox reading of the published binary (`2026-09-12-622-verify.sh`,
1032+
`xlings subos use verify-622 --sandbox`, CN mirror set inside):
1033+
1034+
1035+
```
1036+
== A. the published mcpp answers for itself, with the CN mirror configured ==
1037+
ok: mcpp --version says mcpp 2026.9.12.4
1038+
ok: mcpp self config --mirror CN
1039+
== B. the wasm row: bin/<name>.js, the .wasm sibling, the staged family, shared refused ==
1040+
ok: launcher is bin/w.js
1041+
ok: bin/w.wasm beside it
1042+
ok: no bare bin/w
1043+
ok: mcpp run prints 1-2-3 through the payload's runner
1044+
ok: pack --format dir stages w.js and w.wasm
1045+
ok: shared refused naming -sSIDE_MODULE
1046+
== C. a build program deploys what it generated (mcpp::deploy), and the copy survives a cache hit ==
1047+
ok: bin/dep.resources/res.bin carries the generated content
1048+
ok: restored after bin/ was deleted (replay on a cache hit)
1049+
ok: pack --format dir stages it
1050+
== D. kind = app: a program on the host, a shared library on Android, run refused without --format ==
1051+
ok: an app is a program on the host
1052+
ok: libmyapp.so on Android
1053+
ok: bin keeps meaning binary on Android
1054+
ok: run refused naming --format
1055+
== E. requires_abi on the target axis, and the two-member abi table ==
1056+
ok: refused naming the member and the selector
1057+
ok: satisfied by the root's table
1058+
ok: unknown member refused naming both members
1059+
== F. frameworks per target: a Linux build renders no framework and its graph is unchanged ==
1060+
ok: build.ninja identical on Linux up to the fingerprint segment
1061+
ok: no -framework on Linux
1062+
ok: frameworks accepted under [target.<sel>.runtime]
1063+
== G. platforms names the rows that exist ==
1064+
ok: the six-word vocabulary is accepted
1065+
ok: 'web' refused naming the six
1066+
== H. mcpp run --format hands the distributable to the runner ==
1067+
ok: run --format blob ran the blob through the runner
1068+
ok: plain run hands the link output
1069+
ok: unknown format refused naming blob
1070+
ok: --format with --no-runner refused
1071+
== I. abi.exceptions on the Web row ==
1072+
ok: throw and catch under node with exceptions = true
1073+
ok: -fexceptions in build.ninja
1074+
ok: without the table the run does not print the marker
1075+
== J. mcpp:plugins dist-web through the index ==
1076+
ok: dist-web wrote index.html, web.js, web.wasm
1077+
fails=0
1078+
```
1079+
1080+
fails=0 over 31 assertions, sections A to J, on the released 2026.9.12.4
1081+
installed through the index (three retries of `xlings update` until the pointer
1082+
named the new artifact). The reading of 2026.9.12.3 the day before was fails=0
1083+
over sections A to I and one failure in J, which is the defect the last row of
1084+
the table records.
1085+
1086+
The first run of that script reported four failures, all in the probes and
1087+
none in the engine: an action input named by a path relative to the manifest
1088+
while an action runs in the build directory, a `build.ninja` comparison that
1089+
did not normalise the fingerprint segment, and a key written under the wrong
1090+
table. Each is the class §1 rule 8 names, and each was visible on the
1091+
development machine before the sandbox; the script now clears its probe
1092+
directories and names the object each assertion selected.
1093+
1094+
What remains unmeasured is the list in §8, minus the items the runs above
1095+
closed: `-fexceptions` built its libc++ variant inside the payload store (I);
1096+
`libc++_shared.so` is `NEEDED` on NDK r30 and is bundled; `simctl launch
1097+
--console-pty` returned the program's output and status; the build-tools and
1098+
platform archives' `NOTICE` files were read and recorded in the recipes;
1099+
`xim:wix` produced the MSI on the Windows runner without a step installing
1100+
.NET. The published debug key installed over nothing on the devices used, so
1101+
the last bullet of §8 stands as written.

.agents/docs/2026-09-12-622-implementation-plan.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
subject: targets
3-
status: active
3+
status: landed
44
---
55

66
# Implementation plan: a UI framework on Android, iOS and Web (#622)

.agents/docs/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ Records that declare one. Everything else is listed by date below.
4747
### targets
4848

4949
- [A verified Web run that asked the host for node](2026-09-12-a-verified-web-run-that-asked-the-host-for-node.md) — landed
50-
- [Implementation plan: a UI framework on Android, iOS and Web (#622)](2026-09-12-622-implementation-plan.md)active
51-
- [A UI framework on Android, iOS and Web: where each item of #622 lands, and the three it does not list](2026-09-12-622-a-ui-framework-on-android-ios-and-web.md)active
50+
- [Implementation plan: a UI framework on Android, iOS and Web (#622)](2026-09-12-622-implementation-plan.md)landed
51+
- [A UI framework on Android, iOS and Web: where each item of #622 lands, and the three it does not list](2026-09-12-622-a-ui-framework-on-android-ios-and-web.md)landed
5252
- [SDK toolchains, the payload/engine seam, and openkal across iOS, Android and Web](2026-09-11-sdk-toolchains-and-ios-local-verification.md) — landed
5353
- [Where a platform's knowledge belongs: iOS, Android and Web across the engine, the index and the plugins](2026-09-11-platform-targets-design-review.md) — active
5454

@@ -63,8 +63,8 @@ Records that declare one. Everything else is listed by date below.
6363

6464
- [The engine gaps left open after the SDK batch](2026-09-12-engine-gaps-after-the-sdk-batch.md) — landed
6565
- [A verified Web run that asked the host for node](2026-09-12-a-verified-web-run-that-asked-the-host-for-node.md) — landed
66-
- [Implementation plan: a UI framework on Android, iOS and Web (#622)](2026-09-12-622-implementation-plan.md)active
67-
- [A UI framework on Android, iOS and Web: where each item of #622 lands, and the three it does not list](2026-09-12-622-a-ui-framework-on-android-ios-and-web.md)active
66+
- [Implementation plan: a UI framework on Android, iOS and Web (#622)](2026-09-12-622-implementation-plan.md)landed
67+
- [A UI framework on Android, iOS and Web: where each item of #622 lands, and the three it does not list](2026-09-12-622-a-ui-framework-on-android-ios-and-web.md)landed
6868
- [Six open issues: what each one actually is, and what would answer it](2026-09-11-six-open-issues-analysis.md) — active
6969
- [SDK toolchains, the payload/engine seam, and openkal across iOS, Android and Web](2026-09-11-sdk-toolchains-and-ios-local-verification.md) — landed
7070
- [Where a platform's knowledge belongs: iOS, Android and Web across the engine, the index and the plugins](2026-09-11-platform-targets-design-review.md) — active

0 commit comments

Comments
 (0)