Публічний реєстр
Звіт про здоров'я програмного забезпеченнясхема 0.23.0 · метрики 1.13.0 · 2026-07-21 16:02 UTC

colbymchenry / codegraph

Pre-indexed code knowledge graph, auto syncs on code changes, for Claude Code, Codex, Gemini, Cursor, OpenCode, AntiGravity, Kiro, and Hermes Agent — fewer tokens, fewer tool calls, 100% local

CMIT★ 61 400 зірок⑂ 3 843 форкиз січ. 2026 р.Переглянути на GitHub ↗

colbymchenry/codegraph має індекс здоров’я 67 зі 100, що відповідає смузі «Помірний». Найвищий показник — Vitality (83/100), найнижчий — Security (41/100). Останнє оновлення — сьогодні. Більшість нещодавньої роботи виконує один учасник.

67
загалом / 100
Помірний

Індекс здоров'я програмного забезпечення

Метрики згруповано у зважені категорії на шкалі 1–100. Загальна оцінка починається як їхнє середнє; коли публічні дані активують Політику юрисдикцій високого ризику, рейтинг коригується й отримує верхню межу 49 («Під ризиком»). Готовність до ШІ не входить до індексу.

67
Відмінний85-100Зразковий; відповідає практично всім перевіреним критеріям
Добрий70-84Здоровий; незначні прогалини
Помірний50-69Прийнятний, але з помітними прогалинами; рекомендовано перевірку
У зоні ризику30-49Суттєві слабкі місця; впровадження потребує обережності
Критичний1-29Серйозні проблеми (покинутий, єдиний мейнтейнер, без базової гігієни)
ЖиттєздатністьСпільнота тавпровадженняСталість таврядуванняІнженернаякістьБезпекаГотовність доШІ

Профіль оцінок

Кожна вісь — окрема категорія. Форма важить більше, ніж середнє: здоровий об'єкт заповнює всю фігуру, тоді як профіль із піками та провалами означає, що сила в одному вимірі маскує ризик в іншому.

Власність

Colby MchenryОсобистий обліковий запис
456 підписників24 публічні репозиторіїз квіт. 2016 р.

Цей репозиторій належить особистому обліковому запису. Проєкт з єдиним власником несе більший ризик безперервності, ніж підтримуваний організацією.

Пакетні екосистеми

РеєстрПакетВерсіяЗавантажень / місВерсіїОстання публікаціяТеги
npm@colbymchenry/codegraph1.4.1380 3884410 днів тому
npmsite2.60.41 8582371284 дні томуgameappwebsiteframeworkengineanimationhtml5svghtmlwebblog

Метрики за категоріями

Життєздатність

Чи живий проєкт — чи пишеться код і чи виходять релізи?

83Добрий · 22% загального індексу
Як обчислюється оцінка
36/36Свіжість push — останній push 0 дн. тому
14.5/36Ритм комітів — 21/52 тижнів із комітами
18/18Обсяг комітів — 757 комітів за останній рік
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10
Використані вхідні дані
commits_last_year757
human_commit_share0,93
days_since_last_push0
active_weeks_last_year21
Як обчислюється оцінка
27/27Випускає релізи — опубліковано 29 релізів
36/36Свіжість релізів — останній реліз 10 дн. тому
27/27Ритм релізів — реліз кожні ~1,4 дн.
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Використані вхідні дані
releases_count29
latest_release_tagv1.4.1
releases_from_tagsні
days_since_latest_release10
mean_days_between_releases1,4

Спільнота та впровадження

Чи має проєкт користувачів, завантаження, увагу та влаштовані умови для контриб’юторів?

80Добрий · 18% загального індексу
Як обчислюється оцінка
60/60Зірки — 61 400 зірок
25/25Форки — 3 843 форків
11.8/15Спостерігачі — 135 спостерігачів
Використані вхідні дані
forks3 843
stars61 400
watchers135
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonwindow_too_short
Як обчислюється оцінка
22.5/22.5README
22.5/22.5Ліцензія — визнана ліцензія (MIT)
0/18Настанови CONTRIBUTING
0/13.5Кодекс поведінки
0/7.2Шаблон issue
0/6.3Шаблон PR
Використані вхідні дані
has_readmeтак
has_licenseтак
has_contributingні
has_issue_templateні
has_code_of_conductні
has_pull_request_templateні
Як обчислюється оцінка
74.4/80Щомісячні завантаження — 382 246 завантажень/місяць у npm
0/20Залежні пакети в реєстрі — ця екосистема цього не повідомляє
Використані вхідні дані
packages@colbymchenry/codegraph, site
dependents
ecosystemsnpm
total_downloads
monthly_downloads382 246
Виключено з оцінювання (немає даних або не застосовно): Залежні пакети в реєстрі. Залишкові ваги перенормовано.

Сталість та врядування

Чи переживе проєкт своїх людей — бас-фактор, реактивність, хто за ним стоїть і як супроводжуються пакети?

61Помірний · 24% загального індексу
Як обчислюється оцінка
9/54Бас-фактор — на 1 контриб’ютор(ів) припадає половина всіх комітів
2/22.5Розподіл комітів — головний контриб’ютор — автор 91% комітів
13.5/13.5Широта контриб’юторів — 38 контриб’юторів
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Використані вхідні дані
bus_factor1
contributors_sampled38
top_contributor_share0,911
Як обчислюється оцінка
38.5/46.8Вирішення issue — закрито 82% issue
28.3/38.3Прийняття PR — злито 439/594 вирішених PR
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Використані вхідні дані
merged_prs439
open_issues96
closed_issues446
issue_closed_ratio0,823
closed_unmerged_prs155
Як обчислюється оцінка
10/30Підтримка власника — особистий (користувацький) обліковий запис
0/20Верифікований домен — не застосовно до користувацьких облікових записів
19.1/25Охоплення власника — 456 підписників у colbymchenry
22.2/25Послужний список — 24 публічних репозиторіїв, вік облікового запису ~10 р.
Використані вхідні дані
followers456
owner_typeUser
is_verified
owner_logincolbymchenry
public_repos24
account_age_days3 751
Виключено з оцінювання (немає даних або не застосовно): Верифікований домен. Залишкові ваги перенормовано.

Супровід пакетів

100Відмінний
Як обчислюється оцінка
25/25Опубліковано й доступно — 2 пакет(ів) у npm
35/35Свіжість публікацій — остання публікація 10 дн. тому
20/20Історія версій — 237 опублікованих версій
20/20Не застарілий — активний, не deprecated і не yanked
Використані вхідні дані
packages@colbymchenry/codegraph, site
ecosystemsnpm
any_deprecatedні
min_days_since_publish10

Інженерна якість

Чи наявні базові інженерні практики та документація?

65Помірний · 20% загального індексу

Інженерні практики

48У зоні ризику
Як обчислюється оцінка
24/24Процеси CI — 2 процес(ів) CI
24/24Наявні тести
0/16Конфігурація лінтера
0/9.6Pre-commit-хуки
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — 0 out of 30 merged PRs checked by a CI test -- score normalized to 0
Використані вхідні дані
has_ciтак
has_testsтак
has_editorconfigні
has_linter_configні
has_precommit_configні

Документація

90Відмінний
Як обчислюється оцінка
30/30README
25/25Каталог документації
15/15Сайт документації / домашня сторінка — https://colbymchenry.github.io/codegraph/
10/10Опис репозиторію
0/10Теми
10/10Wiki
Використані вхідні дані
topics
has_wikiтак
homepagehttps://colbymchenry.github.io/codegraph/
has_readmeтак
has_docs_dirтак
has_descriptionтак

Безпека

Чи міцні видимі практики безпеки й ланцюга постачання, без непослабленої пов’язаності з юрисдикціями високого ризику?

41У зоні ризику · 16% загального індексу

Стан безпеки

26Критичний
Як обчислюється оцінка
0/7.5Binary-Artifacts — binaries present in source code
3.8/7.5Branch-Protection — branch protection is not maximal on development and all release branches
0/2.5CI-Tests — 0 out of 30 merged PRs checked by a CI test -- score normalized to 0
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/30 approved changesets -- score normalized to 0
0.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Ліцензія — license file detected
7.5/7.5Maintained — 30 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — немає даних
1/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 2
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 25 existing vulnerabilities detected
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate2,5
Виключено з оцінювання (немає даних або не застосовно): packaging. Залишкові ваги перенормовано.
Як обчислюється оцінка
35/35Прямі залежності без відомих сповіщень — жодна пряма залежність не має відомих сповіщень
25/25Непрямі залежності без відомих сповіщень — жодна непряма залежність не має відомих сповіщень
0/40Немає задавнених сповіщень — жодне сповіщення не має дати публікації
Використані вхідні дані
sourceosv
advisories0
affected_packages0
assessed_packages6
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Виключено з оцінювання (немає даних або не застосовно): Немає задавнених сповіщень. Залишкові ваги перенормовано. Звірено з runtime-замиканням залежностей npm:@colbymchenry/codegraph@1.4.1 — тим, що тягне за собою встановлення опублікованого пакета, — 6 пакетів. Досяжність не аналізується.

Готовність до ШІ

Наскільки репозиторій оснащений для розробки та супроводу за участі ШІ-агентів? Незалежний, експериментальний бейдж — вага 0.0, тож він подається окремо і не впливає на загальний індекс здоров'я.

70Добрий · 0% загального індексу
Як обчислюється оцінка
45/45Інструкції для агентів — .cursor/rules/codegraph.mdc, CLAUDE.md
0/15Машиночитана документація (llms.txt)
40/40Читабельна історія комітів — намір зазначено у 93 з 93 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share1
agent_instruction_files.cursor/rules/codegraph.mdc, CLAUDE.md
agent_instruction_max_bytes33 908
Як обчислюється оцінка
12.6/18Розгортання однією командою — codegraph-kernel/Cargo.toml (домовленість інструментарію, без раннера задач)
22/22Автоматизовані тести
0/11Конфігурація лінтера / форматера
11/11Статична перевірка типів — site/tsconfig.json, telemetry-worker/tsconfig.json, tsconfig.json
10/10Відтворюване середовище — lockfile
10/10Підтверджена практика роботи з агентами — 92 з останніх 100 комітів створено агентом або з його зазначенням
0/8Автоматизоване супроводження — автоматичних оновлень залежностей не виявлено
2/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 2
Використані вхідні дані
has_nixні
has_testsтак
lockfilesCargo.lock, package-lock.json
has_dockerfileні
typed_languageтак
bootstrap_files
has_devcontainerні
has_linter_configні
typecheck_configssite/tsconfig.json, telemetry-worker/tsconfig.json, tsconfig.json
agent_commit_share0,92
toolchain_manifestscodegraph-kernel/Cargo.toml
dependency_bot_commit_share0
Як обчислюється оцінка
45/45Типізований код — C (статично типізована)
51.6/55Керовані розміри файлів — 28/447 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languageC
largest_source_bytes34 970 232
source_files_sampled447
oversized_source_files28
Як обчислюється оцінка
0/40Схема API (OpenAPI/GraphQL/proto)
20/20Сервер MCP
0/40Придатні до запуску приклади
Використані вхідні дані
example_dirs
has_mcp_signalтак
api_schema_files

Ключові факти

61 400зірок GitHub
38контриб'юторів
757комітів за останні 12 місяців
0днів від останнього пушу
29релізів
1бас-фактор
96відкритих issue
crates.io, npmпакетних екосистем

Попередження щодо збору даних

  • Could not fetch crates package 'codegraph-kernel' from its registry
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Докладніше

Історія зірок і форків 61 400 ★ / 3 843 ⇿
61 400Зірки
3 843Форки
14Релізи

Коли додано кожну зірку й форк — зібрано з GitHub і згруповано за днями. Кумулятивне зростання розміщено просто над денними додаваннями, з яких воно складається, тож їх видно одне проти одного: рівномірне органічне накопичення виглядає зовсім інакше, ніж різкий короткочасний сплеск. Там, де цю різницю можна виміряти, її подано як автентичність росту.

Показано лише найновішу історію — цей репозиторій перевищує вікно збору, тож найраніша історія не захоплена.

012 50025 00037 50050 00062 50061 4003 8432812026-062026-072026-07
Мажорні 1Мінорні 4Патчі 9
OpenSSF Scorecard 2.5 / 10
2.5сукупно

