公开记录
软件健康报告模式 0.27.0 · 指标 2.3.1 · 2026-07-28 17:48 UTC

tui-cs / Terminal.Gui

Cross Platform Terminal UI toolkit for .NET

C#MIT★ 11,139 星标⑂ 783 复刻始于 2017年12月在 GitHub 上查看 ↗
类型终端界面如何判定

tui-cs/Terminal.Gui 的健康指数为 100 分中的 89 分,处于「优秀」区间。 其得分最高的类别是Vitality(96/100),最低的是Security(56/100)。 最近一次更新在今天。 近期的大部分工作由 1 位贡献者完成。

89
总分 / 100
优秀

软件健康指数

指标归入加权类别,统一采用 1–100 量表。总体分先取类别加权平均,再依据公开记录的分布进行校准,使各等级具有百分位含义;当公开证据触发高风险司法辖区政策时,评级会按政策调整,并设置 34(存在风险)的上限。

89
卓越93-100公开记录中的最高层级(约前 5%);基本满足所有检验标准
优秀80-92各方面均表现强劲;仅有少量不足
良好65-79健康;不足之处有限且可控
中等50-64可接受,但存在明显不足;建议进行审查
薄弱35-49多个领域存在实质性薄弱环节
存在风险20-34存在重大薄弱环节;采用时应保持审慎
危急1-19问题严重(项目被弃置、仅有单一维护者、缺乏基本工程规范)
活力社区与采用可持续性与治理工程质量安全AI 就绪度

评分画像

每条轴代表一个类别。形状比平均值更重要——健康的对象会填满整个图形,而“一峰一谷”式画像意味着某一维度的优势正掩盖另一维度的风险。

加权总体分 75 经校准后在公布的指数量表上为 89(记录校准 2026-08-02)。

所有权

tui.cs组织
212 关注者16 个公开仓库始于 2022年5月

该仓库由组织支持——共同承担、可问责的托管责任,可延续于任何单一维护者之后。

软件包生态系统

注册表软件包版本月下载量版本数最近发布标签
NuGetTerminal.Gui.Interop.Spectre2.4.17-1421 天前terminalguiconsolespectreinterop

按类别列示的指标

活力

项目是否仍有生命——是否仍在编写代码,是否仍在发布版本?

96卓越 · 占总体的 21%
评分方式
36/36推送新近度 — 最近一次推送于 0 天前
30.5/36提交节奏 — 52 周中有 44 周有提交
18/18提交量 — 最近一年 1,587 次提交
10/10OpenSSF Scorecard:Maintained — 30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10
所用输入
commits_last_year1,587
human_commit_share0.75
days_since_last_push0
active_weeks_last_year44

发布纪律

100卓越
评分方式
27/27有发布版本 — 已发布 73 个发布版本
36/36发布时效 — 最近一次发布版本于 21 天前
27/27发布节奏 — 约每 1.6 天发布一次
0/10OpenSSF Scorecard:Signed-Releases — 无数据
所用输入
releases_count73
latest_release_tagv2.4.17
releases_from_tags
days_since_latest_release21
mean_days_between_releases1.6
已排除计分(无数据或不适用):OpenSSF Scorecard:Signed-Releases。 其余权重已重新归一化。

社区与采用

项目是否拥有用户、下载量与关注度,并具备欢迎贡献者参与的配置?

83优秀 · 占总体的 17%
评分方式
60/60星标 — 11,139 个星标
24.1/25复刻 — 783 个复刻
11.9/15关注者 — 142 位关注者
所用输入
forks783
stars11,139
watchers142
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

社区健康

92优秀
评分方式
22.5/22.5README
22.5/22.5许可证 — 可识别的许可证(MIT)
18/18CONTRIBUTING 指南
13.5/13.5行为准则
0/7.2议题模板
6.3/6.3PR 模板
所用输入
has_readme
has_license
readme_badges
has_contributing
has_issue_template
has_code_of_conduct
readme_badge_services
has_pull_request_template
评分方式
38.2/80累计下载量 — nuget 合计历史 4,734 次下载
0/20注册表被依赖数 — 该生态系统不报告此项
所用输入
packagesTerminal.Gui.Interop.Spectre
dependents
ecosystemsnuget
total_downloads4,734
monthly_downloads
已排除计分(无数据或不适用):注册表被依赖数。 其余权重已重新归一化。

可持续性与治理

项目能否在其成员之外延续——巴士系数、响应能力、由谁支持,以及软件包的维护状况?

68良好 · 占总体的 23%
评分方式
9/54巴士系数 — 1 位贡献者贡献了半数提交
8.2/22.5提交分布 — 头号贡献者编写了 64% 的提交
13.5/13.5贡献者广度 — 97 位贡献者
10/10OpenSSF Scorecard:Contributors — project has 30 contributing companies or organizations
所用输入
bus_factor1
contributors_sampled97
top_contributor_share0.637
评分方式
41.3/42议题解决 — 98% 的议题已关闭
24/30PR 接受 — 已裁定的 PR 中 2,319/2,899 已合并
0/13Newcomer PR acceptance — 30 天内没有首次贡献者的 PR 得到裁决
4.5/15OpenSSF Scorecard:Code-Review — Found 2/6 approved changesets -- score normalized to 3
所用输入
merged_prs2,319
open_issues40
closed_issues2,371
prs_merged_7d
prs_decided_7d
prs_merged_30d
prs_decided_30d
issue_closed_ratio0.983
closed_unmerged_prs580
first_time_authors_30d
first_time_prs_merged_30d
first_time_prs_decided_30d
已排除计分(无数据或不适用):newcomer_pr_acceptance。 其余权重已重新归一化。
评分方式
30/30所有权背书 — 组织持有
0/20已验证域名
16.7/25所有者影响力 — tui-cs 有 212 位关注者
17.3/25既往记录 — 16 个公开仓库,账户约 4 年
所用输入
followers212
owner_typeOrganization
is_verified
owner_logintui-cs
public_repos16
account_age_days1,523
评分方式
25/25已发布且可解析 — nuget 上有 1 个软件包
35/35发布时效 — 最近一次发布于 21 天前
20/20版本历史 — 14 个已发布版本
20/20未被弃用 — 活跃,未被弃用或撤回
所用输入
packagesTerminal.Gui.Interop.Spectre
ecosystemsnuget
any_deprecated
min_days_since_publish21

工程质量

基础的工程与文档实践是否到位?

70良好 · 占总体的 19%

工程实践

74良好
评分方式
24/24CI 工作流 — 15 个工作流
24/24存在测试
0/16Linter 配置
0/9.6Pre-commit 钩子
6.4/6.4.editorconfig
20/20OpenSSF Scorecard:CI-Tests — 18 out of 18 merged PRs checked by a CI test -- score normalized to 10
所用输入
has_ci
has_tests
has_editorconfig
has_linter_config
has_precommit_config

文档

65良好
评分方式
30/30README
0/25文档目录
15/15文档 / 主页站点 — https://tui-cs.github.io/Terminal.Gui/
10/10仓库描述
10/10主题标签 — 10 个主题标签
0/10Wiki
所用输入
topicscsharp, terminal, dotnet, curses, cross-platform, console, console-application, terminal-based, terminal-ui, tui
has_wiki
homepagehttps://tui-cs.github.io/Terminal.Gui/
has_readme
has_docs_dir
has_description

安全

可见的安全与供应链实践是否稳固,且不存在未解决的高风险司法辖区暴露?

56中等 · 占总体的 16%

安全态势

56中等
评分方式
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — 无数据
2.5/2.5CI-Tests — 18 out of 18 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
2.2/7.5Code-Review — Found 2/6 approved changesets -- score normalized to 3
2.5/2.5Contributors — project has 30 contributing companies or organizations
0/10Dangerous-Workflow — dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5许可证 — license file detected
7.5/7.5Maintained — 30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
3.5/5SAST — SAST tool detected but not run on all commits
2/5Security-Policy — security policy file detected
0/7.5Signed-Releases — 无数据
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
所用输入
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate5.6
已排除计分(无数据或不适用):branch_protection, signed_releases。 其余权重已重新归一化。

AI 就绪度

该仓库在多大程度上具备与 AI 编码代理协同开发与维护的条件?权重刻意设小(4%):代理工具链是一项真实的维护信号,但完全不具备的仓库仍可达到 100/100。

80优秀 · 占总体的 4%
评分方式
45/45代理指令 — .cursorrules, .github/copilot-instructions.md, .windsurfrules, AGENTS.md, CLAUDE.md
15/15机器可读文档(llms.txt) — 存在 llms.txt
40/40可读的提交历史 — 75 次人类提交中有 70 次说明了意图(结构化标题或解释性正文)
所用输入
has_llms_txt
legible_history_share0.933
agent_instruction_files.cursorrules, .github/copilot-instructions.md, .windsurfrules, AGENTS.md, CLAUDE.md
agent_instruction_max_bytes31,280
评分方式
12.6/18一条命令的引导启动 — Examples/ScenarioRunner/ScenarioRunner.csproj, Examples/UICatalog/UICatalog.csproj, Scripts/BackingFieldReorderer/BackingFieldReorderer.csproj(工具链约定,无任务运行器)
22/22自动化测试
0/11Lint / 格式化配置
11/11静态类型检查 — C#(静态类型)
10/10可复现环境 — devcontainer, Dockerfile
10/10已体现的代理实践 — 最近 100 次提交中有 20 次由代理编写或署名代理
8/8自动化维护 — 最近 100 次提交中有 16 次为自动依赖更新
0/10OpenSSF Scorecard:Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
所用输入
has_nix
has_tests
lockfiles
has_dockerfile
typed_language
bootstrap_files
has_devcontainer
has_linter_config
typecheck_configs
agent_commit_share0.2
toolchain_manifestsExamples/ScenarioRunner/ScenarioRunner.csproj, Examples/UICatalog/UICatalog.csproj, Scripts/BackingFieldReorderer/BackingFieldReorderer.csproj, Scripts/DocSnippetValidator/DocSnippetValidator.csproj, Scripts/PartialSplitter/PartialSplitter.csproj, Terminal.Gui.Analyzers.Internal/Terminal.Gui.Analyzers.Internal.csproj, Terminal.Gui.Interop.Spectre/Terminal.Gui.Interop.Spectre.csproj, Terminal.Gui/Terminal.Gui.csproj, Tests/AppTestHelpers.XunitHelpers.Generator/AppTestHelpers.XunitHelpers.Generator.csproj, Tests/AppTestHelpers.XunitHelpers/AppTestHelpers.XunitHelpers.csproj, Tests/AppTestHelpers/AppTestHelpers.csproj, Tests/Benchmarks/Benchmarks.csproj, Tests/IntegrationTests/IntegrationTests.csproj, Tests/NativeAotSmoke/NativeAotSmoke.csproj, Tests/PerformanceTests/PerformanceTests.csproj, Tests/StressTests/StressTests.csproj, Tests/TestAssets/ConfigPropertyTypeLoad/AttrProviderFull/AttrProviderFull.csproj, Tests/TestAssets/ConfigPropertyTypeLoad/AttrProviderMissing/AttrProviderMissing.csproj, Tests/TestAssets/ConfigPropertyTypeLoad/ConsumerLib/ConsumerLib.csproj, Tests/UnitTests.Legacy/UnitTests.Legacy.csproj, Tests/UnitTests.NonParallelizable/UnitTests.NonParallelizable.csproj, Tests/UnitTestsParallelizable/UnitTests.Parallelizable.csproj, docfx/EditorRef/EditorRef.csproj, docfx/scripts/OutputView/OutputView.csproj
dependency_bot_commit_share0.16
评分方式
45/45可类型检查的代码 — C#(静态类型)
53.9/55可控的文件大小 — 采样的 1,485 个源文件中有 30 个超过 60KB
所用输入
primary_languageC#
largest_source_bytes2,268,243
source_files_sampled1,485
oversized_source_files30
评分方式
0/40API 模式(OpenAPI/GraphQL/proto)
0/20MCP 服务器
40/40可运行示例 — cookbook, examples
所用输入
example_dirscookbook, examples
has_mcp_signal
api_schema_files

关键数据

11,139GitHub 星标
97贡献者
1,587最近 12 个月提交数
0距最近推送天数
73发布版本数
1巴士系数(bus factor)
40开放议题
NuGet软件包生态系统数

数据采集警告

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • No resolved dependencies carried a version and a supported ecosystem

更多细节

Star 与 Fork 历史 0 ★ / 783 ⇿
0Star
783Fork
73发布

每颗 star 和每个 fork 的添加时间,来自 GitHub 并按天汇总。累计增长位于其构成来源——每日新增——的正上方,二者可相互对照:稳定的自然增长与短暂的突增形态截然不同。当这一差别可被衡量时,它会作为增长真实性予以报告。

0200400600800771202018-012022-042026-07
主版本 2次版本 14修订 37

每个点涵盖 8 天。

OpenSSF Scorecard 5.6 / 10
5.6综合

来自开源项目 OpenSSF Scorecard 的独立、工具无关的安全评估。每项检查奖励的是安全实践本身,而非特定供应商的工具。Scorecard 无法判定的检查项标记为 不适用,并从安全评分中剔除(绝不按零分计)。Scorecard v5.5.0 · 2026-07-28 17:48 UTC

10Binary-Artifactsno binaries found in the repo
不适用Branch-Protectioninternal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
10CI-Tests18 out of 18 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
3Code-ReviewFound 2/6 approved changesets -- score normalized to 3
10Contributorsproject has 30 contributing companies or organizations
0Dangerous-Workflowdangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
7SASTSAST tool detected but not run on all commits
4Security-Policysecurity policy file detected
不适用Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
直接依赖 19
注册表软件包版本约束清单文件
NuGetMicrosoft.CodeAnalysis.AnalyzersTerminal.Gui.Analyzers.Internal/Terminal.Gui.Analyzers.Internal.csproj
NuGetMicrosoft.CodeAnalysis.CSharpTerminal.Gui.Analyzers.Internal/Terminal.Gui.Analyzers.Internal.csproj
NuGetSpectre.ConsoleTerminal.Gui.Interop.Spectre/Terminal.Gui.Interop.Spectre.csproj
NuGetGitVersion.MsBuildTerminal.Gui.Interop.Spectre/Terminal.Gui.Interop.Spectre.csproj
NuGetColorHelperTerminal.Gui/Terminal.Gui.csproj
NuGetJetBrains.AnnotationsTerminal.Gui/Terminal.Gui.csproj
NuGetMarkdigTerminal.Gui/Terminal.Gui.csproj
NuGetMicrosoft.Extensions.ConfigurationTerminal.Gui/Terminal.Gui.csproj
NuGetMicrosoft.Extensions.Configuration.BinderTerminal.Gui/Terminal.Gui.csproj
NuGetMicrosoft.Extensions.Configuration.JsonTerminal.Gui/Terminal.Gui.csproj
NuGetMicrosoft.Extensions.Logging.Abstractions Terminal.Gui/Terminal.Gui.csproj
NuGetMicrosoft.Extensions.OptionsTerminal.Gui/Terminal.Gui.csproj
NuGetSystem.IO.AbstractionsTerminal.Gui/Terminal.Gui.csproj
NuGetTextMateSharpTerminal.Gui/Terminal.Gui.csproj
NuGetTextMateSharp.GrammarsTerminal.Gui/Terminal.Gui.csproj
NuGetWcwidthTerminal.Gui/Terminal.Gui.csproj
NuGetMicrosoft.Net.Compilers.ToolsetTerminal.Gui/Terminal.Gui.csproj
NuGetMicrosoft.SourceLink.GitHubTerminal.Gui/Terminal.Gui.csproj
NuGetGitVersion.MsBuildTerminal.Gui/Terminal.Gui.csproj
全部依赖 39

来自 GitHub 依赖图的完整解析依赖集合:17 个直接依赖与 22 个间接(传递)软件包。仓库提交锁文件时,传递闭包才是完整的。

