bgUpdater: Server vs Browser Execution
Claim:{" "}
bgUpdater handlers run on SERVER via background-charm-service polling.
Key Discovery:{" "}
bgUpdater is POLLING-BASED (60s default), not event-driven!
- Does NOT auto-trigger on cell changes
- Requires background-charm-service running
- Charm must be registered with service
- Service polls and sends {} to bgUpdater Stream
Run Count: {runCount}
Browser Trigger (click me)
Clear Logs
Execution Log (look for [BROWSER] vs [SERVER]):
{logs.map((log, idx) => (
-
{log}
))}
VERIFICATION STATUS:
-
[BROWSER] execution: Click button above - VERIFIED
-
[SERVER] execution: VERIFIED BY CODE REVIEW
Server execution verified by reading
background-charm-service/src/worker.ts:188-196. The worker calls
{" "}
updater.withTx(tx).send({}){" "}
to trigger bgUpdater server-side.
To Test Server Execution Live:
- Click "Register Charm for Updates" button below
-
Start the background-charm-service:{" "}
cd packages/background-charm-service && deno task start
- Wait ~60 seconds for polling interval
- Look for [SERVER] entries in logs above
),
runCount,
logs,
// bgUpdater runs on server when background-charm-service polls this charm
bgUpdater: bgUpdateHandler({ runCount, logs }),
};
});