Незалежна, не прив'язана до інструментів оцінка безпеки від відкритого проєкту OpenSSF Scorecard. Кожна перевірка винагороджує практику безпеки, а не інструмент конкретного постачальника. Перевірки, які Scorecard не зміг визначити, позначено н/д і виключено з оцінки безпеки (вони ніколи не зараховуються як нуль).Scorecard v5.5.0 · 2026-07-21 16:01 UTC

0Binary-Artifactsbinaries present in source code
5Branch-Protectionbranch protection is not maximal on development and all release branches
0CI-Tests0 out of 30 merged PRs checked by a CI test -- score normalized to 0
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10
н/дPackagingpackaging workflow not detected
2Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 2
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities25 existing vulnerabilities detected
Прямі залежності 35
РеєстрПакетОбмеження версіїМаніфест
crates.ionapi3codegraph-kernel/Cargo.toml
crates.ionapi-derive3codegraph-kernel/Cargo.toml
crates.iotree-sitter0.25codegraph-kernel/Cargo.toml
crates.iosha20.10codegraph-kernel/Cargo.toml
crates.ioregex1codegraph-kernel/Cargo.toml
crates.iotree-sitter-typescript0.23codegraph-kernel/Cargo.toml
crates.iotree-sitter-javascript0.25codegraph-kernel/Cargo.toml
crates.iotree-sitter-java0.23codegraph-kernel/Cargo.toml
crates.iotree-sitter-python0.23codegraph-kernel/Cargo.toml
crates.iotree-sitter-go0.23codegraph-kernel/Cargo.toml
crates.iotree-sitter-c=0.24.2codegraph-kernel/Cargo.toml
crates.iotree-sitter-cpp=0.23.4codegraph-kernel/Cargo.toml
crates.iotree-sitter-rust=0.24.2codegraph-kernel/Cargo.toml
crates.iotree-sitter-c-sharp=0.23.5codegraph-kernel/Cargo.toml
crates.iotree-sitter-ruby=0.23.1codegraph-kernel/Cargo.toml
crates.iotree-sitter-php=0.24.2codegraph-kernel/Cargo.toml
crates.iotree-sitter-swift=0.7.3codegraph-kernel/Cargo.toml
crates.iotree-sitter-r=1.2.0codegraph-kernel/Cargo.toml
crates.iotree-sitter-luau=1.2.0codegraph-kernel/Cargo.toml
crates.iotree-sitter-language0.1codegraph-kernel/Cargo.toml
npm@clack/prompts^1.3.0package.json
npmcommander^14.0.2package.json
npmfast-string-width^3.0.2package.json
npmfast-wrap-ansi^0.2.0package.json
npmignore^7.0.5package.json
npmjsonc-parser^3.3.1package.json
npmpicomatch^4.0.3package.json
npmsisteransi^1.0.5package.json
npmtree-sitter-wasms^0.1.11package.json
npmweb-tree-sitter^0.25.3package.json
npm@astrojs/starlight^0.39.2site/package.json
npm@fontsource-variable/archivo^5.2.8site/package.json
npm@fontsource/ibm-plex-mono^5.2.7site/package.json
npmastro^6.3.1site/package.json
npmsharp^0.34.5site/package.json
Усі залежності не зібрано

Не вдалося зібрати розв'язаний набір залежностей для цього звіту: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Сповіщення про залежності 0

Встановлення npm:@colbymchenry/codegraph@1.4.1 тягне 6 пакетів, прямих і транзитивних: 0 мають відомі сповіщення, з них 0 — прямі залежності.

Жодне відоме сповіщення не стосується оцінених залежностей.

Сповіщення означає, що версія, записана в графі залежностей, потрапляє в уражений діапазон. Досяжність не аналізується, а граф містить піниї розробки й тестування — знахідка може стосуватися інструментів, а не поставленого коду.

