Skip to content

ADR 0005: the app contract between App Hub and apps (implemented) - #240

Merged
ymote merged 5 commits into
mainfrom
docs/adr-0005-app-contract
Oct 1, 2026
Merged

ymote merged 5 commits into
mainfrom
docs/adr-0005-app-contract

Conversation

@ymote

@ymote ymote commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

ADR 0005, accepted and implemented: a fixed, versioned app contract between App Hub and every app (Rinx, mini apps, script apps), so App Hub changes no longer force app releases. Docs only.

🤖 Generated with Claude Code

ymote and others added 4 commits October 1, 2026 00:42
One small, versioned crate (octosense-app-contract 1.x) between App Hub and
every app: manifest, policy resolution, integrity and running a package.
Additive-only within 1.x; new manifest fields classified optional or
required (`requires`), so older hosts refuse what they can't enforce; a
fixture corpus and an API-diff check; consumers depend on the version from
a registry, so App Hub changes no longer force app releases.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…st-side [skip ci]

- Registry: crates.io.
- The contract fixes what an app may do (AppPolicy); each host builds its own
  sandbox from it and may only restrict further. IsolateSettings and the
  Splash adapter leave the contract (an optional, non-contract helper crate).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ymote
ymote force-pushed the docs/adr-0005-app-contract branch from 778a1fb to 16d58e0 Compare October 1, 2026 07:42
@ymote

ymote commented Oct 1, 2026

Copy link
Copy Markdown
Contributor Author

Local CI passed on 35f7975 (tools/ci-local.sh --only rom, 0s, Darwin arm64).

GitHub would run for this PR: none. Merged on this local pass (macOS runner queue); GitHub CI runs on the merge commit on main.

Job Step Result Time
ci-local / drift The local mapping fits the workflows PASS -
rom.yml / product python3 -m unittest discover -s tests -v SKIPPED (!) -
rom.yml / product Check generated Agent Binder client SKIPPED (!) -
rom.yml / product bash -n scripts/stage-forks.sh scripts/publish-release.sh scripts/apply-to-tree.sh scripts/build-rom.sh PASS -
rom.yml / web-installer npm ci --ignore-scripts --no-audit --no-fund SKIPPED (!) -
rom.yml / web-installer npm test SKIPPED (!) -
rom.yml / web-installer npx playwright install --with-deps chromium SKIPPED (!) -
rom.yml / web-installer npm run test:browser SKIPPED (!) -
rom.yml / web-installer python3 -m unittest discover -s tests -p test_installer_manifest.py -v SKIPPED (!) -
rom.yml / web-installer bash -n scripts/release.sh SKIPPED (!) -

Skipped (these did NOT pass; (!) marks a skip that blocks tools/ci-local-merge.sh):

  • rom.yml / product: python3 -m unittest discover -s tests -v: javac -version does not work here: install a JDK (17 or newer) and put its bin/ on PATH or set JAVA_HOME
  • rom.yml / product: Check generated Agent Binder client: needs build-tools/35.0.0/aidl, platforms/android-35/framework.aidl in the Android SDK (~/Library/Android/sdk): install the SDK packages 'build-tools;35.0.0' and 'platforms;android-35' (sdkmanager) and set ANDROID_HOME
  • rom.yml / web-installer: npm ci --ignore-scripts --no-audit --no-fund: no node, npm, npx on PATH (the workflow uses node 24); put node on PATH
  • rom.yml / web-installer: npm test: no node, npm, npx on PATH (the workflow uses node 24); put node on PATH
  • rom.yml / web-installer: npx playwright install --with-deps chromium: no node, npm, npx on PATH (the workflow uses node 24); put node on PATH
  • rom.yml / web-installer: npm run test:browser: no node, npm, npx on PATH (the workflow uses node 24); put node on PATH
  • rom.yml / web-installer: python3 -m unittest discover -s tests -p test_installer_manifest.py -v: no node, npm, npx on PATH (the workflow uses node 24); put node on PATH
  • rom.yml / web-installer: bash -n scripts/release.sh: no node, npm, npx on PATH (the workflow uses node 24); put node on PATH

Notes:

  • GitHub runs Python 3.12; this run used Python 3.9.6

@ymote
ymote merged commit a6bdaa8 into main Oct 1, 2026
@ymote ymote changed the title ADR 0005: the app contract between App Hub and apps (proposed) ADR 0005: the app contract between App Hub and apps (implemented) Oct 1, 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