Files
SoulStream/handoff/rounds/ins-r32-boot.txt
T
KeelrLeek 9f0601027c android: the handoff — the pending rounds, the pipeline, and what is unverified
Everything written this session that has not been through the device: rounds 43
to 48 (each patch adversarially verified, 43's transient-notice expectation
fixed), a partial round 49, the pipeline scripts, the Android Auto design and
the icon comparison mock. Also the two harness changes that were never A/B'd —
adaptive waits, which may only shorten a declared wait and never lengthen it,
and a ship that runs the mock walk and the deploy at the same time. The A/B and
its 255-step baseline are in handoff/tools; main stays at what the phone has
actually walked.
2026-09-14 07:57:41 -05:00

54 lines
2.4 KiB
Plaintext

/* The boot census.
Every command the app issues passes one counter here — src/lib/api.js on
the way into `invoke`, and src/lib/events.js on the way into `listen`,
which is an invoke like any other (Tauri registers the subscription over
the same bridge). A plugin that registers its own listener through
@tauri-apps/api directly goes past both doors and is not counted — the
media card's and the transfer notice's `addPluginListener` are the two —
so what this measures is the app's own traffic. The question it answers
is the one nobody could answer before: how much of the world does the
app ask for before it has drawn anything?
It seals at the first frame the shell paints and never re-opens, so a
probe landing a second and a half later still reads the launch. That is
what tests/mobile/smoke.mjs holds a budget against — the point is to
catch a round that loads the world at boot, not to police milliseconds.
A plain object, deliberately: this module is shared with the desktop, it
imports nothing, and it must not throw. On the desktop nothing seals it
and nothing reads it. */
export const boot = {
/** the moment the chain starts — the shell's onMount sets it */
t0: 0,
/** every invoke and every listen, until the seal */
calls: 0,
/** how many of them left in the shell's own first turn, before any
* answer could have come back. A chain that waits on itself can only
* issue its first call there, so this is the one number that says
* whether the boot chain is still going out in one round; the shell
* latches it at the end of onMount. -1 until it does. */
sync: -1,
/** the first hundred and twenty of them, in the order they went out —
* past any budget the walk holds, so "is X at boot?" is never
* answered by a list that stopped short */
cmds: [],
/** onMount → the first frame the app could have drawn into */
frameMs: null,
/** onMount → lib.loaded, which is what Home waits for */
libMs: null,
sealed: false,
};
export function countBoot(cmd) {
if (boot.sealed) return;
boot.calls++;
if (boot.cmds.length < 120) boot.cmds.push(cmd);
}
export function sealBoot() {
if (boot.sealed) return;
boot.sealed = true;
try { boot.frameMs = Math.round(performance.now() - boot.t0); } catch { /* a webview without the timer */ }
}