Skip to content

Find an installed app's bundle in App Hub's new layout as well as the old - #301

Merged
guofoo merged 1 commit into
mainfrom
fix/installed-bundles-either-layout
Oct 3, 2026
Merged

guofoo merged 1 commit into
mainfrom
fix/installed-bundles-either-layout

Conversation

@guofoo

@guofoo guofoo commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

App Hub moves installed bundles out of their apps' storage: from <root>/<id>/bundle to <root>/.bundles/<id>/bundle (OctoSense-org/OctoSense-App-Hub#62, merged as 2bcb8985, for App Hub issue #51). The shell builds the old path itself in three places, which would stop finding installed store apps once the App Hub pin moves:

  • apps.rs: the agents' manifest lookup for installed apps;
  • host_tools/script_apps.rs: an installed app's tools.json (admitted_bundle);
  • app_storage/lifecycle.rs: the storage lifecycle's script_manifest.

apps::installed_bundle(root, id) finds the bundle in either place, the new one first. All three use it.

This works with the App Hub the shells pin today (0d5b47a2, from #312, old layout) and after the pin moves to 2bcb8985 or later, which has the new layout. Merge it before, or together with, that pin move.

Tests

  • apps::tests::an_installed_bundle_is_found_in_either_layout: the old layout, the new layout winning when both exist, and neither. It failed before the helper existed, and fails again if the new place is ignored.
  • Rebased on main d31edf46 (2026-10-03). The only conflict: main added the_panes_own_process_is_never_listed_as_an_app where this adds its test; both are kept. main has no new code that builds the old path.
  • tools/ci-local.sh --only desktop,phone,apps on 3b233dbc (clean tree): PASSED, 33 of 33 steps, none skipped.

… old

App Hub moves installed bundles out of their apps' storage, from
<root>/<id>/bundle to <root>/.bundles/<id>/bundle (OctoSense-App-Hub
fix/bundles-outside-storage). The shell built the old path in three
places: the agents' manifest lookup (apps.rs), an installed app's tools
(host_tools/script_apps.rs) and the storage lifecycle's manifest
(app_storage/lifecycle.rs).

apps::installed_bundle finds the bundle in either place, the new one
first, so this works with the App Hub the shells pin today and after
the pin moves to one that has moved its installs.
@guofoo
guofoo force-pushed the fix/installed-bundles-either-layout branch from 04c781c to 3b233db Compare October 3, 2026 08:03
@guofoo
guofoo merged commit 2b4486f into main Oct 3, 2026
5 checks passed
tyreseluo pushed a commit to tyreseluo/OctoSense that referenced this pull request Oct 4, 2026
App Hub moves from 58c3c8ae to its main 0d5b47a2:
- OctoSense-org#53: publisher keys come from the authenticated catalog.
- OctoSense-org#54: an installed release launches as itself, from verified bytes.
- OctoSense-org#63, OctoSense-org#64: the native apps OctoSense made native are reserved
  (calculator, clock, notes, reminders, weather, browser, task); its
  example app `weather` became `forecast`.
- OctoSense-org#61, OctoSense-org#67: makepad repins (this workspace's [patch] wins either way).
- Docs.

octosense-app-contract 1.1.0 (App Hub OctoSense-org#66, published to crates.io)
carries the reserved names. app-policy re-exports them, so App Hub's
admission tests at 58c3c8ae, whose fixtures still use `weather`, fail
against 1.1.0. The pin and the lock move together.

App Hub's new bundle layout (App Hub OctoSense-org#62, which OctoSense-org#301 prepares for) is
not in 0d5b47a2: installed bundles stay where the shell looks today.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@guofoo
guofoo deleted the fix/installed-bundles-either-layout branch October 5, 2026 20:01
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