Two-tab restoration observation, October31,2026. Synthetic labels only. 1.In tabA open https://teamsgenerator.com/ . Enter V01 Aster,V02 Birch,V03 Cedar,V04 Elm,V05 Fern,V06 Grove one per line. Choose2teams,Generate teams,download CSV. Our recorded groups were V04/V06/V03 and V01/V05/V02. 2.Reload tabA once. Our same six-label draw returned. 3.Open the same ordinary address in tabB. Our same six-label draw appeared without pasting names or pressing Generate. 4.In tabB replace the list with W01 Hazel,W02 Iris,W03 Juniper,W04 Larch,one per line. Keep2teams,Generate. Our groups were W01/W04 and W03/W02. 5.Read tabA before reloading:it still showed the six-label draw. Reload tabA:its roster and both result groups changed to tabB's four-label draw. Download this refreshed result. Random groups can differ. Compare your own accepted group memberships across each step,not the particular ordering above. No private mode,cleared storage,other device,login flow or share-link mode was tested. Do not run this with a real active roster you need to preserve. We used agent-created tabs and invented labels. Download team-tabs-first-draw.csv and team-tabs-after-refresh.csv together. Save the code below as verify-tabs.cjs beside them.Run node verify-tabs.cjs with Node.js18+. It reads only local files and sends no requests. It checks this archived observation,not current website behavior or hidden storage internals. const fs=require('node:fs'),path=require('node:path'),assert=require('node:assert/strict'); const load=n=>fs.readFileSync(path.join(__dirname,n),'utf8').replace(/^\uFEFF/,'').trim().split(/\r?\n/).map(s=>s.split(',').map(x=>x.replace(/^"|"$/g,''))); const first=load('team-tabs-first-draw.csv'),after=load('team-tabs-after-refresh.csv'); assert.deepEqual(first[0],['Team','Member','Captain']);assert.deepEqual(after[0],first[0]); const a=[['Team 1','V04 Elm','no'],['Team 1','V06 Grove','no'],['Team 1','V03 Cedar','no'],['Team 2','V01 Aster','no'],['Team 2','V05 Fern','no'],['Team 2','V02 Birch','no']]; const b=[['Team 1','W01 Hazel','no'],['Team 1','W04 Larch','no'],['Team 2','W03 Juniper','no'],['Team 2','W02 Iris','no']]; assert.deepEqual(first.slice(1),a);assert.deepEqual(after.slice(1),b); assert(first.slice(1).every(r=>!after.slice(1).some(s=>s[1]===r[1]))); console.log(JSON.stringify({pass:true,firstMembers:first.length-1,afterMembers:after.length-1,sharedMemberLabels:0,firstGroups:[a.slice(0,3).map(r=>r[1]),a.slice(3).map(r=>r[1])],afterGroups:[b.slice(0,2).map(r=>r[1]),b.slice(2).map(r=>r[1])],scope:'Exact archived CSVs and visible UI records; not a universal persistence test or live recovery utility.'},null,2));