注册表软件包版本关系
NuGetColorHelper直接
NuGetGitVersion.MsBuild直接
NuGetJetBrains.Annotations直接
NuGetMarkdig直接
NuGetMicrosoft.CodeAnalysis.Analyzers直接
NuGetMicrosoft.CodeAnalysis.CSharp直接
NuGetMicrosoft.Extensions.Configuration直接
NuGetMicrosoft.Extensions.Configuration.Binder直接
NuGetMicrosoft.Extensions.Configuration.Json直接
NuGetMicrosoft.Extensions.Options直接
NuGetMicrosoft.Net.Compilers.Toolset直接
NuGetMicrosoft.SourceLink.GitHub直接
NuGetSpectre.Console直接
NuGetSystem.IO.Abstractions直接
NuGetTextMateSharp直接
NuGetTextMateSharp.Grammars直接
NuGetWcwidth直接
NuGetAnsiConsoleToHtml间接
NuGetBenchmarkDotNet间接
NuGetcoverlet.collector间接
NuGetCsvHelper间接
NuGetMicrosoft.CodeAnalysis.CSharp.Workspaces间接
NuGetMicrosoft.DotNet.PlatformAbstractions间接
NuGetMicrosoft.Extensions.Logging间接
NuGetMicrosoft.NET.Test.Sdk间接
NuGetMicrosoft.VisualStudio.Azure.Containers.Tools.Targets间接
NuGetMoq间接
NuGetReportGenerator间接
NuGetSerilog间接
NuGetSerilog.Extensions.Logging间接
NuGetSerilog.Sinks.Debug间接
NuGetSerilog.Sinks.File间接
NuGetSixLabors.ImageSharp间接
NuGetSystem.CommandLine间接
NuGetTerminal.Gui.Editor间接
NuGetTestableIO.System.IO.Abstractions.TestingHelpers间接
NuGetXunit.Combinatorial间接
NuGetxunit.runner.visualstudio间接
NuGetxunit.v3间接
依赖安全公告 未评估

本报告未能完成公告比对:No resolved dependencies carried a version and a supported ecosystem

