nmarshall commited on
Commit
c0887d4
·
1 Parent(s): 055a3c0

qvm: compose leaderboard categories

Browse files
docs/ASSET_PIPELINE_TODO.md CHANGED
@@ -976,3 +976,6 @@ Research progress: RE-772 [report](research/QVM_LEADERBOARD_LAYOUT.md); original
976
 
977
 
978
  Research progress: RE-773 [report](research/QVM_LEADERBOARD_SELECTOR.md); original assets unchanged.
 
 
 
 
976
 
977
 
978
  Research progress: RE-773 [report](research/QVM_LEADERBOARD_SELECTOR.md); original assets unchanged.
979
+
980
+
981
+ Research progress: RE-774 [report](research/QVM_LEADERBOARD_CATEGORIES.md); original assets unchanged.
docs/FINDINGS.md CHANGED
@@ -1322,3 +1322,6 @@ RE-725–734 batch: [health, contact and Rust impulse findings](research/QVM_HEA
1322
 
1323
 
1324
  **RE-773 — Complete leaderboard joint thresholds sentinel updates and ties:** 284610 requires every candidate metric to strictly exceed its threshold, then updates only nonsentinel fields and records the candidate entity. [Evidence](research/QVM_LEADERBOARD_SELECTOR.md).
 
 
 
 
1322
 
1323
 
1324
  **RE-773 — Complete leaderboard joint thresholds sentinel updates and ties:** 284610 requires every candidate metric to strictly exceed its threshold, then updates only nonsentinel fields and records the candidate entity. [Evidence](research/QVM_LEADERBOARD_SELECTOR.md).
1325
+
1326
+
1327
+ **RE-774 — Actual first four leaderboard category selections:** 283622 first four categories now execute actual initialization/mapping/selection with their original key groups and thresholds. [Evidence](research/QVM_LEADERBOARD_CATEGORIES.md).
docs/PROVISIONAL_TODO.md CHANGED
@@ -1320,3 +1320,6 @@ Research progress: RE-772 [report](research/QVM_LEADERBOARD_LAYOUT.md); full nat
1320
 
1321
 
1322
  Research progress: RE-773 [report](research/QVM_LEADERBOARD_SELECTOR.md); full native/platform/game scope remains open.
 
 
 
 
1320
 
1321
 
1322
  Research progress: RE-773 [report](research/QVM_LEADERBOARD_SELECTOR.md); full native/platform/game scope remains open.
1323
+
1324
+
1325
+ Research progress: RE-774 [report](research/QVM_LEADERBOARD_CATEGORIES.md); full native/platform/game scope remains open.
docs/RESEARCH_LEDGER.md CHANGED
@@ -1523,3 +1523,8 @@ Exactly ten task commits follow baseline `27a7f96f`. Every completed task passed
1523
  ## 2026-10-21 — RE-773 Complete leaderboard joint thresholds sentinel updates and ties
1524
 
1525
  284610 requires every candidate metric to strictly exceed its threshold, then updates only nonsentinel fields and records the candidate entity. Focused `cargo xtask test-group leaderboard-selector` passes (3 Python tests); selected reports regenerate twice byte-identically, with storage, links and whitespace guards. New report: 697619 bytes. Full-suite validation is deferred to the tenth batch commit. No original assets, Rust runtime or shared VM evaluator changed.
 
 
 
 
 
 
1523
  ## 2026-10-21 — RE-773 Complete leaderboard joint thresholds sentinel updates and ties
1524
 
1525
  284610 requires every candidate metric to strictly exceed its threshold, then updates only nonsentinel fields and records the candidate entity. Focused `cargo xtask test-group leaderboard-selector` passes (3 Python tests); selected reports regenerate twice byte-identically, with storage, links and whitespace guards. New report: 697619 bytes. Full-suite validation is deferred to the tenth batch commit. No original assets, Rust runtime or shared VM evaluator changed.
1526
+
1527
+
1528
+ ## 2026-10-21 — RE-774 Actual first four leaderboard category selections
1529
+
1530
+ 283622 first four categories now execute actual initialization/mapping/selection with their original key groups and thresholds. Focused `cargo xtask test-group leaderboard-categories` passes (3 Python tests); selected reports regenerate twice byte-identically, with storage, links and whitespace guards. New report: 1002192 bytes. Full-suite validation is deferred to the tenth batch commit. No original assets, Rust runtime or shared VM evaluator changed.
docs/REVERSE_ENGINEERING_TODO.md CHANGED
@@ -1366,3 +1366,6 @@ Purpose: turn the supplied installation into an evidence-backed specification of
1366
 
1367
 
1368
  - [x] RE-773 Complete leaderboard joint thresholds sentinel updates and ties ([report](research/QVM_LEADERBOARD_SELECTOR.md)).
 
 
 
 
1366
 
1367
 
1368
  - [x] RE-773 Complete leaderboard joint thresholds sentinel updates and ties ([report](research/QVM_LEADERBOARD_SELECTOR.md)).
1369
+
1370
+
1371
+ - [x] RE-774 Actual first four leaderboard category selections ([report](research/QVM_LEADERBOARD_CATEGORIES.md)).
docs/research/QVM_LEADERBOARD_CATEGORIES.md ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ # Actual first four leaderboard category selections
2
+
3
+ RE-774. Reproduce with `python3 scripts/analyze_qvm_leaderboard_categories.py`; validate with `cargo xtask test-group leaderboard-categories`. See the [machine report](qvm-leaderboard-categories.json).
4
+
5
+ Recovered283623..283816 over12 live-client/data patterns. Original key groups feed actual284555/284610/278587, with ratio zero and threshold60=5 for the first three categories; the fourth activates only threshold60=10. Results populate slots1/2/3/5 of the16-word publication array. Stops before fourth-category total post-filter; later categories and native/publication parity remain open.
6
+
7
+ No original executable/full VM/native world collision or rendering runs. Supplied callback/native responses and fixture domains remain explicit; complete macOS/Linux Rust/Bevy/Solari gameplay remains open.
docs/research/README.md CHANGED
@@ -912,3 +912,6 @@ The extension collector adds five focused tests for native tail calls, command-r
912
 
913
 
914
  [RE-773: Complete leaderboard joint thresholds sentinel updates and ties](QVM_LEADERBOARD_SELECTOR.md).
 
 
 
 
912
 
913
 
914
  [RE-773: Complete leaderboard joint thresholds sentinel updates and ties](QVM_LEADERBOARD_SELECTOR.md).
915
+
916
+
917
+ [RE-774: Actual first four leaderboard category selections](QVM_LEADERBOARD_CATEGORIES.md).
docs/research/qvm-leaderboard-categories.json ADDED
The diff for this file is too large to render. See raw diff
 
scripts/analyze_qvm_leaderboard_categories.py ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """283622 first four leaderboard categories with actual initialization/selection."""
3
+ from pathlib import Path
4
+ from qvm_research_support import source
5
+ from qvm_leaderboard_support import mapping_seed,initialize,FIELDS
6
+ from qvm_leaderboard_selector_support import select
7
+ from qvm_notification_support import CPOOL,POOL
8
+ from qvm_health_effects_support import H
9
+ from qvm_trace_support import resume
10
+ from analyze_qvm_acceleration import word
11
+ from analyze_qvm import write_json
12
+ P=H+0x500000
13
+ LOOKUP={2:9,3:8,4:11,5:4,6:5,8:2,9:0,10:7,14:6,15:1,17:10,19:3,20:12,21:13,22:14,23:15,24:16,25:17,26:18,27:19}
14
+
15
+ def main():
16
+ q,raw,h,ins=source();rows=[]
17
+ for live in [0,1,3]:
18
+ for pattern in range(4):
19
+ m=mapping_seed(raw,h);m.update({P+o:0 for o in range(0,224,4)});ids=[0,2,5][:live]
20
+ for id in range(64):m[POOL+880*id+532]=int(id in ids);m[POOL+880*id+520]=CPOOL+6336*id
21
+ for j,id in enumerate(ids):
22
+ for slot in range(20):
23
+ values={str(o):word(j+1) if o==56 else 6+3*j for o in FIELDS}
24
+ if pattern==1:values={str(o):word(0) if o==56 else 0 for o in FIELDS}
25
+ if pattern==2:values={str(o):word(1) if o==56 else 6 for o in FIELDS}
26
+ if pattern==3:values['0']=0xffffffff if j==2 else values['0']
27
+ for o in FIELDS:m[CPOOL+6336*id+856+76*slot+o]=values[str(o)]
28
+ selectors=[]
29
+ def actual(i,m,args):
30
+ keys=[m[args[12]+4*k] for k in range(args[16])];candidates=[{'entity':id,'key':key,'slot':LOOKUP[key],'metrics':{str(o):m[CPOOL+6336*id+856+76*LOOKUP[key]+o]&0xffffffff for o in FIELDS}} for id in ids for key in keys];m,v,p=select(i,m,args);p.update(keys=keys,candidates=candidates);selectors.append(p);return m,v,p
31
+ m,e=resume(ins,283623,283817,m,P,handlers={284555:initialize,284610:actual},repeated_calls=True,limit=50000)
32
+ rows.append({'input':{'live':live,'pattern':pattern},'categories':selectors,'published':[m[35000524+4*j] for j in range(16)],'execution':e})
33
+ write_json(Path('docs/research/qvm-leaderboard-categories.json'),{'source':q['source'],'sha256':q['sha256'],'probes':rows,'limits':'Actual283623..283816 first four raw category selections with actual284555/284610/278587 and corrected reentry. Stops before fourth-category283166 post-filter. Later leaderboard categories/publication/native parity remain open.'})
34
+ if __name__=='__main__':main()
scripts/test_qvm_leaderboard_categories.py ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json,unittest
2
+ from pathlib import Path
3
+ from test_qvm_leaderboard_selector import expected
4
+ class LeaderboardCategoryTests(unittest.TestCase):
5
+ @classmethod
6
+ def setUpClass(cls):cls.ps=json.loads(Path('docs/research/qvm-leaderboard-categories.json').read_text())['probes']
7
+ def test_actual_categories_against_independent_selector_oracle(self):
8
+ for p in self.ps:
9
+ published=[-1]*16
10
+ for j,c in enumerate(p['categories']):
11
+ selected,record=expected(c['initial'],c['candidates']);self.assertEqual(c['selected'],selected);self.assertEqual(c['final'],record);published[[1,2,3,5][j]]=selected
12
+ self.assertEqual(p['published'],published)
13
+ def test_source_key_groups_and_thresholds(self):
14
+ for p in self.ps:
15
+ self.assertEqual([c['keys'] for c in p['categories']],[[14,10,23,27],[5,6,8,9,15,17,19,22,25],[2,3,20,21,26],[14]])
16
+ self.assertEqual([c['initial']['60'] for c in p['categories']],[5,5,5,10]);self.assertEqual([c['initial']['56'] for c in p['categories']],[0,0,0,0xbf800000])
17
+ def test_prefix_boundary_and_fixture_count(self):
18
+ self.assertEqual(len(self.ps),12)
19
+ for p in self.ps:self.assertEqual(p['execution']['stop'],283817);self.assertEqual([c['target'] for c in p['execution']['calls']],[284555,284610]*4)
20
+ if __name__=='__main__':unittest.main()
xtask/checks.tsv CHANGED
@@ -1338,3 +1338,6 @@ group leaderboard-layout scripts/analyze_qvm_leaderboard_layout.py
1338
  report scripts/analyze_qvm_leaderboard_selector.py docs/research/qvm-leaderboard-selector.json
1339
  edge docs/research/qvm-leaderboard-selector.json scripts/test_qvm_leaderboard_selector.py
1340
  group leaderboard-selector scripts/analyze_qvm_leaderboard_selector.py
 
 
 
 
1338
  report scripts/analyze_qvm_leaderboard_selector.py docs/research/qvm-leaderboard-selector.json
1339
  edge docs/research/qvm-leaderboard-selector.json scripts/test_qvm_leaderboard_selector.py
1340
  group leaderboard-selector scripts/analyze_qvm_leaderboard_selector.py
1341
+ report scripts/analyze_qvm_leaderboard_categories.py docs/research/qvm-leaderboard-categories.json
1342
+ edge docs/research/qvm-leaderboard-categories.json scripts/test_qvm_leaderboard_categories.py
1343
+ group leaderboard-categories scripts/analyze_qvm_leaderboard_categories.py