Limits, units and terminology
Game publishing
Status: planned: large-game delivery targets 50 GiB logical builds and 4 GiB/file with a warning above 1 GiB/file. Those are future chunk-path quotas, not the current values in this table.
| Limit | Current source value |
|---|---|
| Build ZIP upload | 512MiB |
| Extracted archive | 1GiB |
| ZIP entries | 5,000 |
| Store cover image | 2MiB |
| Game tagline | 140 characters |
| Store-page Markdown | 20,000 characters |
| Tags | At most 5; each 1–24 characters |
| Profile name/display name | 1–60 characters |
| Developer bio | At most 500 characters |
The archive rejects path traversal, absolute/backslash paths and missing root entry points. The CLI directory packer also rejects common native binary files and symlinks. A prebuilt ZIP still needs server validation.
Store-page media
| Media | Formats | Minimum | File-size limit |
|---|---|---|---|
| Banner | PNG, JPEG, WebP | 960×300 and 2:1 or wider | 4 MiB |
| Cover | PNG, JPEG, WebP | 460×215 | 2 MiB |
| Screenshots | PNG, JPEG, WebP; up to 8 | 640×360 | 4 MiB each |
| Trailer | MP4, WebM | — | 30 MiB |
Formats are checked by file content, not by name. SVG and GIF are rejected. One store-page media upload has a 30 MiB combined media budget. See the full store-page guide for dimensions and page limits.
Browser capture
TTL: 1–300 seconds. Frames: 32,768 retained. Series and memory events: 300 each. Observer intervals: 512. Optional function samples: 10,000 at 10–1000ms interval. Heap/document measurement: at most every 30 seconds, one request at a time.
.vpt: 50MiB file and 1MiB per record. Direct Claude summary: 24,000 UTF-8 bytes;
response: 256KiB; timeout: 15 seconds. These are implementation bounds, not a
promise of identical memory usage or overhead on every device.
Native capture
The new dashboard viewer/capture session has a 300s default/maximum TTL, at most 300 live buckets, a 200MiB automatic-dump storage cap, and import limits of 50MiB, 1MiB per record and 150,000 records. Flamegraph display caps at 4096 nodes/64 levels. Native Claude calls use a 24KB summary, 256KiB response cap and 20s timeout.
Current proof: TTL default 30 seconds, maximum 300; one bounded per-CPU hit map and 1Hz reads. Planned profiler: TTL default 300, Lite 49Hz sampling, Full 99Hz, 4MiB ring buffer and 50MiB dump. Planned overhead targets are not measurements.
Asset records
An asset record's id is 1–256 characters and unique in the file; name is 1–1024. A texture is 1–65,536 pixels on each side with
1–4,096 layers; its format is 1–64 characters. The dashboard's asset table shows the top 300 rows and its lane timeline up to 40
lanes. The 50MiB file, 1MiB record and 150,000-record import limits apply. See Find expensive assets.
Terms
- Frame time: interval between observed frame markers/rAF callbacks, in ms.
- FPS: inverse frame duration or aggregate frames/elapsed time for the stated window.
- 1%/0.1% low: inverse mean duration of the slowest fraction of retained frames.
- Main-thread busy: browser observer occupancy lower bound, not process CPU percent.
- RSS/PSS: native resident/proportional resident memory; not available from this browser collector.
- Wasm linear memory: allocated buffer size; logical allocation usage can be lower.
- Grow observation: sampled size increase; browser data may combine several actual grows.
- Self samples: samples attributed to a leaf function; not a reconstructed total-call tree.
- Dropped/overwritten: records no longer retained because a bounded buffer rolled over.
- MiB/GiB: binary units, 1MiB = 1,048,576 bytes. Trace memory fields contain bytes.
- Game version: published content version, distinct from CLI or profiler version.
- Source preview: implemented in an audited checkout, not necessarily published or deployed.