WorldPlatform DocumentationOpen world.page ↗
World platform

Lifetime and residency

A hidden widget should not continue doing visible work. Repeated views should not download the same Page repeatedly.

Initial bounds implemented

Mount, suspend, resume, release

The host intersects each occurrence with the viewport and its parent activity. A hidden parent suspends descendants. Closing releases descendants, listeners, observers and Page leases.

Active occurrences of the same Page share one snapshot, one in-flight read and one subscription. Resuming observation revalidates data. Invalidation during a read schedules one trailing read, preventing a missed update.

Access denial clears the shared snapshot and its readable presentation. A cached capability is never sufficient authorization for a server command.

Initial review budgets

  • 48 mounted widget occurrences; maximum recursive depth 12; four slots reserved for shell navigation.
  • Latest 80 messages per snapshot; maximum serialized snapshot 512 KiB; four concurrent snapshot reads.
  • Four warm, unleased Pages; 8 MiB warm-cache target. Suspended queued reads are cancelled.
  • Eight retained Page presentations. Unsent or sending drafts prevent automatic eviction, including drafts in child widgets.
  • Active leased snapshots are not evicted to satisfy the warm target. DOM, media and GPU memory still require separate accounting.

Retained Studio shell

The shell reuses the Studio column structure and shared styling: a fixed 72-point World rail, 288-point navigation column and a workspace to their right. Top and bottom toolbar sections join on the same boundaries. Narrow windows reduce the right workspace; the navigation pair never stretches to fill the screen.

The message bar separates chat above from a complete scrollable inventory below. Drag either grip, double-tap to toggle, or use Enter and arrow keys. Embedded chats use the same pull-up controller. Resizing does not fetch Page content or rebuild messages.

Consumer and producer pools

The planned projectConsumerCache serves lightweight playback, thumbnails and low-latency browsing. The projectProducerCache retains authorized originals and editing resources. Both must deduplicate immutable identities and invalidate individual changed revisions.

Projects can retain more consumer resources than an ordinary chat, but device memory hints are only hints. The host must account for owned bytes, cancel work, release offscreen resources and degrade deliberately. Full memory-budget enforcement remains a later phase.