XXMiner commited on
Commit
9ff6bcc
·
verified ·
1 Parent(s): 36feedd

v85: no official harness exists; pathkeep retention NULL (retracts v84 +0.0009); 89.2% of restored basenames already present; 3 compressors registered; 373 tests

Browse files
answer_retention_eval.py CHANGED
@@ -39,6 +39,9 @@ COMPRESSORS = {
39
  "structural_reasoning": "structural_reasoning_compressor.py",
40
  "adaptive_structural": "adaptive_structural_compressor.py",
41
  "structural_lowcomp": "structural_lowcomp_compressor.py",
 
 
 
42
  }
43
  STOP = {
44
  "that","this","with","from","were","have","been","which","when","what","the",
 
39
  "structural_reasoning": "structural_reasoning_compressor.py",
40
  "adaptive_structural": "adaptive_structural_compressor.py",
41
  "structural_lowcomp": "structural_lowcomp_compressor.py",
42
+ "structural_selective": "structural_selective_compressor.py",
43
+ "structural_selective_call": "structural_selective_call_compressor.py",
44
+ "structural_pathkeep": "structural_pathkeep_compressor.py",
45
  }
46
  STOP = {
47
  "that","this","with","from","were","have","been","which","when","what","the",
basename_novelty.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "restored_basenames": 1454,
3
+ "already_elsewhere_in_shipped_output": 1297,
4
+ "genuinely_new_tokens": 157,
5
+ "pct_already_present": 89.2
6
+ }
basename_novelty.py ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json, csv, importlib.util, re
2
+ from pathlib import Path
3
+ R=Path("/var/lib/octave/sn114/repo"); PL=Path("/var/lib/octave/sn114/external/SOMA-plugin")
4
+ csv.field_size_limit(50_000_000)
5
+ rows=list(csv.DictReader(open(R/"miner/plain_text_compression/sample_tasks/CoT-Compression-1/challenges.csv")))
6
+ G1=chr(0xab); G2=chr(0xbb); BS=chr(92)
7
+ CALL=re.compile(G1+'c'+BS+'d+[a-z]{2}(.*?)'+G2, re.DOTALL)
8
+ PATHTOK=re.compile(r'/[\w./-]+')
9
+ def load(fn):
10
+ s=importlib.util.spec_from_file_location("n_"+fn[:8], PL/fn)
11
+ m=importlib.util.module_from_spec(s); s.loader.exec_module(m); return m
12
+ A=load('structural_cot_compressor.py'); B=load('structural_pathkeep_compressor.py')
13
+ A.MAX_TOOL_CALL=60; B.MAX_TOOL_CALL=60
14
+ restored=0; already_elsewhere=0; genuinely_new=0
15
+ for r in rows:
16
+ raw=r['challenge_text']
17
+ ca=A.compress_content(raw); cb=B.compress_content(raw)
18
+ ba=CALL.findall(ca); bb=CALL.findall(cb)
19
+ if len(ba)!=len(bb): continue
20
+ for x,y in zip(ba,bb):
21
+ if x==y: continue
22
+ py=PATHTOK.findall(y)
23
+ if not py: continue
24
+ base=max(py,key=len).rsplit('/',1)[-1]
25
+ if not base or base in x: continue
26
+ restored+=1
27
+ # is that basename present ANYWHERE else in the shipped compressed output?
28
+ if base in ca: already_elsewhere+=1
29
+ else: genuinely_new+=1
30
+ out={'restored_basenames':restored,'already_elsewhere_in_shipped_output':already_elsewhere,
31
+ 'genuinely_new_tokens':genuinely_new,
32
+ 'pct_already_present':round(100*already_elsewhere/restored,2) if restored else None}
33
+ json.dump(out, open(R/"basename_novelty.json","w"), indent=2)
34
+ print(' restored basenames:',restored)
35
+ print(' already elsewhere in shipped output:',already_elsewhere,'(%s%%)'%out['pct_already_present'])
36
+ print(' genuinely new to the document:',genuinely_new)
official_retention_v84.json ADDED
@@ -0,0 +1,131 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "metric": "lexical answer-retention proxy (NOT the official LLM-judged score)",
3
+ "results": {
4
+ "performance": {
5
+ "compression_percent": 97.738,
6
+ "mean_answer_retention": 0.6023,
7
+ "micro_term_retention": 0.594,
8
+ "worst_question_retention": 0.0909,
9
+ "tasks": 5,
10
+ "questions_scored": 49,
11
+ "retention_x_compression": 0.5887
12
+ },
13
+ "aggressive": {
14
+ "compression_percent": 99.388,
15
+ "mean_answer_retention": 0.1983,
16
+ "micro_term_retention": 0.1888,
17
+ "worst_question_retention": 0.0,
18
+ "tasks": 5,
19
+ "questions_scored": 49,
20
+ "retention_x_compression": 0.1971
21
+ },
22
+ "code_focused": {
23
+ "compression_percent": 98.24,
24
+ "mean_answer_retention": 0.309,
25
+ "micro_term_retention": 0.2908,
26
+ "worst_question_retention": 0.0,
27
+ "tasks": 5,
28
+ "questions_scored": 49,
29
+ "retention_x_compression": 0.3036
30
+ },
31
+ "hybrid": {
32
+ "compression_percent": 49.016,
33
+ "mean_answer_retention": 0.9619,
34
+ "micro_term_retention": 0.9627,
35
+ "worst_question_retention": 0.6154,
36
+ "tasks": 5,
37
+ "questions_scored": 49,
38
+ "retention_x_compression": 0.4715
39
+ },
40
+ "adaptive": {
41
+ "compression_percent": 41.808,
42
+ "mean_answer_retention": 0.9619,
43
+ "micro_term_retention": 0.9627,
44
+ "worst_question_retention": 0.6154,
45
+ "tasks": 5,
46
+ "questions_scored": 49,
47
+ "retention_x_compression": 0.4022
48
+ },
49
+ "thinking_strip": {
50
+ "compression_percent": 12.909,
51
+ "mean_answer_retention": 0.9982,
52
+ "micro_term_retention": 0.9983,
53
+ "worst_question_retention": 0.9091,
54
+ "tasks": 5,
55
+ "questions_scored": 49,
56
+ "retention_x_compression": 0.1289
57
+ },
58
+ "dialogue": {
59
+ "compression_percent": 0.0,
60
+ "mean_answer_retention": 1.0,
61
+ "micro_term_retention": 1.0,
62
+ "worst_question_retention": 1.0,
63
+ "tasks": 5,
64
+ "questions_scored": 49,
65
+ "retention_x_compression": 0.0
66
+ },
67
+ "structural": {
68
+ "compression_percent": 78.833,
69
+ "mean_answer_retention": 0.9628,
70
+ "micro_term_retention": 0.9621,
71
+ "worst_question_retention": 0.6364,
72
+ "tasks": 5,
73
+ "questions_scored": 49,
74
+ "retention_x_compression": 0.759
75
+ },
76
+ "structural_reasoning": {
77
+ "compression_percent": 77.438,
78
+ "mean_answer_retention": 0.9643,
79
+ "micro_term_retention": 0.9633,
80
+ "worst_question_retention": 0.6364,
81
+ "tasks": 5,
82
+ "questions_scored": 49,
83
+ "retention_x_compression": 0.7467
84
+ },
85
+ "adaptive_structural": {
86
+ "compression_percent": 86.49,
87
+ "mean_answer_retention": 0.9091,
88
+ "micro_term_retention": 0.9094,
89
+ "worst_question_retention": 0.5455,
90
+ "tasks": 5,
91
+ "questions_scored": 49,
92
+ "retention_x_compression": 0.7863
93
+ },
94
+ "structural_lowcomp": {
95
+ "compression_percent": 64.129,
96
+ "mean_answer_retention": 0.9822,
97
+ "micro_term_retention": 0.9815,
98
+ "worst_question_retention": 0.7273,
99
+ "tasks": 5,
100
+ "questions_scored": 49,
101
+ "retention_x_compression": 0.6299
102
+ },
103
+ "structural_selective": {
104
+ "compression_percent": 79.255,
105
+ "mean_answer_retention": 0.9628,
106
+ "micro_term_retention": 0.9621,
107
+ "worst_question_retention": 0.6364,
108
+ "tasks": 5,
109
+ "questions_scored": 49,
110
+ "retention_x_compression": 0.763
111
+ },
112
+ "structural_selective_call": {
113
+ "compression_percent": 80.102,
114
+ "mean_answer_retention": 0.9587,
115
+ "micro_term_retention": 0.9586,
116
+ "worst_question_retention": 0.6364,
117
+ "tasks": 5,
118
+ "questions_scored": 49,
119
+ "retention_x_compression": 0.7679
120
+ },
121
+ "structural_pathkeep": {
122
+ "compression_percent": 78.787,
123
+ "mean_answer_retention": 0.9628,
124
+ "micro_term_retention": 0.9621,
125
+ "worst_question_retention": 0.6364,
126
+ "tasks": 5,
127
+ "questions_scored": 49,
128
+ "retention_x_compression": 0.7585
129
+ }
130
+ }
131
+ }
pathkeep_official.json ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "harness_reality": {
3
+ "what_i_expected": "an official harness that produced the published 73.11%/0.9360 on 150 challenges",
4
+ "what_exists": "answer_retention_eval.py, which self-labels as a \"lexical answer-retention proxy (NOT the official LLM-judged score)\", has no --limit flag and defaults to a 5-task/49-question subset",
5
+ "conclusion": "there is no official harness in this repo; every retention number I have is a lexical proxy of some kind, and the announced comparison could not be run as announced"
6
+ },
7
+ "registry_edit": "answer_retention_eval.py COMPRESSORS gained structural_selective, structural_selective_call and structural_pathkeep; purely additive, no existing entry modified",
8
+ "official_proxy_results": {
9
+ "structural": {
10
+ "compression_percent": 78.833,
11
+ "mean_answer_retention": 0.9628,
12
+ "micro_term_retention": 0.9621,
13
+ "worst_question_retention": 0.6364,
14
+ "tasks": 5,
15
+ "questions_scored": 49,
16
+ "retention_x_compression": 0.759
17
+ },
18
+ "structural_reasoning": {
19
+ "compression_percent": 77.438,
20
+ "mean_answer_retention": 0.9643,
21
+ "micro_term_retention": 0.9633,
22
+ "worst_question_retention": 0.6364,
23
+ "tasks": 5,
24
+ "questions_scored": 49,
25
+ "retention_x_compression": 0.7467
26
+ },
27
+ "structural_lowcomp": {
28
+ "compression_percent": 64.129,
29
+ "mean_answer_retention": 0.9822,
30
+ "micro_term_retention": 0.9815,
31
+ "worst_question_retention": 0.7273,
32
+ "tasks": 5,
33
+ "questions_scored": 49,
34
+ "retention_x_compression": 0.6299
35
+ },
36
+ "structural_selective": {
37
+ "compression_percent": 79.255,
38
+ "mean_answer_retention": 0.9628,
39
+ "micro_term_retention": 0.9621,
40
+ "worst_question_retention": 0.6364,
41
+ "tasks": 5,
42
+ "questions_scored": 49,
43
+ "retention_x_compression": 0.763
44
+ },
45
+ "structural_selective_call": {
46
+ "compression_percent": 80.102,
47
+ "mean_answer_retention": 0.9587,
48
+ "micro_term_retention": 0.9586,
49
+ "worst_question_retention": 0.6364,
50
+ "tasks": 5,
51
+ "questions_scored": 49,
52
+ "retention_x_compression": 0.7679
53
+ },
54
+ "structural_pathkeep": {
55
+ "compression_percent": 78.787,
56
+ "mean_answer_retention": 0.9628,
57
+ "micro_term_retention": 0.9621,
58
+ "worst_question_retention": 0.6364,
59
+ "tasks": 5,
60
+ "questions_scored": 49,
61
+ "retention_x_compression": 0.7585
62
+ }
63
+ },
64
+ "null_result": {
65
+ "finding": "pathkeep retention is IDENTICAL to shipped at 0.9628 mean / 0.9621 micro / 0.6364 worst; compression 78.787% vs 78.833%",
66
+ "retraction_from_v84": "I published \"term retention +0.0009, small but the correct sign\". The better-specified proxy says +0.0000. My ad-hoc metric produced a signal indistinguishable from its own noise and I reported its direction as meaningful",
67
+ "error_class": "eighth narration-class error, and the first where I over-read a delta rather than a range"
68
+ },
69
+ "explanation_tested": {
70
+ "hypothesis": "restored basenames are usually already elsewhere in the document, so a bag-of-terms proxy cannot see the change - stated before measuring",
71
+ "restored_basenames": 1454,
72
+ "already_elsewhere": 1297,
73
+ "pct_already_present": 89.2,
74
+ "genuinely_new": 157,
75
+ "verdict": "CONFIRMED - 89.2% already present, only 157 of 1454 restorations add a token the document lacked"
76
+ },
77
+ "decision": {
78
+ "pathkeep": "stays UNPROMOTED",
79
+ "sharper_reason": "not \"risk unquantified\" but \"benefit unobservable with available instruments\" - the mechanism claim is about LOCAL availability inside the span the agent is reading, and every proxy I own is position-blind",
80
+ "what_it_names": "this is a more useful blocker because it says exactly what an OpenRouter key would buy: a metric that can see position"
81
+ },
82
+ "revert_proofs": "14 checks incl. 2 live source mutations (unregister pathkeep, harness claiming to be official) and 12 report mutations covering the retraction, the tested explanation, post-hoc restatement, silent promotion and baseline drift"
83
+ }
test_compressors.py CHANGED
@@ -7504,5 +7504,105 @@ class TestPathKeepCompressor(unittest.TestCase):
7504
  self.assertIn("NOT comparable", self.rep["metric_caveat"])
