Skip to content

Add developer App Studio with on-device app testing - #313

Merged
4 commits merged into
mainfrom
feat/adr0006-studio-render
Oct 11, 2026
Merged

4 commits merged into
mainfrom
feat/adr0006-studio-render

Conversation

@ymote

@ymote ymote commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Agents could author files on the phone but could not run, inspect and validate a new full app there. This adds the developer-mode Studio path: L0 rendering plus scoped bundle admission, preview, native widget input, PNG/geometry inspection, closing and local installation. Installed offline apps appear in Home and retain their own storage; preview storage is disposable.

The host binds every instance and artifact to the caller, conversation workspace and developer grant. Local installs use dev.studio.*, admit storage-only apps, retain resource budgets and cannot impersonate signed catalog packages. Inspection exposes exact selectors in replies below the kernel’s 4 KiB limit, with full diagnostics saved separately. Input inspection waits for a completed draw, and close acknowledges after cleanup.

Validation uses a fresh Task Planner authored by DeepSeek V4 Flash from a design brief. Replaying successful model writes/edits reproduces all four final files exactly. DeepSeek drove preview interactions and received five images; a separate harness drove the complete acceptance sequence. This was supervised generation with retries, not one-shot autonomous acceptance.

Validation on runtime commit 50639fa2 after rebasing on bf3c2180:

  • OnePlus 6, separate test package: 129 successful tool calls, native add/complete/reopen/filter, preview isolation, installation, force-stop persistence, Chinese text and overflow scrolling. Manual screenshot and Android keyboard review passed. Production Home/Bridge unchanged; temporary settings/provider configuration restored.
  • 863 shell tests; 89 app-peer unit/connector tests; 108 tools Python tests; 100 ROM tests using JDK 17. The 15 optional real-kernel tests returned early and are not counted as end-to-end passes.
  • Desktop default/mobile-apps and phone mobile-apps checks; both dependency graphs; setup and generated-native-app consistency; Android APK build.
  • Independent source/evidence review: 4.6/5 (A−) for this implemented flow. Two ordering findings fixed and regression-tested.

Validation report and actual screenshots. Bilingual README and architecture guides are updated.

ADR 0006 remains partially implemented: image generation/comparison, editable mod.studio workflows and rich in-screen assets are future work. Malformed-storage/save-failure injection and landscape UX remain unverified. The generated app has generous spacing; existing shell status-bar contrast and floating overlay observations are recorded in the report.

ymote added a commit that referenced this pull request Oct 11, 2026
Findings of the independent review of #313 against main's runtime, where
capabilities, hosts and budgets are declarations:

- Studio isolates fail closed on device consent and carry no host identity:
  set_device_consent(true) and set_host_tag(None) before set_text, as a
  seated contained app does in glance_card::seat. The may_run budget checks,
  vacuous at this makepad, are gone; the jail, quota and memory cap are what
  is enforced.
- A preview's host.request is refused, not left in the bridge queue: every
  event (and every studio draw) drains take_splash_host_requests_for and
  answers with a fixed refusal, so a script sees an error instead of a hang
  and other apps keep their request slots.
- Admission refuses WebAssembly: a .wasm file while the bundle is copied and
  a manifest that pins shared components; tested.
- Developer-install receipts whose grant ended are reaped with their
  snapshots before the 16-install cap is counted; tested.
- The studio-render and studio-flow launch fixtures accept only a workspace
  inside this home's directory, since the intent extra that names them is
  readable by any app that can start Home; the flow spool logs when it stops.
- studio.open is an act tool.
- Docs: the enforcement claims match the code (net module absent, host
  requests refused, budget declared, jail/quota/memory cap enforced); the
  acceptance-contract SHA-256 in the validation report is corrected.

Tests: desktop 984, phone mobile-apps 1196 (32 studio), ROM test_home_build 32.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@ymote

ymote commented Oct 11, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #477: this branch merged with main (3bd15ba), the independent review's findings fixed, and the flow re-validated on a second phone. #477 keeps these four commits. Please do not push further to feat/adr0006-studio-render; the product owner assigned ADR 0006 to the hagency-a9 session on 10 October 2026.

@ymote ymote closed this pull request by merging all changes into main in b4323bd Oct 11, 2026
chrislearn pushed a commit to chrislearn/OctoSense that referenced this pull request Oct 12, 2026
…stands

Records what changed after the ADR was accepted: ADR 0014 components and
shared components are merged and in desktop 0.1.0-rc.4 (not in a Home
release); capabilities are declarations (makepad#117/OctoSense-org#118, OctoSense OctoSense-org#452,
OctoSense-org#457); OctoSense-org#313 holds milestone 1's renderer and tools, unreviewed and unmerged;
the product owner deferred the phone studio work on 10 October 2026.

Amends section 5: the checks, measurement and comparison are Rust crates that
build natively into App Hub's card-studio on the desktop and, with App Flow's
tools/octo wasm build, into components in the studio's own bundle on the
phone (intake, ocr, measure, compare, checks), within the wasm service's
limits; what stays shell code. Amends section 6 (what mod.studio keeps) and
section 7 (the tools OctoSense-org#313 ships; check/compare/critique as component
functions; the 256 KiB reply cap). A table of where each step of the flow
stands on 10 October 2026, the route for when the work resumes (proposed,
unassigned), what a phone will not do, the amended "what changes where", and
three added open questions.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
chrislearn pushed a commit to chrislearn/OctoSense that referenced this pull request Oct 12, 2026
Resolves the fourteen conflicts with main at 3bd15ba: both sides kept in
glance.rs (studio card preparation beside the generated-Mail checks),
host_tools/mod.rs (the studio modules beside admission), host_tools/tests.rs
(the studio tests beside the engines' tests) and lib.rs (the studio module
and its draw hook beside glance_style and the audio session hook); the
system chat's declarations add the studio tools to the agents' set before
session_set applies the cap; build-home.py keeps --dev-mode and
--package-name with main's version-name, pending-pair verification and
receipt, Home's expected package taken from --package-name; the
architecture walkthroughs keep main's UI-thread note before the studio
section; ADR 0006 keeps the branch's status line and main's wording of the
consequences, with the branch's disposable-storage detail.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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