Skip to content

Verification and TechEngineBot (workstream) #98

Open

Description

@Seungpyo1007

Purpose

Workstream tracker for verification and TechEngineBot, under the roadmap #97. PRs in this area link here with Closes #<this>.

Scope

  • app/verify (offline scoring, signals, hosts, crossref, network verify, promotion ledger)
  • integrity_check.py (structural checks for all categories; benchmark sanity for CPU/GPU)
  • TechEngineBot PR comments: techapi-pr-validation-comment, techapi-verify-comment, /verify, dump check
  • verify-network, verify-status, coverage-report workflows

Status (2026-09-27)

Open items

  • Source qualifying T1/T2 citations for the remaining yellow laptop/monitor records: current Tier 0 laptop 107 green / 1,888 yellow / 0 red and monitor 0 green / 882 yellow / 0 red (feat(verify): add laptop and monitor domain scoring #102). Of the yellow records, laptop 0/1,888 and monitor 0/882 have a qualifying source_url; all 2,770 need sourcing (no pipeline gap found).
  • Domain scoring rules (RICH_FIELDS and signals) for laptop and monitor.
  • 18 pre-existing CPU anomalies from the full integrity scan.
  • Next promotion pass (verify-network) after the release of #292 data.

Activity

  1. Seungpyo1007 commented on Sep 26, 2026

    @Seungpyo1007
    MemberAuthor

    Reopened: this tracker was auto-closed by the Closes #98 keyword in #101's commit message. Tracker issues stay open. #101 (laptop/monitor Tier 0 normalization) is done: laptop 0/1,995/0 and monitor 0/882/0 (green/yellow/red), up from 1,888 and 882 red.

  2. Seungpyo1007 commented on Sep 28, 2026

    @Seungpyo1007
    MemberAuthor

    Live laptop/monitor audit against TechAPI develop bf4a0597381cdf208c1fdeceedc1559f2b770bb7 using TechEngine main 303890871897f50bf214ca4943fb569b9073ddd6 and the same app.verify score / status tooling used for #102. The old "red in Tier 0" checklist text is stale after #101/#102.

    Category Green Yellow Red Yellow with T1/T2 source_url Yellow without T1/T2 source_url
    laptop 107 1,888 0 0 1,888
    monitor 0 882 0 0 882

    This is a data gap: all 2,770 yellow records need qualifying citations. Among yellow laptops, 965 cite only https://huggingface.co/datasets/Ammok/laptop_price_prediction (unclassified host) and 923 cite only https://github.com/abhinavflac/laptops-specs-dataset (T3); all 882 monitors cite only https://www.kaggle.com/datasets/durjoychandrapaul/amazon-products-sales-monitor-dataset (T3). These are existing dataset citations, not model-specific authoritative sources.

    verify-network scores every category without a category filter; check-urls and promote also default to every category, including laptop and monitor. promote recomputes offline.score_record for each unverified record and accepts live classified T1/T2 citations. None of these paths excludes laptops or monitors, and the green band still correctly requires a T1/T2 source. No sources were invented or reclassified, no data files or code were changed, and no code PR is warranted for this outcome.

    Before/after bands are unchanged: laptop 107/1,888/0; monitor 0/882/0 (green/yellow/red). Validation: full pytest suite 499 passed in 258.79s against live TechAPI develop data; mypy app and ruff check app tests pass.

  3. Seungpyo1007 commented on Sep 28, 2026

    @Seungpyo1007
    MemberAuthor

    CPU integrity review, 2026-09-28

    Full integrity_check.py run: TechEngine main 303890871897f50bf214ca4943fb569b9073ddd6, TechAPI develop bf4a0597381cdf208c1fdeceedc1559f2b770bb7. Scope: 12/12 categories, 191,814 records, 4,507 CPUs, 2,076 GPUs. This uses the current full scan, with no legacy CPU/GPU-only mode.

    18 hard CPU anomalies remain, exactly matching the tracker count: 18 duplicate-name pairs (36 records). Additionally, 139 advisory CPU findings affect 113 other records: 8 era findings, 24 PassMark/R23 ratios, 11 PassMark/Geekbench ratios, 90 R23/Geekbench ratios, and 6 Cinebench 2024/R23 ratios. Total: 149 distinct flagged CPU records, represented below as 18 pair rows plus 113 advisory rows.

    All flagged records were read, including populated fields, citations, and both sides of each duplicate. No data or check code changed, and no PR or dump refresh is warranted. This is an unresolved conflict/provenance report, not a declaration that the stored benchmark values are correct.

    Hard findings: genuine duplicate records with conflicting source-derived fields. The atom-* records originate in Wikipedia weekly ingest (4b49f32e464f); intel-atom-* originate in the Kaggle import (2b9e286d2bd3). The checker correctly detects the repeated exact names. Every pair disagrees on release date; many also disagree on threads, cache level, clocks, or segment. Merging by copying the richer record would silently choose between conflicts, which #296 forbids; previous #282 also left pairs with conflicting dates/specifications unresolved. Both records are retained.

    The cited Atom list labels cache as L2 and describes Hyper-Threading separately from the cores column. Existing Wikipedia-derived records put that cache in l3_cache_mb and often copy cores into threads; current ingestion already guards these cases in app/ingest/sources/wikipedia_cpu.py / app/ingest/normalize.py. This is pre-existing ingestion data, not a bug in integrity_check.py. For Z3530, Intel gives Q2 2014, not an exact day; substituting either stored full date would invent precision. The hard flag is duplicate identity/name, and no unambiguous source-backed keeper reconciliation was established while the paired source conflicts remain. Individual legacy field errors are documented rather than bundled into a partial merge.

    Values in the conflict column are ordered atom-* / intel-atom-*. Common to all pairs: architecture text differs and populated l3_cache_mb in the Wikipedia import versus null in the Kaggle import.

    Record slugs What is flagged Concrete cause / unresolved conflicts Action
    atom-230 + intel-atom-230 DUP name Genuine duplicate from separate imports; source conflict: release_date: 2008-06-03 / 2009-03-01; threads: 1 / 2 left as pre-existing
    atom-330 + intel-atom-330 DUP name Genuine duplicate from separate imports; source conflict: release_date: 2008-06-03 / 2009-02-01; threads: 2 / 4 left as pre-existing
    atom-d2500 + intel-atom-d2500 DUP name Genuine duplicate from separate imports; source conflict: release_date: 2011-01-01 / 2012-04-01; base_clock_ghz: 1.87 / 1.86 left as pre-existing
    atom-d2550 + intel-atom-d2550 DUP name Genuine duplicate from separate imports; source conflict: release_date: 2012-01-01 / 2012-07-01; threads: 2 / 4; base_clock_ghz: 1.87 / 1.867 left as pre-existing
    atom-d2560 + intel-atom-d2560 DUP name Genuine duplicate from separate imports; source conflict: release_date: 2012-01-01 / 2013-12-01; threads: 2 / 4 left as pre-existing
    atom-d2700 + intel-atom-d2700 DUP name Genuine duplicate from separate imports; source conflict: release_date: 2011-01-01 / 2011-12-01; threads: 2 / 4 left as pre-existing
    atom-d410 + intel-atom-d410 DUP name Genuine duplicate from separate imports; source conflict: release_date: 2010-01-04 / 2010-02-01; threads: 1 / 2; base_clock_ghz: 1.67 / 1.66; msrp_usd: None / 636 left as pre-existing
    atom-d425 + intel-atom-d425 DUP name Genuine duplicate from separate imports; source conflict: release_date: 2010-06-21 / 2011-01-01; threads: 1 / 2; base_clock_ghz: 1.83 / 1.8; msrp_usd: None / 993 left as pre-existing
    atom-n280 + intel-atom-n280 DUP name Genuine duplicate from separate imports; source conflict: release_date: 2009-02-06 / 2009-02-01; threads: 1 / 2; segment: desktop / laptop; base_clock_ghz: 1.67 / 1.66; tdp_w: 5 / 2 left as pre-existing
    atom-n2800 + intel-atom-n2800 DUP name Genuine duplicate from separate imports; source conflict: release_date: 2011-01-01 / 2011-12-01; threads: 2 / 4; segment: desktop / laptop; base_clock_ghz: 1.87 / 1.86; tdp_w: 5 / 6 left as pre-existing
    atom-n455 + intel-atom-n455 DUP name Genuine duplicate from separate imports; source conflict: release_date: 2010-06-01 / 2010-08-01; threads: 1 / 2; segment: desktop / laptop; base_clock_ghz: 1.67 / 1.66; tdp_w: 5 / 6 left as pre-existing
    atom-n470 + intel-atom-n470 DUP name Genuine duplicate from separate imports; source conflict: release_date: 2010-03-01 / 2010-04-01; threads: 1 / 2; segment: desktop / laptop; tdp_w: 5 / 6 left as pre-existing
    atom-n475 + intel-atom-n475 DUP name Genuine duplicate from separate imports; source conflict: release_date: 2010-06-01 / 2010-09-01; threads: 1 / 2; segment: desktop / laptop; tdp_w: 5 / 6 left as pre-existing
    atom-n550 + intel-atom-n550 DUP name Genuine duplicate from separate imports; source conflict: release_date: 2010-08-23 / 2010-09-01; threads: 2 / 4; segment: desktop / laptop; tdp_w: 5 / 8; msrp_usd: None / 86 left as pre-existing
    atom-n570 + intel-atom-n570 DUP name Genuine duplicate from separate imports; source conflict: release_date: 2011-03-01 / 2011-04-01; threads: 2 / 4; segment: desktop / laptop; base_clock_ghz: 1.67 / 1.66; tdp_w: 5 / 8; msrp_usd: None / 86 left as pre-existing
    atom-z3530 + intel-atom-z3530 DUP name Genuine duplicate from separate imports; source conflict: release_date: 2014-01-01 / 2022-07-01; segment: desktop / laptop; base_clock_ghz: 1.33 / 1.333 left as pre-existing
    atom-z3560 + intel-atom-z3560 DUP name Genuine duplicate from separate imports; source conflict: release_date: 2014-01-01 / 2022-04-01; segment: desktop / laptop; base_clock_ghz: 1.83 / 1.0; boost_clock_ghz: None / 1.833 left as pre-existing
    atom-z530 + intel-atom-z530 DUP name Genuine duplicate from separate imports; source conflict: release_date: 2008-04-02 / 2009-03-01; threads: 1 / 2; segment: desktop / laptop left as pre-existing

    Advisory findings: classification and limits. Era checks use only a year and a fixed R23 ceiling (3,000 before 2011), ignoring cores/threads. Ratio checks flag abs(log(a/b) - median) > 4*MAD across the entire mixed catalog: the current ranges are PM/R23 0.8761 to 2.9344 (811 pairs), PM/GB 1.0213 to 4.3864 (693), R23/GB 0.9866 to 1.8817 (739), and CB2024/R23 0.04302 to 0.07201 (178). These are statistical review boundaries, not physical limits or scoring validity constraints. The unused lo/hi arguments in mad_outliers are not applied ranges; changing them would not change the scan.

    For high-core records, different workload scaling is a plausible cause, not proof that a value is correct: Geekbench 6 internals, pp. 7 to 10, documents its shared-task model and weighted workload scores. Benchmark version, machine/power configuration, socket count, and result-level provenance are absent from these records. Generic vendor/spec/list citations cannot establish an exact Cinebench or Geekbench replacement, so these findings remain advisory rather than being relabeled confirmed false positives.

    Primary-source spot checks: Opteron 6386 SE PassMark confirms stored 8,291; Xeon 6980P PassMark confirms stored 74,324 with one sample and high error. Neither resolves the other benchmark in the ratio. The cited 5950X Geekbench page currently shows 15,293 multi versus stored 12,018; its header and body mix version labels, so a live aggregate is not a version-locked correction. The cited 8452Y Geekbench page currently shows 0/0, not an authoritative replacement for stored 9,863. TopCPU could not be retrieved during review and is a ranking root, not an exact result URL. These source discrepancies/gaps stay unresolved.

    Abbreviations: PM = passmark_cpu_mark; R23 = cinebench_r23_multi; GB = geekbench_multi (record does not identify its version); CB24 = cinebench_2024_multi. Score tuples are PM / R23 / GB / CB24, with - for null. All ratio values below match the checker rounding.

    All 113 advisory CPU records (139 findings)
    Record slug What is flagged; stored scores Root cause classification / evidence limit Action
    athlon-ii-x4-640 R23/GB=0.95; 2282 / 1800 / 1900 / - Range edge case / source gap: 4C/4T; independent workloads without matched run/version provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    phenom-ii-x6-1090t era r23; 3824 / 3400 / 2800 / - Range edge case: 2010, 6C/6T; year-only ceiling ignores parallelism; R23 measurement unresolved; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    phenom-ii-x6-1100t era r23; 3957 / 3500 / 2900 / - Range edge case: 2010, 6C/6T; year-only ceiling ignores parallelism; R23 measurement unresolved; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    opteron-6386-se PM/R23=0.57; PM/GB=0.75; 8291 / 14500 / 11000 / - PM source confirms 8291; counter-benchmark provenance unresolved; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    ryzen-3-1200 R23/GB=0.88; 6263 / 2500 / 2843 / - Range edge case / source gap: 4C/4T; independent workloads without matched run/version provenance left as pre-existing
    ryzen-3-1300x R23/GB=0.87; 6926 / 2700 / 3110 / - Range edge case / source gap: 4C/4T; independent workloads without matched run/version provenance left as pre-existing
    ryzen-3-2200g R23/GB=0.95; 6719 / 2700 / 2849 / - Range edge case / source gap: 4C/4T; independent workloads without matched run/version provenance left as pre-existing
    ryzen-9-3900x R23/GB=1.97; 32493 / 19500 / 9914 / 1068 Range edge case candidate: 12C/24T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    ryzen-9-3950x R23/GB=2.07; 38435 / 22000 / 10640 / 1325 Range edge case candidate: 16C/32T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    epyc-7742 R23/GB=1.96; 69808 / 55000 / 28000 / - Range edge case candidate: 64C/128T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    ryzen-threadripper-3970x R23/GB=1.92; 62895 / 47000 / 24500 / 2564 Range edge case candidate: 32C/64T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    ryzen-9-5900x R23/GB=1.91; 38913 / 22500 / 11780 / 1189 Range edge case candidate: 12C/24T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    ryzen-9-5950x R23/GB=2.37; 45293 / 28500 / 12018 / 1494 Source discrepancy: live GB aggregate 15,293 vs stored 12,018; version/result not locked left as pre-existing
    ryzen-threadripper-3990x R23/GB=2.14; 79684 / 75000 / 35000 / 4191 Range edge case candidate: 64C/128T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    amd-ryzen-9-5900 R23/GB=2.14; 34510 / 20887 / 9774 / - Range edge case candidate: 12C/24T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    amd-epyc-7j13 PM/GB=6.14; 84786 / - / 13812 / - Range edge case candidate: 64C/128T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    epyc-7763 R23/GB=2.15; 84492 / 73000 / 34000 / - Range edge case candidate: 64C/128T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    amd-epyc-7d12 PM/GB=5.57; 42155 / - / 7563 / - Range edge case candidate: 32C/64T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    epyc-9554 R23/GB=2.19; 102607 / 105000 / 48000 / - Range edge case candidate: 64C/128T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    epyc-9654 PM/R23=0.85; R23/GB=2.41; 119259 / 140000 / 58000 / - Range edge case candidate: 96C/192T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    ryzen-threadripper-pro-5995wx R23/GB=2.10; 94501 / 84000 / 40000 / 4321 Range edge case candidate: 64C/128T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    ryzen-9-7950x3d R23/GB=1.94; 62316 / 38000 / 19563 / 2117 Range edge case candidate: 16C/32T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    ryzen-9-pro-7945 R23/GB=1.99; - / 28905 / 14516 / - Range edge case candidate: 12C/24T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    epyc-9684x PM/R23=0.84; R23/GB=2.42; 122017 / 145000 / 60000 / - Range edge case candidate: 96C/192T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    epyc-9734 PM/R23=0.69; 102286 / 148000 / 98000 / - Range edge case candidate: 112C/224T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    epyc-9754 PM/R23=0.64; R23/GB=2.50; 98450 / 155000 / 62000 / - Range edge case candidate: 128C/256T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    ryzen-threadripper-7960x R23/GB=1.96; 83430 / 55000 / 28000 / - Range edge case candidate: 24C/48T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    ryzen-threadripper-7980x R23/GB=1.96; 135642 / 110000 / 56000 / 5531 Range edge case candidate: 64C/128T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    ryzen-threadripper-pro-7965wx R23/GB=1.96; 82173 / 55000 / 28000 / - Range edge case candidate: 24C/48T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    ryzen-threadripper-pro-7975wx R23/GB=2.12; 95489 / 72000 / 34000 / - Range edge case candidate: 32C/64T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    ryzen-threadripper-pro-7985wx R23/GB=2.33; 131837 / 105000 / 45000 / - Range edge case candidate: 64C/128T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    ryzen-5-5500gt R23/GB=0.85; CB24/R23=0.09; 18996 / 6907 / 8165 / 614 Cross-version ratio edge case / measurement provenance gap; no fixed score conversion left as pre-existing
    ryzen-9-7940hx R23/GB=2.13; - / 33370 / 15655 / - Range edge case candidate: 16C/32T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    ryzen-9-9950x R23/GB=1.91; 65756 / 42000 / 22000 / 2287 Range edge case candidate: 16C/32T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    epyc-9655 PM/R23=0.87; 156110 / 180000 / 130000 / - Range edge case candidate: 96C/192T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    epyc-9745 PM/R23=0.75; R23/GB=2.57; 130698 / 175000 / 68000 / - Range edge case candidate: 128C/256T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    epyc-9755 PM/R23=0.76; R23/GB=2.50; 166328 / 220000 / 88000 / - Range edge case candidate: 128C/256T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    epyc-9825 R23/GB=2.56; - / 192000 / 75000 / - Range edge case candidate: 144C/288T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    epyc-9845 PM/R23=0.73; R23/GB=2.56; 152985 / 210000 / 82000 / - Range edge case candidate: 160C/320T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    epyc-9965 PM/R23=0.68; R23/GB=2.61; 160542 / 235000 / 90000 / - Range edge case candidate: 192C/384T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    ryzen-threadripper-pro-7995wx R23/GB=2.00; 140967 / 150000 / 75000 / - Range edge case candidate: 96C/192T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    ryzen-9-8940hx R23/GB=1.93; - / 29610 / 15308 / 1630 Range edge case candidate: 16C/32T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    ryzen-9-8945hx R23/GB=2.09; 55980 / 34973 / 16747 / 1719 Range edge case candidate: 16C/32T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    ryzen-threadripper-9960x R23/GB=2.03; - / 65000 / 32000 / - Range edge case candidate: 24C/48T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    ryzen-threadripper-9970x R23/GB=2.24; 106987 / 85000 / 38000 / - Range edge case candidate: 32C/64T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    ryzen-threadripper-9980x R23/GB=2.50; 143003 / 130000 / 52000 / - Range edge case candidate: 64C/128T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    ryzen-threadripper-pro-9995wx R23/GB=2.33; 173025 / 175000 / 75000 / 7716 Range edge case candidate: 96C/192T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    ryzen-9-9970x3d R23/GB=1.89; - / 43500 / 23000 / - Range edge case candidate: 16C/32T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    epyc-9985 R23/GB=2.43; - / 175000 / 72000 / - Range edge case candidate: 96C/192T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    altra-max-m128-30 R23/GB=2.11; - / 95000 / 45000 / - Range edge case candidate: 128C/128T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    ampereone-a192-32x R23/GB=2.40; - / 180000 / 75000 / - Range edge case candidate: 192C/192T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    core-i7-920 era r23; PM/R23=0.76; PM/GB=0.93; 2874 / 3800 / 3100 / - Range edge case: 2008, 4C/8T; year-only ceiling ignores parallelism; R23 measurement unresolved left as pre-existing
    core-i7-965-ee era r23; PM/R23=0.75; PM/GB=0.92; 3396 / 4500 / 3700 / - Range edge case: 2008, 4C/8T; year-only ceiling ignores parallelism; R23 measurement unresolved; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    core-i7-870 era r23; PM/R23=0.75; PM/GB=0.91; 3170 / 4200 / 3500 / - Range edge case: 2009, 4C/8T; year-only ceiling ignores parallelism; R23 measurement unresolved left as pre-existing
    core-i7-970 era r23; 6562 / 5800 / 4600 / - Range edge case: 2010, 6C/12T; year-only ceiling ignores parallelism; R23 measurement unresolved; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    core-i7-980x era r23; 6826 / 6500 / 5000 / - Range edge case: 2010, 6C/12T; year-only ceiling ignores parallelism; R23 measurement unresolved; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    core-i7-990x era r23; 7139 / 6300 / 4900 / - Range edge case: 2010, 6C/12T; year-only ceiling ignores parallelism; R23 measurement unresolved; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    atom-z3770 PM/R23=0.81; PM/GB=0.73; R23/GB=0.90; 728 / 900 / 1000 / - Range edge case / source gap: 4C/4T; independent workloads without matched run/version provenance left as pre-existing
    pentium-g3258 R23/GB=0.89; 2066 / 1700 / 1900 / - Range edge case / source gap: 2C/2T; independent workloads without matched run/version provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    intel-xeon-e5-2683-v3 R23/GB=2.69; - / 17896 / 6651 / - Range edge case candidate: 14C/28T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    atom-x5-z8350 PM/GB=0.81; R23/GB=0.86; 895 / 950 / 1100 / - Range edge case / source gap: 4C/4T; independent workloads without matched run/version provenance left as pre-existing
    intel-celeron-n3350 PM/R23=4.21; 1104 / 262 / - / - Range edge case / source gap: 2C/2T; independent workloads without matched run/version provenance left as pre-existing
    xeon-phi-7210 PM/R23=0.39; PM/GB=0.58; 7306 / 18500 / 12500 / - Range edge case candidate: 64C/256T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    xeon-phi-7290 PM/R23=0.73; 17839 / 24500 / 16500 / - Range edge case candidate: 72C/288T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    intel-core-i9-7980xe R23/GB=2.47; 30462 / 28196 / 11418 / - Range edge case candidate: 18C/36T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    xeon-platinum-8176 PM/R23=0.84; 27456 / 32500 / 23800 / - Range edge case candidate: 28C/56T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    intel-core-i9-9980xe R23/GB=2.44; 31938 / 27093 / 11091 / - Range edge case candidate: 18C/36T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    intel-core-i9-10980xe R23/GB=2.25; 32881 / 24899 / 11069 / - Range edge case candidate: 18C/36T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    core-i9-10920x CB24/R23=0.04; 25745 / 22000 / 16000 / 922 Cross-version ratio edge case / measurement provenance gap; no fixed score conversion; Range edge case candidate: 12C/24T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    celeron-g5905 R23/GB=0.88; 2771 / 1500 / 1700 / - Range edge case / source gap: 2C/2T; independent workloads without matched run/version provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    core-i9-10900k CB24/R23=0.09; 22289 / 11000 / 8500 / 936 Cross-version ratio edge case / measurement provenance gap; no fixed score conversion left as pre-existing
    intel-core-i7-1185g7 R23/GB=0.94; 10568 / 5756 / 6100 / - Range edge case / source gap: 4C/8T; independent workloads without matched run/version provenance left as pre-existing
    intel-core-i5-1140g7 PM/R23=3.77; 9774 / 2593 / - / - Range edge case / source gap: 4C/8T; independent workloads without matched run/version provenance left as pre-existing
    xeon-platinum-8380 R23/GB=1.95; 62318 / 38000 / 19500 / - Range edge case candidate: 40C/80T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    xeon-w-3375 R23/GB=2.17; 58686 / 39000 / 18000 / - Range edge case candidate: 38C/76T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    core-i3-12300 R23/GB=0.89; 14350 / 7600 / 8500 / - Range edge case / source gap: 4C/8T; independent workloads without matched run/version provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    core-i9-13900k R23/GB=1.95; 58173 / 40000 / 20500 / 2140 Range edge case candidate: 24C/32T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    intel-core-i5-1230u R23/GB=0.81; 10757 / 5817 / 7169 / - Range edge case / source gap: 2C/4T; independent workloads without matched run/version provenance left as pre-existing
    pentium-gold-g7400 R23/GB=0.99; 6714 / 3450 / 3500 / - Range edge case / source gap: 2C/4T; independent workloads without matched run/version provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    core-i3-13100 R23/GB=0.90; 14112 / 7000 / 7800 / - Range edge case / source gap: 4C/8T; independent workloads without matched run/version provenance left as pre-existing
    core-i9-13900f CB24/R23=0.04; 48391 / 39200 / 25500 / 1622 Cross-version ratio edge case / measurement provenance gap; no fixed score conversion; Range edge case candidate: 24C/32T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    core-i9-13900ks R23/GB=1.96; 60485 / 40800 / 20800 / 2156 Range edge case candidate: 24C/32T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    core-i9-14900k R23/GB=2.02; 58335 / 40500 / 20038 / 2211 Range edge case candidate: 24C/32T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    processor-n50 R23/GB=0.93; 2609 / 1400 / 1500 / - Range edge case / source gap: 2C/2T; independent workloads without matched run/version provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    xeon-gold-6448h R23/GB=2.05; 70280 / 45000 / 22000 / - Range edge case candidate: 32C/64T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    xeon-gold-6530 PM/R23=0.87; 49085 / 56500 / 40500 / - Range edge case candidate: 32C/64T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    xeon-max-9460 R23/GB=2.15; - / 58000 / 27000 / - Range edge case candidate: 40C/80T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    xeon-max-9462 R23/GB=2.08; 44153 / 50000 / 24000 / - Range edge case candidate: 32C/64T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    xeon-max-9468 R23/GB=2.19; - / 68000 / 31000 / - Range edge case candidate: 48C/96T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    xeon-max-9470 R23/GB=2.21; - / 73000 / 33000 / - Range edge case candidate: 52C/104T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    xeon-max-9480 R23/GB=2.23; 82913 / 78000 / 35000 / - Range edge case candidate: 56C/112T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    xeon-platinum-8452y R23/GB=5.48; - / 54000 / 9863 / - Source gap: cited GB page now 0/0; R23 54,000 not backed by a measurement URL left as pre-existing
    xeon-platinum-8480-plus R23/GB=2.22; - / 80000 / 36000 / - Range edge case candidate: 56C/112T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    xeon-platinum-8592-plus R23/GB=2.26; 84013 / 95000 / 42000 / - Range edge case candidate: 64C/128T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    xeon-w9-3475x R23/GB=2.04; 64602 / 55000 / 27000 / - Range edge case candidate: 36C/72T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    xeon-w9-3495x R23/GB=2.16; 90454 / 82000 / 38000 / 4083 Range edge case candidate: 56C/112T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    core-i3-14100 R23/GB=0.90; 15100 / 7200 / 8000 / - Range edge case / source gap: 4C/8T; independent workloads without matched run/version provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    core-i9-14900ks R23/GB=1.93; 60117 / 41500 / 21500 / 2443 Range edge case candidate: 24C/32T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    core-ultra-5-228v R23/GB=0.82; 18265 / 9000 / 11000 / 539 Range edge case / source gap: 8C/8T; independent workloads without matched run/version provenance left as pre-existing
    core-ultra-7-268v R23/GB=0.83; 19419 / 9500 / 11500 / - Range edge case / source gap: 8C/8T; independent workloads without matched run/version provenance left as pre-existing
    core-ultra-9-285 R23/GB=1.89; 57562 / 36000 / 19000 / 1979 Range edge case candidate: 24C/24T, mixed workload scaling; no comparable result/configuration provenance left as pre-existing
    xeon-6780e PM/R23=0.60; R23/GB=2.64; 86734 / 145000 / 55000 / - Range edge case candidate: 144C/144T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    xeon-6960p R23/GB=2.42; 130659 / 145000 / 60000 / - Range edge case candidate: 72C/144T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    xeon-6980p PM/R23=0.38; PM/GB=0.99; R23/GB=2.60; 74324 / 195000 / 75000 / - PM source confirms 74324; counter-benchmark provenance unresolved; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    xeon-w9-3595x R23/GB=2.19; 98476 / 92000 / 42000 / - Range edge case candidate: 60C/120T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    xeon-6781e R23/GB=2.42; - / 290000 / 120000 / - Range edge case candidate: 288C/288T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    xeon-6781p PM/R23=0.54; R23/GB=2.68; 117946 / 220000 / 82000 / - Range edge case candidate: 144C/288T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    loongson-3a6000 PM/R23=0.37; PM/GB=0.38; 1423 / 3800 / 3700 / - Architecture/platform comparability and measurement provenance unresolved; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    cobalt-100 R23/GB=2.17; - / 130000 / 60000 / - Range edge case candidate: 128C/128T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    grace-cpu-superchip R23/GB=2.20; - / 165000 / 75000 / - Range edge case candidate: 144C/144T, mixed workload scaling; no comparable result/configuration provenance; Citations are specs/PassMark, not the flagged R23/GB measurement left as pre-existing
    snapdragon-x-plus-x1p-42-100 R23/GB=0.86; CB24/R23=0.07; 17987 / 9000 / 10500 / 661 Cross-version ratio edge case / measurement provenance gap; no fixed score conversion; Architecture/platform comparability and measurement provenance unresolved left as pre-existing
    snapdragon-x-plus-x1p-64-100 R23/GB=0.96; 21350 / 12500 / 13000 / 837 Architecture/platform comparability and measurement provenance unresolved left as pre-existing
    snapdragon-x-x1-26-100 R23/GB=0.70; CB24/R23=0.09; 16393 / 7446 / 10584 / 646 Cross-version ratio edge case / measurement provenance gap; no fixed score conversion; Architecture/platform comparability and measurement provenance unresolved left as pre-existing

    Validation: python integrity_check.py DATA_ROOT --strict --hard-report hard-anomalies.json completed the full scan and exited 1, solely for the 18 duplicate-name hard anomalies. CPU name/tier and single>multi sections are clean; no CPU slug/filename, duplicate-slug, or verified-without-source findings. GPU advisory output was preserved but is outside this CPU task. No thresholds were widened or hard findings suppressed. Before/after CPU findings are unchanged; the 18 hard items in #98 remain open pending source-conflict reconciliation, and the advisory records need version/configuration-specific benchmark citations before correction.

  4. Seungpyo1007 commented on Sep 28, 2026

    @Seungpyo1007
    MemberAuthor

    The 18 hard Atom CPU duplicate-name anomalies reported earlier (integrity_check.py --strict) are resolved: GetTechAPI/TechAPI#321 merges each pair into one Wikipedia-verified record. `integrity_check.py --strict` now reports 0 hard anomalies. This was also the root cause of weekly-refresh's last 5-6 failures/cancellations — it should be able to complete once this merges.

  5. Seungpyo1007 commented on Sep 29, 2026

    @Seungpyo1007
    MemberAuthor

    CPU advisory re-check, 2026-09-29

    Prompted by today's successes elsewhere (Atom/tablet/watch/smartphone dedups that found real, fixable problems a prior pass had written off), I took a deliberately fresh, source-first pass at the 139 advisory CPU findings rather than trusting the earlier "pre-existing" classification. Fresh integrity_check.py run: TechEngine Seungpyo1007/cpu-advisory-recheck (checker unchanged from main), TechAPI develop 2360ec8cb17c, in a dedicated TechAPI worktree. Scope reproduced exactly: 12/12 categories, 191,710 records, CPU=4,628, GPU=2,083; 139 advisory CPU findings across 113 records (8 era, 24 PM/R23, 11 PM/GB, 90 R23/GB, 6 CB2024/R23). No hard anomalies (the 18 Atom dups were resolved by GetTechAPI/TechAPI#321).

    Outcome: after genuine re-verification, the "pre-existing" conclusion holds. No advisory record has a citable, authoritative replacement value, so no data PR is warranted (opening one would mean inventing values, which #296 forbids). What follows is the new primary-source work behind that, kept distinct from "I didn't look hard enough."

    Abbreviations: PM = passmark_cpu_mark, R23 = cinebench_r23_multi, GB = geekbench_multi (GB6 by the ingest convention in app/ingest/sources/topcpu.py and notebookcheck.py), CB24 = cinebench_2024_multi.

    Source accessibility (what is and isn't citable right now)

    • cpubenchmark.net is fetchable and authoritative for PM. This is the one benchmark in the ratio pairs I can source-lock to an exact SKU.
    • Geekbench browser (browser.geekbench.com) returns 403, and its aggregate isn't version-locked anyway (matches app/verify/http_check.py).
    • cpu-monkey.net returns 403.
    • cputronic.com is fetchable but unreliable and must not be cited: for Xeon Platinum 8452Y its prose claims "Geekbench 6 single 1670 / multi 7515," but its own structured data block on the same page lists Geekbench 5 1049 / 2072 — and 2072 multi for a 36-core part is nonsensical. It mislabels GB5 as GB6. Citing it would be laundering a wrong value.

    So for the R23 and GB sides of the ratio pairs there is generally no fetchable, version-locked, per-SKU source. That's the honest ceiling, not a shortcut.

    PM verification (the citable half): stored values confirmed correct

    I re-pulled PM for the extreme PM-pair outliers directly from cpubenchmark.net:

    • AMD EPYC 7J13 — PM 84,786, exact match to stored 84,786 (PM/GB=6.14 flag).
    • AMD EPYC 7D12 — PM 42,155, exact match to stored 42,155 (PM/GB=5.57 flag).
    • AMD Ryzen 5 5500GT — PM 19,039 vs stored 18,996 (sampling drift, correct).

    These, plus the prior pass's Opteron 6386 SE (8,291) and Xeon 6980P (74,324) confirmations, mean the PM side of the flagged EPYC/Xeon ratios is right. The PM/GB and PM/R23 flags on these parts come from the other side: GB6's multi-core score does not scale to 64–256-core server parts (its shared-task model saturates — Geekbench 6 internals, pp. 7–10), while R23 and PM keep scaling. That is a real methodology divergence, not a corrupt value.

    The 90-record R23/GB cluster is a benchmark-methodology signature, not contamination

    The R23/GB flags are almost perfectly monotonic in core count: high-core parts (Threadripper/EPYC/Xeon Platinum/Max, i9-X) cluster at ratio ~1.9–2.6; low-core parts (i3/Pentium/Celeron/dual- and quad-core mobile) at ~0.8–0.99. R23 multi keeps scaling with cores; GB6 multi compresses. A MAD test over a catalog that mixes 2-core and 288-core parts will light these up. This is exactly what the checker docstring already anticipates ("a heterogeneous catalog … legitimately produces many ratio outliers"), now confirmed against the live data rather than assumed.

    Era findings (8) are checker false positives, and worth fixing in the checker separately

    The era rule year<2011 and r23_multi>3000 uses release year and a fixed ceiling only — it ignores cores/threads. But Cinebench R23 runs on the physical silicon regardless of when the chip launched, so a 6-core/12-thread Gulftown legitimately posts ~5,000–6,500 R23 today, and a 4c/8t Bloomfield ~3,000–3,800 (consistent with published R23 tables, e.g. cgdirector R23 results, and cpu-monkey's per-chip pages for i7-980X / i7-920). All 8 era rows (i7-920/965/870/970/980X/990X, Phenom II X6 1090T/1100T) are pre-2011 high-core enthusiast chips — precisely the population this heuristic mis-flags. This is a checker limitation, not a data error. Filed as a separate integrity_check.py note under this workstream rather than a data change; a cores-aware era bound (or dropping the year gate for R23) would remove these false positives without weakening the wrong-variant detector.

    CB2024/R23 findings (6): individually-correct values sitting at a tight distribution edge

    I could source-lock one of these end-to-end via NanoReview (which cites its Cinebench/PassMark sources with sample counts): Core i9-13900F — CB2024 multi 1601 vs stored 1622 (correct); its R23 39,200 and PM 48,155-vs-stored-48,391 are also correct for a 24-core Raptor Lake. Both sides of the CB24/R23 ratio are individually right; the flag is only because the whole-catalog CB24/R23 band is narrow (0.043–0.072) and this chip sits at its edge. No fixed CB24↔R23 conversion exists, so an "outlier" here isn't evidence of a wrong number.

    Genuinely suspicious, but not fixable without inventing

    Three records look internally off, and I want to be explicit that these are "checked, no citable authoritative source available," not "skipped for effort":

    • Xeon Platinum 8452Y (geekbench_single 1051, geekbench_multi 9863; R23/GB=5.48). The stored single of 1051 matches the Geekbench 5 single (cputronic's structured data: GB5 1049/2072), i.e. this is very likely a GB5 value mislabeled into the GB6 field. But the cited Geekbench page is 403 / shows 0/0, and cputronic's "GB6" prose is self-contradictory and unusable. There is no fetchable, version-locked GB6 figure to replace it with, so it stays as-is.
    • Ryzen 5 5500GT (R23 6,907; CB24/R23=0.09). PM (19,039) and CB24 (614) are consistent with a 6c/12t Zen3, but R23 6,907 reads low for that class (5600-family parts are ~11k–12k). cpubenchmark doesn't publish Cinebench, and no accessible aggregator gives a version-locked R23 for this exact SKU. Left unresolved for lack of a citable source, not for lack of looking.
    • Core i5-1140G7 (R23 2,593; PM/R23=3.77). R23 reads low for a 4c/8t Tiger Lake, but again no fetchable per-SKU R23 source; unresolved on the same basis.

    I did not blanket-relabel these as "correct" — they are plausible data errors I couldn't correct within the rule "never invent a value; cite the evidence URL."

    Bottom line

    The earlier conclusion was right, and this pass upgrades it from "left as pre-existing" to source-verified where a citable source exists: PM values on the flagged EPYC/Xeon parts confirmed exact on cpubenchmark.net; the R23/GB and PM/GB clusters explained as GB6-scaling methodology, not contamination; the 8 era findings identified as a fixable checker heuristic bug; one CB24/R23 case (i9-13900F) confirmed correct end-to-end. A small residual (8452Y GB5-mislabel; 5500GT and i5-1140G7 low R23) is genuinely suspect but has no accessible authoritative source for a corrected value, so per #296's rules it stays documented rather than guessed. No data files changed; no dump refresh needed.

  6. Seungpyo1007 commented on Sep 29, 2026

    @Seungpyo1007
    MemberAuthor

    Verified-promotion re-check after the 2026-09-29 data fixes

    Re-ran the Tier 3 promotion step against a fresh develop checkout (synced to 8b2811d, which includes today's CPU/GPU/smartphone/laptop/monitor/PDA and citation-hunting passes) to see whether any of today's source/data fixes pushed borderline records over the verification threshold.

    Dry-run result (python -m app.verify promote, dry-run is the default):

    promote: 0 record(s) eligible (dry-run)
    blocked (green but no live T1 source yet — run check-urls):
         518  green-needs-live-t1
    

    0 records are newly promotable from a standalone promote run. 518 records score green offline but are blocked as green-needs-live-t1 — they need a live Tier-1 authoritative source confirmed in the URL-liveness cache before promote will flip them.

    Why I did not apply anything. The standalone promote step can't reach eligibility on its own: promotion depends on the Tier-1 URL-liveness cache and the Tier-2 crossref cache, which are (re)built by the check-urls / check-wikidata / crossref steps run immediately before promotion. Those network steps hit rate-limited external sites, and the established workflow (.github/workflows/verify-network.yml) is explicit that they run only in that controlled, scheduled environment ("NEVER on pull_request — external sites, rate-limited"), commit as TechEngineBot, and open a human-gated PR on TechAPI develop guarded so only verified toggles change. That pipeline — not an ad-hoc local promote --apply — is how promotions are meant to land, so forcing a flip here would be wrong on three counts: it bypasses the established actor/guard/review path, it would run against caches not freshly re-confirmed against today's changed source_urls, and the dry-run shows nothing eligible to apply anyway. A verified:false→true flip is a trust signal that's expensive to earn back, so I'm reporting rather than forcing it.

    Recommendation. To actually convert any of the 518 green-blocked records off the back of today's fixes, run the full verify-network workflow (workflow_dispatch with apply=true, or wait for the Monday 04:00 UTC schedule). That will re-check source liveness against the current source_urls, cross-reference, and — if anything genuinely clears the bar — open the usual TechEngineBot promotion PR for review.

    Refs #98

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

enhancementNew feature or requesttrackingLong-running tracker issue (stays open)

Type

No type

Projects

Relationships

None yet

Development

No branches or pull requests

Issue actions