SOURCE / PINNED RELEASE
Made of little things.
Supersonic RC Revive
- Release
- bb8b570f3600…
- Author-recorded commit
- 073e2d2c0e63…
- License
- LICENSE
- Author’s source reference
- nostr://npub1ye5ptcxfyyxl5vjvdjar2ua3f0hynkjzpx552mu5snj3qmx5pzjscpknpr/wss%3A%2F%2Fgit.shakespeare.diy%2F/SuperSonicRCRevive
Archive hash verified: 857599401cc78951…. The source-to-build association is the author’s claim; it has not been independently rebuilt.
// Trusted local scenario: a private room code over NAP-WEBRTC only (no CVM room).
import { runOnlineScenario } from './online-scenario-shared.mjs';
export default context => runOnlineScenario(context, async (players, ready, check) => {
const [first, ...friends] = players;
await first.frame.evaluate(() => {
const cvm = window.napplet.cvm;
window.__onlineCvmCalls = 0;
if (cvm) for (const key of Object.keys(cvm)) if (typeof cvm[key] === 'function') {
const call = cvm[key].bind(cvm);
cvm[key] = (...args) => { window.__onlineCvmCalls++; return call(...args); };
}
});
// Stand in for signed-in users: the soyLI test guests have no Nostr login or kind 0 profiles.
// Only identity/profile answers are stubbed; names still travel in real room beacons.
await Promise.all(players.map((p, i) => p.frame.evaluate(i => {
const key = String(i + 1).repeat(64);
window.napplet.identity = { ...window.napplet.identity, getPublicKey: async () => key };
window.napplet.common = { ...window.napplet.common, getProfile: async pubkey => ({ ok: true, pubkey, profile: { name: `Driver ${pubkey[0]}` } }) };
}, i)));
await first.frame.getByRole('button',{name:'Private room',exact:true}).click();
await first.frame.getByRole('button',{name:'New room',exact:true}).click();
await ready(first);
const code = await first.frame.getByRole('textbox',{name:'Room code',exact:true}).inputValue();
check('short room code shown', /^[A-Z2-9]{3}-[A-Z2-9]{3}$/.test(code));
for (const friend of friends) {
await friend.frame.getByRole('button',{name:'Private room',exact:true}).click();
await friend.frame.getByRole('textbox',{name:'Room code',exact:true}).fill(code.toLowerCase());
await friend.frame.getByRole('button',{name:'Join room',exact:true}).click();
await ready(friend);
}
await first.frame.waitForFunction(n => {
const labels = JSON.parse(document.querySelector('canvas')?.dataset.remoteLabels ?? '[]');
return labels.length === n && labels.every(l => /^Driver [2-9]$/.test(l));
}, friends.length, {timeout: 30000});
check('remote name tags show profile names from NAP-COMMON', true);
check('private room used no CVM calls', await first.frame.evaluate(() => window.__onlineCvmCalls === 0));
});