Звіт у форматі JSON машиночитний
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 16366,
      "has_wiki": true,
      "homepage": "https://colbymchenry.github.io/codegraph/",
      "languages": {
        "C": 65185610,
        "R": 4991,
        "C#": 6214,
        "Go": 892,
        "C++": 48307,
        "CSS": 5561,
        "Lua": 1931,
        "PHP": 5229,
        "Dart": 10455,
        "Java": 2532,
        "Luau": 1237,
        "Ruby": 3916,
        "Rust": 951316,
        "Astro": 16750,
        "Scala": 7484,
        "Shell": 94349,
        "Swift": 4714,
        "Kotlin": 5406,
        "Python": 12622,
        "JavaScript": 240732,
        "PowerShell": 4241,
        "TypeScript": 5212391
      },
      "pushed_at": "2026-07-21T15:56:40Z",
      "created_at": "2026-01-18T21:45:37Z",
      "owner_type": "User",
      "updated_at": "2026-07-21T15:56:54Z",
      "description": "Pre-indexed code knowledge graph, auto syncs on code changes, for Claude Code, Codex, Gemini, Cursor, OpenCode, AntiGravity, Kiro, and Hermes Agent — fewer tokens, fewer tool calls, 100% local",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "C",
      "significant_languages": [
        "C"
      ]
    },
    "owner": {
      "blog": "https://colbymchenry.com",
      "name": "Colby Mchenry",
      "type": "User",
      "login": "colbymchenry",
      "company": null,
      "location": null,
      "followers": 456,
      "avatar_url": "https://avatars.githubusercontent.com/u/18431132?v=4",
      "created_at": "2016-04-12T23:56:33Z",
      "is_verified": null,
      "public_repos": 24,
      "account_age_days": 3751
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v1.4.1",
          "kind": "patch",
          "published_at": "2026-07-10T22:40:02Z"
        },
        {
          "tag": "v1.4.0",
          "kind": "minor",
          "published_at": "2026-07-10T08:44:54Z"
        },
        {
          "tag": "v1.3.1",
          "kind": "patch",
          "published_at": "2026-07-09T04:20:52Z"
        },
        {
          "tag": "v1.3.0",
          "kind": "minor",
          "published_at": "2026-07-07T19:27:57Z"
        },
        {
          "tag": "v1.2.0",
          "kind": "minor",
          "published_at": "2026-07-02T03:18:13Z"
        },
        {
          "tag": "v1.1.6",
          "kind": "patch",
          "published_at": "2026-06-30T04:44:10Z"
        },
        {
          "tag": "v1.1.5",
          "kind": "patch",
          "published_at": "2026-06-30T02:08:40Z"
        },
        {
          "tag": "v1.1.4",
          "kind": "patch",
          "published_at": "2026-06-29T21:58:59Z"
        },
        {
          "tag": "v1.1.3",
          "kind": "patch",
          "published_at": "2026-06-29T04:04:12Z"
        },
        {
          "tag": "v1.1.2",
          "kind": "patch",
          "published_at": "2026-06-28T06:34:11Z"
        },
        {
          "tag": "v1.1.1",
          "kind": "patch",
          "published_at": "2026-06-24T22:20:11Z"
        },
        {
          "tag": "v1.1.0",
          "kind": "minor",
          "published_at": "2026-06-23T21:46:56Z"
        },
        {
          "tag": "v1.0.1",
          "kind": "patch",
          "published_at": "2026-06-13T21:10:11Z"
        },
        {
          "tag": "v1.0.0",
          "kind": "major",
          "published_at": "2026-06-12T18:23:47Z"
        },
        {
          "tag": "v0.9.9",
          "kind": "patch",
          "published_at": "2026-06-02T15:37:39Z"
        },
        {
          "tag": "v0.9.8",
          "kind": "patch",
          "published_at": "2026-06-01T00:22:31Z"
        },
        {
          "tag": "v0.9.7",
          "kind": "patch",
          "published_at": "2026-05-28T20:28:15Z"
        },
        {
          "tag": "v0.9.6",
          "kind": "patch",
          "published_at": "2026-05-27T01:17:58Z"
        },
        {
          "tag": "v0.9.5",
          "kind": "patch",
          "published_at": "2026-05-26T08:00:05Z"
        },
        {
          "tag": "v0.9.4",
          "kind": "patch",
          "published_at": "2026-05-24T10:02:28Z"
        },
        {
          "tag": "v0.9.3",
          "kind": "patch",
          "published_at": "2026-05-22T10:48:20Z"
        },
        {
          "tag": "v0.9.2",
          "kind": "patch",
          "published_at": "2026-05-22T02:26:24Z"
        },
        {
          "tag": "v0.9.1",
          "kind": "patch",
          "published_at": "2026-05-21T21:11:18Z"
        },
        {
          "tag": "v0.9.0",
          "kind": "minor",
          "published_at": "2026-05-21T20:59:40Z"
        },
        {
          "tag": "v0.8.0",
          "kind": "minor",
          "published_at": "2026-05-20T23:43:26Z"
        },
        {
          "tag": "v0.7.10",
          "kind": "patch",
          "published_at": "2026-05-19T16:32:56Z"
        },
        {
          "tag": "v0.7.9",
          "kind": "patch",
          "published_at": "2026-05-18T01:27:17Z"
        },
        {
          "tag": "v0.7.7",
          "kind": "patch",
          "published_at": "2026-05-18T00:29:04Z"
        },
        {
          "tag": "v0.7.6",
          "kind": "patch",
          "published_at": "2026-05-13T14:06:11Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "157c8e735dc9c14764b0362d216b6b9693cd5cf3",
          "body": "…ex — Swift compiler 185→98s, byte-identical (#1395)\n\nThe swiftc =2/nm:mc-* attribution located the wall: the\ngetSupertypes conformance walk ran 971,200 times (565s of combined\nworker time, 581µs each) — every resolveMethodOnType miss re-queried\nimplements/extends edges for every same-named type nod\n[…]\ndubbo old-vs-new identical\n(49k Java instance-method hits share both paths), Alamofire\nidentical; suite 2,689 ×2 with CODEGRAPH_KERNEL_EXPECT=1.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(resolution): generation-tagged supertype memo + method owner ind…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-21T15:56:40Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "974e6c8b957054ecba6053726546ea5ef4c1d9d0",
          "body": "…-pattern memo — kong −8% more (−23% cumulative), byte-identical (#1392)\n\nThe kong/tokio matcher-chain residue attributed (nm:mc-* sub-stage rows,\nshipped here too): matchMethodCall's cost is ~entirely\ninferLocalReceiverType — 61µs per miss on kong, 99% miss rate (39k `self:`\ncalls hunting a local d\n[…]\nbbo (49k Java instance-method HITS ride this\nscan), kong, tokio, Fusion dumps all byte-identical; suite 2,689 ×2 with\nCODEGRAPH_KERNEL_EXPECT=1.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(resolution): incremental receiver-inference scan memo + compiled…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-21T05:20:03Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "abb0a916f7da5175774f1a15d3bb478ed018985f",
          "body": "…olution — kong fresh index −16% (#1391)\n\nThe full-README competitor matrix ranked lua/kong as the largest\nlegitimate fresh-index gap (2.71×). Stage attribution (RESOLVE_PROFILE=2)\npinned it: resolveLuaRequire ran getAllFiles().filter(endsWith) FOUR\ntimes per require ref — ~7.5k string suffix scans \n[…]\nos — it was\nnever dropped on cache clears, so post-sync copybook lookups could serve\na stale file list; cache-drop is the always-safe direction.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(resolution): per-context basename index for Lua/Luau require res…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-21T05:02:02Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1aa4de6eaa0db4a7d7bd0cc7c1a7ac96d3a840ef",
          "body": "…laces the fixed 150k-ref gate for mid-run boot; tokio −23% (#1390)\n\nThe 9-language competitor matrix exposed tokio as the worst fresh-index\ngap: 77% of its wall was resolution running SEQUENTIALLY — 56k Rust refs\nsit under the fixed 150k pool gate while costing 36µs each (9× Go's\n4µs/ref on prometh\n[…]\nith\nCODEGRAPH_KERNEL_EXPECT=1. Known follow-up: sampling the rate mid-first-\nbatch would close the remaining ~0.3s to the forced-engage ceiling.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(resolution): adaptive pool engagement — projected-settle bar rep…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-21T04:20:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "082ea65f3a72cb0fb93516943814d33a2f5bc669",
          "body": "…/rn/mybatis stop scanning repos they can't match; iface memo (#1389)\n\nStore-arc round 2 (#1388 follow-up). The synthesis pool barrier on dubbo\ncarried ~1.4s of passes that provably could not emit an edge for the\nproject: reactRenderEdges fanned out over every class before checking for\na render meth\n[…]\nava generics text produces jsx edges),\nand §4d buffer→bind on Spring repos (extract() hook forces the decoded\npath — kernel=0 bundles measured).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(synthesis): provably-empty pass gates + prefilters — render/expo…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-21T02:15:58Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "27c3c55436907d549109e9d87b476bc5b4895f41",
          "body": "…ility unstrangles the resolver pool on macOS (#1388)\n\nPost-R7b store-arc round 1, found by the dubbo warm-wall decomposition\n(the cbm bar): resolution's loop-stage profile showed settle=3.0s — the\nmain thread idling on TWO resolver workers on an 11-core Mac. Pool sizing\nlogged `size=2 (budget=1068M\n[…]\nlver-pool-sizing gains a darwin-gated reclaimable-pages test +\nan off-darwin null pin; full suite 2,689 green ×2 with\nCODEGRAPH_KERNEL_EXPECT=1.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(resolution): darwin-honest memory budget — vm_stat-based availab…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-21T01:11:31Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3c1f30ab482030f61620cafb17856bf2e763222b",
          "body": "…leg validated (#1387)\n\nFlips the migration plan's R7b milestone to done: eleven languages across\nfour same-day batches (rust #1371; csharp/ruby/php #1378-#1380; swift/\nkotlin #1381-#1382; r/lua+luau/scala/dart #1383-#1386), batch 4 going\n4-for-4 first-run parity (12-of-13 arc-wide). Also records th\n[…]\nust:1-bookworm + node 22 container with the kernel built from\nscratch and CODEGRAPH_KERNEL_EXPECT=1 — the Linux leg for all 11\npost-R7a walkers.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(kernel): mark R7b complete — 20 languages default-routed, Linux …",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-21T01:02:23Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d1b75a1a277cbcf5e4e7730be1c24fa483ce66ee",
          "body": "…3e + wasm byte-copy vendor, dart default-routed (#1386)\n\nR7b batch 4 #4 — the FINAL R7b language (docs/design/dart-kernel-port-checklist.md\nis the authoritative quirk list). The fourth vendored-grammar-C language,\nwith a twist: production dart resolved its wasm from tree-sitter-wasms,\nwhose dart de\n[…]\nted-file skip pin + two defer pins);\nfull suite 2,688 green ×2 with CODEGRAPH_KERNEL_EXPECT=1.\nDEFAULT_ROUTED += dart (20 langs — R7b COMPLETE).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kernel): R7b Dart walker — dart module, vendored-grammar-C d4d8f…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-21T00:55:48Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "bdd687b49f97a06972638ba61bd63c5f1514a828",
          "body": "…ter@0aca5d0a6f, scala default-routed (#1385)\n\nR7b batch 4 #3 (docs/design/scala-kernel-port-checklist.md is the\nauthoritative quirk list). The third vendored-grammar-C language and the\nbiggest grammar in the tree (35MB parser.c): the vendored wasm is\ntree-sitter/tree-sitter-scala master@0aca5d0a6f \n[…]\ne 2,669 green ×3 with CODEGRAPH_KERNEL_EXPECT=1\n(kernel-scaffold's stays-wasm example moved scala → pascal).\nDEFAULT_ROUTED += scala (19 langs).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kernel): R7b Scala walker — scala module, vendored-grammar-C mas…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-21T00:02:52Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e32135171e34b94ec6e11e1ea1fd6ad1605732d2",
          "body": "…C lua v0.4.1, tree-sitter-luau 1.2.0 pin, both default-routed (#1384)\n\nR7b batch 4 #2 (docs/design/lua-luau-kernel-port-checklist.md is the\nauthoritative quirk list). ONE walker for both dialects (ccpp precedent) —\nthe differences are exactly four: luau's type_definition aliases, the\n`export `-slic\n[…]\nalect defer\npins + kernel-arm wire-flag pins); full suite 2,647 green ×2 with\nCODEGRAPH_KERNEL_EXPECT=1. DEFAULT_ROUTED += lua, luau (18 langs).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kernel): R7b Lua+Luau walker — one lua module, vendored-grammar-…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-20T23:42:14Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b2f9ab1800d15477ee08ddbd6a3d8a26caf34410",
          "body": "…pin, r default-routed (#1383)\n\nR7b batch 4 #1 (docs/design/r-kernel-port-checklist.md is the authoritative\nquirk list; survey + probe record therein). The lightest-shared-surface,\nheaviest-hook port: languages/r.ts works entirely through the visitNode hook\n(every type list empty except callTypes:['\n[…]\nF + BOM variants +\ndefer pin + kernel-arm quirk pins); full suite 2,638 green ×2 with\nCODEGRAPH_KERNEL_EXPECT=1. DEFAULT_ROUTED += r (16 langs).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kernel): R7b R walker — rlang module, tree-sitter-r 1.2.0 crate …",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-20T23:28:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "45a53eb5b5a977189381baf3751af33a913a6393",
          "body": "…uild, kotlin default-routed (#1382)\n\nSixth R7b port — the T1½ batch finale. Checklist-first recipe\n(docs/design/kotlin-kernel-port-checklist.md, 1,121 lines, dist-extractor\nground truth); parity passed FIRST RUN on all three repos.\n\nTHE NOVEL MECHANISM — vendored-grammar-C (the §4 tracker's prescri\n[…]\ny row (the\nC-build ↔ wasm table identity proof); full suite 2,633 green ×2 under\nCODEGRAPH_KERNEL_EXPECT=1. DEFAULT_ROUTED += kotlin (15 langs).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kernel): R7b Kotlin walker — kotlin module, vendored-grammar-C b…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-20T22:33:18Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "09e301bbfae5728c3f4bee1cd6a992b81a52a33e",
          "body": "…3 bump, swift default-routed (#1381)\n\nFifth R7b batch-3 port, checklist-first recipe\n(docs/design/swift-kernel-port-checklist.md, 1,056 lines — the largest of the\narc, with a built-extractor-validated emission pin and a childForFieldName\ntruth table).\n\nGrammar bump first, validated standalone: tree\n[…]\n\ncases defer fixture) + swift grammar-parity row; full suite 2,626 green ×2\nunder CODEGRAPH_KERNEL_EXPECT=1. DEFAULT_ROUTED += swift (14 langs).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kernel): R7b Swift walker — swift module, tree-sitter-swift 0.7.…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-20T22:09:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a6c62d77dff4b9e7ad79bc8436ea7c1b31a9f5ce",
          "body": "…p, php default-routed (#1380)\n\nFourth and final R7b batch-2 port, checklist-first recipe\n(docs/design/php-kernel-port-checklist.md).\n\nGrammar bump first, validated standalone with the diff ENUMERATED + CLASSIFIED\n(unlike rust/ruby the php bump is NOT graph-neutral): tree-sitter-php ^0.22\n(tree-sitt\n[…]\nwire-flag pin, defer) + php\ngrammar-parity row; full suite 2,622 green ×2 under CODEGRAPH_KERNEL_EXPECT=1.\nDEFAULT_ROUTED += php (13 languages).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kernel): R7b PHP walker — php module, tree-sitter-php 0.24.2 bum…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-20T21:08:22Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "19099312385b0b169963040df34a97747e72df18",
          "body": "…bump, ref-flag wire slot, ruby default-routed (#1379)\n\nThird R7b port, checklist-first recipe (docs/design/ruby-kernel-port-checklist.md).\n\nGrammar bump first, validated standalone (the rust pattern): tree-sitter-ruby\n^0.20.1 (tree-sitter-wasms, 2024-02) → v0.23.1 — crate pinned =0.23.1, wasm\nbuilt\n[…]\nODEGRAPH_KERNEL_EXPECT=1 (one unrelated\nmcp-initialize timing flake under parallel load, passes solo 3/3 ×3).\nDEFAULT_ROUTED += ruby (12 langs).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kernel): R7b Ruby walker — ruby module, tree-sitter-ruby 0.23.1 …",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-20T20:44:13Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "286e9ccc2dad45336d4fd67052930322054d64b5",
          "body": "….5 pin, csharp default-routed (#1378)\n\nSecond R7b port, checklist-first recipe (docs/design/csharp-kernel-port-checklist.md;\nparity passed FIRST RUN again). No grammar bump — the #717 vendored wasm verified\ntable-identical to crate 0.23.5 (ABI 15, STATE_COUNT 8053, node-kind + field tables);\nfirst \n[…]\ns + 8 micro-pins + defer) + csharp grammar-parity row;\nfull suite 2,608 ×2 under CODEGRAPH_KERNEL_EXPECT=1. DEFAULT_ROUTED += csharp\n(11 langs).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kernel): R7b C# walker — csharp module, tree-sitter-c-sharp 0.23…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-20T18:46:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f1ca9919435b401b20d7e9afa4297061997b0f99",
          "body": "…4.2 bump, rust default-routed (#1371)\n\nFirst R7b language port. Grammar: tree-sitter-rust pinned =0.24.2 + wasm\nvendored from tag 77a3747 (parser.c/scanner.c sha-matched against the\ncrates.io tarball), replacing the 2023 ABI-14 tree-sitter-wasms build —\nthe bump alone is precision-positive on the w\n[…]\n/ 13,440 / 39,030 nodes); kernel-rustlang-parity suite\n(torture + CRLF + defer) in npm test; full suite green x2 with\nCODEGRAPH_KERNEL_EXPECT=1.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kernel): R7b Rust walker — rustlang module, tree-sitter-rust 0.2…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-20T05:08:09Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ce0ae30e09b8f495219893e716ae3974eacd2bd4",
          "body": "…3→276s, 8c envelope ≈11min (§4d round 2) (#1369)\n\nStore-architecture arc round 2. The batched resolution loop reads\nunresolved_refs ONLY through the status index + the PK keyset pager;\nthe other five ref indexes (from_node, name, file_path, from_name,\nfailed_tail) serve sync-time paths — yet every \n[…]\nical; linux counts exact\n2,049,153/6,413,518 and dump sha 6dd1185b… reproduced (10,446,478\nlines); full suite green ×2 (153 files / 2588 tests).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(store): resolution ref-index window — kernel-scale resolution 42…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-20T04:24:14Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f6d8e8fdab2f3f80cddac0f333886ca9dec5ca2e",
          "body": "…l-scale envelope best-ever 14.2min (§4d round 1) (#1368)\n\nStore-architecture arc round 1 (the cbm speed bar: dubbo warm wall\n10.7-11.2s vs their ~7.5). §4d measured dubbo's parse-loop as 94%\nstore-writer busy with B-tree maintenance as the floor (statement\nbatching and sorted inserts already killed\n[…]\nb… reproduced (10,446,478\nlines); full suite green ×2 (153 files / 2588 tests). Incremental\nsync paths untouched by construction (freshDb gate).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(store): parse-lane index deferral — dubbo fresh init −19%, kerne…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-20T04:02:54Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9647771659a453d08afda0d40fe243a50b29ca6f",
          "body": "…ment, fold I/O is a fixed budget (#1366)\n\nTwo nudge shapes probed at 8c kernel scale (passive checkpoint at the pool\nrecycle boundary, fire-and-forget and awaited). The awaited shape reached\nevery §7a.7 shallow floor (read 16.6s, inserts 31.4s, deletes 50.0s) and\npaid exactly what it saved (207.4s \n[…]\nrlaps\noff-thread, and the §7a.7 \"~45s gap to the floor\" is illusory. Code\nreverted; #1362's valve + recycling remain the optimum of this family.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(kernel): §7a.11 continuous-shallow WAL probe — killed by measure…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-20T00:01:11Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "69ea438bac1c5b75a83a8d46bc1950448b10d3b4",
          "body": "…across the arc (§7a.10) (#1365)\n\nTask #5 step 2. The fuse-then-link refactor (#1364) left the extraction\nsweep as a clean per-file boundary: raw text in → collected facts out.\nThis ports that sweep to the native kernel: `cfnptr_scan_files`\n(codegraph-kernel/src/cfnptr.rs) strips and scans a batch o\n[…]\n.9→171.1s. E's attributed\nwall grew from overlap shift under parallel synthesis; the phase total\nis the honest number. Full record: plan §7a.10.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(kernel): cFnPtr native extraction sweep — step 2, pass 230→151s …",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-19T22:48:27Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c6850d737b80a330cf45271342ebcb728064b8f9",
          "body": "…ered verbatim linking, pass −22% at kernel scale (#1364)\n\nTask #5 step 1 (plan §7a.8/§7a.9). The C/C++ function-pointer dispatch\nsynthesizer swept every file's text four times (typedefs, registrations,\npropagation, dispatch); at kernel scale the all-or-nothing source cache\ndeclines, so that was 4.4\n[…]\nte green ×2 (152 files / 2563 tests).\n\nStep 2 (native per-file extractor) now has its boundary: the extraction\nsweep, raw text in → records out.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(resolution): cFnPtr fuse-then-link — one extraction sweep + filt…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-19T16:43:06Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b877db617ccd17f1ece6961235e368ec46c55b46",
          "body": "…urement, fuse-then-link is step 1 (#1363)\n\nThree measurements before any port. The stripCStyle split('') rewrite\n(byte-identical segment-builder) measured 1.0× on 15.1M chars of linux C\n— V8's ~73MB/s scan rate IS the cost, and 78s ≈ 4 strips/file × that\nrate: the lever is the redundancy, not the s\n[…]\nrtion\norder + the §7a.4 probe-hash gate); step 2 = native per-file extractor\nbehind the same boundary (raw disk text — no preParse interaction).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(kernel): §7a.8 cFnPtr calibration — strip rewrite killed by meas…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-18T22:15:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "971a5a04838aed7885710e220b7394929e91013d",
          "body": "…r-readers fix, superphase −11.4% at 8c (#1362)\n\nThe §7a.6 anomaly probed to its mechanism with five discriminating runs\n(§7a.7 table): main-thread B-tree writes triple under attached readers\nbecause READERS PIN WAL checkpoint progress — the deep WAL taxes every\nwriter page operation (deletes 42.6s \n[…]\nsha 6dd1185b reproduced (10,446,478 lines),\ncounts 2,049,153/6,413,518, suite 2517 green. 2c unchanged by\nconstruction (no pool → no recycling).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(resolution): worker connection recycling — WAL-depth writes-unde…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-18T21:58:03Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5955d04c97de3311476b0ca9d8d84cfff4fcb0d3",
          "body": "… theories killed, writes-under-readers named (#1354)\n\nFresh CODEGRAPH_RESOLVE_PROFILE tables at 2c and 8c on the round-2 build:\nthe 8c settle stage is 3.6s — the double-buffer absorbs the entire\nresolveOne population, superseding §7a.2's core-invariant framing. The\n8c cost is writes-under-readers: \n[…]\n8.5s).\n\nLevers re-ranked: writes-under-readers probe > cFnPtr native site\nextraction (~230s of synthesis) > backpressure byte volume > recreate.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(kernel): §7a.6 per-ref measurement round — pool works, two cache…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-18T07:31:47Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b9d0f57a64b3cd5dcdc6a77d6f65038f2f528a66",
          "body": "…ernel/+mm/ deferral 58.6%→33.9% (#1353)\n\nCensus-driven cut of the top-ranked post-R7a lever. All passes TS-side,\nC-only (preParseCSource), shared by both arms:\n\n- parameterized-annotation whole-blank (__free/__printf/__counted_by/\n  __bpf_md_ptr…; extends through a stranded field `;`)\n- type-keywor\n[…]\n cg1212 re-run 16.4min (was 18.3min);\n8c parse sits on the single-writer floor, so the <10min-on-8c gap re-ranks\nto the per-ref resolution path.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(extraction): C deferral round 2 — 8 new preParse passes, linux k…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-18T06:00:00Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2d72891b594e78a9f431bc9c17278c6b77a26a1b",
          "body": "…t, 7 new blanks, c/cpp default-routed (#1346)\n\nParity: 0 diffs on redis/git/fmt/protobuf/ALS sweeps; full-init dumps\nbyte-identical on all five + linux at kernel scale (10.4M dump lines,\nsame sha256 both arms). Linux 2c/6GB envelope: kernel-arm 19.1min vs\nwasm-arm 22.9min (parse 356s vs 435s) on a \n[…]\nted by measurement (C/C++ error incidence 9-42%;\n--max-deferral flag); defer-reuse memo kills the 3x re-blank/re-parse\ncost deferred files paid.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kernel): R7a C/C++ walker — dual-lang ccpp module, preParse hois…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T21:56:41Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "44561b6aad535d7d7b2503228051b9834f19cbd6",
          "body": "…2 + cpp v0.23.4, sha-matched (#1345)\n\ntree-sitter-wasms shipped 2023-era C/C++ grammars; the kernel walker must\ncompile the crates.io versions, so production wasm upgrades FIRST and in\nisolation (the R2 pattern). Built with tree-sitter-cli 0.25.10 from each\ntag's CHECKED-IN parser.c: tree-sitter-c \n[…]\n — incl. the UE-macro, misparse-guard,\nMetal, and CUDA coverage. Checklist updated with the vendored revs and the\nmetal/cuda routing correction.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(extraction): vendor current C/C++ grammars (R7a prep) — c v0.24.…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T18:07:13Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "34ad0801aa5c16616929aec22c15665e7e04f678",
          "body": "…ist (#1344)\n\nStep 1 of the §0a recipe for the C/C++ port: every tree-sitter.ts branch,\nextractor-config field, name-salvage helper, and gate the walker must\nmirror, with file:line anchors. Locks the architecture: preParse (all seven\nblanking passes) hoists to the kernel route point so none of it po\n[…]\nvalue-refs are C-only (cpp absent from\nVALUE_REF_LANGS), static-member refs are cpp-only, fn-ref spec is\ncFamilySpec with addressOfOnly for cpp.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(kernel): R7a survey complete — the C/C++ bug-for-bug port checkl…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T18:02:52Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "705e5013286eb1857a92e39ee5e941e9d3af6fe3",
          "body": "…nds (#1343)\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(kernel): sync §0 P1 checklist with the completed §7a.3/§7a.4 rou…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T17:45:40Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "636c74a3d2751ff50897f0114fef7f4d75493387",
          "body": "…nvelope, LRU-cyclic-thrash lesson (#1342)\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(kernel): §7a.4 cFnPtr round record — 2.07x standalone, 17.6min e…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T17:40:03Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "d510de476638eb321b7dfc126848321d455bc887",
          "body": "…edge set hash-identical (#1341)\n\ncFnPtrEdges was 86% of kernel-scale synthesis (306s, §7a.3). Standalone\nprobe iterations against the live kernel DB attributed and fixed:\n\n- sliceLines split the ENTIRE file per node (~1.6M full-file splits across\n  the B/D/E sweeps) — split once per file, slice fro\n[…]\nerge-dedup applied, canonical sort) SHA256\n21c2a971... == the original code's 274,762 edges extracted from the live\nkernel DB. Pass suite 15/15.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(synthesis): cFnPtrEdges 2.07x at kernel scale — probe-profiled, …",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T17:20:17Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9f10318424e3fe20cf81e9f2b3dbe1b02213715a",
          "body": "…liminated, envelope 19.3min; two theories falsified by measurement (#1340)\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(kernel): §7a.3 batch-loop profile round — countGuard quadratic e…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T16:47:40Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7cc23668b50359731fa201a530ceca24e72a7ecb",
          "body": "…ed guard, DB-scaled valve caps + resolve profiler (#1339)\n\nThe §7a.2 per-ref profile overturned the assumption the whole arc was\nbuilt on: resolveOne owns only ~93s of the kernel-scale ~433s batch loop.\nLoop-stage attribution (CODEGRAPH_RESOLVE_PROFILE, shipped here) named the\nrest: backpressure fo\n[…]\nefault.\n\nGates: dubbo dump byte-identical; suite 2,491 passed / 4 skipped (kernel\nrequired). Kernel-scale payoff run lands in the plan doc next.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(resolution): batch-loop de-quadratic — keyset reads, changes-bas…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T16:27:30Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "19cf1ec75b01077bf69b46dca39fedd54c76c798",
          "body": "…WAL 14x contained; resolution measured core-invariant (#1338)\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(kernel): P1 record runs — 2c 20.4min (-23%), 8c 18.3min no-OOM, …",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T14:52:47Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2adc7f60c06e1235638ed8dd447728432cd1edfa",
          "body": "…te loses the race it was assumed to lose (#1336)\n\nA truncate checkpoint started against an ACTIVE writer wins the lock and\nthen blocks that writer for its entire backfill; after the edge-index\nrecreate's multi-GB single-transaction burst that exceeds the writer's 5s\nbusy_timeout and fails the index\n[…]\nriter is awaiting the valve.\n\nDubbo gate: exit 0, peak 81MB (barrier folds carry containment), dump\nbyte-identical. Valve + sizing suites 27/27.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(db): WAL truncate at parked barriers ONLY — the timer-path trunca…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T14:11:32Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ca88d3bd151a43663e6576257233b0de3f6e64c2",
          "body": "…izing corrections from the instrumented kernel-scale runs (#1335)\n\nFour §7a.1 instrumented-run findings, each measured:\n\n1. File-size trigger + truncate-at-barrier: a fully-backfilled WAL still\n   grows the FILE without bound — the writer only restarts at frame 0 when a\n   commit finds zero reader \n[…]\nAL_VALVE_DEBUG.\n\nSuite: 2,490 passed / 4 skipped (kernel required). Kernel-scale record\nruns with this build follow in the migration plan §7a.1.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(db,resolution): WAL file cap + cgroup cache credit + pool/parse s…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T13:56:26Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8c1e821495a8d1b8906aac36ccc2354945c73777",
          "body": "…EGRAPH_WAL_VALVE_DEBUG (#1334)\n\nThree §7a.1 run-1 lessons (kernel-scale 2c/6GB: EXIT=137, WAL 22.2GB with\nthe backpressure hook DEPLOYED):\n\n1. TRUNCATE at parked barriers: a completed passive backfill bounds the\n   un-checkpointed backlog but the FILE only stops growing when a commit\n   finds zero \n[…]\nler's verbose plumbing, and give-up lines print under\n   CODEGRAPH_SYNTH_TIMINGS — run 1 failed silently because give-ups were\n   verbose-gated.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(db): WAL valve — TRUNCATE at parked barriers, futility latch, COD…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T13:17:33Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b8833fec5723f44e76855202bc8445481b02fdfc",
          "body": "…DEGRAPH_RESOLVE_WORKERS (#1333)\n\nPool sizing used os.cpus().length, which enumerates the HOST's CPUs: inside\na 2-CPU cpuset it sized 6 resolver workers (the §7a.1 false-'sequential'\npremise) and 8 parse workers, and at true 8-core concurrency six ~1GB\nworkers OOM-killed a 7GB container (oom_kill=5)\n[…]\npool's\ncore input switches to availableParallelism. Dev machines are unchanged\n(still 6 workers); the 8c/7GB kernel-scale container now sizes 4.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(resolution): memory-aware, cgroup-honest worker-pool sizing + CO…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T12:54:31Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6e52295ceb17eb5e334ea381e2bfe4f96deb21a2",
          "body": "…ackpressure at pool-idle boundaries (#1332)\n\nAt kernel scale the pooled resolution/synthesis superphase grew a 22GB WAL\non a 4.6GB DB (cg1212, §7a.1): autocheckpointing is deferred for the run,\nand the valve's timer-driven passive checkpoints stay perpetually partial\nagainst the pool's continuous r\n[…]\nr = the\nsingle-transaction edge-index recreate) vs defaults 914MB; dumps\nbyte-identical (441,270 rows); wall unchanged (11s). Suite 2,479 green.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(resolution): WAL containment for the pooled superphase — writer b…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T12:48:34Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "04ab45c91fff97263d2d305ecb2908bce80bd159",
          "body": "…ild + 33/33 suites, CRLF find credited (#1330)\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(kernel): O2 Windows VM validation closed — win32-arm64 native bu…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T06:29:52Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "5e329adc28fb1797e85dab59acc28e152dee2062",
          "body": "… regex crate's (?m)^ is \\n-only (#1329)\n\nOn CRLF checkouts (every Windows autocrlf clone) the JS reference's\nblock-continuation strip /^\\s*\\*\\s?/gm finds a line start after the \\r and\nits greedy \\s* consumes the \\n, leaving a bare \\r in the docstring; the\nkernel's (?m)^ pass matched after \\n only a\n[…]\nne-marker passes; CRLF variants of every torture fixture are\npinned in kernel-tsjs-parity, derived in-memory so nothing can normalize\nthem away.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(kernel): CRLF docstring parity — JS multiline ^ anchors after \\r,…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T06:28:21Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9e18ac2125d3d298fd3b39360764720727a42b48",
          "body": "…-blind pool), OOM + WAL-pinning findings, revised P1 order; O1 merged, O2 in progress (#1327)\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(kernel): P1 first measurement round — premise correction (cpuset…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T06:15:24Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c1dc78d3fa9c7da2705b9554ba0727204d31c69c",
          "body": "Native extraction kernel: Rust parse+extract for TS/JS/Java/Python/Go, byte-identical, default-on (R1-R6)",
          "is_bot": false,
          "headline": "Merge pull request #1326 from colbymchenry/rust-kernel",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T05:36:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8060da28c0dcb8cbec7b51ca6a1fdfbac0060158",
          "body": "…hecklist, §0a operational handoff, superseded-expectation annotations\n\nR1-R6 are done; §0 is now the open-work list in recommended order\n(merge → Windows VM leg → P1 resolution → C/C++ port → long tail), and\n§0a carries everything a fresh session needs: where the work lives, the\nbuild/gate commands\n[…]\nith SUPERSEDED\nannotations pointing at the measurements that corrected them; §7a now\ncarries the R6 numbers that make it the top open perf item.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(kernel): make the migration plan a cold-start handoff — status c…",
          "author_name": "Colby McHenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T05:29:22Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2a79432b1312c8949e3324e53d77a5406daa6546",
          "body": "…arness symlink robustness\n\ncg1212 (Linux kernel, 2 CPU/6GB): completes in 26.4min vs the ~27min\nbaseline with all new machinery active — no regression; graph scale\nidentical (2,048,664 nodes / 6,405,964 edges). The §6 parse expectation\n(6m → ~2m) was mis-premised: the tree is ~99% C, an unported T2\n[…]\nl (19.2m, 73% — P1). The tree's own Python tooling\nfiles: 99/99 byte-parity. kernel-parity.mjs now skips dangling\nsymlinks (Linux dtc fixtures).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(kernel): R6 — kernel-scale re-validation record (§4f) + parity-h…",
          "author_name": "Colby McHenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T05:19:39Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f07fd545adac00d8ea9e236b8febf3aa9cbf9445",
          "body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(kernel): record 2-CPU django/prometheus benchmarks in §4e",
          "author_name": "Colby McHenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T04:54:06Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c2503e2bee5f2a0c880ff536a33736ca31709ecc",
          "body": "Python (codegraph-kernel/src/python.rs) and Go (src/go.rs) join the\nnative kernel, mirroring the wasm extractors bug-for-bug. Python:\ndecorated_definition docstrings/decorators (decorates refs only for\nbare-identifier decorators — the call-kind quirk), function-in-class →\nmethod, module-level assign\n[…]\n); torture fixtures enforced in npm\ntest. DEFAULT_ROUTED now covers typescript/tsx/javascript/jsx/java/\npython/go. Full suite: 2,471 tests pass.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kernel): R5 — Python and Go ports, gates passed, default-on",
          "author_name": "Colby McHenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T04:50:02Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "28068fa0f13724ef974e238423aa04e664fdeb16",
          "body": "…er, main thread never materializes nodes\n\nKernel-routed files ship their flat tables from the parse worker to the\nstore worker as buffers (tryKernelExtractRaw → kernelBuffers on the\nresult → KernelStoreBundle); the store worker decodes and finalizes\n(finalizeStoreBundle shared with the object path \n[…]\nning many-core gap is a\nstore-architecture arc (deferred index builds, multi-file\ntransactions, buffer→bind), out of the kernel project's scope.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(kernel): direct-to-store decode — buffers flow to the store work…",
          "author_name": "Colby McHenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T04:38:32Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "03d54e47a1f4eee216ccedc9eb994d34661bccb3",
          "body": "…ult-on\n\nJava joins the native kernel (codegraph-kernel/src/java.rs), mirroring\nthe wasm extractor's Java paths bug-for-bug: package namespaces,\nimports, javadoc, annotations→decorates, type_list inheritance,\nstatic-final constants, enum constants, anonymous classes (including\nthe TS side's 0-based-\n[…]\node JS object\nmaterialization); the buffer contract already carries everything.\n\nDEFAULT_ROUTED now includes java. Full suite: 2,467 tests pass.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kernel): R4 — Java port with Lombok synthesis, gate passed, defa…",
          "author_name": "Colby McHenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T04:25:29Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c8cca9a6014086c99d0141af82690966d4812918",
          "body": "Gate evidence (docs/design/rust-kernel-migration-plan.md §4b):\n\n- Graph parity, byte-identical (stronger than the §5 ≤0.5% bar): full\n  codegraph-init dump-diffs kernel-vs-wasm on express (13,712 rows),\n  excalidraw (89,898), and vscode (2,378,238 rows) — identical bytes.\n  Python control repo (flas\n[…]\nsx, javascript, jsx}. Override:\nCODEGRAPH_KERNEL_LANGS (replaces the set) / CODEGRAPH_KERNEL=0 (kill).\nChangelog entry added under [Unreleased].\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kernel): R3 — TS/JS equivalence gate passed, kernel default-on",
          "author_name": "Colby McHenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T03:50:02Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9ad5cd7ba2428d39b1c818247ac6c9c8a67d6a90",
          "body": "…arity with the wasm path\n\nReplaces the R1 seed .scm emitter with a bespoke Rust walker\n(codegraph-kernel/src/tsjs/) that mirrors TreeSitterExtractor's TS/JS\npaths function-for-function: declarations (incl. #808 field/property\nclassification), qualified names, docstrings (#780 wrapper climbs),\nsigna\n[…]\nopt-in (CODEGRAPH_KERNEL_LANGS) until\nthe R3 equivalence gate (large repo, DB dump-diff, retrieval invariants,\nagent A/B, Linux/Windows) passes.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kernel): R2 — full TypeScript/JavaScript extraction port, byte-p…",
          "author_name": "Colby McHenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T03:14:40Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c5eebe6beba7e0c251439f3c46d8445e0184f387",
          "body": "…t, routing + fallback, grammar-parity CI\n\nPhase 0 of the Rust extraction-kernel migration (docs/design/\nrust-kernel-migration-plan.md, now checked in with §3a recording the\nshipped state):\n\n- codegraph-kernel/ napi-rs crate: extractFile(path, content, language)\n  → five flat buffers (meta/nodes/edg\n[…]\nl back to the wasm path); bundles stage\n  lib/kernel/codegraph-kernel.node; release job runs the kernel suites\n  with CODEGRAPH_KERNEL_EXPECT=1.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kernel): R1 scaffold — napi-rs extraction kernel, buffer contrac…",
          "author_name": "Colby McHenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T01:13:51Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4efc6c70e23aacbe85fb2fdfcfddae1910d5527a",
          "body": "…g-safe index recreate (#1323)\n\nTwo hazards found by running today's full stack against the Linux kernel\n(70,129 files) in the cg1212 repro container:\n\n1. The parallel-synthesis fallback retried a worker-failed pass on the MAIN\n   thread. At multi-million-node scale a worker failure is usually a mem\n[…]\nn for the native extraction kernel (Rust parse+walk over dubbo's Java:\n202ms rayon / 1.07s single-thread vs 4.7s for the current wasm pipeline).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(scale): kernel-scale hardening — OOM-safe pass skipping + watchdo…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-17T00:09:01Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "567b4ad4be6109b1688525537ffc4c6e1bd0e80f",
          "body": "…tion window, byte-identical graphs (#1322)\n\nThe resolution persist's measured cost is B-tree maintenance on the edges\ntable's five indexes (offline replay of a 224k-edge resolution set: 2.8s with\nall indexes, 1.1s with only the unique identity index, +0.3s to recreate the\nrest). On big runs (same >\n[…]\nw the gate): untouched, byte-identical.\nRecreation cost ~250ms, logged under CODEGRAPH_SYNTH_TIMINGS as\nedge-index-recreate. Suite green (2444).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(resolution): drop non-unique edge indexes during the bulk resolu…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T23:26:30Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "cf38ef65afe942f5d8e1122b92b40017f0b9e67c",
          "body": "…, byte-identical graphs (#1321)\n\nThe ~36 independent synthesis passes (callback/event/framework wiring) ran\nsequentially on the indexer's main thread — 2.0s of a 4,402-file Java repo's\nindex, and the stage where kernel-class repos die (#1212). They now live in\nan explicit registry (SYNTH_PASSES) an\n[…]\nxed marks);\nthe pin test counts registry entries plus literal __mark sites.\n\nSuite green (2444). Sequential-path timing unchanged on excalidraw.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(synthesis): fan dynamic-dispatch passes across the resolver pool…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T23:07:51Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a2f3c31a971dd4cdc017e5c4459612587d20c4c4",
          "body": "…resolution, byte-identical graphs (#1320)\n\nFresh init on a 4,402-file Java repo (dubbo): 18.2s -> 13.5s (-26%), with\nthe resolution phase going 12.6s -> 7.9s (-38%). Graphs verified\nbyte-identical on both the pool path (dubbo) and the sequential path\n(excalidraw).\n\nTwo changes:\n\n1. The fastInit+poo\n[…]\nite green (2444). Sync path timings unchanged. Pool floor re-validated:\nforced-on at 40k refs is still net-slower, so the 150k threshold stands.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(resolution): defer checkpoints and double-buffer persist during …",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T22:26:29Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1de7e8f8b57627249ce7aa3ed4709676cfa0cfd0",
          "body": "…1319)\n\nThree compounding defects (#1196) made a query bag of object-literal\nkeys (`profileInfo isTrialEligible quotaInfo billingMethod`) return\nunrelated results while the defining files never surfaced:\n\n1. Step 5b title-cased interior humps (profileInfo -> Profileinfo) and\n   then compared case-SE\n[…]\nene) is byte-\nidentical; NL queries shift toward more-central callables\n(useUIAppState/getDefaultAppState over observer periphery).\n\nFixes #1196\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(retrieval): multi-hump field-name queries reach their definers (#…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T21:11:24Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a5a8942d1c5f639eff02eb1bca3aa755be995905",
          "body": "…red parent (#1318)\n\n`.gitignore: /repos/` lists `repos/` as ONE ignored entry, while the\nCLI hint (#1156) suggests `includeIgnored: [\"repos/a/\", \"repos/b/\"]` —\nthe child spelling. findIgnoredEmbeddedRepos tested the opt-in matcher\nagainst the PARENT path only, which a child pattern never matches, s\n[…]\ngets the\nsame per-repo check so the hint stops nagging about repos that are\nalready configured while still naming unopted siblings.\n\nFixes #1295\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(scan): includeIgnored child patterns revive repos under a gitigno…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T21:01:08Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c472cfb52e476a31189211266ed21dbecd080926",
          "body": "…ricating call edges (#1317)\n\n\", \".join(sorted(x)) resolved by bare name to a project function named\njoin — one nested inside a DIFFERENT function, so scope alone rules the\nedge out. Both defects from #1230, fixed independently:\n\n1. Extraction: a member call on a LITERAL receiver (string, number,\n  \n[…]\nby construction. The issue's repro is\npinned: join has exactly one caller (format_fields), report_missing\nhas zero project callees.\n\nFixes #1230\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(resolution): literal-receiver builtins and nested locals stop fab…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T20:55:38Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "41c20297987416201a1de665eced2bf0dad1571b",
          "body": "…r bare-name guessing (#1316)\n\ntarget.conn.Exec(\"insert\") with `conn *sql.DB` emitted a BARE `Exec`\nref (the receiver chain was dropped for non-identifier receivers), and\nexact-match then bound it to the only local `Exec` — an unrelated\ninterface's method — fabricating an internal dependency (#1276)\n[…]\n/routes, validated,\nincluding the unexported `node` type); the removed edges are the\nprior bare-name guesses on external receivers.\n\nFixes #1276\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(go): field-chain calls resolve via validated type inference, neve…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T20:49:24Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2ec877b08cc38a2354e1c3f012280c15367a0b41",
          "body": "…ethod (#1315)\n\nreproStore.notifyJoinGuildStatus() after `import { reproStore }`\nresolved its calls edge to the exported CONSTANT (resolvedBy:'import'),\nwhile the identical same-file call resolved to the method via\nlocal-variable receiver inference (#1108) — so `callers <method>`\nmissed every cross-\n[…]\ner reads still reference\nthe value.\n\nexcalidraw control: byte-identical graph (10,653 nodes / 19,483 calls\nedges before and after).\n\nFixes #1292\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(resolution): calls through an imported singleton resolve to the m…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T20:36:33Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ce983a08fe617dcc3a363112b6523b500f1f342e",
          "body": "The CLI's bare-symbol branch passes includeCode=true to the\ncodegraph_node handler, but the symbol-pinned-to-file branch didn't —\nso exactly when a user disambiguated an overloaded name to one file\n(the point of -f), they got Location + trail with no code (#1284).\n\nFixes #1284\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(cli): `node <symbol> -f <file>` includes the source body (#1314)",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T20:30:17Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "8dcf92f285a88bf307b8948ec947dce45ff16805",
          "body": "A directory deletion arrives as ONE event on the directory's own path.\nThat path has no source extension, so handleChange dropped it at the\nisSourceFile gate before ever scheduling a sync — and the files inside\nmay never get events of their own (Windows's recursive watcher reports\nonly the top-most \n[…]\nied: manual `codegraph sync` cascades fine). Events for\nlive non-source files stay fully ignored, so build churn schedules\nnothing.\n\nFixes #1285\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(watch): schedule a sync when a directory is deleted (#1313)",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T20:27:10Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "18f0745f81548a601282a432e3ccfda44dfb475a",
          "body": "…1312)\n\nThe #1242 fix (WAL deferral + checkpoint valve, the 26x win on\nHDD-class storage) was wired only into indexAll. CodeGraph.sync never\ntouched wal_autocheckpoint, so every incremental run kept the default\n1000-page cadence and re-triggered the #1231 per-page checkpoint\nthrash — a 7-file sync t\n[…]\nl in the finally. Same kill switch\n(CODEGRAPH_NO_WAL_DEFER=1). Idle valve cost is one timer, so\nwatcher-frequency syncs stay cheap.\n\nFixes #1248\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(sync): defer WAL autocheckpoint for the whole incremental run (#…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T20:21:48Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b6a05d155b780ae5d391d19f21c4c01480d6423f",
          "body": "…names (#1311)\n\nSEC_ATTR UINT32 LostName(VOID) — an unknown attribute macro before a\ntypedef'd return type — misparses in tree-sitter's C grammar: the macro\nbecomes the type, the return type the declarator, and the PARAMETER\nLIST is stored as the function name (\"(VOID)\"). The C++ grammar\nrecovers th\n[…]\no name changes;\n7 nodes in memdebug.c improve start-line accuracy by 1 (the macro line\nno longer counts as part of the definition).\n\nFixes #1211\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(c): blank leading attribute macros so functions index under real …",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T20:17:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e4379180263392034c8959fa35f84487fa3a3ba4",
          "body": "…names (#1310)\n\nAn out-of-line member definition inside a namespace block takes its\nqualifiedName from the declarator's receiver, which is spelled RELATIVE\nto the enclosing namespace — so `namespace simulator {\nManifestStartup::Output ManifestStartup::Apply(...) {} }` indexed as\nManifestStartup::App\n[…]\nhrough unchanged.\n\nleveldb re-index: node count byte-stable (3,044), calls edges +6,\nnamespace-qualified method names 947 -> 1,252.\n\nFixes #1291\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(cpp): compose namespace prefix into out-of-line method qualified …",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T20:10:55Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4dd29ea5c15e54b30400612e92e9a679705a047b",
          "body": "…iers (#1309)\n\ntemplate<typename T> T Box<T>::get() stored qualified_name Box<T>::get —\nthe <T> qualifier never matched the class node indexed as Box, so the\nmethod didn't link to its class, while the inline form of the same\nmethod produced Box::get. ICU-shaped multi-line template parameter\nlists le\n[…]\n_EXPORT misparse artifact and gmock conversion-operator names,\nboth distinct pre-existing shapes), node count byte-stable at 7,536.\n\nFixes #1286\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(cpp): strip template args from out-of-line method receiver qualif…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T20:04:38Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e1f339f7322b178b81bc4117b8acf24f7a1eae05",
          "body": "cache.Put(\"a\", 1), store.Get(\"config\", out), bus.Handle(\"user.created\",\nh) — any verb-named method with a string first arg — were indexed as\nHTTP routes (38 of 82 route nodes were false positives on the\nreporter's 200 KLOC Go codebase). A registration's first argument must\nnow start with \"/\" (every \n[…]\n method instead of ANY.\n\nValidated on go-chi/chi (212 real routes retained, all path-shaped)\nand golang/groupcache (0 route nodes).\n\nFixes #1259\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(go): require URL-shaped paths for route detection (#1308)",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T19:59:00Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "30421953acea3239935bf67ba94b231ae44a8f4c",
          "body": "…raw path ASCII (#1307)\n\ncodegraph's glyphs were ASCII on every Windows console while\n@clack/prompts drew its Unicode frame around them, so one index block\nmixed `|` and `│` rails (#398). supportsUnicode() now mirrors the\nis-unicode-supported detection clack bundles (Windows Terminal, VS\nCode, ConEm\n[…]\n  the progress callback. Only transient, self-erasing animation frames\n  remain on the raw path, so ASCII never lands in scrollback.\n\nFixes #398\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(ui): consistent frame glyphs on Windows — agree with clack, keep …",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T19:52:11Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d6efd437b314cf56f35732cc5dcb84ac4eaceac4",
          "body": "… (#1306)\n\nList commands (status, query, callers, callees, impact, files) embedded\nANSI color codes even when stdout was a pipe, and NO_COLOR had no effect.\nOne switch now decides color for all codegraph-authored output:\n--no-color > --color > NO_COLOR > FORCE_COLOR > stdout TTY > CI.\n\nPiped init/in\n[…]\ns the animation but drops the color codes.\nThe detection mirrors picocolors' so @clack frames and our own lines\nagree within a run.\n\nFixes #1281\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(cli): honor NO_COLOR/--no-color and go plain when stdout is piped…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T19:39:26Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5736e24bb6e5627bf664294ec718a0469be86866",
          "body": "…yte-identical graphs (#1305)\n\n* perf(index): ~34% faster fresh indexing, byte-identical graphs\n\nProfiling a fresh init on a medium TS repo (excalidraw, 657 files) showed\nthe main thread as the critical path: per-row SQLite statement calls,\nrepeated import-resolution walks, and per-row FTS trigger f\n[…]\nnode\nJS<->WASM marshaling is the floor, which a traversal swap cannot remove.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(index): faster fresh indexing + parallel reference resolution, b…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T19:21:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "246aee837341183912c82b3e727410e9fe1a1567",
          "body": "Follow-up to #1299: the per-pass bar still parked on one number while a\nsingle long pass ran — on C-heavy repos that's the fn-pointer dispatch\npass, which sweeps every C/C++ file four times (typedefs, registrations,\nfield propagation, dispatch sites) and dominates the linking phase.\n\nThe pass now re\n[…]\nhe linking bar now\nmoves through 88→89→90 where it previously sat at 88 for the whole\npass; graph byte-identical (50,520 nodes / 148,232 edges).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(ui): within-pass progress for the C fn-pointer linking pass (#1300)",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T01:05:35Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ad5300a6015bf7463c2a7b65341f3036ee7ad366",
          "body": "…ode:sqlite warning spam (#1299)\n\nTwo first-run UX bugs surfaced by indexing a real 1,342-file C repo:\n\n1. After 'Resolving refs' hit 100%, the ~40 dynamic-dispatch synthesis\n   passes ran with no progress surface, so the bar sat frozen at 100%\n   long enough to read as a hang (the C fn-pointer pass\n[…]\n.\n\nVerified end-to-end on the same repo: zero warnings, live linking bar,\nbyte-identical graph (50,520 nodes / 148,232 edges). Full suite green.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(ui): show synthesis as a 'Linking dynamic dispatch' phase; mute n…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T00:44:09Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "243ef1d3e2353a82b8200921e435167da3760a81",
          "body": "…nt verified releases (#1298)\n\nAll seven published packages (@colbymchenry/codegraph + six platform\nbundles) now have this repo's release.yml configured as their trusted\npublisher on npmjs.com, so publishes authenticate via the workflow's\nOIDC identity instead of a long-lived NPM_TOKEN. The runner u\n[…]\nges: how npm provenance\nand the GitHub Release attestations work and the commands to verify them\n(npm audit signatures / gh attestation verify).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "ci(release): switch npm publishing to OIDC trusted publishing; docume…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T00:23:31Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a66683d3ebbea1165c96abc2f1d3c6332d868436",
          "body": "…grade (#1297)\n\nOne-time, strictly opt-in prompt at the end of codegraph install and\ncodegraph upgrade to join the CodeGraph Pro beta waitlist (same list as\nthe getcodegraph.com homepage form). Nothing is sent unless the user\nanswers yes AND enters an email; either answer is recorded machine-wide\nso no later install or upgrade re-asks, and --yes / non-interactive / CI\nruns never see the prompt.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(installer): offer CodeGraph Pro beta signup after install and up…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T00:11:06Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2b0b4b587ecfc07dc5ae089db39c5672593d3f9c",
          "body": "…bundles (#1296)\n\nEvery published artifact is now cryptographically verifiable as built by\nthis repo's Release workflow: npm publishes carry npm provenance (OIDC,\nshows the Provenance badge on npmjs.com), and the GitHub Release bundles\n+ SHA256SUMS get signed build attestations via\nactions/attest-bu\n[…]\nper-platform package.jsons — npm --provenance refuses to publish without\none matching the repo — and the root package.json gains the same field.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "ci(release): publish npm packages with provenance and attest release …",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-16T00:10:34Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e871c49a3173a637172f501f21f6a2753ea5a39f",
          "body": "…s can't drop sibling call sites (#1269) (#1270)\n\nPost-batch cleanup deleted resolved refs (and parked failed ones) by\n(from_node_id, reference_name, reference_kind) — no line/col. When one\ncaller had several call sites to the same callee and a batch boundary\nsplit them, the first batch's cleanup re\n[…]\n edges, fix keeps 5); nlohmann/json re-index is a strict superset\nof the previous edge set (0 lost, 422 recovered, spot-checked against\nsource).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(resolution): clean up processed refs by row id so batch boundarie…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-13T01:09:03Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6103f5e228a6ce2dacddbf77ed6b934f7179e48a",
          "body": "…rator method (#1268)\n\n* fix(cpp): resolve explicit operator calls (a.operator+(b)) to the operator method (#1247)\n\ntree-sitter-cpp can't parse an operator_name in field position: the\ncall_expression carries `function: <receiver>` plus an ERROR child\nwrapping the operator_name instead of a field_exp\n[…]\noperator[] call to an in-repo operator[]) — silent miss,\n  never a wrong edge\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(cpp): resolve explicit operator calls (a.operator+(b)) to the ope…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-13T00:56:35Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ecc8b307ac2f8a7d06bff02ee513c4ea2380b2f8",
          "body": "[skip ci] Auto-generated by Release workflow.",
          "is_bot": true,
          "headline": "docs(changelog): promote [Unreleased] into [1.4.1]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-10T22:38:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7155952084ed567c16015512c92b4cfa33d876bc",
          "body": "[skip ci] Auto-generated by Release workflow.",
          "is_bot": true,
          "headline": "release: sync package-lock.json to 1.4.1",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-10T22:38:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f8a47bdd79e1190065c783ea68ab81db8616fe45",
          "body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: bump version to 1.4.1",
          "author_name": "Colby McHenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-10T22:37:44Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "40aa092f5bd082a1d6b48245741646efbccd3091",
          "body": "…#1254)\n\n* fix(uninstall): remove the CLI binaries too, not just agent configs (#1071)\n\n`codegraph uninstall` swept agent configurations and stopped — every\ninstalled binary stayed behind, so `codegraph` still ran afterward. Three\ndisconnected paths each removed a fraction of an installation (uninst\n[…]\nand the\nwin32 test now pins the WORKING invocation instead of the broken one.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(uninstall): remove the CLI binaries too, not just agent configs (…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-10T22:37:20Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "47823944a387deb2c042e7f3b2b3ea49212be4e9",
          "body": "…ging anything (#1243) (#1253)\n\nThe recommended MCP config launches the local binary, so a server left\nrunning drifts behind releases silently — users discover the version gap\nonly when something breaks. Per the reporter's preferred option 1, the\nserver now checks the latest GitHub release in the ba\n[…]\nCK=1\n(broad convention — already set by data-plane deployments) suppresses the\nnetwork call and the notice entirely. Documented in TELEMETRY.md.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(mcp): notice when a newer CodeGraph release exists, without chan…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-10T22:36:47Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8b82fe71f85e8e112343d3d9e6b214b1f789cdeb",
          "body": "…tier when they collide with real callables (#1252)\n\nhandleExplore's named-symbol seeding treats every identifier-shaped query\ntoken as \"a symbol the agent named\" and grants its definition the\nnamed-FIRST sort tier. Natural-language questions broke this assumption:\nordinary words exact-matched unrel\n[…]\nofire and excalidraw\nbyte-identical, grpc improved (the add-collision file drops out and\nclientconn.go + dialoptions.go lead). Full suite green.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(explore): stop NL-question words from hijacking the named-symbol …",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-10T21:20:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "70b1be6a21213c7be84bd9540f273596058bbea2",
          "body": "…clared type (#1220) (#1251)\n\nCarries #1221 by @w0lan plus a hardening pass: property-receiver typing consults property-shaped declarations only (typed property / promoted ctor param / pseudoconstructor assignment / assignment-followed classic ctor and typed setter), so same-named locals and parameters can never mistype a property.\n\nCo-authored-by: Roman Wolan <roman.wolan@morizon-gratka.pl>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(php): resolve method calls through $this-> properties on their de…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-10T20:47:57Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "9d0cd3a7d1d4e2ab93b0c24e21bf62054e35eab4",
          "body": "…atisfying symbol (#1240) (#1249)\n\n* chore: ignore .kommandr/ directory\n\n* fix(sync): resolve cross-file refs when an edit adds or removes the satisfying symbol (#1240)\n\nIncremental sync scoped reference resolution to the changed files' own\nrefs, and a completed pass deleted every ref it failed to r\n[…]\nre\ncache, reset by any full re-index). 8 regression tests added.\n\nFixes #1240\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(sync): resolve cross-file refs when an edit adds or removes the s…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-10T17:19:08Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "386bff0f8478c05209c439b9001f9970a833b536",
          "body": "… upgrade (#1238) (#1239)\n\n* fix(upgrade): refresh installer-written agent surfaces after a binary upgrade\n\ncodegraph upgrade swapped the binary but never revisited what earlier\ninstalls wrote into CLAUDE.md / AGENTS.md / GEMINI.md and the agent\nconfigs, so sections written by a pre-1.0 installer ke\n[…]\nresh change reporting\n\n---------\n\nCo-authored-by: xuing <np2v9bvbbs@privaterelay.appleid.com>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>\nCo-authored-by: Colby McHenry <me@colbymchenry.com>",
          "is_bot": false,
          "headline": "fix(upgrade): refresh installer-written agent surfaces after a binary…",
          "author_name": "XU Pengfei",
          "author_login": "xuing",
          "committed_at": "2026-07-10T15:58:55Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "63eb488ed4bfb73081c45d6f672b177c1a96ed59",
          "body": "… resolved version after every upgrade (#1238, #1071) (#1245)\n\nTwo fixes to make `codegraph upgrade` trustworthy in the terminal it ran in:\n\n1. detectInstallMethod checked the bundle layout before the node_modules\n   path check, but the npm thin-installer's per-platform package IS a\n   complete bund\n[…]\nserves.\n\nCompanion to #1239: the misdetection also broke its post-upgrade\n`install --refresh` for npm users (the spawn resolved the stale shim).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(upgrade): stop npm installs self-shadowing on upgrade; verify the…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-10T15:52:22Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "edb9f2f14cd7394a4d31f94ebc871531ef498ab0",
          "body": "…re heartbeat silence AND no disk progress (#1231) (#1244)\n\nThe liveness watchdog judged the main thread by heartbeat silence alone,\nwhich cannot distinguish a true wedge (the #850 infinite loop it exists to\nkill) from one long synchronous SQLite statement on severely degraded\nstorage — so it SIGKIL\n[…]\noduction, with store stalls measured\nat 10-20s — completes cleanly where the old watchdog killed it, while\ntrue-wedge kill latency is unchanged.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(watchdog): don't kill a healthy index on degraded storage — requi…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-10T13:25:23Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "116cb596259a8881be1d90843ef20c4be8d258c7",
          "body": "[skip ci] Auto-generated by Release workflow.",
          "is_bot": true,
          "headline": "docs(changelog): promote [Unreleased] into [1.4.0]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-10T08:43:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "531a046c8effd36b2e8e30e1fc6f08471bd7f839",
          "body": "[skip ci] Auto-generated by Release workflow.",
          "is_bot": true,
          "headline": "release: sync package-lock.json to 1.4.0",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-10T08:43:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "50e978ee8138a21f9ea74cbde22fd11a433a8d53",
          "body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "release: 1.4.0",
          "author_name": "Colby McHenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-10T08:42:55Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a11a439002dd0d7bda8683fb8da2b03deec956e6",
          "body": "…s, and WAL checkpoint write-back (#1231) (#1242)\n\nParse timeouts are now judged by the worker's own clock: the base timer\nonly marks a job late (after a long synchronous store stall, Node runs the\ntimers phase before the poll phase, so the timer fired before an\nalready-delivered result was processe\n[…]\npped\nfiles (was 8); guava-scale completes in 7.6 min with a full graph where\nv1.3.1 needed 25 min for a repo 5× smaller. Unthrottled: no change.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(indexing): HDD-class storage — false parse timeouts, dropped file…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-10T08:42:30Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e76a355df5a3489c4cd6ee26cb8bd967893b4348",
          "body": "…d de-quadratic its line accounting (#1235) (#1237)\n\nclosureCollectionEdges scanned every method/function node in every\nlanguage, but its dispatcher patterns ({ $0( / { it( ) are Swift/Kotlin\ntrailing-closure syntax — on PHP/JS repos the pass can never emit an\nedge, yet .push(/.add( fired its append\n[…]\n 72.7s, graph byte-identical.\nAlamofire: closure-collection edges byte-identical (9 edges, 4 fields).\nDrupal core control: graph byte-identical.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(resolution): gate closure-collection synthesis to Swift/Kotlin an…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-10T01:54:45Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e552dc2d2f5da4507ebe906b68b3ba806e204eb8",
          "body": "[skip ci] Auto-generated by Release workflow.",
          "is_bot": true,
          "headline": "docs(changelog): promote [Unreleased] into [1.3.1]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-09T04:19:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2a4d9f96873fb56732c74181adb43046a72c3ecf",
          "body": "[skip ci] Auto-generated by Release workflow.",
          "is_bot": true,
          "headline": "release: sync package-lock.json to 1.3.1",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-09T04:19:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6a8463f502a33b7dc88fd763fab3a40ef88ccf46",
          "body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(release): 1.3.1",
          "author_name": "Colby McHenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-09T04:18:36Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a3f90089e8433ecf99c1d16461582dcbead99096",
          "body": "… fixes (#1212) (#1226)\n\nLarge-codebase indexing died at the end of \"Resolving refs\" two ways:\nwatchdog kills of healthy work (24k-file Java on Windows, #1212 — third\niteration of the #1091/#1122 class) and hard OOMs (Linux kernel scale,\nwhere v1.3.0 could not complete at any watchdog setting). Root\n[…]\nics kept:\nCODEGRAPH_SYNTH_TIMINGS pass/phase timings, CODEGRAPH_MCP_DEBUG hop\ntracing. Design record: docs/design/main-thread-stall-followup.md.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(indexing): bounded-memory yielding pipeline tail + daemon session…",
          "author_name": "Colby Mchenry",
          "author_login": "colbymchenry",
          "committed_at": "2026-07-09T04:18:23Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "58b6bf5c601185e0d48289fb10b1dd89fd080614",
          "body": "[skip ci] Auto-generated by Release workflow.",
          "is_bot": true,
          "headline": "docs(changelog): promote [Unreleased] into [1.3.0]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-07T19:26:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 29,
      "commits_last_year": 757,
      "latest_release_at": "2026-07-10T22:40:02Z",
      "latest_release_tag": "v1.4.1",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 21,
      "days_since_latest_release": 10,
      "mean_days_between_releases": 1.4
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 42,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "@colbymchenry/codegraph",
          "exists": true,
          "license": "MIT",
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": null,
          "registry_url": "https://www.npmjs.com/package/@colbymchenry/codegraph",
          "is_deprecated": false,
          "latest_version": "1.4.1",
          "repository_url": null,
          "versions_count": 44,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 380388,
          "first_published_at": "2026-01-18T22:53:32.067000Z",
          "latest_published_at": "2026-07-10T22:42:49.408000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 10
        },
        {
          "name": "site",
          "exists": true,
          "license": "SEE LICENSE IN README.md",
          "keywords": [
            "game",
            "app",
            "website",
            "framework",
            "engine",
            "animation",
            "html5",
            "svg",
            "html",
            "web",
            "blog"
          ],
          "ecosystem": "npm",
          "matches_repo": null,
          "registry_url": "https://www.npmjs.com/package/site",
          "is_deprecated": false,
          "latest_version": "2.60.4",
          "repository_url": null,
          "versions_count": 237,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 2,
          "monthly_downloads": 1858,
          "first_published_at": "2013-09-20T20:48:56.696000Z",
          "latest_published_at": "2023-01-13T19:43:29.734000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 1284
        }
      ]
    },
    "popularity": {
      "forks": 3843,
      "stars": 61400,
      "watchers": 135,
      "fork_history": {
        "days": [
          {
            "date": "2026-06-11",
            "count": 20
          },
          {
            "date": "2026-06-12",
            "count": 47
          },
          {
            "date": "2026-06-13",
            "count": 34
          },
          {
            "date": "2026-06-14",
            "count": 26
          },
          {
            "date": "2026-06-15",
            "count": 36
          },
          {
            "date": "2026-06-16",
            "count": 44
          },
          {
            "date": "2026-06-17",
            "count": 28
          },
          {
            "date": "2026-06-18",
            "count": 39
          },
          {
            "date": "2026-06-19",
            "count": 21
          },
          {
            "date": "2026-06-20",
            "count": 17
          },
          {
            "date": "2026-06-21",
            "count": 26
          },
          {
            "date": "2026-06-22",
            "count": 34
          },
          {
            "date": "2026-06-23",
            "count": 43
          },
          {
            "date": "2026-06-24",
            "count": 36
          },
          {
            "date": "2026-06-25",
            "count": 32
          },
          {
            "date": "2026-06-26",
            "count": 41
          },
          {
            "date": "2026-06-27",
            "count": 22
          },
          {
            "date": "2026-06-28",
            "count": 28
          },
          {
            "date": "2026-06-29",
            "count": 20
          },
          {
            "date": "2026-06-30",
            "count": 22
          },
          {
            "date": "2026-07-01",
            "count": 22
          },
          {
            "date": "2026-07-02",
            "count": 18
          },
          {
            "date": "2026-07-03",
            "count": 19
          },
          {
            "date": "2026-07-04",
            "count": 13
          },
          {
            "date": "2026-07-05",
            "count": 15
          },
          {
            "date": "2026-07-06",
            "count": 20
          },
          {
            "date": "2026-07-07",
            "count": 28
          },
          {
            "date": "2026-07-08",
            "count": 23
          },
          {
            "date": "2026-07-09",
            "count": 24
          },
          {
            "date": "2026-07-10",
            "count": 18
          },
          {
            "date": "2026-07-11",
            "count": 15
          },
          {
            "date": "2026-07-12",
            "count": 16
          },
          {
            "date": "2026-07-13",
            "count": 25
          },
          {
            "date": "2026-07-14",
            "count": 26
          },
          {
            "date": "2026-07-15",
            "count": 19
          },
          {
            "date": "2026-07-16",
            "count": 13
          },
          {
            "date": "2026-07-17",
            "count": 18
          },
          {
            "date": "2026-07-18",
            "count": 12
          },
          {
            "date": "2026-07-19",
            "count": 7
          },
          {
            "date": "2026-07-20",
            "count": 19
          },
          {
            "date": "2026-07-21",
            "count": 14
          }
        ],
        "complete": false,
        "collected": 1000,
        "total_forks": 3843
      },
      "star_history": {
        "days": [
          {
            "date": "2026-07-17",
            "count": 205
          },
          {
            "date": "2026-07-18",
            "count": 156
          },
          {
            "date": "2026-07-19",
            "count": 153
          },
          {
            "date": "2026-07-20",
            "count": 205
          },
          {
            "date": "2026-07-21",
            "count": 281
          }
        ],
        "complete": false,
        "collected": 1000,
        "total_stars": 61400
      },
      "open_issues_and_prs": 331
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": true,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "site/tsconfig.json",
        "telemetry-worker/tsconfig.json",
        "tsconfig.json"
      ],
      "toolchain_manifests": [
        "codegraph-kernel/Cargo.toml"
      ],
      "largest_source_bytes": 34970232,
      "source_files_sampled": 447,
      "oversized_source_files": 28,
      "agent_instruction_files": [
        ".cursor/rules/codegraph.mdc",
        "CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 33908
    },
    "dependencies": {
      "manifests": [
        "codegraph-kernel/Cargo.toml",
        "package.json",
        "site/package.json",
        "telemetry-worker/package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 6,
        "assessed_package": "npm:@colbymchenry/codegraph@1.4.1",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "crates",
        "npm"
      ],
      "dependencies": [
        {
          "name": "napi",
          "manifest": "codegraph-kernel/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "3"
        },
        {
          "name": "napi-derive",
          "manifest": "codegraph-kernel/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "3"
        },
        {
          "name": "tree-sitter",
          "manifest": "codegraph-kernel/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.25"
        },
        {
          "name": "sha2",
          "manifest": "codegraph-kernel/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.10"
        },
        {
          "name": "regex",
          "manifest": "codegraph-kernel/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "tree-sitter-typescript",
          "manifest": "codegraph-kernel/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.23"
        },
        {
          "name": "tree-sitter-javascript",
          "manifest": "codegraph-kernel/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.25"
        },
        {
          "name": "tree-sitter-java",
          "manifest": "codegraph-kernel/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.23"
        },
        {
          "name": "tree-sitter-python",
          "manifest": "codegraph-kernel/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.23"
        },
        {
          "name": "tree-sitter-go",
          "manifest": "codegraph-kernel/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.23"
        },
        {
          "name": "tree-sitter-c",
          "manifest": "codegraph-kernel/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "=0.24.2"
        },
        {
          "name": "tree-sitter-cpp",
          "manifest": "codegraph-kernel/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "=0.23.4"
        },
        {
          "name": "tree-sitter-rust",
          "manifest": "codegraph-kernel/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "=0.24.2"
        },
        {
          "name": "tree-sitter-c-sharp",
          "manifest": "codegraph-kernel/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "=0.23.5"
        },
        {
          "name": "tree-sitter-ruby",
          "manifest": "codegraph-kernel/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "=0.23.1"
        },
        {
          "name": "tree-sitter-php",
          "manifest": "codegraph-kernel/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "=0.24.2"
        },
        {
          "name": "tree-sitter-swift",
          "manifest": "codegraph-kernel/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "=0.7.3"
        },
        {
          "name": "tree-sitter-r",
          "manifest": "codegraph-kernel/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "=1.2.0"
        },
        {
          "name": "tree-sitter-luau",
          "manifest": "codegraph-kernel/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "=1.2.0"
        },
        {
          "name": "tree-sitter-language",
          "manifest": "codegraph-kernel/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.1"
        },
        {
          "name": "@clack/prompts",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.3.0"
        },
        {
          "name": "commander",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^14.0.2"
        },
        {
          "name": "fast-string-width",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.0.2"
        },
        {
          "name": "fast-wrap-ansi",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.2.0"
        },
        {
          "name": "ignore",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.0.5"
        },
        {
          "name": "jsonc-parser",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.3.1"
        },
        {
          "name": "picomatch",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.0.3"
        },
        {
          "name": "sisteransi",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.5"
        },
        {
          "name": "tree-sitter-wasms",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.1.11"
        },
        {
          "name": "web-tree-sitter",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.25.3"
        },
        {
          "name": "@astrojs/starlight",
          "manifest": "site/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.39.2"
        },
        {
          "name": "@fontsource-variable/archivo",
          "manifest": "site/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.2.8"
        },
        {
          "name": "@fontsource/ibm-plex-mono",
          "manifest": "site/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.2.7"
        },
        {
          "name": "astro",
          "manifest": "site/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.3.1"
        },
        {
          "name": "sharp",
          "manifest": "site/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.34.5"
        }
      ],
      "all_dependencies": {
        "error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
        "source": null,
        "packages": [],
        "collected": false,
        "truncated": false,
        "total_count": null,
        "direct_count": null,
        "indirect_count": null
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 235,
        "merged_prs": 439,
        "open_issues": 96,
        "closed_ratio": 0.823,
        "closed_issues": 446,
        "closed_unmerged_prs": 155
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "colbymchenry",
          "commits": 674,
          "avatar_url": "https://avatars.githubusercontent.com/u/18431132?v=4"
        },
        {
          "type": "User",
          "login": "omonien",
          "commits": 16,
          "avatar_url": "https://avatars.githubusercontent.com/u/1296517?v=4"
        },
        {
          "type": "User",
          "login": "andreinknv",
          "commits": 7,
          "avatar_url": "https://avatars.githubusercontent.com/u/261684394?v=4"
        },
        {
          "type": "User",
          "login": "MO2k4",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/453360?v=4"
        },
        {
          "type": "User",
          "login": "arttttt",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/23432909?v=4"
        },
        {
          "type": "User",
          "login": "msnandhis",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/45960035?v=4"
        },
        {
          "type": "User",
          "login": "GeneralClaw",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/116990813?v=4"
        },
        {
          "type": "User",
          "login": "thismilktea",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/166263725?v=4"
        },
        {
          "type": "User",
          "login": "luoyxy",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/32702206?v=4"
        },
        {
          "type": "User",
          "login": "0x1306a94",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/14822396?v=4"
        }
      ],
      "contributors_sampled": 38,
      "top_contributor_share": 0.911
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "deploy-site.yml",
        "release.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "Cargo.lock",
        "package-lock.json"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 0,
            "reason": "binaries present in source code",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 5,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 0,
            "reason": "0 out of 30 merged PRs checked by a CI test -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/30 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 3,
            "reason": "project has 1 contributing companies or organizations -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 2,
            "reason": "dependency not pinned by hash detected -- score normalized to 2",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "25 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "157c8e735dc9c14764b0362d216b6b9693cd5cf3",
        "ran_at": "2026-07-21T16:01:42Z",
        "aggregate_score": 2.5,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/colbymchenry/codegraph",
    "host": "github.com",
    "name": "codegraph",
    "owner": "colbymchenry"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 67,
      "inputs": {
        "security": 41,
        "vitality": 83,
        "community": 80,
        "governance": 61,
        "engineering": 65
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 83,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 78,
            "inputs": {
              "commits_last_year": 757,
              "human_commit_share": 0.93,
              "days_since_last_push": 0,
              "active_weeks_last_year": 21
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "21/52 weeks with commits",
                "points": 14.5,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 21
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "757 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 757
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "releases_count": 29,
              "latest_release_tag": "v1.4.1",
              "releases_from_tags": false,
              "days_since_latest_release": 10,
              "mean_days_between_releases": 1.4
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "29 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 29
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 10 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 10
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~1.4 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 1.4
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 0,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 0 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "good",
        "name": "Community & Adoption",
        "value": 80,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "excellent",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 97,
            "inputs": {
              "forks": 3843,
              "stars": 61400,
              "watchers": 135,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "window_too_short"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "61,400 stars",
                "points": 60,
                "status": "met",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 61400
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "3,843 forks",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 3843
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "135 watchers",
                "points": 11.8,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 135
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "excellent",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 93,
            "inputs": {
              "packages": [
                "@colbymchenry/codegraph",
                "site"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 382246
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "382,246 downloads/month across npm",
                "points": 74.4,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 382246,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 61,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 28,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 38,
              "top_contributor_share": 0.911
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 91% of commits",
                "points": 2,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 91
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "38 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 38
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "moderate",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 67,
            "inputs": {
              "merged_prs": 439,
              "open_issues": 96,
              "closed_issues": 446,
              "issue_closed_ratio": 0.823,
              "closed_unmerged_prs": 155
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "82% of issues closed",
                "points": 38.5,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 82
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "439/594 decided PRs merged",
                "points": 28.3,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 439,
                      "decided": 594
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 64,
            "inputs": {
              "followers": 456,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "colbymchenry",
              "public_repos": 24,
              "account_age_days": 3751
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "456 followers of colbymchenry",
                "points": 19.1,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 456,
                      "login": "colbymchenry"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "24 public repos, account ~10 yr old",
                "points": 22.2,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 24
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 10
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "@colbymchenry/codegraph",
                "site"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 10
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "2 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 2,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 10 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 10
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "237 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 237
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "moderate",
        "name": "Engineering Quality",
        "value": 65,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "at_risk",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 48,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "2 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "0 out of 30 merged PRs checked by a CI test -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": "https://colbymchenry.github.io/codegraph/",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://colbymchenry.github.io/codegraph/",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 41,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "critical",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 26,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 2.5
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "binaries present in source code",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 3.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "0 out of 30 merged PRs checked by a CI test -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 2",
                "points": 1,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "25 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the npm:@colbymchenry/codegraph@1.4.1 runtime dependency closure — what installing the published package pulls in — 6 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "npm:@colbymchenry/codegraph@1.4.1",
                  "assessed": 6
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 6,
              "unassessed_packages": 0,
              "affected_by_severity": "none",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 6,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 1
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "good",
        "name": "AI Readiness",
        "value": 70,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "agent_instruction_files": [
                ".cursor/rules/codegraph.mdc",
                "CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 33908
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": ".cursor/rules/codegraph.mdc, CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".cursor/rules/codegraph.mdc, CLAUDE.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "93 of 93 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 93,
                      "sampled": 93
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "Cargo.lock",
                "package-lock.json"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [
                "site/tsconfig.json",
                "telemetry-worker/tsconfig.json",
                "tsconfig.json"
              ],
              "agent_commit_share": 0.92,
              "toolchain_manifests": [
                "codegraph-kernel/Cargo.toml"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "codegraph-kernel/Cargo.toml (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "codegraph-kernel/Cargo.toml"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "site/tsconfig.json, telemetry-worker/tsconfig.json, tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "site/tsconfig.json, telemetry-worker/tsconfig.json, tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "92 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 92,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 2",
                "points": 2,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 97,
            "inputs": {
              "primary_language": "C",
              "largest_source_bytes": 34970232,
              "source_files_sampled": 447,
              "oversized_source_files": 28
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "C (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "C"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "28/447 source files over 60KB",
                "points": 51.6,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 447,
                      "oversized": 28
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "critical",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 20,
            "inputs": {
              "example_dirs": [],
              "has_mcp_signal": true,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Could not fetch crates package 'codegraph-kernel' from its registry",
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-21T16:02:16.193433Z",
  "schema_version": "0.23.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/c/colbymchenry/codegraph.svg",
  "full_name": "colbymchenry/codegraph",
  "license_state": "standard",
  "license_spdx": "MIT"
}

Оцінки — це сигнали, а не гарантії. Вони відображають публічно видимі практики на GitHub — це не аудит коду й не гарантія безпеки.

Відсутні дані виключаються, а ваги перенормовуються — нуль за відсутність ніколи не ставиться. Методологія версіонована й відкрита: метрики v1.13.0, схема v0.23.0 — повна методологія · вікі метрик.

Як окремий результат виглядає на тлі всього реєстру: сукупна статистикаnpm.