原始 JSON 报告 机器可读
{
  "data": {
    "repo": {
      "topics": [
        "csharp",
        "terminal",
        "dotnet",
        "curses",
        "cross-platform",
        "console",
        "console-application",
        "terminal-based",
        "terminal-ui",
        "tui"
      ],
      "is_fork": false,
      "size_kb": 199411,
      "has_wiki": false,
      "homepage": "https://tui-cs.github.io/Terminal.Gui/",
      "languages": {
        "C#": 12003946,
        "CSS": 1469,
        "Shell": 819,
        "JavaScript": 371,
        "PowerShell": 85214,
        "Go Template": 7409
      },
      "pushed_at": "2026-07-28T17:38:41Z",
      "created_at": "2017-12-11T03:23:45Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-28T17:41:43Z",
      "description": "Cross Platform Terminal UI toolkit for .NET",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "develop",
      "license_spdx_raw": "MIT",
      "primary_language": "C#",
      "significant_languages": [
        "C#"
      ]
    },
    "owner": {
      "blog": null,
      "name": "tui.cs",
      "type": "Organization",
      "login": "tui-cs",
      "company": null,
      "location": null,
      "followers": 212,
      "avatar_url": "https://avatars.githubusercontent.com/u/106351764?v=4",
      "created_at": "2022-05-26T21:13:16Z",
      "is_verified": null,
      "public_repos": 16,
      "account_age_days": 1523
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v2.4.17",
          "kind": "patch",
          "published_at": "2026-07-07T12:20:38Z"
        },
        {
          "tag": "v2.4.16",
          "kind": "patch",
          "published_at": "2026-06-28T19:42:19Z"
        },
        {
          "tag": "v2.4.15",
          "kind": "patch",
          "published_at": "2026-06-28T17:18:24Z"
        },
        {
          "tag": "v2.4.14-beta.1",
          "kind": "prerelease",
          "published_at": "2026-06-28T16:25:03Z"
        },
        {
          "tag": "v2.4.13",
          "kind": "patch",
          "published_at": "2026-06-28T01:46:08Z"
        },
        {
          "tag": "v2.4.12",
          "kind": "patch",
          "published_at": "2026-06-28T00:33:52Z"
        },
        {
          "tag": "v2.4.11",
          "kind": "patch",
          "published_at": "2026-06-24T22:39:26Z"
        },
        {
          "tag": "v2.4.10",
          "kind": "patch",
          "published_at": "2026-06-23T18:12:07Z"
        },
        {
          "tag": "v2.4.9",
          "kind": "patch",
          "published_at": "2026-06-23T16:49:46Z"
        },
        {
          "tag": "v2.4.8",
          "kind": "patch",
          "published_at": "2026-06-22T18:06:24Z"
        },
        {
          "tag": "v2.4.7",
          "kind": "patch",
          "published_at": "2026-06-19T23:22:24Z"
        },
        {
          "tag": "v2.4.6",
          "kind": "patch",
          "published_at": "2026-06-12T15:04:10Z"
        },
        {
          "tag": "v2.4.5",
          "kind": "patch",
          "published_at": "2026-06-09T23:47:36Z"
        },
        {
          "tag": "v2.4.4",
          "kind": "patch",
          "published_at": "2026-06-02T01:54:05Z"
        },
        {
          "tag": "v2.4.3",
          "kind": "patch",
          "published_at": "2026-05-29T14:21:14Z"
        },
        {
          "tag": "v2.4.2",
          "kind": "patch",
          "published_at": "2026-05-27T13:09:23Z"
        },
        {
          "tag": "v2.4.1",
          "kind": "patch",
          "published_at": "2026-05-24T21:36:05Z"
        },
        {
          "tag": "v2.4.0",
          "kind": "minor",
          "published_at": "2026-05-23T19:08:00Z"
        },
        {
          "tag": "v2.2.3",
          "kind": "patch",
          "published_at": "2026-05-23T18:55:09Z"
        },
        {
          "tag": "v2.2.2",
          "kind": "patch",
          "published_at": "2026-05-21T02:38:01Z"
        },
        {
          "tag": "v2.2.1",
          "kind": "patch",
          "published_at": "2026-05-19T13:05:37Z"
        },
        {
          "tag": "v2.2.0",
          "kind": "minor",
          "published_at": "2026-05-19T12:26:50Z"
        },
        {
          "tag": "v2.2.0-rc.4",
          "kind": "prerelease",
          "published_at": "2026-05-18T19:00:48Z"
        },
        {
          "tag": "v2.2.0-rc.3",
          "kind": "prerelease",
          "published_at": "2026-05-18T13:14:36Z"
        },
        {
          "tag": "v2.2.0-rc.2",
          "kind": "prerelease",
          "published_at": "2026-05-17T19:25:55Z"
        },
        {
          "tag": "v2.2.0-rc.1",
          "kind": "prerelease",
          "published_at": "2026-05-17T13:08:21Z"
        },
        {
          "tag": "v2.1.0",
          "kind": "minor",
          "published_at": "2026-05-08T04:16:25Z"
        },
        {
          "tag": "v2.1.0-rc.5",
          "kind": "prerelease",
          "published_at": "2026-05-08T03:27:58Z"
        },
        {
          "tag": "v2.1.0-rc.4",
          "kind": "prerelease",
          "published_at": "2026-05-08T03:01:57Z"
        },
        {
          "tag": "v2.1.0-rc.3",
          "kind": "prerelease",
          "published_at": "2026-05-08T02:24:32Z"
        },
        {
          "tag": "v2.1.0-rc.2",
          "kind": "prerelease",
          "published_at": "2026-05-07T22:36:03Z"
        },
        {
          "tag": "v2.1.0-rc.1",
          "kind": "prerelease",
          "published_at": "2026-05-07T22:02:00Z"
        },
        {
          "tag": "v2.1.0-beta.1",
          "kind": "prerelease",
          "published_at": "2026-05-07T20:08:00Z"
        },
        {
          "tag": "v2.0.1",
          "kind": "patch",
          "published_at": "2026-04-29T01:08:20Z"
        },
        {
          "tag": "v2.0.0",
          "kind": "major",
          "published_at": "2026-04-28T23:48:47Z"
        },
        {
          "tag": "v2.0.0-rc.7",
          "kind": "prerelease",
          "published_at": "2026-04-28T20:53:20Z"
        },
        {
          "tag": "v2.0.0-rc.6",
          "kind": "prerelease",
          "published_at": "2026-04-27T15:36:29Z"
        },
        {
          "tag": "v2.0.0-rc.5",
          "kind": "prerelease",
          "published_at": "2026-04-27T02:13:39Z"
        },
        {
          "tag": "v2.0.0-rc.4",
          "kind": "prerelease",
          "published_at": "2026-04-22T15:03:18Z"
        },
        {
          "tag": "v2.0.0-rc.3",
          "kind": "prerelease",
          "published_at": "2026-04-21T01:17:16Z"
        },
        {
          "tag": "v2.0.0-rc.2",
          "kind": "prerelease",
          "published_at": "2026-04-21T00:31:30Z"
        },
        {
          "tag": "v2.0.0-rc.1",
          "kind": "prerelease",
          "published_at": "2026-04-20T18:51:58Z"
        },
        {
          "tag": "v2.0.0-beta.218",
          "kind": "prerelease",
          "published_at": "2026-04-20T18:34:15Z"
        },
        {
          "tag": "v2.0.0-beta.1",
          "kind": "prerelease",
          "published_at": "2026-03-04T20:33:46Z"
        },
        {
          "tag": "v1.19.0",
          "kind": "minor",
          "published_at": "2025-06-12T19:57:54Z"
        },
        {
          "tag": "v1.18.1",
          "kind": "patch",
          "published_at": "2025-04-24T12:25:19Z"
        },
        {
          "tag": "v1.18.0",
          "kind": "minor",
          "published_at": "2025-03-16T19:49:21Z"
        },
        {
          "tag": "v1.17.1",
          "kind": "patch",
          "published_at": "2024-07-11T22:40:43Z"
        },
        {
          "tag": "v1.17.0",
          "kind": "minor",
          "published_at": "2024-05-29T17:46:46Z"
        },
        {
          "tag": "v1.16.0",
          "kind": "minor",
          "published_at": "2024-03-16T15:54:20Z"
        },
        {
          "tag": "v1.15.1",
          "kind": "patch",
          "published_at": "2024-01-22T14:09:45Z"
        },
        {
          "tag": "v1.14.1",
          "kind": "patch",
          "published_at": "2023-08-30T14:27:32Z"
        },
        {
          "tag": "v1.13.5",
          "kind": "patch",
          "published_at": "2023-07-26T12:48:36Z"
        },
        {
          "tag": "v1.13.4",
          "kind": "patch",
          "published_at": "2023-07-17T23:53:09Z"
        },
        {
          "tag": "v1.12.1",
          "kind": "patch",
          "published_at": "2023-05-24T13:14:55Z"
        },
        {
          "tag": "v1.11.2",
          "kind": "patch",
          "published_at": "2023-05-19T15:37:50Z"
        },
        {
          "tag": "v1.10.1",
          "kind": "patch",
          "published_at": "2023-04-06T15:45:15Z"
        },
        {
          "tag": "v1.10.0",
          "kind": "minor",
          "published_at": "2023-03-17T15:02:32Z"
        },
        {
          "tag": "v1.9.0",
          "kind": "minor",
          "published_at": "2023-01-05T00:39:39Z"
        },
        {
          "tag": "v1.8.2",
          "kind": "patch",
          "published_at": "2022-09-21T22:34:28Z"
        },
        {
          "tag": "v1.8.0",
          "kind": "minor",
          "published_at": "2022-09-19T13:55:41Z"
        },
        {
          "tag": "v1.7.2",
          "kind": "patch",
          "published_at": "2022-08-04T21:46:54Z"
        },
        {
          "tag": "v1.7.1",
          "kind": "patch",
          "published_at": "2022-08-01T23:38:35Z"
        },
        {
          "tag": "v1.7.0",
          "kind": "minor",
          "published_at": "2022-07-28T18:37:11Z"
        },
        {
          "tag": "v1.6.4",
          "kind": "patch",
          "published_at": "2022-05-28T23:09:50Z"
        },
        {
          "tag": "v1.6.0",
          "kind": "minor",
          "published_at": "2022-05-26T21:03:00Z"
        },
        {
          "tag": "v1.5.0",
          "kind": "minor",
          "published_at": "2022-04-17T23:49:34Z"
        },
        {
          "tag": "v1.4.0",
          "kind": "minor",
          "published_at": "2021-12-18T16:49:04Z"
        },
        {
          "tag": "v1.3.1",
          "kind": "patch",
          "published_at": "2021-10-27T23:07:07Z"
        },
        {
          "tag": "v1.2.1",
          "kind": "patch",
          "published_at": "2021-08-24T16:19:14Z"
        },
        {
          "tag": "v1.1.1",
          "kind": "patch",
          "published_at": "2021-05-17T00:08:00Z"
        },
        {
          "tag": "v1.0.0",
          "kind": "major",
          "published_at": "2021-04-28T22:45:38Z"
        },
        {
          "tag": "v0.90.2",
          "kind": "patch",
          "published_at": "2020-09-28T16:55:15Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "342955e65a4c8a6a7c7cbdf9402c6f08386be651",
          "body": "…s/setup-go-7\n\nBump actions/setup-go from 6 to 7",
          "is_bot": false,
          "headline": "Merge pull request #5599 from tui-cs/dependabot/github_actions/action…",
          "author_name": "Kevin Harder",
          "author_login": "harder",
          "committed_at": "2026-07-28T17:38:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a35796dbd81ce71b454c57ae7804720d8f2a813c",
          "body": "…sions.Options-10.0.10\n\nBump Microsoft.Extensions.Options from 10.0.9 to 10.0.10",
          "is_bot": false,
          "headline": "Merge pull request #5597 from tui-cs/dependabot/nuget/Microsoft.Exten…",
          "author_name": "Kevin Harder",
          "author_login": "harder",
          "committed_at": "2026-07-28T17:38:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7be79d4c3c56df246c36c433dcae9d40e931f2fb",
          "body": "…s/setup-dotnet-6\n\nBump actions/setup-dotnet from 5 to 6",
          "is_bot": false,
          "headline": "Merge pull request #5598 from tui-cs/dependabot/github_actions/action…",
          "author_name": "Kevin Harder",
          "author_login": "harder",
          "committed_at": "2026-07-28T17:37:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a3abd47fc4c0da79375cdb71c05b7655e7956dba",
          "body": "…em.IO.Abstractions.TestingHelpers-22.2.0\n\nBump TestableIO.System.IO.Abstractions.TestingHelpers from 22.1.1 to 22.2.0",
          "is_bot": false,
          "headline": "Merge pull request #5592 from tui-cs/dependabot/nuget/TestableIO.Syst…",
          "author_name": "Kevin Harder",
          "author_login": "harder",
          "committed_at": "2026-07-28T17:36:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d596b81c9cead3092363b0c6c52a1fb26f0b7c02",
          "body": "Bump Microsoft.Extensions.Configuration and Microsoft.Extensions.Configuration.Binder",
          "is_bot": false,
          "headline": "Merge pull request #5595 from tui-cs/dependabot/nuget/multi-47268eecd5",
          "author_name": "Kevin Harder",
          "author_login": "harder",
          "committed_at": "2026-07-28T17:36:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5f26590f5d0f3b0ca41c6235c9aaec681014639c",
          "body": "…est.Sdk-18.8.1\n\nBump Microsoft.NET.Test.Sdk from 18.7.0 to 18.8.1",
          "is_bot": false,
          "headline": "Merge pull request #5593 from tui-cs/dependabot/nuget/Microsoft.NET.T…",
          "author_name": "Kevin Harder",
          "author_login": "harder",
          "committed_at": "2026-07-28T17:35:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b2ca8679a74eb83ebbe23f3c75250f3ee1458e30",
          "body": "…actions-22.2.0\n\nBump System.IO.Abstractions from 22.1.1 to 22.2.0",
          "is_bot": false,
          "headline": "Merge pull request #5591 from tui-cs/dependabot/nuget/System.IO.Abstr…",
          "author_name": "Kevin Harder",
          "author_login": "harder",
          "committed_at": "2026-07-28T17:34:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "944f736d6db66b01109ac81d4a34248629965658",
          "body": "Bump Serilog from 4.3.1 to 4.4.0",
          "is_bot": false,
          "headline": "Merge pull request #5590 from tui-cs/dependabot/nuget/Serilog-4.4.0",
          "author_name": "Kevin Harder",
          "author_login": "harder",
          "committed_at": "2026-07-28T17:34:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5bee7149687909ba4b9f54c10f37dcf42193c932",
          "body": "…ild-6.8.2\n\nBump GitVersion.MsBuild from 6.8.1 to 6.8.2",
          "is_bot": false,
          "headline": "Merge pull request #5589 from tui-cs/dependabot/nuget/GitVersion.MsBu…",
          "author_name": "Kevin Harder",
          "author_login": "harder",
          "committed_at": "2026-07-28T17:33:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9048af9ab79c3f71a3f84836f93e9c180d972be4",
          "body": "Bumps [actions/setup-go](https://github.com/actions/setup-go) from 6 to 7.\n- [Release notes](https://github.com/actions/setup-go/releases)\n- [Commits](https://github.com/actions/setup-go/compare/v6...v7)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-go\n  dependency-version: '7'\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump actions/setup-go from 6 to 7",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-19T14:42:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5c999449092b82f6dfef79efd2e45789f81acd48",
          "body": "Bumps [actions/setup-dotnet](https://github.com/actions/setup-dotnet) from 5 to 6.\n- [Release notes](https://github.com/actions/setup-dotnet/releases)\n- [Commits](https://github.com/actions/setup-dotnet/compare/v5...v6)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-dotnet\n  dependency-version: '6'\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump actions/setup-dotnet from 5 to 6",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-19T14:42:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "21da987b61a9b8394fe85568125d4dab2f6b01f3",
          "body": "---\nupdated-dependencies:\n- dependency-name: Microsoft.Extensions.Options\n  dependency-version: 10.0.10\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.Extensions.Options from 10.0.9 to 10.0.10",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-15T14:46:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "80c1259142a06cc4c992c1aaff203b04189f0bad",
          "body": "…iguration.Binder\n\nBumps Microsoft.Extensions.Configuration from 10.0.7 to 10.0.10\nBumps Microsoft.Extensions.Configuration.Binder from 10.0.7 to 10.0.10\n\n---\nupdated-dependencies:\n- dependency-name: Microsoft.Extensions.Configuration\n  dependency-version: 10.0.10\n  dependency-type: direct:productio\n[…]\nt.Extensions.Configuration.Binder\n  dependency-version: 10.0.10\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.Extensions.Configuration and Microsoft.Extensions.Conf…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-15T14:46:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ca570a9f730932a781329edf88bdcc1031459dfb",
          "body": "---\nupdated-dependencies:\n- dependency-name: Microsoft.NET.Test.Sdk\n  dependency-version: 18.8.1\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.NET.Test.Sdk from 18.7.0 to 18.8.1",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-14T14:47:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "32b201223ce3fe1eba65fea65cb811da64236401",
          "body": "…22.2.0\n\n---\nupdated-dependencies:\n- dependency-name: TestableIO.System.IO.Abstractions.TestingHelpers\n  dependency-version: 22.2.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump TestableIO.System.IO.Abstractions.TestingHelpers from 22.1.1 to …",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-13T14:48:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7d527a8acff67bc52b8f0f9ccce4442b00ea8f93",
          "body": "---\nupdated-dependencies:\n- dependency-name: System.IO.Abstractions\n  dependency-version: 22.2.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump System.IO.Abstractions from 22.1.1 to 22.2.0",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-13T14:48:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5fdf535007905b9ed61c90447757f4b6dfef2610",
          "body": "---\nupdated-dependencies:\n- dependency-name: Serilog\n  dependency-version: 4.4.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump Serilog from 4.3.1 to 4.4.0",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-10T14:47:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fe531e6ff12d2f63809858e73069ae5151c79641",
          "body": "---\nupdated-dependencies:\n- dependency-name: GitVersion.MsBuild\n  dependency-version: 6.8.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump GitVersion.MsBuild from 6.8.1 to 6.8.2",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-10T14:45:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "516074203552017a7bc77a4e0ed643cd0b45b8f8",
          "body": "…2 (#5588)\n\n* Fixes #5579. SynchronizationContext is not correctly implemented in v2\n\n* Enforces that apps can be crested before call Run and the Begin method guarantee set the sync context for the current running app.\n\n* Potential fix for pull request finding\n\nCo-authored-by: Copilot Autofix powere\n[…]\npilot@users.noreply.github.com>\n\n* Fix nullable warning\n\n* Reset callbackCalled before reusing it\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Fixes #5579. SynchronizationContext is not correctly implemented in v…",
          "author_name": "BDisp",
          "author_login": "BDisp",
          "committed_at": "2026-07-09T19:18:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8975fec75ac468b509428146156efa58b565bd88",
          "body": "…itable-text-mode",
          "is_bot": false,
          "headline": "Merge pull request #5587 from tui-cs/copilot/enhance-numericupdown-ed…",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-07-09T02:54:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d46b915d1a72d429d8533bff87b592278ac7a328",
          "body": "Two defects in the new CanEdit mode:\n\n- UpdateNumberView appended the value view after the up button, so the\n  SubViews order became [down, up, editor]. Because the focus chain is\n  derived from SubViews order, Tab navigation visited the up button before\n  the editor, contradicting the visual layout\n[…]\nrwriting the in-progress text; the editor still\n  resyncs on Up/Down and external Value changes.\n\nTests updated/added accordingly.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fix Tab order and reformat-on-keystroke in NumericUpDown editable mode",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-07-08T15:50:18Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ab592b3831cf52568f2a1f353b85770eaa4a98a4",
          "body": null,
          "is_bot": true,
          "headline": "Add editable NumericUpDown mode",
          "author_name": "copilot-swe-agent[bot]",
          "author_login": "Copilot",
          "committed_at": "2026-07-07T14:45:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7556d784e0e7fe80c6210e2b64ff4ddb46e97d1c",
          "body": null,
          "is_bot": true,
          "headline": "Initial plan",
          "author_name": "copilot-swe-agent[bot]",
          "author_login": "Copilot",
          "committed_at": "2026-07-07T14:36:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5a231b81f40de36c2b9d76c96353104b33579696",
          "body": "Back-merge v2.4.17 from main into develop",
          "is_bot": false,
          "headline": "Merge pull request #5586 from tui-cs/backmerge/v2.4.17",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-07-07T14:19:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d0a0ed9b150d3fc8aacf4ab07b7f7d91264fe6d6",
          "body": null,
          "is_bot": false,
          "headline": "Merge pull request #5584 from tui-cs/release/v2.4.17",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-07-07T12:19:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6d9f0963e13ed65839f3e8cc0eeee96219b0c56c",
          "body": "…lision (#5583)\n\nTwo fixes flagged on release PR #5582:\n\n1. Codex CR feedback: FileSystemTreeBuilder.IsReparsePoint returned false\n   when reading Attributes throws, so an unreadable symlink/junction was\n   treated as safe to traverse — recreating the directory-cycle risk the\n   guard exists to prev\n[…]\nhe suite.\n\nTests: fail-closed IsReparsePoint regression test; FileDialog/CharMap\nctor no-throw tests under a colliding DefaultKey.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fixes IsReparsePoint fail-open and PopoverMenu.DefaultKey binding col…",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-07-07T03:27:47Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c7030e736d5f273e7d451d8b2c7d8fd1890fbf9f",
          "body": "Kh/5498 width height event contract",
          "is_bot": false,
          "headline": "Merge pull request #5577 from harder/kh/5498-width-height-event-contract",
          "author_name": "Kevin Harder",
          "author_login": "harder",
          "committed_at": "2026-07-07T03:17:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "da4d9a2ebb8047386e38f0f6b150c88c5124a1cd",
          "body": "…Inaccessible change (#5581)\n\nThe switch to EnumerateDirectories/EnumerateFileSystemInfos with\nEnumerationOptions { IgnoreInaccessible = true } (from the #5544 follow-up)\nkept the framework default AttributesToSkip = Hidden | System, so the file\ndialog silently filtered out hidden/system entries — i\n[…]\ns covering the enumeration options, the fallback, and\n  hidden/system files via MockFileSystem.\n\nFlagged by Codex review on #5580.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fixes FileDialog hiding hidden/system entries (dotfiles) after Ignore…",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-07-07T02:56:06Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6099a28ed175ec8412be4c64551fee0f3dd88fb3",
          "body": "…ls/actions-4.7.0\n\nBump gittools/actions from 4.5.0 to 4.7.0",
          "is_bot": false,
          "headline": "Merge pull request #5578 from tui-cs/dependabot/github_actions/gittoo…",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-07-07T02:38:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d5422461390b4d5157f98e73b214b8eef91c22fe",
          "body": "…-0.57.2\n\nBump Spectre.Console from 0.57.1 to 0.57.2",
          "is_bot": false,
          "headline": "Merge pull request #5576 from tui-cs/dependabot/nuget/Spectre.Console…",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-07-07T02:38:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "78c5378ccaebed60e232aa17ee03dcafc45df055",
          "body": "…ompilers.Toolset-5.6.0\n\nBump Microsoft.Net.Compilers.Toolset from 5.3.0 to 5.6.0",
          "is_bot": false,
          "headline": "Merge pull request #5575 from tui-cs/dependabot/nuget/Microsoft.Net.C…",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-07-07T02:38:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e097de303e049d3cd417d2adb250118747db4fb3",
          "body": "…ild-6.8.1\n\nBump GitVersion.MsBuild from 6.8.0 to 6.8.1",
          "is_bot": false,
          "headline": "Merge pull request #5572 from tui-cs/dependabot/nuget/GitVersion.MsBu…",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-07-07T02:37:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b720fafc7e6a9fbb5aab45fd86d1a03419a07d9f",
          "body": "Bumps [gittools/actions](https://github.com/gittools/actions) from 4.5.0 to 4.7.0.\n- [Release notes](https://github.com/gittools/actions/releases)\n- [Commits](https://github.com/gittools/actions/compare/v4.5.0...v4.7.0)\n\n---\nupdated-dependencies:\n- dependency-name: gittools/actions\n  dependency-version: 4.7.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump gittools/actions from 4.5.0 to 4.7.0",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-05T14:42:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c1eb3ea4331f8d1e49ccd72288f8dbb8f8856446",
          "body": null,
          "is_bot": false,
          "headline": "Add #5498 event hook contract coverage",
          "author_name": "Kevin Harder",
          "author_login": "harder",
          "committed_at": "2026-07-04T20:24:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "62e826981105b610e62e694960d02e42e628fc9c",
          "body": "#5498 (split off from #4522) flagged that Frame/layout-driven size changes\nbypass the Width/Height change events and skip the TextFormatter reset.\n\nRe-evaluated after the related layout/TextFormatter perf work landed\n(#4522, #5357, #5358/#5359, #5499, formatter-constraint fixes):\n\n- TextFormatter re\n[…]\nom the Frame setter or a layout-driven resize; FrameChanged DOES fire\n  in those cases and on declarative assignment after layout.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fixes #5498. Document Width/Height vs Frame event contract",
          "author_name": "Kevin Harder",
          "author_login": "harder",
          "committed_at": "2026-07-04T20:23:20Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3c3f10875a25362edd71b396d460b9168b29705a",
          "body": "---\nupdated-dependencies:\n- dependency-name: Spectre.Console\n  dependency-version: 0.57.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump Spectre.Console from 0.57.1 to 0.57.2",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-03T14:47:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9f5db8f99f21ab423bcf58ceb490bcad39495b6a",
          "body": "---\nupdated-dependencies:\n- dependency-name: Microsoft.Net.Compilers.Toolset\n  dependency-version: 5.6.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.Net.Compilers.Toolset from 5.3.0 to 5.6.0",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-03T14:46:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fc68bbb0d0e8cfc0dabf8d29ac789a27228a62b9",
          "body": "---\nupdated-dependencies:\n- dependency-name: GitVersion.MsBuild\n  dependency-version: 6.8.1\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump GitVersion.MsBuild from 6.8.0 to 6.8.1",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-03T14:44:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "76dfb25911acae80a9ed275d99147c7cb09090ed",
          "body": "…sions.Options-10.0.9\n\nBump Microsoft.Extensions.Options from 10.0.7 to 10.0.9",
          "is_bot": false,
          "headline": "Merge pull request #5568 from tui-cs/dependabot/nuget/Microsoft.Exten…",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-07-01T15:05:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "31636e0eb4d22b0ffd7659ed847167bb257efe7e",
          "body": "…ild-6.8.0\n\nBump GitVersion.MsBuild from 6.7.0 to 6.8.0",
          "is_bot": false,
          "headline": "Merge pull request #5571 from tui-cs/dependabot/nuget/GitVersion.MsBu…",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-07-01T14:55:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dcc4dd7651d50f62c860b7ffb188c65efdcfb86c",
          "body": "---\nupdated-dependencies:\n- dependency-name: GitVersion.MsBuild\n  dependency-version: 6.8.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump GitVersion.MsBuild from 6.7.0 to 6.8.0",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-01T14:45:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e3f94a2963b0c2052db77eeae3247d29c7eeaade",
          "body": "…… (#5569)\n\n* Fixes #5544 #issuecomment-4836836706. FileDialog/OpenDialog: one unreadable entry makes the entire directory render empty (`FileDialogState.GetChildren` swallows the exception)\n\n* Fixes #5570. FileDialog/OpenDialog tree builder crash on unreadable entries",
          "is_bot": false,
          "headline": "Fixes #5544 #issuecomment-4836836706. FileDialog/OpenDialog: one unre…",
          "author_name": "BDisp",
          "author_login": "BDisp",
          "committed_at": "2026-07-01T13:46:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b88fcd5d40750cd5105bea90023f3b266d96d30c",
          "body": "---\nupdated-dependencies:\n- dependency-name: Microsoft.Extensions.Options\n  dependency-version: 10.0.9\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.Extensions.Options from 10.0.7 to 10.0.9",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-29T14:46:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b968e1502695eea4a6495cdab1cd3b9e0ad074c2",
          "body": "Back-merge v2.4.16 from main into develop",
          "is_bot": false,
          "headline": "Merge pull request #5564 from tui-cs/backmerge/v2.4.16",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-28T19:46:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5e89ba95656ef0fec73af84a1637cc5b8064fa1f",
          "body": "Release v2.4.16",
          "is_bot": false,
          "headline": "Merge pull request #5563 from tui-cs/release/v2.4.16",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-28T19:41:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "de959715ab004709a1eaf07c14391fef95e4b56f",
          "body": null,
          "is_bot": true,
          "headline": "Set release label to 'stable' for v2.4.16",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-06-28T19:32:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5965c8373f80b42b82c4d95e686087d7da9f4822",
          "body": "Fixes #5561 - Make TuiConfigurationBuilder flat-key binding trim/AOT-safe",
          "is_bot": false,
          "headline": "Merge pull request #5562 from tui-cs/fix/5561-convertvalue-aot",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-28T19:31:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f6eee0521bf5715099fd419d2d7980e98e5eb46b",
          "body": "ConvertValue fell back to TypeDescriptor.GetConverter (RequiresUnreferencedCode\n/ RequiresDynamicCode) for non-scalar settings, breaking NativeAOT/trimmed\nconsumers (e.g. tui-cs/Editor's `ted`) with IL2026/IL3050. Regression from #5411.\n\n- ConvertValue: replace the TypeDescriptor.GetConverter fallba\n[…]\ny IL2026 + IL2090).\n\nAdds a regression test that PopoverMenu.DefaultKey (a Key-typed flat dotted key)\nbinds via the new fast path.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fix #5561: make TuiConfigurationBuilder flat-key binding trim/AOT-safe",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-28T19:20:44Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ffe4944cb366af922e0c9f14a9667e5fbac7408b",
          "body": "Remove legacy \"Create Release\" workflow (release.yml)",
          "is_bot": false,
          "headline": "Merge pull request #5560 from tui-cs/chore/remove-legacy-create-release",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-28T19:12:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f5c6f2cd61451802ca38c001bdb658db06d65da0",
          "body": "Same trigger inaccuracies as the prior fixes, elsewhere in\nTerminal.Gui/README.md:\n- Prepare Release branch is `release/<tag>` including the pre-release\n  suffix (e.g. release/v2.0.0-beta.1)\n- NuGet auto-publish is on push to `develop` + `v*` tag pushes, not on\n  pushes to `main`\n- API docs deploy on push to `develop`, not `main`\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Correct remaining publish/api-docs trigger docs in maintainer README",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-28T19:07:20Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "1fdc72f4d92711f81383745f95b3c93e0345d5ca",
          "body": "Fixes 3 doc accuracy issues flagged in review:\n- .github/workflows/README.md: api-docs.yml triggers on push to `develop`\n  + workflow_dispatch, not `main`\n- Terminal.Gui/README.md: publish.yml triggers on push to `develop` and\n  `v*` tags, not `main`\n- CONTRIBUTING.md: clarify Prepare Release creates `release/<tag>` where\n  the tag includes the pre-release suffix (e.g. release/v2.0.0-beta.1)\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Address review: correct workflow trigger docs",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-28T18:33:07Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "76606e7f36bc65ac9153610c3eb15093e9028539",
          "body": "release.yml (\"Create Release\") is broken and redundant:\n\n- Broken: it pins GitVersion `versionSpec: '6.0.x'`, but\n  gittools/actions/gitversion/setup@v4.5.0 requires >=6.1.0, so the\n  \"Install GitVersion\" step fails immediately (every run since Jan 2026\n  has failed at this step). Its siblings publi\n[…]\nsection,\n  renumber, and fix the publish trigger description\n- CONTRIBUTING.md: document the Prepare/Finalize release flow instead\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Remove legacy \"Create Release\" workflow (release.yml)",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-28T17:26:47Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9a78c6a443e7a656dbc7ee97a446ec46e81a8df1",
          "body": "…-dim-auto-unchanged",
          "is_bot": false,
          "headline": "Merge pull request #5549 from harder/copilot/skip-setneedslayout-when…",
          "author_name": "Kevin Harder",
          "author_login": "harder",
          "committed_at": "2026-06-28T16:50:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7ca26a14262b6886c325b08712111e11990c66bd",
          "body": "Back-merge v2.4.14-beta.1 from main into develop",
          "is_bot": false,
          "headline": "Merge pull request #5558 from tui-cs/backmerge/v2.4.14-beta.1",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-28T16:37:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7f04ed82831461cd4fc51b86cac9afb321537928",
          "body": "Release v2.4.14-beta.1",
          "is_bot": false,
          "headline": "Merge pull request #5557 from tui-cs/release/v2.4.14-beta.1",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-28T16:23:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "12aca25f1e9ad742a34e80eb1d1e8a24b7c3a87b",
          "body": null,
          "is_bot": true,
          "headline": "Set release label to 'beta' for v2.4.14-beta.1",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-06-28T16:14:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d0d11727aa139cf5558fe2f6ddcccff87e9efa6",
          "body": "Prepares for Fixing #4943 - Refactors `ConfigurationManager` to be based on `MEC`",
          "is_bot": false,
          "headline": "Merge pull request #5411 from tui-cs/copilot/replace-cm-with-mec",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-28T16:12:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "416c873f6151d9951b7381ce34b85e619640284e",
          "body": "PR #5411 marks ConfigurationManager [Obsolete], and the Validate Doc\nSnippets CI job elevates CS0618 to an error. Update the \"set theme at\nstartup\" snippet to the MEC replacement (TuiConfigurationBuilder +\nRuntimeConfig + ApplyToStaticFacades), which the flat/scalar binding fix\nnow makes functional for the \"Theme\" scalar key.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fix obsolete ConfigurationManager usage in build-app.md snippet",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-28T16:04:10Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "349db3c3bd8ae4a1d95b0b3012c9baab72902d3a",
          "body": "Two issues surfaced by code review on #5411:\n\n1. MEC binding was inert against the shipped config.json format. The real\n   config uses flat dotted keys (e.g. \"Driver.Force16Colors\", \"Key.Separator\")\n   and a scalar \"Theme\" key, but ApplyToStaticFacades bound nested sections via\n   GetSection(name).B\n[…]\nes\nthe pre-existing MEC tests that mutate static Defaults into the shared\n\"StaticSettingsTests\" collection to keep them race-free.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Address PR #5411 CR feedback: flat-key MEC binding + theme-event leak",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-28T15:59:18Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a953411bb6e4cbebca00a9deab60a249888e256f",
          "body": "Reassigning a copied explicit role to the same value must not make it implicit.\n\nFixes #5555",
          "is_bot": false,
          "headline": "fix(scheme): preserve explicit role assignment (#5556)",
          "author_name": "YourRobotOverlord",
          "author_login": "YourRobotOverlord",
          "committed_at": "2026-06-28T15:56:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "da3a262977c7daa4753bd621b7b2e063124de5d8",
          "body": null,
          "is_bot": true,
          "headline": "Merge origin/develop into copilot/replace-cm-with-mec",
          "author_name": "copilot-swe-agent[bot]",
          "author_login": "Copilot",
          "committed_at": "2026-06-28T15:51:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "934467c5b400374ea488adc1f0ff287f2786677b",
          "body": "Back-merge v2.4.13 from main into develop",
          "is_bot": false,
          "headline": "Merge pull request #5554 from tui-cs/backmerge/v2.4.13",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-28T01:48:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e5b00f6a4fb9c6dfe7488283d499fc956eb19c97",
          "body": "Release v2.4.13",
          "is_bot": false,
          "headline": "Merge pull request #5553 from tui-cs/release/v2.4.13",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-28T01:45:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "837f9f12c4255793233e7747664ba8fdcf7e3376",
          "body": "Fixes #5544. FileDialog/OpenDialog: one unreadable entry makes the entire directory render empty (`FileDialogState.GetChildren` swallows the exception)",
          "is_bot": false,
          "headline": "Merge pull request #5548 from BDisp/issue/filedialog-unreadable-entry",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-28T01:23:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0b3a3efb2d3ed154b8ef06d6cde833644a1570a9",
          "body": null,
          "is_bot": false,
          "headline": "Addressed @Copilot's recommendation change",
          "author_name": "BDisp",
          "author_login": "BDisp",
          "committed_at": "2026-06-28T01:17:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "80ba244c2f53a32e8ee7ddeacb56aff9dfe5afb0",
          "body": "Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Addressed @Copilot's suggested change",
          "author_name": "BDisp",
          "author_login": "BDisp",
          "committed_at": "2026-06-28T01:11:16Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ae2047abec598989a10bea28d858e01e6b6b2f5f",
          "body": "A new review found the widened same-frame fast path could leave TextFormatter\nunconstrained. UpdateTextFormatterText() clears ConstrainToWidth/Height, and the\nfast path then skipped SetRelativeLayout() — including its post-resolve cleanup\nthat restores constraints from GetContentWidth()/GetContentHe\n[…]\nstrained auto wrapping.\n\nFull UnitTestsParallelizable: 17467 passed / 0 failed; UnitTests.NonParallelizable:\n72 passed / 0 failed.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fix formatter constraints lost on widened Text fast path (review P1)",
          "author_name": "Kevin Harder",
          "author_login": "harder",
          "committed_at": "2026-06-28T00:44:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f3d8be102d54062b2aa78d17a020ec1a4a68383b",
          "body": "Back-merge v2.4.12 from main into develop",
          "is_bot": false,
          "headline": "Merge pull request #5551 from tui-cs/backmerge/v2.4.12",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-28T00:38:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7cecb5a36ee0f65df9a40c553b0558e17820b06a",
          "body": "Release v2.4.12",
          "is_bot": false,
          "headline": "Merge pull request #5550 from tui-cs/release/v2.4.12",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-28T00:33:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1f7b091f783b48cd13203ccc5e7645f6104e7c85",
          "body": "… fixed/one-axis\n\nCode review of #5549 found two correctness gaps and one scope limitation in the\nText-change layout-skip optimization:\n\n1. Position changes were ignored. The predictor compared only size to Frame, but\n   a Pos can depend on Text (e.g. Pos.Func reading view.Text), so a same-size\n   t\n[…]\nedraw skips layout (#3). Full UnitTestsParallelizable: 17458 passed / 0 failed;\nUnitTests.NonParallelizable: 72 passed / 0 failed.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Address Codex review: predict full Frame, exact dim guard, broaden to…",
          "author_name": "Kevin Harder",
          "author_login": "harder",
          "committed_at": "2026-06-27T23:56:02Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5fd918d316fd661e7ac396b4cabcf3a441ece975",
          "body": null,
          "is_bot": false,
          "headline": "Merge pull request #5547 from tui-cs/fix/5543-raster-graphics-linger",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-27T23:09:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "125947959663def8d825bdc4dc89a58527e8e8ac",
          "body": "…tire directory render empty (`FileDialogState.GetChildren` swallows the exception)",
          "is_bot": false,
          "headline": "Fixes #5544. FileDialog/OpenDialog: one unreadable entry makes the en…",
          "author_name": "BDisp",
          "author_login": "BDisp",
          "committed_at": "2026-06-27T22:30:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3c5f8fdf513ff4e4e78d5720742d0e114eb22c34",
          "body": "…unchanged size\n\nThe View.Text setter unconditionally called SetNeedsLayout(), which propagates\nlayout work up the entire ancestor chain and forces a redraw on every text\nchange - even when the recomputed Dim.Auto(DimAutoStyle.Text) size is identical\nto the current Frame (e.g. a once-per-second cloc\n[…]\nt request survives. DimAutoStyle.Auto, fixed dims,\nand not-yet-laid-out views all fall back to the original SetNeedsLayout() path.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fixes #5499. Skip SetNeedsLayout when Dim.Auto text recompute yields …",
          "author_name": "Kevin Harder",
          "author_login": "harder",
          "committed_at": "2026-06-27T22:04:13Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c6a3e0457cfd52fd13566e80c0785ff00c3dc09b",
          "body": "A view hosting a raster ImageView (UseRasterGraphics, Sixel/Kitty) left its\nout-of-band graphic on screen after it stopped being rendered — closing a modal\nDialog, hiding the ImageView, or removing it (or its container) from the\nhierarchy. The cells were repainted, but the Sixel DCS / Kitty placemen\n[…]\nreleased when removed, hidden,\nits container removed, and when a modal runnable ends; plus direct\nRetainRasterImages buffer tests.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fix #5543: release raster graphics when their view stops being rendered",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-27T21:03:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0b11290894ec85ece5d0dd539c6e14c8a0dece8d",
          "body": "…background (#5545)",
          "is_bot": false,
          "headline": "Fixes #5517. DropDownList dropped list uses Menu scheme for distinct …",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-27T20:45:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "46a23872d0bd0dbc9f7266d327fdd0bdb729aa3d",
          "body": null,
          "is_bot": true,
          "headline": "Initial plan",
          "author_name": "copilot-swe-agent[bot]",
          "author_login": "Copilot",
          "committed_at": "2026-06-27T19:21:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0f51956c926bf4cb4ce8a120ccac20b28e1b33b6",
          "body": null,
          "is_bot": false,
          "headline": "Merge pull request #5500 from harder/kh/4522-needslayout-lifecycle",
          "author_name": "Kevin Harder",
          "author_login": "harder",
          "committed_at": "2026-06-27T17:05:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cc605e6bedcce6a409f61d938bb667897be0ceec",
          "body": "Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Apply suggestions from code review",
          "author_name": "Kevin Harder",
          "author_login": "harder",
          "committed_at": "2026-06-26T22:43:35Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "125d3aec1d5674477c31aa65e18a984bc4fe06e8",
          "body": null,
          "is_bot": false,
          "headline": "Delete plans/4522-needslayout-lifecycle.md",
          "author_name": "Kevin Harder",
          "author_login": "harder",
          "committed_at": "2026-06-26T22:31:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "354a9bc18f97fc297770b6897b426d065c4e7834",
          "body": null,
          "is_bot": false,
          "headline": "#4522: Fix render fingerprint review follow-up",
          "author_name": "Kevin Harder",
          "author_login": "harder",
          "committed_at": "2026-06-26T22:22:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "52d2c785553cd831562bac7ddfb2c2456b50cff6",
          "body": "AllViewsRenderFingerprintTests:\n- Fix resource leak: catch block now disposes view and driver before\n  returning |EX:, matching all other exit paths\n- Track 'successful' (laid out + drawn without exception) separately\n  from 'rendered' (total processed); assert successful > 30 so the\n  smoke check i\n[…]\nm. Reconcile with §57.\n- Fix stale line references: :862/:864-865 -> :866/:868-869 for the\n  NeedsLayout clear and SubViewsLaidOut fire sites\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "#4522: Address workflow review findings",
          "author_name": "Kevin Harder",
          "author_login": "harder",
          "committed_at": "2026-06-26T22:06:00Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "eb52d01aec8d2bda7fd87b16dc402c50c24ecee4",
          "body": "P1 (bug): AllViewsRenderFingerprintTests now separates filesystem\nenvironment exceptions (UnauthorizedAccessException / IOException from\nFileDialog EnableForDesign) from real layout/draw exceptions. ENV:\nexceptions are logged but do not count as test failures.\n\nP2a (weak test): StaleContentSizeCaptu\n[…]\nsynthetic\ntests don't exercise that path (child.Width= already marks ancestors);\nthe ad-hoc guard is still not recommended for other reasons.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "#4522: Address Codex review findings — fix three test quality issues",
          "author_name": "Kevin Harder",
          "author_login": "harder",
          "committed_at": "2026-06-26T21:45:56Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "753872588f0d57e300968e04f150790d3bad3af8",
          "body": "… develop",
          "is_bot": false,
          "headline": "Merge branch 'develop' of https://github.com/tui-cs/Terminal.Gui into…",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-25T19:05:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b6c17ed088776d90f67d03b6e67091d8a0c7defd",
          "body": "…-0.57.1\n\nBump Spectre.Console from 0.57.0 to 0.57.1",
          "is_bot": false,
          "headline": "Merge pull request #5542 from tui-cs/dependabot/nuget/Spectre.Console…",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-25T16:39:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f9beeb65dc1577410f8069a52f8b61555cc404e9",
          "body": "---\nupdated-dependencies:\n- dependency-name: Spectre.Console\n  dependency-version: 0.57.1\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump Spectre.Console from 0.57.0 to 0.57.1",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-25T14:45:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f731911e50c2988a4b273c4f468edbed5f455d4a",
          "body": "…otchas\n\nFixes #5525. Document v2 agent gotchas",
          "is_bot": false,
          "headline": "Merge pull request #5539 from tui-cs/copilot/document-high-value-v2-g…",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-24T23:32:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5085b354f5f59c29b5856c27c5eecd1ad6a4e7bc",
          "body": "Back-merge v2.4.11 from main into develop",
          "is_bot": false,
          "headline": "Merge pull request #5541 from tui-cs/backmerge/v2.4.11",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-24T23:31:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d090f5064d876d4f358492c18f9f8cb3a50fd78f",
          "body": null,
          "is_bot": false,
          "headline": "Merge pull request #5540 from tui-cs/release/v2.4.11",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-24T22:39:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d7cc5798522d666bacab8815c4112ed0b9c6a7fb",
          "body": "…-test",
          "is_bot": false,
          "headline": "Merge pull request #5519 from tui-cs/tig/imageview-x-minus-1-overdraw…",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-24T21:02:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "675f7271e413eb252e586662d5cc47f690a57601",
          "body": null,
          "is_bot": true,
          "headline": "Address review feedback on examples",
          "author_name": "copilot-swe-agent[bot]",
          "author_login": "Copilot",
          "committed_at": "2026-06-24T13:33:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8bb96f94f50f66e0d6698e25b6f947ce43de8115",
          "body": null,
          "is_bot": true,
          "headline": "Document v2 agent gotchas",
          "author_name": "copilot-swe-agent[bot]",
          "author_login": "Copilot",
          "committed_at": "2026-06-24T04:25:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ba1e0c2d32a901aba8ea2ef8f97735f387c0ce01",
          "body": "Bound UICatalog in-memory log capture to stop long-run memory growth",
          "is_bot": false,
          "headline": "Merge pull request #5465 from tui-cs/copilot/fix-memory-leak",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-24T04:18:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e0a2657ec9e61a89d2cf7978ff192f247a7df982",
          "body": null,
          "is_bot": true,
          "headline": "Initial plan",
          "author_name": "copilot-swe-agent[bot]",
          "author_login": "Copilot",
          "committed_at": "2026-06-24T04:18:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f3fbd45a462af337eba6b1ba867859cf0fc37669",
          "body": "readme tweak",
          "is_bot": false,
          "headline": "Merge pull request #5538 from tui-cs/tig-patch-1",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-24T03:40:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "36ae7ef0d3d031b7ccacf408b547f0cb1effa21e",
          "body": "Removed version announcement and added section header for Terminal.Gui.",
          "is_bot": false,
          "headline": "Update README to enhance description of Terminal.Gui",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-24T03:40:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0c8f194f934a4549a11b88fbcd9c25a5d35a1b0d",
          "body": "back merge main->develop",
          "is_bot": false,
          "headline": "Merge pull request #5537 from tui-cs/main",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-24T03:39:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1b67540a2da4faa0c14bc95d1dc4a9672896805f",
          "body": "tui-cs cleanup",
          "is_bot": false,
          "headline": "Merge pull request #5536 from tui-cs/tig-patch-1",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-24T03:38:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "842c085fd18e3edb2b966ed3a98392c90822cb89",
          "body": "Removed license badge from README.md",
          "is_bot": false,
          "headline": "Remove license badge from README",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-24T03:37:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b017eb0867206e58f5a8dafb3d4266355ec0c2be",
          "body": "docs(getting-started): use Accepted for side effects (canonical rule)",
          "is_bot": false,
          "headline": "Merge pull request #5534 from tui-cs/docs/getting-started-accepted",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-23T20:39:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c44737cee22fbb1926c716adc71bd90ea049a6c7",
          "body": "Maintainer ruling: Accepted is canonical for side effects; Accepting only to cancel.\ngetting-started.md said 'event handling uses the Accepting event', contradicting that.\nReword to: use Accepted for side effects (button presses); use Accepting only to\ninspect/cancel (e.Handled = true). Both are public events on View; xrefs resolve.\n\nPart of #5525.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(getting-started): use Accepted for side effects (canonical rule)",
          "author_name": "Tig",
          "author_login": "tig",
          "committed_at": "2026-06-23T20:35:14Z",
          "body_truncated": false,
          "is_coding_agent": true
        }
      ],
      "releases_count": 73,
      "commits_last_year": 1587,
      "latest_release_at": "2026-07-07T12:20:38Z",
      "latest_release_tag": "v2.4.17",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 44,
      "days_since_latest_release": 21,
      "mean_days_between_releases": 1.6
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 87,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "Terminal.Gui.Interop.Spectre",
          "exists": true,
          "license": null,
          "keywords": [
            "terminal",
            "gui",
            "console",
            "spectre",
            "interop"
          ],
          "ecosystem": "nuget",
          "matches_repo": true,
          "registry_url": "https://www.nuget.org/packages/Terminal.Gui.Interop.Spectre",
          "is_deprecated": false,
          "latest_version": "2.4.17",
          "repository_url": "https://github.com/tui-cs/Terminal.Gui",
          "versions_count": 14,
          "total_downloads": 4734,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-07T12:22:04.890000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 21
        }
      ]
    },
    "popularity": {
      "forks": 783,
      "stars": 11139,
      "watchers": 142,
      "fork_history": {
        "days": [
          {
            "date": "2018-01-27",
            "count": 1
          },
          {
            "date": "2018-01-28",
            "count": 2
          },
          {
            "date": "2018-01-30",
            "count": 2
          },
          {
            "date": "2018-02-02",
            "count": 1
          },
          {
            "date": "2018-02-03",
            "count": 1
          },
          {
            "date": "2018-02-04",
            "count": 2
          },
          {
            "date": "2018-02-05",
            "count": 3
          },
          {
            "date": "2018-02-12",
            "count": 1
          },
          {
            "date": "2018-02-16",
            "count": 10
          },
          {
            "date": "2018-02-17",
            "count": 5
          },
          {
            "date": "2018-02-18",
            "count": 3
          },
          {
            "date": "2018-02-19",
            "count": 1
          },
          {
            "date": "2018-02-20",
            "count": 1
          },
          {
            "date": "2018-02-22",
            "count": 1
          },
          {
            "date": "2018-02-23",
            "count": 1
          },
          {
            "date": "2018-02-24",
            "count": 1
          },
          {
            "date": "2018-02-25",
            "count": 1
          },
          {
            "date": "2018-02-26",
            "count": 1
          },
          {
            "date": "2018-02-27",
            "count": 1
          },
          {
            "date": "2018-03-01",
            "count": 2
          },
          {
            "date": "2018-03-02",
            "count": 2
          },
          {
            "date": "2018-03-03",
            "count": 1
          },
          {
            "date": "2018-03-06",
            "count": 1
          },
          {
            "date": "2018-03-08",
            "count": 2
          },
          {
            "date": "2018-03-13",
            "count": 1
          },
          {
            "date": "2018-03-26",
            "count": 1
          },
          {
            "date": "2018-03-27",
            "count": 1
          },
          {
            "date": "2018-03-31",
            "count": 1
          },
          {
            "date": "2018-04-03",
            "count": 1
          },
          {
            "date": "2018-04-09",
            "count": 2
          },
          {
            "date": "2018-04-11",
            "count": 1
          },
          {
            "date": "2018-04-12",
            "count": 1
          },
          {
            "date": "2018-04-16",
            "count": 1
          },
          {
            "date": "2018-04-24",
            "count": 1
          },
          {
            "date": "2018-05-03",
            "count": 2
          },
          {
            "date": "2018-05-05",
            "count": 1
          },
          {
            "date": "2018-05-06",
            "count": 1
          },
          {
            "date": "2018-05-08",
            "count": 1
          },
          {
            "date": "2018-05-09",
            "count": 1
          },
          {
            "date": "2018-05-13",
            "count": 1
          },
          {
            "date": "2018-05-14",
            "count": 2
          },
          {
            "date": "2018-05-15",
            "count": 1
          },
          {
            "date": "2018-05-17",
            "count": 2
          },
          {
            "date": "2018-05-21",
            "count": 2
          },
          {
            "date": "2018-05-24",
            "count": 2
          },
          {
            "date": "2018-05-27",
            "count": 1
          },
          {
            "date": "2018-06-02",
            "count": 2
          },
          {
            "date": "2018-06-04",
            "count": 1
          },
          {
            "date": "2018-06-09",
            "count": 1
          },
          {
            "date": "2018-06-11",
            "count": 1
          },
          {
            "date": "2018-06-12",
            "count": 1
          },
          {
            "date": "2018-06-13",
            "count": 1
          },
          {
            "date": "2018-06-19",
            "count": 1
          },
          {
            "date": "2018-06-25",
            "count": 1
          },
          {
            "date": "2018-07-05",
            "count": 1
          },
          {
            "date": "2018-07-07",
            "count": 1
          },
          {
            "date": "2018-07-10",
            "count": 1
          },
          {
            "date": "2018-07-12",
            "count": 1
          },
          {
            "date": "2018-07-13",
            "count": 1
          },
          {
            "date": "2018-07-16",
            "count": 1
          },
          {
            "date": "2018-07-20",
            "count": 1
          },
          {
            "date": "2018-07-24",
            "count": 1
          },
          {
            "date": "2018-08-01",
            "count": 1
          },
          {
            "date": "2018-08-10",
            "count": 1
          },
          {
            "date": "2018-08-12",
            "count": 1
          },
          {
            "date": "2018-08-13",
            "count": 1
          },
          {
            "date": "2018-08-24",
            "count": 1
          },
          {
            "date": "2018-09-11",
            "count": 1
          },
          {
            "date": "2018-09-14",
            "count": 1
          },
          {
            "date": "2018-09-24",
            "count": 1
          },
          {
            "date": "2018-09-25",
            "count": 1
          },
          {
            "date": "2018-09-26",
            "count": 2
          },
          {
            "date": "2018-10-09",
            "count": 1
          },
          {
            "date": "2018-10-10",
            "count": 1
          },
          {
            "date": "2018-10-16",
            "count": 1
          },
          {
            "date": "2018-10-25",
            "count": 1
          },
          {
            "date": "2018-10-26",
            "count": 1
          },
          {
            "date": "2018-10-30",
            "count": 1
          },
          {
            "date": "2018-11-03",
            "count": 1
          },
          {
            "date": "2018-11-26",
            "count": 1
          },
          {
            "date": "2018-12-22",
            "count": 1
          },
          {
            "date": "2019-01-10",
            "count": 1
          },
          {
            "date": "2019-01-16",
            "count": 1
          },
          {
            "date": "2019-01-30",
            "count": 1
          },
          {
            "date": "2019-02-04",
            "count": 1
          },
          {
            "date": "2019-02-05",
            "count": 1
          },
          {
            "date": "2019-02-07",
            "count": 1
          },
          {
            "date": "2019-02-11",
            "count": 1
          },
          {
            "date": "2019-02-25",
            "count": 1
          },
          {
            "date": "2019-03-17",
            "count": 1
          },
          {
            "date": "2019-03-21",
            "count": 1
          },
          {
            "date": "2019-04-05",
            "count": 1
          },
          {
            "date": "2019-04-16",
            "count": 1
          },
          {
            "date": "2019-04-24",
            "count": 4
          },
          {
            "date": "2019-04-25",
            "count": 3
          },
          {
            "date": "2019-04-26",
            "count": 1
          },
          {
            "date": "2019-04-29",
            "count": 1
          },
          {
            "date": "2019-04-30",
            "count": 1
          },
          {
            "date": "2019-05-01",
            "count": 1
          },
          {
            "date": "2019-05-02",
            "count": 1
          },
          {
            "date": "2019-05-08",
            "count": 1
          },
          {
            "date": "2019-05-09",
            "count": 1
          },
          {
            "date": "2019-05-14",
            "count": 1
          },
          {
            "date": "2019-05-18",
            "count": 1
          },
          {
            "date": "2019-06-09",
            "count": 1
          },
          {
            "date": "2019-06-13",
            "count": 1
          },
          {
            "date": "2019-06-14",
            "count": 1
          },
          {
            "date": "2019-06-20",
            "count": 1
          },
          {
            "date": "2019-07-01",
            "count": 1
          },
          {
            "date": "2019-07-03",
            "count": 1
          },
          {
            "date": "2019-08-03",
            "count": 1
          },
          {
            "date": "2019-08-06",
            "count": 3
          },
          {
            "date": "2019-08-07",
            "count": 1
          },
          {
            "date": "2019-08-09",
            "count": 1
          },
          {
            "date": "2019-08-12",
            "count": 1
          },
          {
            "date": "2019-08-14",
            "count": 1
          },
          {
            "date": "2019-08-20",
            "count": 1
          },
          {
            "date": "2019-08-27",
            "count": 1
          },
          {
            "date": "2019-08-30",
            "count": 1
          },
          {
            "date": "2019-09-02",
            "count": 2
          },
          {
            "date": "2019-09-03",
            "count": 1
          },
          {
            "date": "2019-09-16",
            "count": 2
          },
          {
            "date": "2019-09-17",
            "count": 1
          },
          {
            "date": "2019-09-25",
            "count": 1
          },
          {
            "date": "2019-10-07",
            "count": 1
          },
          {
            "date": "2019-10-16",
            "count": 1
          },
          {
            "date": "2019-10-22",
            "count": 1
          },
          {
            "date": "2019-10-23",
            "count": 1
          },
          {
            "date": "2019-10-29",
            "count": 1
          },
          {
            "date": "2019-11-02",
            "count": 1
          },
          {
            "date": "2019-11-04",
            "count": 1
          },
          {
            "date": "2019-11-05",
            "count": 1
          },
          {
            "date": "2019-11-13",
            "count": 1
          },
          {
            "date": "2019-11-14",
            "count": 1
          },
          {
            "date": "2019-11-17",
            "count": 2
          },
          {
            "date": "2019-11-26",
            "count": 1
          },
          {
            "date": "2019-12-01",
            "count": 1
          },
          {
            "date": "2019-12-10",
            "count": 1
          },
          {
            "date": "2019-12-27",
            "count": 1
          },
          {
            "date": "2019-12-29",
            "count": 1
          },
          {
            "date": "2019-12-31",
            "count": 1
          },
          {
            "date": "2020-01-03",
            "count": 1
          },
          {
            "date": "2020-01-05",
            "count": 1
          },
          {
            "date": "2020-01-10",
            "count": 1
          },
          {
            "date": "2020-01-11",
            "count": 1
          },
          {
            "date": "2020-01-13",
            "count": 1
          },
          {
            "date": "2020-01-14",
            "count": 1
          },
          {
            "date": "2020-01-16",
            "count": 1
          },
          {
            "date": "2020-01-20",
            "count": 1
          },
          {
            "date": "2020-01-23",
            "count": 1
          },
          {
            "date": "2020-01-25",
            "count": 1
          },
          {
            "date": "2020-02-03",
            "count": 1
          },
          {
            "date": "2020-02-06",
            "count": 1
          },
          {
            "date": "2020-02-09",
            "count": 2
          },
          {
            "date": "2020-02-10",
            "count": 1
          },
          {
            "date": "2020-02-16",
            "count": 1
          },
          {
            "date": "2020-02-17",
            "count": 1
          },
          {
            "date": "2020-02-24",
            "count": 3
          },
          {
            "date": "2020-02-25",
            "count": 1
          },
          {
            "date": "2020-02-26",
            "count": 1
          },
          {
            "date": "2020-02-27",
            "count": 1
          },
          {
            "date": "2020-02-28",
            "count": 2
          },
          {
            "date": "2020-03-01",
            "count": 1
          },
          {
            "date": "2020-03-02",
            "count": 1
          },
          {
            "date": "2020-03-03",
            "count": 1
          },
          {
            "date": "2020-03-11",
            "count": 1
          },
          {
            "date": "2020-03-12",
            "count": 1
          },
          {
            "date": "2020-03-13",
            "count": 1
          },
          {
            "date": "2020-03-15",
            "count": 1
          },
          {
            "date": "2020-03-19",
            "count": 1
          },
          {
            "date": "2020-03-24",
            "count": 1
          },
          {
            "date": "2020-04-01",
            "count": 1
          },
          {
            "date": "2020-04-02",
            "count": 2
          },
          {
            "date": "2020-04-13",
            "count": 1
          },
          {
            "date": "2020-04-14",
            "count": 1
          },
          {
            "date": "2020-04-20",
            "count": 1
          },
          {
            "date": "2020-04-23",
            "count": 1
          },
          {
            "date": "2020-04-25",
            "count": 1
          },
          {
            "date": "2020-05-04",
            "count": 1
          },
          {
            "date": "2020-05-08",
            "count": 2
          },
          {
            "date": "2020-05-14",
            "count": 1
          },
          {
            "date": "2020-05-15",
            "count": 1
          },
          {
            "date": "2020-05-16",
            "count": 1
          },
          {
            "date": "2020-05-18",
            "count": 2
          },
          {
            "date": "2020-05-20",
            "count": 1
          },
          {
            "date": "2020-05-21",
            "count": 2
          },
          {
            "date": "2020-05-25",
            "count": 1
          },
          {
            "date": "2020-05-27",
            "count": 1
          },
          {
            "date": "2020-06-02",
            "count": 1
          },
          {
            "date": "2020-06-04",
            "count": 1
          },
          {
            "date": "2020-06-05",
            "count": 2
          },
          {
            "date": "2020-06-06",
            "count": 1
          },
          {
            "date": "2020-06-07",
            "count": 1
          },
          {
            "date": "2020-06-08",
            "count": 1
          },
          {
            "date": "2020-06-12",
            "count": 1
          },
          {
            "date": "2020-06-14",
            "count": 1
          },
          {
            "date": "2020-06-15",
            "count": 1
          },
          {
            "date": "2020-06-16",
            "count": 2
          },
          {
            "date": "2020-06-17",
            "count": 1
          },
          {
            "date": "2020-06-24",
            "count": 1
          },
          {
            "date": "2020-06-28",
            "count": 1
          },
          {
            "date": "2020-06-29",
            "count": 2
          },
          {
            "date": "2020-07-02",
            "count": 1
          },
          {
            "date": "2020-07-04",
            "count": 1
          },
          {
            "date": "2020-07-09",
            "count": 1
          },
          {
            "date": "2020-07-15",
            "count": 1
          },
          {
            "date": "2020-07-18",
            "count": 1
          },
          {
            "date": "2020-07-21",
            "count": 3
          },
          {
            "date": "2020-07-24",
            "count": 1
          },
          {
            "date": "2020-07-26",
            "count": 1
          },
          {
            "date": "2020-08-01",
            "count": 1
          },
          {
            "date": "2020-08-06",
            "count": 1
          },
          {
            "date": "2020-08-07",
            "count": 1
          },
          {
            "date": "2020-08-08",
            "count": 1
          },
          {
            "date": "2020-08-16",
            "count": 1
          },
          {
            "date": "2020-08-17",
            "count": 2
          },
          {
            "date": "2020-08-18",
            "count": 1
          },
          {
            "date": "2020-08-26",
            "count": 1
          },
          {
            "date": "2020-08-27",
            "count": 1
          },
          {
            "date": "2020-08-28",
            "count": 1
          },
          {
            "date": "2020-08-31",
            "count": 1
          },
          {
            "date": "2020-09-02",
            "count": 1
          },
          {
            "date": "2020-09-03",
            "count": 1
          },
          {
            "date": "2020-09-04",
            "count": 2
          },
          {
            "date": "2020-09-05",
            "count": 1
          },
          {
            "date": "2020-09-06",
            "count": 1
          },
          {
            "date": "2020-09-12",
            "count": 2
          },
          {
            "date": "2020-09-16",
            "count": 1
          },
          {
            "date": "2020-09-17",
            "count": 2
          },
          {
            "date": "2020-09-18",
            "count": 2
          },
          {
            "date": "2020-09-23",
            "count": 1
          },
          {
            "date": "2020-09-27",
            "count": 1
          },
          {
            "date": "2020-09-29",
            "count": 1
          },
          {
            "date": "2020-10-01",
            "count": 1
          },
          {
            "date": "2020-10-03",
            "count": 1
          },
          {
            "date": "2020-10-07",
            "count": 1
          },
          {
            "date": "2020-10-10",
            "count": 1
          },
          {
            "date": "2020-10-27",
            "count": 1
          },
          {
            "date": "2020-11-03",
            "count": 1
          },
          {
            "date": "2020-11-09",
            "count": 1
          },
          {
            "date": "2020-11-12",
            "count": 1
          },
          {
            "date": "2020-11-15",
            "count": 1
          },
          {
            "date": "2020-11-19",
            "count": 1
          },
          {
            "date": "2020-11-21",
            "count": 1
          },
          {
            "date": "2020-11-30",
            "count": 1
          },
          {
            "date": "2020-12-07",
            "count": 1
          },
          {
            "date": "2020-12-09",
            "count": 1
          },
          {
            "date": "2020-12-10",
            "count": 4
          },
          {
            "date": "2020-12-12",
            "count": 1
          },
          {
            "date": "2020-12-16",
            "count": 1
          },
          {
            "date": "2021-01-02",
            "count": 1
          },
          {
            "date": "2021-01-06",
            "count": 1
          },
          {
            "date": "2021-01-13",
            "count": 1
          },
          {
            "date": "2021-01-15",
            "count": 1
          },
          {
            "date": "2021-01-16",
            "count": 1
          },
          {
            "date": "2021-01-17",
            "count": 1
          },
          {
            "date": "2021-01-18",
            "count": 1
          },
          {
            "date": "2021-01-21",
            "count": 1
          },
          {
            "date": "2021-01-23",
            "count": 2
          },
          {
            "date": "2021-01-26",
            "count": 1
          },
          {
            "date": "2021-01-27",
            "count": 1
          },
          {
            "date": "2021-01-30",
            "count": 1
          },
          {
            "date": "2021-02-05",
            "count": 1
          },
          {
            "date": "2021-02-09",
            "count": 2
          },
          {
            "date": "2021-02-11",
            "count": 1
          },
          {
            "date": "2021-02-14",
            "count": 1
          },
          {
            "date": "2021-02-16",
            "count": 1
          },
          {
            "date": "2021-02-25",
            "count": 1
          },
          {
            "date": "2021-02-26",
            "count": 1
          },
          {
            "date": "2021-02-27",
            "count": 2
          },
          {
            "date": "2021-03-04",
            "count": 2
          },
          {
            "date": "2021-03-07",
            "count": 2
          },
          {
            "date": "2021-03-10",
            "count": 1
          },
          {
            "date": "2021-03-12",
            "count": 1
          },
          {
            "date": "2021-03-17",
            "count": 1
          },
          {
            "date": "2021-03-22",
            "count": 1
          },
          {
            "date": "2021-03-27",
            "count": 1
          },
          {
            "date": "2021-03-29",
            "count": 1
          },
          {
            "date": "2021-03-30",
            "count": 1
          },
          {
            "date": "2021-04-01",
            "count": 1
          },
          {
            "date": "2021-04-12",
            "count": 1
          },
          {
            "date": "2021-04-19",
            "count": 1
          },
          {
            "date": "2021-04-20",
            "count": 1
          },
          {
            "date": "2021-04-21",
            "count": 1
          },
          {
            "date": "2021-04-23",
            "count": 1
          },
          {
            "date": "2021-04-25",
            "count": 1
          },
          {
            "date": "2021-04-26",
            "count": 1
          },
          {
            "date": "2021-04-28",
            "count": 4
          },
          {
            "date": "2021-04-29",
            "count": 1
          },
          {
            "date": "2021-05-02",
            "count": 1
          },
          {
            "date": "2021-05-09",
            "count": 1
          },
          {
            "date": "2021-05-14",
            "count": 1
          },
          {
            "date": "2021-05-16",
            "count": 1
          },
          {
            "date": "2021-05-21",
            "count": 2
          },
          {
            "date": "2021-05-24",
            "count": 1
          },
          {
            "date": "2021-05-25",
            "count": 1
          },
          {
            "date": "2021-06-22",
            "count": 1
          },
          {
            "date": "2021-07-04",
            "count": 2
          },
          {
            "date": "2021-07-21",
            "count": 1
          },
          {
            "date": "2021-07-24",
            "count": 1
          },
          {
            "date": "2021-07-27",
            "count": 2
          },
          {
            "date": "2021-07-28",
            "count": 1
          },
          {
            "date": "2021-08-06",
            "count": 1
          },
          {
            "date": "2021-08-08",
            "count": 1
          },
          {
            "date": "2021-08-09",
            "count": 1
          },
          {
            "date": "2021-08-11",
            "count": 1
          },
          {
            "date": "2021-08-12",
            "count": 1
          },
          {
            "date": "2021-08-18",
            "count": 1
          },
          {
            "date": "2021-08-19",
            "count": 1
          },
          {
            "date": "2021-08-20",
            "count": 1
          },
          {
            "date": "2021-08-24",
            "count": 1
          },
          {
            "date": "2021-08-25",
            "count": 1
          },
          {
            "date": "2021-08-26",
            "count": 1
          },
          {
            "date": "2021-08-31",
            "count": 1
          },
          {
            "date": "2021-09-03",
            "count": 1
          },
          {
            "date": "2021-09-07",
            "count": 1
          },
          {
            "date": "2021-09-11",
            "count": 1
          },
          {
            "date": "2021-09-25",
            "count": 1
          },
          {
            "date": "2021-10-09",
            "count": 1
          },
          {
            "date": "2021-10-19",
            "count": 1
          },
          {
            "date": "2021-11-05",
            "count": 1
          },
          {
            "date": "2021-11-12",
            "count": 1
          },
          {
            "date": "2021-11-15",
            "count": 1
          },
          {
            "date": "2021-11-17",
            "count": 1
          },
          {
            "date": "2021-11-19",
            "count": 1
          },
          {
            "date": "2021-11-20",
            "count": 1
          },
          {
            "date": "2021-11-21",
            "count": 1
          },
          {
            "date": "2021-11-23",
            "count": 1
          },
          {
            "date": "2021-11-25",
            "count": 1
          },
          {
            "date": "2021-12-05",
            "count": 1
          },
          {
            "date": "2021-12-13",
            "count": 2
          },
          {
            "date": "2021-12-14",
            "count": 2
          },
          {
            "date": "2021-12-16",
            "count": 1
          },
          {
            "date": "2021-12-28",
            "count": 1
          },
          {
            "date": "2022-01-08",
            "count": 1
          },
          {
            "date": "2022-01-09",
            "count": 1
          },
          {
            "date": "2022-01-10",
            "count": 1
          },
          {
            "date": "2022-01-13",
            "count": 1
          },
          {
            "date": "2022-01-14",
            "count": 1
          },
          {
            "date": "2022-01-20",
            "count": 1
          },
          {
            "date": "2022-01-21",
            "count": 1
          },
          {
            "date": "2022-01-22",
            "count": 1
          },
          {
            "date": "2022-01-25",
            "count": 1
          },
          {
            "date": "2022-01-26",
            "count": 2
          },
          {
            "date": "2022-02-05",
            "count": 2
          },
          {
            "date": "2022-02-09",
            "count": 1
          },
          {
            "date": "2022-02-19",
            "count": 1
          },
          {
            "date": "2022-02-21",
            "count": 1
          },
          {
            "date": "2022-02-22",
            "count": 1
          },
          {
            "date": "2022-02-26",
            "count": 1
          },
          {
            "date": "2022-02-28",
            "count": 1
          },
          {
            "date": "2022-03-12",
            "count": 1
          },
          {
            "date": "2022-03-14",
            "count": 1
          },
          {
            "date": "2022-03-16",
            "count": 2
          },
          {
            "date": "2022-03-22",
            "count": 1
          },
          {
            "date": "2022-03-24",
            "count": 1
          },
          {
            "date": "2022-03-25",
            "count": 1
          },
          {
            "date": "2022-03-26",
            "count": 1
          },
          {
            "date": "2022-03-29",
            "count": 1
          },
          {
            "date": "2022-04-05",
            "count": 2
          },
          {
            "date": "2022-04-12",
            "count": 1
          },
          {
            "date": "2022-04-17",
            "count": 1
          },
          {
            "date": "2022-04-18",
            "count": 1
          },
          {
            "date": "2022-04-22",
            "count": 1
          },
          {
            "date": "2022-04-25",
            "count": 1
          },
          {
            "date": "2022-05-01",
            "count": 1
          },
          {
            "date": "2022-05-03",
            "count": 1
          },
          {
            "date": "2022-05-08",
            "count": 1
          },
          {
            "date": "2022-05-14",
            "count": 1
          },
          {
            "date": "2022-05-15",
            "count": 1
          },
          {
            "date": "2022-05-16",
            "count": 1
          },
          {
            "date": "2022-05-17",
            "count": 1
          },
          {
            "date": "2022-05-20",
            "count": 1
          },
          {
            "date": "2022-05-22",
            "count": 1
          },
          {
            "date": "2022-05-23",
            "count": 1
          },
          {
            "date": "2022-05-25",
            "count": 1
          },
          {
            "date": "2022-05-27",
            "count": 2
          },
          {
            "date": "2022-05-28",
            "count": 2
          },
          {
            "date": "2022-06-02",
            "count": 3
          },
          {
            "date": "2022-06-04",
            "count": 2
          },
          {
            "date": "2022-06-09",
            "count": 2
          },
          {
            "date": "2022-06-22",
            "count": 1
          },
          {
            "date": "2022-06-24",
            "count": 3
          },
          {
            "date": "2022-06-25",
            "count": 1
          },
          {
            "date": "2022-06-26",
            "count": 1
          },
          {
            "date": "2022-07-21",
            "count": 1
          },
          {
            "date": "2022-07-25",
            "count": 1
          },
          {
            "date": "2022-07-29",
            "count": 1
          },
          {
            "date": "2022-08-20",
            "count": 2
          },
          {
            "date": "2022-08-23",
            "count": 1
          },
          {
            "date": "2022-08-25",
            "count": 1
          },
          {
            "date": "2022-08-27",
            "count": 1
          },
          {
            "date": "2022-09-02",
            "count": 1
          },
          {
            "date": "2022-09-04",
            "count": 1
          },
          {
            "date": "2022-09-05",
            "count": 1
          },
          {
            "date": "2022-09-06",
            "count": 1
          },
          {
            "date": "2022-09-07",
            "count": 1
          },
          {
            "date": "2022-09-08",
            "count": 1
          },
          {
            "date": "2022-09-16",
            "count": 2
          },
          {
            "date": "2022-09-18",
            "count": 1
          },
          {
            "date": "2022-09-20",
            "count": 1
          },
          {
            "date": "2022-09-21",
            "count": 3
          },
          {
            "date": "2022-09-26",
            "count": 2
          },
          {
            "date": "2022-09-27",
            "count": 1
          },
          {
            "date": "2022-09-29",
            "count": 1
          },
          {
            "date": "2022-10-07",
            "count": 1
          },
          {
            "date": "2022-10-08",
            "count": 1
          },
          {
            "date": "2022-10-12",
            "count": 1
          },
          {
            "date": "2022-10-13",
            "count": 2
          },
          {
            "date": "2022-10-14",
            "count": 2
          },
          {
            "date": "2022-10-15",
            "count": 1
          },
          {
            "date": "2022-10-24",
            "count": 1
          },
          {
            "date": "2022-10-30",
            "count": 1
          },
          {
            "date": "2022-11-05",
            "count": 1
          },
          {
            "date": "2022-11-19",
            "count": 1
          },
          {
            "date": "2022-11-23",
            "count": 1
          },
          {
            "date": "2022-11-24",
            "count": 1
          },
          {
            "date": "2022-11-29",
            "count": 1
          },
          {
            "date": "2022-12-01",
            "count": 1
          },
          {
            "date": "2022-12-17",
            "count": 1
          },
          {
            "date": "2022-12-24",
            "count": 1
          },
          {
            "date": "2022-12-31",
            "count": 1
          },
          {
            "date": "2023-01-01",
            "count": 1
          },
          {
            "date": "2023-01-05",
            "count": 1
          },
          {
            "date": "2023-01-09",
            "count": 1
          },
          {
            "date": "2023-01-29",
            "count": 1
          },
          {
            "date": "2023-02-03",
            "count": 1
          },
          {
            "date": "2023-02-05",
            "count": 1
          },
          {
            "date": "2023-02-08",
            "count": 1
          },
          {
            "date": "2023-03-08",
            "count": 1
          },
          {
            "date": "2023-03-11",
            "count": 2
          },
          {
            "date": "2023-03-12",
            "count": 1
          },
          {
            "date": "2023-03-17",
            "count": 3
          },
          {
            "date": "2023-03-24",
            "count": 1
          },
          {
            "date": "2023-04-01",
            "count": 1
          },
          {
            "date": "2023-04-02",
            "count": 1
          },
          {
            "date": "2023-04-13",
            "count": 1
          },
          {
            "date": "2023-04-18",
            "count": 1
          },
          {
            "date": "2023-04-19",
            "count": 1
          },
          {
            "date": "2023-04-23",
            "count": 1
          },
          {
            "date": "2023-04-25",
            "count": 1
          },
          {
            "date": "2023-05-06",
            "count": 1
          },
          {
            "date": "2023-05-11",
            "count": 1
          },
          {
            "date": "2023-05-15",
            "count": 1
          },
          {
            "date": "2023-05-19",
            "count": 1
          },
          {
            "date": "2023-05-31",
            "count": 2
          },
          {
            "date": "2023-06-07",
            "count": 1
          },
          {
            "date": "2023-06-11",
            "count": 1
          },
          {
            "date": "2023-06-16",
            "count": 1
          },
          {
            "date": "2023-06-20",
            "count": 1
          },
          {
            "date": "2023-06-23",
            "count": 1
          },
          {
            "date": "2023-06-24",
            "count": 1
          },
          {
            "date": "2023-06-26",
            "count": 1
          },
          {
            "date": "2023-06-27",
            "count": 1
          },
          {
            "date": "2023-07-11",
            "count": 1
          },
          {
            "date": "2023-07-14",
            "count": 1
          },
          {
            "date": "2023-07-19",
            "count": 1
          },
          {
            "date": "2023-07-25",
            "count": 1
          },
          {
            "date": "2023-07-31",
            "count": 1
          },
          {
            "date": "2023-08-03",
            "count": 1
          },
          {
            "date": "2023-08-04",
            "count": 1
          },
          {
            "date": "2023-08-08",
            "count": 1
          },
          {
            "date": "2023-08-11",
            "count": 1
          },
          {
            "date": "2023-08-18",
            "count": 1
          },
          {
            "date": "2023-08-23",
            "count": 1
          },
          {
            "date": "2023-08-31",
            "count": 1
          },
          {
            "date": "2023-09-06",
            "count": 1
          },
          {
            "date": "2023-09-11",
            "count": 1
          },
          {
            "date": "2023-09-22",
            "count": 1
          },
          {
            "date": "2023-10-07",
            "count": 1
          },
          {
            "date": "2023-10-21",
            "count": 1
          },
          {
            "date": "2023-10-22",
            "count": 1
          },
          {
            "date": "2023-10-23",
            "count": 1
          },
          {
            "date": "2023-10-26",
            "count": 2
          },
          {
            "date": "2023-10-27",
            "count": 1
          },
          {
            "date": "2023-11-08",
            "count": 1
          },
          {
            "date": "2023-11-13",
            "count": 1
          },
          {
            "date": "2023-11-24",
            "count": 1
          },
          {
            "date": "2023-11-29",
            "count": 1
          },
          {
            "date": "2023-11-30",
            "count": 1
          },
          {
            "date": "2023-12-05",
            "count": 2
          },
          {
            "date": "2023-12-09",
            "count": 1
          },
          {
            "date": "2024-01-08",
            "count": 1
          },
          {
            "date": "2024-01-14",
            "count": 1
          },
          {
            "date": "2024-01-15",
            "count": 2
          },
          {
            "date": "2024-01-16",
            "count": 4
          },
          {
            "date": "2024-01-19",
            "count": 1
          },
          {
            "date": "2024-01-28",
            "count": 1
          },
          {
            "date": "2024-02-03",
            "count": 1
          },
          {
            "date": "2024-02-11",
            "count": 1
          },
          {
            "date": "2024-02-23",
            "count": 1
          },
          {
            "date": "2024-03-26",
            "count": 1
          },
          {
            "date": "2024-04-02",
            "count": 1
          },
          {
            "date": "2024-04-06",
            "count": 1
          },
          {
            "date": "2024-04-23",
            "count": 1
          },
          {
            "date": "2024-04-27",
            "count": 1
          },
          {
            "date": "2024-04-28",
            "count": 1
          },
          {
            "date": "2024-05-01",
            "count": 1
          },
          {
            "date": "2024-05-05",
            "count": 1
          },
          {
            "date": "2024-05-06",
            "count": 3
          },
          {
            "date": "2024-05-08",
            "count": 2
          },
          {
            "date": "2024-05-17",
            "count": 1
          },
          {
            "date": "2024-05-18",
            "count": 1
          },
          {
            "date": "2024-05-20",
            "count": 1
          },
          {
            "date": "2024-05-28",
            "count": 1
          },
          {
            "date": "2024-06-01",
            "count": 1
          },
          {
            "date": "2024-06-10",
            "count": 1
          },
          {
            "date": "2024-06-13",
            "count": 1
          },
          {
            "date": "2024-06-27",
            "count": 1
          },
          {
            "date": "2024-07-06",
            "count": 1
          },
          {
            "date": "2024-07-08",
            "count": 2
          },
          {
            "date": "2024-07-21",
            "count": 1
          },
          {
            "date": "2024-07-25",
            "count": 2
          },
          {
            "date": "2024-07-28",
            "count": 1
          },
          {
            "date": "2024-08-07",
            "count": 1
          },
          {
            "date": "2024-08-13",
            "count": 1
          },
          {
            "date": "2024-08-18",
            "count": 1
          },
          {
            "date": "2024-08-23",
            "count": 1
          },
          {
            "date": "2024-08-27",
            "count": 1
          },
          {
            "date": "2024-08-28",
            "count": 1
          },
          {
            "date": "2024-09-02",
            "count": 1
          },
          {
            "date": "2024-09-13",
            "count": 1
          },
          {
            "date": "2024-09-15",
            "count": 1
          },
          {
            "date": "2024-09-17",
            "count": 1
          },
          {
            "date": "2024-09-28",
            "count": 1
          },
          {
            "date": "2024-09-29",
            "count": 1
          },
          {
            "date": "2024-10-07",
            "count": 1
          },
          {
            "date": "2024-10-16",
            "count": 1
          },
          {
            "date": "2024-10-23",
            "count": 1
          },
          {
            "date": "2024-10-30",
            "count": 1
          },
          {
            "date": "2024-11-08",
            "count": 1
          },
          {
            "date": "2024-11-16",
            "count": 1
          },
          {
            "date": "2024-11-17",
            "count": 1
          },
          {
            "date": "2024-11-19",
            "count": 2
          },
          {
            "date": "2024-11-22",
            "count": 2
          },
          {
            "date": "2024-11-24",
            "count": 1
          },
          {
            "date": "2024-11-29",
            "count": 1
          },
          {
            "date": "2024-12-26",
            "count": 1
          },
          {
            "date": "2025-01-17",
            "count": 1
          },
          {
            "date": "2025-01-18",
            "count": 1
          },
          {
            "date": "2025-01-20",
            "count": 1
          },
          {
            "date": "2025-01-23",
            "count": 1
          },
          {
            "date": "2025-01-29",
            "count": 1
          },
          {
            "date": "2025-02-13",
            "count": 3
          },
          {
            "date": "2025-02-15",
            "count": 1
          },
          {
            "date": "2025-02-23",
            "count": 1
          },
          {
            "date": "2025-02-25",
            "count": 1
          },
          {
            "date": "2025-03-10",
            "count": 1
          },
          {
            "date": "2025-03-12",
            "count": 1
          },
          {
            "date": "2025-03-20",
            "count": 1
          },
          {
            "date": "2025-03-29",
            "count": 1
          },
          {
            "date": "2025-04-01",
            "count": 1
          },
          {
            "date": "2025-04-05",
            "count": 1
          },
          {
            "date": "2025-04-12",
            "count": 1
          },
          {
            "date": "2025-04-28",
            "count": 1
          },
          {
            "date": "2025-05-04",
            "count": 1
          },
          {
            "date": "2025-05-07",
            "count": 2
          },
          {
            "date": "2025-05-19",
            "count": 2
          },
          {
            "date": "2025-05-27",
            "count": 2
          },
          {
            "date": "2025-05-28",
            "count": 2
          },
          {
            "date": "2025-06-25",
            "count": 1
          },
          {
            "date": "2025-06-28",
            "count": 1
          },
          {
            "date": "2025-06-29",
            "count": 1
          },
          {
            "date": "2025-07-06",
            "count": 1
          },
          {
            "date": "2025-07-07",
            "count": 1
          },
          {
            "date": "2025-07-17",
            "count": 1
          },
          {
            "date": "2025-07-23",
            "count": 1
          },
          {
            "date": "2025-08-17",
            "count": 1
          },
          {
            "date": "2025-08-22",
            "count": 1
          },
          {
            "date": "2025-09-08",
            "count": 1
          },
          {
            "date": "2025-09-11",
            "count": 1
          },
          {
            "date": "2025-09-22",
            "count": 1
          },
          {
            "date": "2025-10-06",
            "count": 1
          },
          {
            "date": "2025-10-10",
            "count": 1
          },
          {
            "date": "2025-10-13",
            "count": 1
          },
          {
            "date": "2025-10-21",
            "count": 1
          },
          {
            "date": "2025-10-25",
            "count": 1
          },
          {
            "date": "2025-11-10",
            "count": 1
          },
          {
            "date": "2025-11-11",
            "count": 1
          },
          {
            "date": "2025-11-12",
            "count": 1
          },
          {
            "date": "2025-11-15",
            "count": 1
          },
          {
            "date": "2025-11-19",
            "count": 1
          },
          {
            "date": "2025-11-21",
            "count": 1
          },
          {
            "date": "2025-11-27",
            "count": 2
          },
          {
            "date": "2025-11-28",
            "count": 2
          },
          {
            "date": "2025-12-09",
            "count": 1
          },
          {
            "date": "2025-12-12",
            "count": 2
          },
          {
            "date": "2025-12-14",
            "count": 1
          },
          {
            "date": "2025-12-18",
            "count": 1
          },
          {
            "date": "2025-12-20",
            "count": 1
          },
          {
            "date": "2025-12-21",
            "count": 1
          },
          {
            "date": "2025-12-26",
            "count": 1
          },
          {
            "date": "2025-12-27",
            "count": 1
          },
          {
            "date": "2026-01-01",
            "count": 1
          },
          {
            "date": "2026-01-12",
            "count": 2
          },
          {
            "date": "2026-01-16",
            "count": 1
          },
          {
            "date": "2026-01-24",
            "count": 1
          },
          {
            "date": "2026-01-25",
            "count": 2
          },
          {
            "date": "2026-01-26",
            "count": 1
          },
          {
            "date": "2026-02-01",
            "count": 1
          },
          {
            "date": "2026-02-02",
            "count": 1
          },
          {
            "date": "2026-02-05",
            "count": 1
          },
          {
            "date": "2026-02-06",
            "count": 1
          },
          {
            "date": "2026-02-11",
            "count": 1
          },
          {
            "date": "2026-02-20",
            "count": 2
          },
          {
            "date": "2026-02-21",
            "count": 2
          },
          {
            "date": "2026-02-22",
            "count": 1
          },
          {
            "date": "2026-03-01",
            "count": 1
          },
          {
            "date": "2026-03-02",
            "count": 3
          },
          {
            "date": "2026-03-04",
            "count": 1
          },
          {
            "date": "2026-03-11",
            "count": 1
          },
          {
            "date": "2026-03-21",
            "count": 1
          },
          {
            "date": "2026-03-22",
            "count": 1
          },
          {
            "date": "2026-03-24",
            "count": 1
          },
          {
            "date": "2026-03-27",
            "count": 2
          },
          {
            "date": "2026-04-01",
            "count": 1
          },
          {
            "date": "2026-04-08",
            "count": 1
          },
          {
            "date": "2026-04-16",
            "count": 1
          },
          {
            "date": "2026-04-18",
            "count": 1
          },
          {
            "date": "2026-04-21",
            "count": 1
          },
          {
            "date": "2026-04-22",
            "count": 1
          },
          {
            "date": "2026-04-24",
            "count": 1
          },
          {
            "date": "2026-04-29",
            "count": 2
          },
          {
            "date": "2026-04-30",
            "count": 1
          },
          {
            "date": "2026-05-01",
            "count": 1
          },
          {
            "date": "2026-05-03",
            "count": 1
          },
          {
            "date": "2026-05-09",
            "count": 1
          },
          {
            "date": "2026-05-25",
            "count": 1
          },
          {
            "date": "2026-05-26",
            "count": 1
          },
          {
            "date": "2026-05-28",
            "count": 1
          },
          {
            "date": "2026-06-02",
            "count": 1
          },
          {
            "date": "2026-06-09",
            "count": 1
          },
          {
            "date": "2026-06-12",
            "count": 1
          },
          {
            "date": "2026-06-16",
            "count": 2
          },
          {
            "date": "2026-06-17",
            "count": 1
          },
          {
            "date": "2026-06-23",
            "count": 1
          },
          {
            "date": "2026-06-24",
            "count": 1
          },
          {
            "date": "2026-07-05",
            "count": 1
          },
          {
            "date": "2026-07-07",
            "count": 1
          },
          {
            "date": "2026-07-10",
            "count": 1
          },
          {
            "date": "2026-07-24",
            "count": 1
          },
          {
            "date": "2026-07-28",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 771,
        "total_forks": 783
      },
      "star_history": null,
      "open_issues_and_prs": 49
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "cookbook",
        "examples"
      ],
      "has_llms_txt": true,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": true,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "Examples/ScenarioRunner/ScenarioRunner.csproj",
        "Examples/UICatalog/UICatalog.csproj",
        "Scripts/BackingFieldReorderer/BackingFieldReorderer.csproj",
        "Scripts/DocSnippetValidator/DocSnippetValidator.csproj",
        "Scripts/PartialSplitter/PartialSplitter.csproj",
        "Terminal.Gui.Analyzers.Internal/Terminal.Gui.Analyzers.Internal.csproj",
        "Terminal.Gui.Interop.Spectre/Terminal.Gui.Interop.Spectre.csproj",
        "Terminal.Gui/Terminal.Gui.csproj",
        "Tests/AppTestHelpers.XunitHelpers.Generator/AppTestHelpers.XunitHelpers.Generator.csproj",
        "Tests/AppTestHelpers.XunitHelpers/AppTestHelpers.XunitHelpers.csproj",
        "Tests/AppTestHelpers/AppTestHelpers.csproj",
        "Tests/Benchmarks/Benchmarks.csproj",
        "Tests/IntegrationTests/IntegrationTests.csproj",
        "Tests/NativeAotSmoke/NativeAotSmoke.csproj",
        "Tests/PerformanceTests/PerformanceTests.csproj",
        "Tests/StressTests/StressTests.csproj",
        "Tests/TestAssets/ConfigPropertyTypeLoad/AttrProviderFull/AttrProviderFull.csproj",
        "Tests/TestAssets/ConfigPropertyTypeLoad/AttrProviderMissing/AttrProviderMissing.csproj",
        "Tests/TestAssets/ConfigPropertyTypeLoad/ConsumerLib/ConsumerLib.csproj",
        "Tests/UnitTests.Legacy/UnitTests.Legacy.csproj",
        "Tests/UnitTests.NonParallelizable/UnitTests.NonParallelizable.csproj",
        "Tests/UnitTestsParallelizable/UnitTests.Parallelizable.csproj",
        "docfx/EditorRef/EditorRef.csproj",
        "docfx/scripts/OutputView/OutputView.csproj"
      ],
      "largest_source_bytes": 2268243,
      "source_files_sampled": 1485,
      "oversized_source_files": 30,
      "agent_instruction_files": [
        ".cursorrules",
        ".github/copilot-instructions.md",
        ".windsurfrules",
        "AGENTS.md",
        "CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 31280
    },
    "dependencies": {
      "manifests": [
        "Terminal.Gui.Analyzers.Internal/Terminal.Gui.Analyzers.Internal.csproj",
        "Terminal.Gui.Interop.Spectre/Terminal.Gui.Interop.Spectre.csproj",
        "Terminal.Gui/Terminal.Gui.csproj"
      ],
      "advisories": {
        "error": "No resolved dependencies carried a version and a supported ecosystem",
        "scope": "repository_graph",
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 39,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "nuget"
      ],
      "dependencies": [
        {
          "name": "Microsoft.CodeAnalysis.Analyzers",
          "manifest": "Terminal.Gui.Analyzers.Internal/Terminal.Gui.Analyzers.Internal.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.CodeAnalysis.CSharp",
          "manifest": "Terminal.Gui.Analyzers.Internal/Terminal.Gui.Analyzers.Internal.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Spectre.Console",
          "manifest": "Terminal.Gui.Interop.Spectre/Terminal.Gui.Interop.Spectre.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "GitVersion.MsBuild",
          "manifest": "Terminal.Gui.Interop.Spectre/Terminal.Gui.Interop.Spectre.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "ColorHelper",
          "manifest": "Terminal.Gui/Terminal.Gui.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "JetBrains.Annotations",
          "manifest": "Terminal.Gui/Terminal.Gui.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Markdig",
          "manifest": "Terminal.Gui/Terminal.Gui.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.Extensions.Configuration",
          "manifest": "Terminal.Gui/Terminal.Gui.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.Extensions.Configuration.Binder",
          "manifest": "Terminal.Gui/Terminal.Gui.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.Extensions.Configuration.Json",
          "manifest": "Terminal.Gui/Terminal.Gui.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.Extensions.Logging.Abstractions ",
          "manifest": "Terminal.Gui/Terminal.Gui.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.Extensions.Options",
          "manifest": "Terminal.Gui/Terminal.Gui.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "System.IO.Abstractions",
          "manifest": "Terminal.Gui/Terminal.Gui.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "TextMateSharp",
          "manifest": "Terminal.Gui/Terminal.Gui.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "TextMateSharp.Grammars",
          "manifest": "Terminal.Gui/Terminal.Gui.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Wcwidth",
          "manifest": "Terminal.Gui/Terminal.Gui.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.Net.Compilers.Toolset",
          "manifest": "Terminal.Gui/Terminal.Gui.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.SourceLink.GitHub",
          "manifest": "Terminal.Gui/Terminal.Gui.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "GitVersion.MsBuild",
          "manifest": "Terminal.Gui/Terminal.Gui.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "ColorHelper",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "GitVersion.MsBuild",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "JetBrains.Annotations",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Markdig",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.CodeAnalysis.Analyzers",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.CodeAnalysis.CSharp",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Configuration",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Configuration.Binder",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Configuration.Json",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Options",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Net.Compilers.Toolset",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.SourceLink.GitHub",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Spectre.Console",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "System.IO.Abstractions",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "TextMateSharp",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "TextMateSharp.Grammars",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Wcwidth",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "AnsiConsoleToHtml",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "BenchmarkDotNet",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "coverlet.collector",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "CsvHelper",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.CodeAnalysis.CSharp.Workspaces",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.DotNet.PlatformAbstractions",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Logging",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.NET.Test.Sdk",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.VisualStudio.Azure.Containers.Tools.Targets",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Moq",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "ReportGenerator",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Serilog",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Serilog.Extensions.Logging",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Serilog.Sinks.Debug",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Serilog.Sinks.File",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "SixLabors.ImageSharp",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "System.CommandLine",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Terminal.Gui.Editor",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "TestableIO.System.IO.Abstractions.TestingHelpers",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Xunit.Combinatorial",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "xunit.runner.visualstudio",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "xunit.v3",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 39,
        "direct_count": 17,
        "indirect_count": 22
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 9,
        "merged_prs": 2319,
        "open_issues": 40,
        "closed_ratio": 0.983,
        "closed_issues": 2371,
        "closed_unmerged_prs": 580
      },
      "bus_factor": 1,
      "bot_contributors": 3,
      "top_contributors": [
        {
          "type": "User",
          "login": "tig",
          "commits": 5351,
          "avatar_url": "https://avatars.githubusercontent.com/u/585482?v=4"
        },
        {
          "type": "User",
          "login": "BDisp",
          "commits": 1816,
          "avatar_url": "https://avatars.githubusercontent.com/u/13117724?v=4"
        },
        {
          "type": "User",
          "login": "dodexahedron",
          "commits": 285,
          "avatar_url": "https://avatars.githubusercontent.com/u/8242181?v=4"
        },
        {
          "type": "User",
          "login": "migueldeicaza",
          "commits": 280,
          "avatar_url": "https://avatars.githubusercontent.com/u/36863?v=4"
        },
        {
          "type": "User",
          "login": "tznind",
          "commits": 158,
          "avatar_url": "https://avatars.githubusercontent.com/u/31306100?v=4"
        },
        {
          "type": "User",
          "login": "fergusonr",
          "commits": 100,
          "avatar_url": "https://avatars.githubusercontent.com/u/17233550?v=4"
        },
        {
          "type": "User",
          "login": "harder",
          "commits": 98,
          "avatar_url": "https://avatars.githubusercontent.com/u/125549?v=4"
        },
        {
          "type": "User",
          "login": "YourRobotOverlord",
          "commits": 25,
          "avatar_url": "https://avatars.githubusercontent.com/u/47068588?v=4"
        },
        {
          "type": "User",
          "login": "TheTonttu",
          "commits": 21,
          "avatar_url": "https://avatars.githubusercontent.com/u/15074459?v=4"
        },
        {
          "type": "User",
          "login": "worldbeater",
          "commits": 21,
          "avatar_url": "https://avatars.githubusercontent.com/u/6759207?v=4"
        }
      ],
      "contributors_sampled": 97,
      "top_contributor_share": 0.637
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "analyze-hang-dump.yml",
        "api-docs.yml",
        "build-validation.yml",
        "codeql-analysis.yml",
        "finalize-release.yml",
        "integration-tests.yml",
        "lint-agent-docs.yml",
        "notify-clet.yml",
        "perf-gate.yml",
        "prepare-release.yml",
        "publish.yml",
        "quick-build.yml",
        "stress-tests.yml",
        "unit-tests.yml",
        "validate-doc-snippets.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [],
      "has_editorconfig": true,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": null,
            "reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "18 out of 18 merged PRs checked by a CI test -- score normalized to 10",
            "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": 3,
            "reason": "Found 2/6 approved changesets -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 30 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 0,
            "reason": "dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "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 30 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": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 7,
            "reason": "SAST tool detected but not run on all commits",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 4,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "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": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "342955e65a4c8a6a7c7cbdf9402c6f08386be651",
        "ran_at": "2026-07-28T17:48:12Z",
        "aggregate_score": 5.6,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": true,
      "has_security_policy": true,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-28T17:46:58Z",
      "oldest_open_prs": [
        {
          "number": 5371,
          "created_at": "2026-05-22T16:34:56Z",
          "last_comment_at": "2026-06-28T15:53:21Z",
          "last_comment_author": "tig"
        },
        {
          "number": 5395,
          "created_at": "2026-05-24T00:19:16Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 5416,
          "created_at": "2026-05-26T16:01:08Z",
          "last_comment_at": "2026-06-28T16:19:45Z",
          "last_comment_author": "tig"
        },
        {
          "number": 5456,
          "created_at": "2026-05-31T14:15:29Z",
          "last_comment_at": "2026-05-31T17:48:43Z",
          "last_comment_author": "copilot-swe-agent"
        },
        {
          "number": 5458,
          "created_at": "2026-05-31T23:29:05Z",
          "last_comment_at": "2026-06-01T19:14:37Z",
          "last_comment_author": "YourRobotOverlord"
        },
        {
          "number": 5596,
          "created_at": "2026-07-15T14:46:40Z",
          "last_comment_at": "2026-07-28T17:39:02Z",
          "last_comment_author": "harder"
        },
        {
          "number": 5600,
          "created_at": "2026-07-25T16:17:02Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 5602,
          "created_at": "2026-07-25T21:07:36Z",
          "last_comment_at": "2026-07-28T17:07:16Z",
          "last_comment_author": "harder"
        },
        {
          "number": 5603,
          "created_at": "2026-07-28T15:34:29Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-28T17:38:40Z",
      "ci_last_conclusion": null,
      "oldest_open_issues": [
        {
          "number": 1642,
          "created_at": "2022-03-13T19:56:29Z",
          "last_comment_at": "2025-03-11T08:06:42Z",
          "last_comment_author": "tig"
        },
        {
          "number": 2747,
          "created_at": "2023-07-14T19:13:22Z",
          "last_comment_at": "2023-07-14T19:20:52Z",
          "last_comment_author": "tig"
        },
        {
          "number": 2871,
          "created_at": "2023-10-02T02:10:59Z",
          "last_comment_at": "2025-05-16T19:54:48Z",
          "last_comment_author": "tig"
        },
        {
          "number": 2938,
          "created_at": "2023-10-28T03:43:02Z",
          "last_comment_at": "2023-11-12T10:35:46Z",
          "last_comment_author": "tznind"
        },
        {
          "number": 2952,
          "created_at": "2023-11-02T16:13:19Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 3014,
          "created_at": "2023-11-26T23:55:30Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 3018,
          "created_at": "2023-11-28T23:31:08Z",
          "last_comment_at": "2025-11-20T00:55:57Z",
          "last_comment_author": "tig"
        },
        {
          "number": 3322,
          "created_at": "2024-03-14T08:45:14Z",
          "last_comment_at": "2026-03-30T16:26:19Z",
          "last_comment_author": "tig"
        },
        {
          "number": 3554,
          "created_at": "2024-06-20T21:39:37Z",
          "last_comment_at": "2024-06-25T11:11:16Z",
          "last_comment_author": "dodexahedron"
        },
        {
          "number": 3617,
          "created_at": "2024-07-17T16:41:09Z",
          "last_comment_at": "2025-03-17T15:22:17Z",
          "last_comment_author": "tig"
        },
        {
          "number": 3752,
          "created_at": "2024-09-22T17:08:33Z",
          "last_comment_at": "2024-11-06T16:26:07Z",
          "last_comment_author": "BDisp"
        },
        {
          "number": 3826,
          "created_at": "2024-11-18T18:58:03Z",
          "last_comment_at": "2026-03-30T16:27:30Z",
          "last_comment_author": "tig"
        },
        {
          "number": 3914,
          "created_at": "2025-02-19T17:51:46Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 3917,
          "created_at": "2025-02-20T15:02:55Z",
          "last_comment_at": "2026-03-30T16:27:55Z",
          "last_comment_author": "tig"
        },
        {
          "number": 4257,
          "created_at": "2025-09-27T15:32:21Z",
          "last_comment_at": "2026-01-20T22:57:19Z",
          "last_comment_author": "j4james"
        },
        {
          "number": 4397,
          "created_at": "2025-11-19T20:38:49Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 4588,
          "created_at": "2026-01-19T21:54:11Z",
          "last_comment_at": "2026-01-20T16:34:56Z",
          "last_comment_author": "BerndK-Str"
        },
        {
          "number": 4618,
          "created_at": "2026-01-22T22:56:14Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 4749,
          "created_at": "2026-02-24T14:33:45Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 4796,
          "created_at": "2026-03-05T21:07:10Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/tui-cs/Terminal.Gui",
    "host": "github.com",
    "name": "Terminal.Gui",
    "owner": "tui-cs"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "excellent",
      "name": "Overall health",
      "note": "The weighted overall 75 is calibrated to 89 on the published index scale (record calibration 2026-08-02).",
      "notes": [
        {
          "code": "overall_calibration",
          "params": {
            "raw": 75,
            "calibrated": 89,
            "calibration": "2026-08-02"
          }
        }
      ],
      "value": 89,
      "inputs": {
        "security": 56,
        "vitality": 96,
        "community": 83,
        "governance": 68,
        "calibration": "2026-08-02",
        "engineering": 70,
        "ai_readiness": 80,
        "weighted_overall_raw": 75
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "exceptional",
        "name": "Vitality",
        "value": 96,
        "weight": 0.21,
        "metrics": [
          {
            "key": "development_activity",
            "band": "exceptional",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 94,
            "inputs": {
              "commits_last_year": 1587,
              "human_commit_share": 0.75,
              "days_since_last_push": 0,
              "active_weeks_last_year": 44
            },
            "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": "44/52 weeks with commits",
                "points": 30.5,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 44
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "1587 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 1587
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "exceptional",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 73,
              "latest_release_tag": "v2.4.17",
              "releases_from_tags": false,
              "days_since_latest_release": 21,
              "mean_days_between_releases": 1.6
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "73 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 73
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 21 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 21
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~1.6 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 1.6
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "exceptional",
            "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": 5,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 5 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "excellent",
        "name": "Community & Adoption",
        "value": 83,
        "weight": 0.17,
        "metrics": [
          {
            "key": "popularity",
            "band": "exceptional",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 96,
            "inputs": {
              "forks": 783,
              "stars": 11139,
              "watchers": 142,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "11,139 stars",
                "points": 60,
                "status": "met",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 11139
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "783 forks",
                "points": 24.1,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 783
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "142 watchers",
                "points": 11.9,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 142
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "readme_badges": null,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "readme_badge_services": [],
              "has_pull_request_template": true
            },
            "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": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "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": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "weak",
            "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": 48,
            "inputs": {
              "packages": [
                "Terminal.Gui.Interop.Spectre"
              ],
              "dependents": null,
              "ecosystems": "nuget",
              "total_downloads": 4734,
              "monthly_downloads": null
            },
            "components": [
              {
                "key": "total_downloads",
                "name": "Total downloads",
                "detail": "4,734 downloads all-time across nuget",
                "points": 38.2,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_total",
                    "params": {
                      "count": 4734,
                      "ecosystems": "nuget"
                    }
                  }
                ],
                "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": "good",
        "name": "Sustainability & Governance",
        "value": 68,
        "weight": 0.23,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "weak",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 41,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 97,
              "top_contributor_share": 0.637
            },
            "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 64% of commits",
                "points": 8.2,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 64
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "97 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 97
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 30 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "excellent",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Newcomer PR acceptance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "newcomer_pr_acceptance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 80,
            "inputs": {
              "merged_prs": 2319,
              "open_issues": 40,
              "closed_issues": 2371,
              "prs_merged_7d": null,
              "prs_decided_7d": null,
              "prs_merged_30d": null,
              "prs_decided_30d": null,
              "issue_closed_ratio": 0.983,
              "closed_unmerged_prs": 580,
              "first_time_authors_30d": null,
              "first_time_prs_merged_30d": null,
              "first_time_prs_decided_30d": null
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "98% of issues closed",
                "points": 41.3,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 98
                    }
                  }
                ],
                "max_points": 42
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "2319/2899 decided PRs merged",
                "points": 24,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 2319,
                      "decided": 2899
                    }
                  }
                ],
                "max_points": 30
              },
              {
                "key": "newcomer_pr_acceptance",
                "name": "Newcomer PR acceptance",
                "detail": "no first-time contributor's PR decided in 30d",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_newcomer_prs",
                    "params": {
                      "days": 30
                    }
                  }
                ],
                "max_points": 13
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 2/6 approved changesets -- score normalized to 3",
                "points": 4.5,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 64,
            "inputs": {
              "followers": 212,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "tui-cs",
              "public_repos": 16,
              "account_age_days": 1523
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "212 followers of tui-cs",
                "points": 16.7,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 212,
                      "login": "tui-cs"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "16 public repos, account ~4 yr old",
                "points": 17.3,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 16
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 4
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "exceptional",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "Terminal.Gui.Interop.Spectre"
              ],
              "ecosystems": "nuget",
              "any_deprecated": false,
              "min_days_since_publish": 21
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on nuget",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "nuget"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 21 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 21
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "14 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 14
                    }
                  }
                ],
                "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": "good",
        "name": "Engineering Quality",
        "value": 70,
        "weight": 0.19,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 74,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "15 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 15
                    }
                  }
                ],
                "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": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "18 out of 18 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "good",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 65,
            "inputs": {
              "topics": [
                "csharp",
                "terminal",
                "dotnet",
                "curses",
                "cross-platform",
                "console",
                "console-application",
                "terminal-based",
                "terminal-ui",
                "tui"
              ],
              "has_wiki": false,
              "homepage": "https://tui-cs.github.io/Terminal.Gui/",
              "has_readme": true,
              "has_docs_dir": false,
              "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://tui-cs.github.io/Terminal.Gui/",
                "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": "10 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 56,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Branch-Protection, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "branch_protection",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 56,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 5.6
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "18 out of 18 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "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 2/6 approved changesets -- score normalized to 3",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 30 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "dangerous workflow patterns detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "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 30 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 detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool detected but not run on all commits",
                "points": 3.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 2,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "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": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "exceptional",
            "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. 1 match(es) from contributors below the commit-weight threshold (fewer than 50 commits and under 10% of sampled commits) are recorded for review and do not affect the score.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              },
              {
                "code": "jurisdiction_below_threshold",
                "params": {
                  "count": 1
                }
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "commit_weight_rule": {
                "min_commits": 50,
                "min_commit_share": 0.1
              },
              "review_only_matches": 0,
              "below_threshold_exposures": [
                {
                  "role": "top_contributor",
                  "count": 1,
                  "country": "Russia"
                }
              ],
              "assessed_self_published_locations": 11
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match; 1 match(es) below the commit-weight threshold (<50 commits and <10% of commits), review-only",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  },
                  {
                    "code": "jurisdiction_below_threshold",
                    "params": {
                      "count": 1,
                      "share": 10,
                      "commits": 50
                    }
                  }
                ],
                "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": "excellent",
        "name": "AI Readiness",
        "value": 80,
        "weight": 0.04,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "exceptional",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "has_llms_txt": true,
              "legible_history_share": 0.933,
              "agent_instruction_files": [
                ".cursorrules",
                ".github/copilot-instructions.md",
                ".windsurfrules",
                "AGENTS.md",
                "CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 31280
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": ".cursorrules, .github/copilot-instructions.md, .windsurfrules, AGENTS.md, CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".cursorrules, .github/copilot-instructions.md, .windsurfrules, AGENTS.md, CLAUDE.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": "llms.txt present",
                "points": 15,
                "status": "met",
                "details": [
                  {
                    "code": "llms_txt_present",
                    "params": {}
                  }
                ],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "70 of 75 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 70,
                      "sampled": 75
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "good",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 74,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": true,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": true,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0.2,
              "toolchain_manifests": [
                "Examples/ScenarioRunner/ScenarioRunner.csproj",
                "Examples/UICatalog/UICatalog.csproj",
                "Scripts/BackingFieldReorderer/BackingFieldReorderer.csproj",
                "Scripts/DocSnippetValidator/DocSnippetValidator.csproj",
                "Scripts/PartialSplitter/PartialSplitter.csproj",
                "Terminal.Gui.Analyzers.Internal/Terminal.Gui.Analyzers.Internal.csproj",
                "Terminal.Gui.Interop.Spectre/Terminal.Gui.Interop.Spectre.csproj",
                "Terminal.Gui/Terminal.Gui.csproj",
                "Tests/AppTestHelpers.XunitHelpers.Generator/AppTestHelpers.XunitHelpers.Generator.csproj",
                "Tests/AppTestHelpers.XunitHelpers/AppTestHelpers.XunitHelpers.csproj",
                "Tests/AppTestHelpers/AppTestHelpers.csproj",
                "Tests/Benchmarks/Benchmarks.csproj",
                "Tests/IntegrationTests/IntegrationTests.csproj",
                "Tests/NativeAotSmoke/NativeAotSmoke.csproj",
                "Tests/PerformanceTests/PerformanceTests.csproj",
                "Tests/StressTests/StressTests.csproj",
                "Tests/TestAssets/ConfigPropertyTypeLoad/AttrProviderFull/AttrProviderFull.csproj",
                "Tests/TestAssets/ConfigPropertyTypeLoad/AttrProviderMissing/AttrProviderMissing.csproj",
                "Tests/TestAssets/ConfigPropertyTypeLoad/ConsumerLib/ConsumerLib.csproj",
                "Tests/UnitTests.Legacy/UnitTests.Legacy.csproj",
                "Tests/UnitTests.NonParallelizable/UnitTests.NonParallelizable.csproj",
                "Tests/UnitTestsParallelizable/UnitTests.Parallelizable.csproj",
                "docfx/EditorRef/EditorRef.csproj",
                "docfx/scripts/OutputView/OutputView.csproj"
              ],
              "dependency_bot_commit_share": 0.16
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Examples/ScenarioRunner/ScenarioRunner.csproj, Examples/UICatalog/UICatalog.csproj, Scripts/BackingFieldReorderer/BackingFieldReorderer.csproj (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "Examples/ScenarioRunner/ScenarioRunner.csproj, Examples/UICatalog/UICatalog.csproj, Scripts/BackingFieldReorderer/BackingFieldReorderer.csproj"
                    }
                  }
                ],
                "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": "C# (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "C#"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "devcontainer, Dockerfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "devcontainer, Dockerfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "20 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 20,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "16 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 16,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "exceptional",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "primary_language": "C#",
              "largest_source_bytes": 2268243,
              "source_files_sampled": 1485,
              "oversized_source_files": 30
            },
            "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": "30/1485 source files over 60KB",
                "points": 53.9,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 1485,
                      "oversized": 30
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "weak",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "cookbook",
                "examples"
              ],
              "has_mcp_signal": false,
              "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "cookbook, examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "cookbook, examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight: agent tooling is a real maintenance signal, but its absence must never gate the top of the scale (calibration saturates at raw 91, so 100/100 remains reachable with AI Readiness at zero)."
      }
    ],
    "classification": {
      "labels": [
        "tui",
        "library"
      ],
      "scores": {
        "tui": 6,
        "library": 6
      },
      "primary": "tui",
      "evidence": [
        {
          "tier": "distribution",
          "label": "library",
          "source": "registry:nuget",
          "weight": 6
        },
        {
          "tier": "description",
          "label": "tui",
          "source": "description:tui",
          "weight": 2
        },
        {
          "tier": "tags",
          "label": "tui",
          "source": "tag:terminal-ui",
          "weight": 2
        },
        {
          "tier": "tags",
          "label": "tui",
          "source": "tag:tui",
          "weight": 2
        }
      ],
      "artifacts": [],
      "confidence": "medium",
      "host_extension": false,
      "runs_as_process": true,
      "consumed_by_code": true
    },
    "metrics_version": "2.3.1"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "No resolved dependencies carried a version and a supported ecosystem"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-28T17:48:46.580549Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/t/tui-cs/Terminal.Gui.svg",
  "full_name": "tui-cs/Terminal.Gui",
  "license_state": "standard",
  "license_spdx": "MIT"
}

评分是信号,而非担保。 评分反映的是 GitHub 上公开可见的实践——不是代码审计,也不是安全保证。

缺失数据将被剔除并重新归一化权重,绝不按零分计。方法论已版本化并公开:指标 v2.3.1、模式 v0.27.0—— 完整方法论 · 指标知识库.

单项结果在整体记录中的位置: 汇总统计NuGet.