7505
  self.assertIn("73.11", self.rep["metric_caveat"])
7506
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7507
  if __name__ == "__main__":
7508
  unittest.main(verbosity=2)
 
7504
  self.assertIn("NOT comparable", self.rep["metric_caveat"])
7505
  self.assertIn("73.11", self.rep["metric_caveat"])
7506
 
7507
+ class TestPathKeepAgainstOfficialProxy(unittest.TestCase):
7508
+ """I announced I would run pathkeep through "the official harness path that produced
7509
+ 73.11%/0.9360". Two things came out of trying, and both are corrections.
7510
+
7511
+ THERE IS NO OFFICIAL HARNESS HERE. answer_retention_eval.py self-labels as a "lexical
7512
+ answer-retention proxy (NOT the official LLM-judged score)", has no --limit flag, and
7513
+ defaults to a 5-task/49-question subset. So it is a better-specified proxy than my ad-hoc
7514
+ regex, not an official measurement, and the comparison I announced could not be run as
7515
+ announced. Every retention number I hold is a lexical proxy of some kind.
7516
+
7517
+ THE RESULT IS NULL. pathkeep retention is IDENTICAL to shipped - 0.9628 mean, 0.9621
7518
+ micro, 0.6364 worst - with compression 78.787% vs 78.833%.
7519
+
7520
+ RETRACTION FROM v84: I published "term retention +0.0009, small but the correct sign".
7521
+ The better-specified proxy says +0.0000. My ad-hoc metric produced a signal
7522
+ indistinguishable from its own noise and I reported its direction as meaningful. Eighth
7523
+ narration-class error, and the first where I over-read a DELTA rather than a range.
7524
+
7525
+ EXPLANATION STATED FIRST, THEN TESTED: restored basenames are usually already elsewhere
7526
+ in the document, so a bag-of-terms proxy cannot see the change. Measured: of 1454
7527
+ restored basenames, 1297 (89.2%) already appear in the shipped compressed output; only
7528
+ 157 add a token the document lacked. CONFIRMED, and it predicts the null exactly.
7529
+
7530
+ DECISION: pathkeep stays unpromoted, for a sharper reason than before - not "risk
7531
+ unquantified" but "benefit unobservable with available instruments". The mechanism claim
7532
+ is about LOCAL availability inside the span the agent is reading; every proxy I own is
7533
+ position-blind. That names what an OpenRouter key would buy.
7534
+ """
7535
+
7536
+ P = Path("/var/lib/octave/sn114/repo/pathkeep_official.json")
7537
+ AR = Path("/var/lib/octave/sn114/repo/answer_retention_eval.py")
7538
+
7539
+ @classmethod
7540
+ def setUpClass(cls):
7541
+ if not cls.P.exists():
7542
+ raise unittest.SkipTest("pathkeep_official.json missing")
7543
+ cls.rep = json.loads(cls.P.read_text())
7544
+ cls.res = cls.rep["official_proxy_results"]
7545
+
7546
+ def test_harness_self_labels_as_a_proxy(self):
7547
+ src = self.AR.read_text()
7548
+ self.assertIn(
7549
+ "NOT the official LLM-judged score", src,
7550
+ "answer_retention_eval.py no longer disclaims being official; if it became "
7551
+ "the real harness the whole proxy caveat needs revisiting")
7552
+ self.assertIn("no --limit", self.rep["harness_reality"]["what_exists"])
7553
+
7554
+ def test_new_compressors_are_registered_live(self):
7555
+ src = self.AR.read_text()
7556
+ for name in ("structural_selective", "structural_selective_call",
7557
+ "structural_pathkeep"):
7558
+ with self.subTest(name=name):
7559
+ self.assertIn(
7560
+ name, src,
7561
+ "%s dropped out of the COMPRESSORS registry, so it is silently "
7562
+ "excluded from every sweep" % name)
7563
+
7564
+ def test_pathkeep_retention_is_identical_not_better(self):
7565
+ ship = self.res["structural"]
7566
+ pk = self.res["structural_pathkeep"]
7567
+ for key in ("mean_answer_retention", "micro_term_retention",
7568
+ "worst_question_retention"):
7569
+ with self.subTest(key=key):
7570
+ self.assertEqual(
7571
+ pk[key], ship[key],
7572
+ "pathkeep %s now differs from shipped; the recorded null result and "
7573
+ "the v84 retraction would both need re-deriving" % key)
7574
+
7575
+ def test_v84_retention_claim_is_retracted(self):
7576
+ r = self.rep["null_result"]["retraction_from_v84"]
7577
+ self.assertIn("+0.0009", r)
7578
+ self.assertIn("indistinguishable from its own noise", r)
7579
+ self.assertIn("over-read a delta", self.rep["null_result"]["error_class"])
7580
+
7581
+ def test_basename_novelty_explains_the_null(self):
7582
+ e = self.rep["explanation_tested"]
7583
+ self.assertEqual(e["verdict"][:9], "CONFIRMED")
7584
+ self.assertGreater(
7585
+ e["pct_already_present"], 80.0,
7586
+ "if most restored basenames were NOT already in the document, a lexical "
7587
+ "proxy should have seen the change and the null would need another cause")
7588
+ self.assertEqual(e["restored_basenames"],
7589
+ e["already_elsewhere"] + e["genuinely_new"])
7590
+
7591
+ def test_explanation_was_stated_before_measuring(self):
7592
+ self.assertIn("stated before measuring",
7593
+ self.rep["explanation_tested"]["hypothesis"])
7594
+
7595
+ def test_decision_names_the_instrument_gap(self):
7596
+ d = self.rep["decision"]
7597
+ self.assertEqual(d["pathkeep"], "stays UNPROMOTED")
7598
+ self.assertIn("position-blind", d["sharper_reason"])
7599
+ self.assertIn("unobservable", d["sharper_reason"])
7600
+
7601
+ def test_registry_edit_was_additive(self):
7602
+ self.assertIn("purely additive", self.rep["registry_edit"])
7603
+ ship = self.res["structural"]
7604
+ self.assertAlmostEqual(ship["compression_percent"], 78.833, places=3)
7605
+ self.assertAlmostEqual(ship["mean_answer_retention"], 0.9628, places=4)
7606
+
7607
  if __name__ == "__main__":
7608
  unittest.main(verbosity=2)