JSON-Rohbericht maschinenlesbar
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 16557,
"has_wiki": true,
"homepage": "https://www.tebako.org",
"languages": {
"C": 22078,
"C++": 27153,
"Ruby": 543666,
"SCSS": 2238,
"CMake": 42386,
"Shell": 29424
},
"pushed_at": "2026-07-23T08:18:25Z",
"created_at": "2021-07-18T07:29:47Z",
"owner_type": "Organization",
"updated_at": "2026-07-23T06:46:01Z",
"description": "Tebako: an executable packager (for Ruby programs)",
"is_archived": false,
"is_disabled": false,
"license_spdx": null,
"default_branch": "main",
"license_spdx_raw": "NOASSERTION",
"primary_language": "Ruby",
"significant_languages": [
"Ruby"
]
},
"owner": {
"blog": "https://www.tebako.org",
"name": "Tebako",
"type": "Organization",
"login": "tamatebako",
"company": null,
"location": null,
"followers": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/87628837?v=4",
"created_at": "2021-07-19T03:13:53Z",
"is_verified": null,
"public_repos": 19,
"account_age_days": 1830
},
"license": {
"state": "custom",
"spdx_id": null,
"raw_spdx": "NOASSERTION",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v0.14.0",
"kind": "minor",
"published_at": "2025-11-04T11:36:55Z"
},
{
"tag": "v0.13.3",
"kind": "patch",
"published_at": "2025-05-01T06:47:20Z"
},
{
"tag": "v0.13.2",
"kind": "patch",
"published_at": "2025-04-13T18:28:25Z"
},
{
"tag": "v0.13.1",
"kind": "patch",
"published_at": "2025-04-09T22:10:41Z"
},
{
"tag": "v0.13.0",
"kind": "minor",
"published_at": "2025-03-21T10:19:43Z"
},
{
"tag": "v0.12.16",
"kind": "patch",
"published_at": "2025-03-03T17:08:31Z"
},
{
"tag": "v0.12.15",
"kind": "patch",
"published_at": "2025-02-24T09:33:05Z"
},
{
"tag": "v0.12.14",
"kind": "patch",
"published_at": "2025-02-22T14:38:55Z"
},
{
"tag": "v0.12.13",
"kind": "patch",
"published_at": "2025-02-15T08:31:38Z"
},
{
"tag": "v0.12.12",
"kind": "patch",
"published_at": "2025-02-14T19:18:57Z"
},
{
"tag": "v0.12.11",
"kind": "patch",
"published_at": "2025-02-14T06:35:45Z"
},
{
"tag": "v0.12.10",
"kind": "patch",
"published_at": "2025-02-08T06:49:11Z"
},
{
"tag": "v0.12.9",
"kind": "patch",
"published_at": "2025-01-31T07:38:25Z"
},
{
"tag": "v0.12.8",
"kind": "patch",
"published_at": "2025-01-25T18:53:24Z"
},
{
"tag": "v0.12.6",
"kind": "patch",
"published_at": "2025-01-24T16:09:09Z"
},
{
"tag": "v0.12.4",
"kind": "patch",
"published_at": "2025-01-18T08:05:49Z"
},
{
"tag": "v0.12.1",
"kind": "patch",
"published_at": "2025-01-12T20:29:07Z"
},
{
"tag": "v0.12.0",
"kind": "minor",
"published_at": "2025-01-05T09:54:36Z"
},
{
"tag": "v0.11.0",
"kind": "minor",
"published_at": "2024-12-25T18:27:32Z"
},
{
"tag": "v0.10.0",
"kind": "minor",
"published_at": "2024-12-15T06:53:44Z"
},
{
"tag": "v0.9.3",
"kind": "patch",
"published_at": "2024-11-28T07:54:42Z"
},
{
"tag": "v0.9.2",
"kind": "patch",
"published_at": "2024-11-28T07:54:14Z"
},
{
"tag": "v0.9.1",
"kind": "patch",
"published_at": "2024-10-03T22:00:53Z"
},
{
"tag": "v0.9.0",
"kind": "minor",
"published_at": "2024-10-03T14:54:34Z"
},
{
"tag": "v0.8.8",
"kind": "patch",
"published_at": "2024-10-02T15:43:50Z"
},
{
"tag": "v0.8.7",
"kind": "patch",
"published_at": "2024-09-03T11:55:52Z"
},
{
"tag": "v0.8.6",
"kind": "patch",
"published_at": "2024-09-02T13:19:31Z"
},
{
"tag": "v0.8.5",
"kind": "patch",
"published_at": "2024-08-31T13:34:21Z"
}
],
"recent_commits": [
{
"oid": "51787fd44a14a259e3d5783554da1f38246ce0b8",
"body": "Supersedes 0.15.0 immediately: drops folly-era libiberty/libunwind\nfrom the linux link lists (runtime-ruby legs on the refreshed ci\ncontainers could not link miniruby without them).",
"is_bot": false,
"headline": "chore: version 0.15.1",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T08:18:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0d435ac211ba732f96fc8449930acde6c091d013",
"body": "Nothing in the shipped libtfs/dwarfs-t deps, tebako-main, or ruby\nreferences libiberty or libunwind symbols (nm-verified across all\narchives), and the refreshed ci containers no longer ship them — the\nruntime-ruby v0.15.0 gnu legs failed to link miniruby on the missing\nlibraries. The entries were folly-era dead weight.",
"is_bot": false,
"headline": "fix(packager): drop folly-era libiberty/libunwind from linux link lists",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T08:16:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b59ffe793e6fd8a2c1ad6817626ab439191d403f",
"body": null,
"is_bot": false,
"headline": "ci: cross-test legs advisory too (same release-blocking rationale)",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T06:44:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ae6e2faeb3895fe977f7d1a331ae9f4815b95e15",
"body": "…eleases\n\nThe metanorma/fontist packaging legs carry pre-existing upstream\ngem-drift failures (lutaml LoadError, fontist NameError) that are\ntracked separately. The release job needs these legs, so their\npre-existing redness skipped the release entirely (as seen on main\nsince the v0.14.0 line). They keep running as signal but no longer\ngate the gem release and the dependent-repositories dispatch.",
"is_bot": false,
"headline": "ci: packaging test legs advisory (continue-on-error) — do not block r…",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T06:03:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7aa5b3ed856c46ee247e7d16c4e6657bb1f0dfc6",
"body": "The thrift-free engine release: libtfs replaces libdwarfs as the VFS\nengine (dwarfs-t backend, no folly/fbthrift), prebuilt libtfs/deps\npackages, trailer-aware tebako-main (tpkg), runtime manager for\nprebuilt runtime packages, stitcher, and launcher ABI v1 for\nthree-part packages (bootstrap + runtime + images).",
"is_bot": false,
"headline": "chore: version 0.15.0",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:59:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3c770c3550b2f6a3b3637c9d02cbe9a21e98996c",
"body": "Runtime side of the three-part package handoff (Stage 3B-2, spec §4.4):\na lean package's tebako-bootstrap execs the runtime as\n\n <runtime> --tebako-image <file>:<slot>:<mount-point> ...\n --tebako-entry <argv0> <user args...>\n\nand tebako-main now consumes that handoff before the classic\nc\n[…]\ns on ubuntu 24.04; the end-to-end run there is blocked by the\nprebuilt libtfs-deps-0.12.5-linux-gnu-arm64 package missing\nBoost.Process v2 symbols (upstream packaging issue, unrelated to this\nchange).",
"is_bot": false,
"headline": "feat: launcher ABI v1 (bootstrap→runtime image mounting)",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:57:03Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "206571ee8b40bd6d1111808519db1149a3cf2e60",
"body": "Tebako::Stitcher (pure Ruby + File IO, stdlib only) appends DwarFS images\nonto a prebuilt runtime binary and writes the tpkg manifest trailer\n(spec §4.3): 8-byte-aligned slots, slot table, fixed 166-byte header at\nEOF with magic TEBAKOTFS, LEAN package flag, runtime_ref, and a\nzlib-polynomial CRC32 \n[…]\nool is a user step).\n\nGolden-verified on macOS arm64: hello fixture pressed from source and\nstitched produce identical stdout and exit code, and identical image\nlayout (except the dispatcher stub.rb).",
"is_bot": false,
"headline": "feat: stitch flow — press from prebuilt runtimes (Stage 3A-4)",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:56:12Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ce4f6fd91438bdf21b2e53407e615c588e5115dd",
"body": "…es (Stage 3A-3)\n\nTebako::RuntimeManager resolves prebuilt tebako runtime packages from\ntamatebako/tebako-runtime-ruby releases into a machine-wide cache\n($TEBAKO_HOME or ~/.tebako, runtimes/<type>-<ruby>-<tebakoabi>-<platform>/).\n\n- manifest.json-first index with SHA256SUMS.txt fallback parsing\n- d\n[…]\nfline miss (123),\n no usable index (124), lock timeout (125)\n- tebako cache list / tebako cache prune [--all | --older-than Nd]\n\nstdlib only (net/http, fileutils, digest, json); 27 new rspec examples",
"is_bot": false,
"headline": "feat: runtime manager — resolve/download/verify/cache prebuilt runtim…",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:55:10Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b80ef0352b4ebee8fffadfaafb2c83e902663d17",
"body": "Probe the own executable for a tpkg manifest trailer at incbin startup\nand mount recorded images instead of the incbin section when present\n(spec 4.3 / 6):\n\n- trailer present: read self image, mount each slot at its recorded\n mount point via the legacy memfs path using the slot's explicit\n offset \n[…]\ntation (pre-existing, not introduced here): extra (non-root)\nslot mounts hit a libtfs/dwarfs-t multi-memfs engine bug (inode_offset\ndouble-subtraction in the FlatBuffers metadata path) -- see PR body.",
"is_bot": false,
"headline": "feat: trailer-aware tebako-main (append-mount path, Stage 3A-2)",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:54:13Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "94c22eba3de86ab810d158acdcd888b861807fff",
"body": "brew's static libjemalloc.a crashes packaged miniruby at startup on\nthe XCode 15.4 CI runners (SEGV in je_arena_ralloc during builtin\ninit); the dylib alternative fails test_101's no-shared-libs\nassertion. Neither libtfs nor ruby references je_ symbols (verified\nin the shipped archives), so link no allocator on macOS until a\nproperly built static jemalloc ships with libtfs-deps.",
"is_bot": false,
"headline": "fix(packager): drop jemalloc from the darwin link",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "afe9efc74c8ed971639ff9651075fefddefd82bf",
"body": "The harness captures press output into a variable with VERBOSE=no, so\nCI logs show the ASSERT lines but never the actual error. Print the\ncaptured output on non-zero/unexpected exit codes.",
"is_bot": false,
"headline": "test: print captured press output when a functional press fails",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eed02bb77d5a84507a4412840d1ffa3300349a3f",
"body": "(The env override in def_ext_prj_g is currently inert due to a missing\nclosing brace in its condition — the CMakeLists pin is the operative\nselection; common.env is kept in sync for the release convention and\nthe GITHUB_ENV echo.)",
"is_bot": false,
"headline": "chore: common.env DWARFS_WR_TAG=v0.12.8 (track the CMakeLists pin)",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5fd28643bdd8955fb617bde6e5b6f261a7083933",
"body": "The deps cache restored ruby build trees whose baked Makefiles/rbconfig\nreflected an older patch_libraries.rb (link libs list) — press relinks\nthen failed with no source-level explanation while setup passed. This\nbit twice in a row (pre-group list, then the jemalloc concatenation\ntypo). Packager changes now invalidate the cache.",
"is_bot": false,
"headline": "ci: hash lib/tebako/packager into the deps cache key",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3f6f24601eb1401b59c9fe27c7ad0dbe25251b83",
"body": "…k line\n\nThe line continuation in 7328be4 concatenated 'libjemalloc.a' and\n'-lc++' into a single nonexistent path and every macOS press failed to\nlink miniruby.",
"is_bot": false,
"headline": "fix(packager): keep the space before -lc++ in the darwin jemalloc lin…",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0e6506183f682966fb6bc670e2d13ad13903862e",
"body": null,
"is_bot": false,
"headline": "style: rubocop clean — inline group flags and single-use LIBTEBAKOFS",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6b3a7ef141ea7b85252bc50d8407f17bff887ccb",
"body": "…signment)",
"is_bot": false,
"headline": "style: rubocop clean (ClassLength 100/100, LineLength, no parallel as…",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "87c8a2a2c8f24df061dc50b0a07734db07a58416",
"body": "…gth 100/100)",
"is_bot": false,
"headline": "style: rubocop-clean jemalloc static link + group constants (ClassLen…",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "666e316b23a1f35e681245e39d0cdad74c813f39",
"body": null,
"is_bot": false,
"headline": "style: keep patch_libraries.rb within Metrics/ClassLength (101->99)",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e5929535bf58463e4f0608b9cfdd06a0d77ac4e0",
"body": "The prebuilt libtfs packages ship no allocator, so the plain -ljemalloc\nin darwin_libraries resolved to brew's libjemalloc.2.dylib and packaged\nbinaries failed the test_101_launcher no-shared-libs assertion. Link\nbrew's static archive by full path (Apple ld has no -l:<filename>).",
"is_bot": false,
"headline": "fix(packager): link jemalloc statically by full path on macOS",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d80795a1048dfcc2b71e13c54117e46e5cc9bc9f",
"body": "dwarfs-t tebako-v0.14.1-18: directory streams synthesize '.' and '..'\n(POSIX readdir semantics — the patches-dir Dir.read contract), and the\ndwarfs port links no jemalloc into the shipped libs (macOS dylib leak\nin packaged binaries).",
"is_bot": false,
"headline": "build: libtfs v0.12.8",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3d9731e891c4afe9c29bef32683de57293f52082",
"body": "…nk patch)\n\nThe restored deps trees carry ruby build state patched with the\npre---start-group patch_libraries.rb; patch stamps then skip\nre-patching and presses fail to link the libtfs dep set (circular\ncompression-registry refs) on Linux. CMakeLists.txt is hashed into the\nkey but patch_libraries.rb is not, so 3185d3a reused the stale tree.",
"is_bot": false,
"headline": "ci: bump CACHE_VER to 24 (invalidate deps built with the pre-group li…",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "98109161cdcdc3433916a2f5043447d978783481",
"body": "The clang-18-built libtfs-deps archives have circular member-level\nreferences (compression registrar/registry definitions vs users)\nwhose resolution order differs from the gcc-built ones; GNU ld's\nsingle-pass archive scanning leaves them unresolved and the miniruby\n(and extension) links fail with undefined compression_registrar::reg /\nregister_name references. miniruby link verified against the\nubuntu-20.04 gcc-10 container with the grouped list.",
"is_bot": false,
"headline": "fix(packager): link libtfs dep set in a --start-group on Linux",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "26b6cf56f3bcb41540a61abccef10f3424deed6d",
"body": "- gnu deps built in the ubuntu-20.04 ci container (glibc 2.31 baseline):\n fixes ext/openssl configure failures (__isoc23_strtol via triplet\n libcrypto) and ships the matching include/openssl tree\n- Linux tool binaries link the C++ runtime statically: musl mkdwarfs\n starts in tebako's alpine CI im\n[…]\nonger\n read the first unique file's bytes (--tebako-extract corruption),\n plus the legacy fd read clamp as defense in depth\n- dwarfs-t builds on the stock ubuntu-20.04 toolchain (no libstdc++ >= 11)",
"is_bot": false,
"headline": "build: libtfs v0.12.7",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "94fc413c8ba32d8db3a458f7406ee0bb66d40e07",
"body": null,
"is_bot": false,
"headline": "build: libtfs v0.12.6 (deps packages with headers)",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "585eb1d69d5b0e8d0da3103665325099b7579c9c",
"body": "The libtfs-deps package now ships a curated include/ tree (brotli,\nzstd, lz4, lzma, zlib, bzip2, libzip, xxhash, fmt, flatbuffers, boost\nfilesystem+chrono subset). Deploy it on the prebuilt path:\n\n- cmake/tebako-libtfs.cmake: the whole-tree copy already restores\n <vcpkg_installed>/<triplet>/include\n[…]\nive extensions (e.g. the brotli\n gem including <brotli/encode.h>) resolve the dep headers when the\n packaged build runs gem install — on the deps-package path and on\n the vcpkg fallback path alike.",
"is_bot": false,
"headline": "feat: deploy libtfs-deps curated headers for gem native extensions",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "687b3f1a6040230e0ec63aef6113c419c2301f66",
"body": null,
"is_bot": false,
"headline": "build: libtfs v0.12.5 (self-contained deps packages)",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ced7a20dc5bcb6d5f98856cb5c68a5cde47ae497",
"body": "…lt path)\n\nDownloads libtfs-deps-<ver>-<platform> from the release when available\n(>= v0.12.5): download+verify+deploy of the transitive static-lib set,\nno vcpkg bootstrap/manifest/install in the loop. Older tags fall back to\nthe existing vcpkg manifest path. Source fallback (DWARFS_PRELOAD=OFF)\nunchanged.",
"is_bot": false,
"headline": "feat: consume self-contained libtfs-deps packages (no vcpkg on prebui…",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "88cfbae8925eb42fc4ea1e9c0b02553322fcd30f",
"body": null,
"is_bot": false,
"headline": "style: rubocop corrections in patch_libraries.rb",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e7405db387ecadb7b23c3d4bf9d9e19e949f9423",
"body": null,
"is_bot": false,
"headline": "build: libtfs v0.12.4 (dwarfs-t tebako-v0.14.1-12 extents UAF fix)",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ad59227d27d0f64f07af5c8863f14a5fc56ed7e3",
"body": null,
"is_bot": false,
"headline": "build: libtfs v0.12.2 default pin (dwarfs-t tebako-v0.14.1-11)",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4c5e7477aba9354a59495689a2269370f3813b00",
"body": null,
"is_bot": false,
"headline": "build: libtfs v0.12.2 (dwarfs-t tebako-v0.14.1-11 dedup fix)",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1de52727f741ed0f2cd764f1a84194aa54bde4c9",
"body": null,
"is_bot": false,
"headline": "feat: env override for DWARFS_PRELOAD (source fallback toggle)",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "58f0dc16643df7d80f116c52794debc609b9f3b3",
"body": "…flags/libevent/libdwarf/fmt)",
"is_bot": false,
"headline": "chore: drop folly-era OS dependencies (boost/double-conversion/glog/g…",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8c6c91a8ebeda1ea518d7979d817befbefa8e23a",
"body": "…search)\n\nApple ld (ld_prime, Xcode 15.0) does not implement the GNU-style\n-l:<filename> library search: -l:libdwarfs_reader.a fails with\n'library not found' even with the triplet dir on -L (reproduced with a\nminimal main.c; -lfmt and full-path forms work). Emit full paths into\nDARWIN_DEP_LIBS_2 entries, resolved from deps_lib_dir/../vcpkg_installed/\n<triplet>/lib, matching how DARWIN_DEP_LIBS_1 and the brew libs are\nalready referenced. GNU ld platforms keep the -l: form.",
"is_bot": false,
"headline": "fix: reference vcpkg libs by full path on macOS (Apple ld has no -l: …",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6ddadfce70e21e0ec3cc025b791259fbdeb5a2b7",
"body": "tebako-fs.h and the codegen templates include <incbin/incbin.h>, which\nthe libdwarfs-wr package used to deploy into DEPS_INCLUDE_DIR. libtfs\ndoes not ship it, so the press-mode compile of tebako-fs.cpp and\ntebako-main.cpp failed with 'incbin/incbin.h file not found'. Download\nthe pinned header (common.env INCBIN_TAG) at configure time with\nSHA256 verification, skipping when the deployed file already matches.",
"is_bot": false,
"headline": "fix: provision incbin header dropped with libdwarfs-wr",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2709831a1e36a87099aef527d5ad5a553c5e8703",
"body": "…roken)\n\ndef_ext_prj_g in the tebako-tools submodule (e94e1ea) tests\n`if (DEFINED ENV{${TAG})` -- missing the closing brace -- so the\nenvironment variable never takes effect and the hardcoded default is\nalways used (reproduced in isolation). Bump the default to v0.12.1 so\nthe common.env pin actually reaches the libtfs download.",
"is_bot": false,
"headline": "fix: default DWARFS_WR_TAG to v0.12.1 (tebako-tools env override is b…",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "714b19fc2aaeba74926bb3147197c5cb6d3f6ed0",
"body": null,
"is_bot": false,
"headline": "build: libtfs v0.12.1",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9d7eec45802cd723d7e7798c3c880bb8f6552842",
"body": "Unix Makefiles pass add_custom_target COMMAND lines to /bin/sh with\nbackslash escaping only; the literal parens in '...(macos-arm64)...'\nbroke 'tebako setup' (syntax error near unexpected token) outside the\nNinja generator Task 2 verified with.",
"is_bot": false,
"headline": "fix: shell-safe echo in the prebuilt libtfs placeholder target",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1cdb220e92a74a90841d1126ddbb5d0352feac02",
"body": "Replace the folly/fbthrift-era link lists with the libtfs set:\n\n- patch_libraries.rb: DARWIN_DEP_LIBS_1 now names libtfs.a +\n libtebako_dirent_helper_c.a (full paths from deps/lib);\n DARWIN_DEP_LIBS_2 / COMMON_LINUX_LIBRARIES name the vcpkg-resolved\n transitive set (dwarfs_reader/common/metadata_\n[…]\n\n- the prebuilt packages were built WITH_SQUASHFS=ON, forcing LGPL\n libsquashfs onto every consumer via c_api -> backend_factory ->\n squashfs_backend; only the source build honors WITH_SQUASHFS=OFF.",
"is_bot": false,
"headline": "feat: link libtfs instead of folly/thrift dwarfs stack",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8cfb4a9f761e4dca64dc135b43750623ea423e83",
"body": "…ack)",
"is_bot": false,
"headline": "feat: consume libtfs v0.12.0 (prebuilt by default, vcpkg source fallb…",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "86c026693f0c99f8d3bc63c59dd2ad3989c72946",
"body": null,
"is_bot": false,
"headline": "chore: align tebako-tools (drop folly/fbthrift patch scripts)",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2026-07-23T05:53:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8738eff457dd8e2e6cede86ff9d729e396a0fc3f",
"body": "…acOS support (#325)",
"is_bot": false,
"headline": "chore: update dependencies, disable linting, Windows support, Intel M…",
"author_name": "Maxim Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-10-20T15:09:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2a0da078e3093f83767bd46d4a10e1378e216dd0",
"body": null,
"is_bot": false,
"headline": "chore: drop macOS-13 tests, update tools and dependencies",
"author_name": "maxirmx",
"author_login": "maxirmx",
"committed_at": "2025-09-21T10:34:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "28665264a62722d8c177f8d5a941f27aefa6d506",
"body": null,
"is_bot": false,
"headline": "fix: do not apply -std=gnu17 flag to gcc prior to 15.x",
"author_name": "Maxim Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-05-01T22:35:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a08351467893cb812b9eff78543a6ebf420ba8bf",
"body": null,
"is_bot": false,
"headline": "fix: resolve Ruby 3.1.x gcc-15 compatibility issue",
"author_name": "Maxim Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-05-01T18:30:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dd1a29750e5aaa93589c1c64873567ecec2e94d5",
"body": null,
"is_bot": false,
"headline": "chore: run rspec for linux in tebako development containers",
"author_name": "Maxim Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-04-30T21:24:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d706cf26648831516ceb28c49c131f57040a3dae",
"body": null,
"is_bot": false,
"headline": "fix: fix the signature of console_win32_vk (gcc 15 compatibility issue)",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-04-30T21:24:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "082db8755fd6c00cab2e7c8b8dbecc7f9d2a4bc8",
"body": "…tion",
"is_bot": false,
"headline": "fix: add -Wno-error=incompatible-pointer-types flag for Ruby compila…",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-04-30T21:24:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "db6548d86d0cf0319f904bc4ef37d31cf419290d",
"body": null,
"is_bot": false,
"headline": "fix: do not install Ruby if running tests in Tebako CI container",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-04-30T21:24:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9d3d045ebbe46720e96a8c3ffca9182c562e6374",
"body": null,
"is_bot": false,
"headline": "fix: run 'extra_win_clean' for clean command on MSys",
"author_name": "Maxim Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-04-29T19:12:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8be7c0ea62496df8530d76829d61f7c6d9354eaf",
"body": null,
"is_bot": false,
"headline": "fix: use '--platform ruby' option when call gem install on Msys",
"author_name": "Maxim Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-04-13T06:45:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "53574ceadb4c7eba1a51349fafa43cf72ec11e5f",
"body": "Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>",
"is_bot": false,
"headline": "chore: update README status badges, fix typos",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-04-09T21:48:02Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "c114c6601bb1e209a990036665c2d2d3b369ce58",
"body": null,
"is_bot": false,
"headline": "chore: remove linking against libunwind for MSys",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-04-09T21:48:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "68f4505821404bcc019c264bc5d0e3bc793a159a",
"body": "…flow.com/questions/79531986/multipe-errors-from-tebako-this-is-a-reposting-of-previous-proble-resolved-by-ru",
"is_bot": false,
"headline": "chore: update Windows installation instructions per https://stackover…",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-04-09T21:48:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "acde875ac480d24099f2f18bf85fb965cebfd5b3",
"body": null,
"is_bot": false,
"headline": "chore: bump libdwarfs version to v0.10.2",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-04-09T21:48:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e3449248697c57297bf800867a69fa103759bbc8",
"body": null,
"is_bot": false,
"headline": "chore: bump tools version to v0.6.6",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-04-09T21:48:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2bb8aefea9b467d26e53bc37a9e302afc2633cff",
"body": null,
"is_bot": false,
"headline": "fix: resolve issue with 'NUL' files in Ruby source tree on Windows",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-04-09T21:48:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "752f4cfa01b2254b035fb0c6c68cb3ae8c4413a4",
"body": "…ttps)",
"is_bot": false,
"headline": "chore: bump libdwarfs to v0.10.2 (change libarchive download url to h…",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-04-09T21:48:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7e878df1bf9c9dfa18f79399f57f49d4e2de91cd",
"body": null,
"is_bot": false,
"headline": "chore: update file headers",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-04-09T21:48:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "19d31037b4e653a8d692451b96a64af2f7510409",
"body": null,
"is_bot": false,
"headline": "feat: rewrite section re packaging scenarios",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-25T08:11:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3be980029a25b95bf06e38db8de810425556dbe8",
"body": null,
"is_bot": false,
"headline": "chore: gem version bump to 0.13.0",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-20T21:54:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4c449036a2f3988af409fd06c772e4db37cf05b1",
"body": "…nce order",
"is_bot": false,
"headline": "chore: remove from README duplicate information about options prefere…",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-20T21:54:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a39d1fb0029d9a6c19a3c4b4af775f12ac7453f1",
"body": null,
"is_bot": false,
"headline": "chore: review grammar and clarity of modified README sections",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-20T21:54:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "41f92077c95c54dd2db5272ee7f52b54611b87c4",
"body": "… Tebako' README section",
"is_bot": false,
"headline": "feat: add 'Packaging Ruby Gems with Post-Installation Requirements in…",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-20T21:54:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ab5cd45e8762d88d6b43cf0e0743bbcdd7fd0976",
"body": null,
"is_bot": false,
"headline": "chore: reorder README sections for better clarity",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-20T21:54:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f7b8dd958e304a7887f4f8eb6f0d2323ff16fe4d",
"body": "…ocument",
"is_bot": false,
"headline": "chore: split README and put installation instructions to a separate d…",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-20T21:54:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6bfc3597e403faacda4f1d792276b363141aab6d",
"body": null,
"is_bot": false,
"headline": "feat: add Ruby 3.4.2 support",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-17T10:53:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "173c90770eea343488a584a32de88d5ee7a09ea3",
"body": null,
"is_bot": false,
"headline": "chore: bump libdwarsf version to 0.10.1; tools to 0.6.4",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-17T10:53:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c82d094e9ed4f02fd484b47a0e9b08698237c5e8",
"body": null,
"is_bot": false,
"headline": "chore: update header comments; remove obsolete reference to cirrus.yml",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-16T17:10:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a9219791a311d0d5eeedfd2bee38a01363b595c7",
"body": null,
"is_bot": false,
"headline": "chore: update header comments",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2025-03-16T12:08:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "297a40f5b335ff7de0b92bdbce40f22c22287b81",
"body": "…for Linux tests",
"is_bot": false,
"headline": "feat: refactor release workflow to use Tebako development containers …",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-16T12:08:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "df107773595c64b96eb561cf1a33109df2432eb3",
"body": null,
"is_bot": false,
"headline": "feat: use Tebako development container for Alpine tests",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-16T12:08:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "23948a8873f011b0985140b013546bd8bdd44f9c",
"body": null,
"is_bot": false,
"headline": "feat: create setup-test-matrix action",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-16T12:08:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "67bdbe8787002e984a11239b9b5ea2454721894b",
"body": null,
"is_bot": false,
"headline": "feat: use tebako development containers for Ubuntu tests",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-16T12:08:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "817b79f6432e8d62e2a7c2f9eb10365bf887691a",
"body": null,
"is_bot": false,
"headline": "chore: bump libdwarfs to v0.10.0",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-16T12:08:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e25a6ac906238132ad5eca02f282f51e8ff2744e",
"body": null,
"is_bot": false,
"headline": "chore: refactor bundle_config method",
"author_name": "maxirmx",
"author_login": "maxirmx",
"committed_at": "2025-03-16T12:08:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "49c9ef2ef34e686dfb541abf0ed680bf90dc0596",
"body": null,
"is_bot": false,
"headline": "chore: optimize workflows for the cases of minor changes",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-16T11:22:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a7f5fdaa4662ceaf51ce06e57b23db048cfb803d",
"body": null,
"is_bot": false,
"headline": "feat: add contribution guide and code of conduct, fixes #282",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2025-03-04T14:27:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "61cb3947d24bf97803cf6812fada8a80dcd78c24",
"body": null,
"is_bot": false,
"headline": "chore: update README to show badges in a more organized way",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2025-03-04T14:27:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d9ccc99e053eda0344b93feb72540e9266f71ecb",
"body": null,
"is_bot": false,
"headline": "fix: add license file (LICENSE.md), fixes #275",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2025-03-04T09:59:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a10f0e3c9510ff385b22d9c325398d586740bda6",
"body": null,
"is_bot": false,
"headline": "fix: correctly name the artefact #274",
"author_name": "Maxim Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-03T12:03:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9b0aaf6e51a5a07f30e11e5f64fdf9f62b101d3f",
"body": null,
"is_bot": false,
"headline": "chore: move a call of finalize script from CMake script to Ruby",
"author_name": "Maxim Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-03T12:03:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d66e8673a5f188072c6a33b2fdf1d7b397635cc3",
"body": null,
"is_bot": false,
"headline": "fix: produce tebako runtime with default output name #273",
"author_name": "Maxim Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-03T12:03:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "067b48c3f1456f913c86e870b85e6b996b0c488c",
"body": null,
"is_bot": false,
"headline": "chore: update tests for warning messages",
"author_name": "Maxim Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-03T12:03:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c90ffea838740d751855050418c578a3874b748b",
"body": null,
"is_bot": false,
"headline": "fix: '... within root ...' warnings #257, #272",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-03T12:03:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "01a31d80ad675836fa96bcd12838d5fb66f0b944",
"body": null,
"is_bot": false,
"headline": "chore: update README information about Tebako prefix setting",
"author_name": "Maxim Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-03T12:03:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dd166004dbc5817224ff4c60ee85b4e073dfa65e",
"body": "…ed inside tebako root (#257)",
"is_bot": false,
"headline": "feat: issue a warning message if tebako packaging environment is plac…",
"author_name": "Maxim Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-03T12:03:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "35e6262afa7b9d7464a41699a0b387aafc704866",
"body": null,
"is_bot": false,
"headline": "chore: version bump to v0.12.16",
"author_name": "Maxim Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-03-03T12:03:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "20b924ed94629d9512c10295459632b12192caac",
"body": null,
"is_bot": false,
"headline": "fix: use msys shell to install tebako gem on Windows",
"author_name": "Maxim Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-02-28T09:19:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d8b0052049612af7c65bf778c31c55c46ffef241",
"body": null,
"is_bot": false,
"headline": "chore: update readme for readability",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2025-02-26T09:26:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6fe2eba06ca5dc8397dd0884074a846ab6772645",
"body": null,
"is_bot": false,
"headline": "chore: update readme for readability",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2025-02-26T09:26:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6c29b657a42821f2ff7ee9f35a026ea77fbb9187",
"body": null,
"is_bot": false,
"headline": "chore: update readme for `mode` commands",
"author_name": "Ronald Tse",
"author_login": "ronaldtse",
"committed_at": "2025-02-26T09:26:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "07bec6e8a0b5f0aca9f246d69acf74008a142cb5",
"body": null,
"is_bot": false,
"headline": "chore: version bump to 0.12.15",
"author_name": "Maxim Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-02-24T07:27:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b878499acdc3ef085622867ccacfe7d01cd989e5",
"body": null,
"is_bot": false,
"headline": "fix: prioritize bundled thrift includes",
"author_name": "maxirmx",
"author_login": "maxirmx",
"committed_at": "2025-02-24T04:54:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dd9079cd11142659d7e4b7e43fa5e3be96fa1761",
"body": null,
"is_bot": false,
"headline": "chore: bump libdwarfs version to 0.9.6",
"author_name": "Maxim Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-02-22T09:56:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d11916aa92f581171c60837980cc175bba95a88d",
"body": "3S",
"is_bot": false,
"headline": "chore: update scenario_manager spec",
"author_name": "Maxim Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-02-22T09:56:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d68b52cd5be7fe66fe8c3be60a5d58fc26151ebe",
"body": "… 1.1.1",
"is_bot": false,
"headline": "fix: update folly patching for MSys, set correct OPENSSL_ROOT_DIR for…",
"author_name": "Maxim Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-02-22T09:56:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e40570a1b7fe93fb89432a7ad4730b0e65884585",
"body": null,
"is_bot": false,
"headline": "chore: temporary disable Ruby 2.7.8, 3.0.7 tests",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-02-16T17:48:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "70d2af2472f64b24720304c762a3ab04675e8d64",
"body": null,
"is_bot": false,
"headline": "chore: version bump to 0.12.13",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-02-15T08:05:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "54a749666ca7ccd8dcb2cb86eeb40a83871f2efe",
"body": null,
"is_bot": false,
"headline": "feat: put MacOS test matrix to json file",
"author_name": "Maxim [maxirmx] Samsonov",
"author_login": "maxirmx",
"committed_at": "2025-02-15T08:05:12Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 28,
"commits_last_year": 27,
"latest_release_at": "2025-11-04T11:36:55Z",
"latest_release_tag": "v0.14.0",
"releases_from_tags": false,
"days_since_last_push": 0,
"active_weeks_last_year": 3,
"days_since_latest_release": 260,
"mean_days_between_releases": 29.2
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": true,
"health_percentage": 50,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "tebako",
"exists": true,
"license": "BSD-2-Clause",
"keywords": [],
"ecosystem": "rubygems",
"matches_repo": true,
"registry_url": "https://rubygems.org/gems/tebako",
"is_deprecated": false,
"latest_version": "0.15.1",
"repository_url": "https://github.com/tamatebako/tebako",
"versions_count": 72,
"total_downloads": 48976,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": "2023-06-16T20:38:32.653000Z",
"latest_published_at": "2026-07-23T08:27:37.627000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 0
}
]
},
"popularity": {
"forks": 21,
"stars": 438,
"watchers": 9,
"fork_history": {
"days": [
{
"date": "2023-10-12",
"count": 1
},
{
"date": "2024-02-04",
"count": 1
},
{
"date": "2024-03-19",
"count": 1
},
{
"date": "2024-05-10",
"count": 1
},
{
"date": "2024-06-18",
"count": 1
},
{
"date": "2024-11-05",
"count": 1
},
{
"date": "2024-12-05",
"count": 1
},
{
"date": "2025-01-02",
"count": 1
},
{
"date": "2025-01-24",
"count": 1
},
{
"date": "2025-02-22",
"count": 1
},
{
"date": "2025-03-07",
"count": 1
},
{
"date": "2025-03-08",
"count": 1
},
{
"date": "2025-04-08",
"count": 1
},
{
"date": "2025-06-01",
"count": 1
},
{
"date": "2026-01-06",
"count": 1
},
{
"date": "2026-01-18",
"count": 1
},
{
"date": "2026-02-23",
"count": 1
},
{
"date": "2026-03-07",
"count": 1
},
{
"date": "2026-07-06",
"count": 1
},
{
"date": "2026-07-14",
"count": 1
}
],
"complete": true,
"collected": 20,
"total_forks": 21
},
"star_history": null,
"open_issues_and_prs": 54
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [],
"largest_source_bytes": 35216,
"source_files_sampled": 111,
"oversized_source_files": 0,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"Gemfile"
],
"advisories": {
"error": null,
"scope": "repository_graph",
"source": "osv",
"findings": [],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 13,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 25,
"direct_affected_count": 0
},
"ecosystems": [
"rubygems"
],
"dependencies": [],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "bundler",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "byebug",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "byebug",
"direct": false,
"version": "11.1.3",
"ecosystem": "rubygems"
},
{
"name": "date",
"direct": false,
"version": "3.4.1",
"ecosystem": "rubygems"
},
{
"name": "debug",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "debug",
"direct": false,
"version": "1.10.0",
"ecosystem": "rubygems"
},
{
"name": "excavate",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "expressir",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "ffi",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "ffi",
"direct": false,
"version": "1.17.1",
"ecosystem": "rubygems"
},
{
"name": "ffi-libarchive-binary",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "hoe",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "io-console",
"direct": false,
"version": "0.8.0",
"ecosystem": "rubygems"
},
{
"name": "irb",
"direct": false,
"version": "1.15.1",
"ecosystem": "rubygems"
},
{
"name": "libmspack",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "minitest",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "net-http",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "nokogiri",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "pp",
"direct": false,
"version": "0.6.2",
"ecosystem": "rubygems"
},
{
"name": "prettyprint",
"direct": false,
"version": "0.2.0",
"ecosystem": "rubygems"
},
{
"name": "psych",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "psych",
"direct": false,
"version": "5.2.3",
"ecosystem": "rubygems"
},
{
"name": "rake",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "rdbg",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "rdoc",
"direct": false,
"version": "6.11.0",
"ecosystem": "rubygems"
},
{
"name": "reline",
"direct": false,
"version": "0.6.0",
"ecosystem": "rubygems"
},
{
"name": "rspec",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "rubocop",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "rubocop-rubycw",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "sassc",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "seven-zip",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "simplecov",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "simplecov-cobertura",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "stringio",
"direct": false,
"version": "3.1.2",
"ecosystem": "rubygems"
},
{
"name": "text-table",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "text-table",
"direct": false,
"version": "1.2.4",
"ecosystem": "rubygems"
},
{
"name": "thor",
"direct": false,
"version": null,
"ecosystem": "rubygems"
},
{
"name": "yaml",
"direct": false,
"version": null,
"ecosystem": "rubygems"
}
],
"collected": true,
"truncated": false,
"total_count": 38,
"direct_count": 0,
"indirect_count": 38
}
},
"maintainership": {
"issues": {
"open_prs": 3,
"merged_prs": 133,
"open_issues": 51,
"closed_ratio": 0.718,
"closed_issues": 130,
"closed_unmerged_prs": 13
},
"bus_factor": 1,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "maxirmx",
"commits": 333,
"avatar_url": "https://avatars.githubusercontent.com/u/2081498?v=4"
},
{
"type": "User",
"login": "ronaldtse",
"commits": 58,
"avatar_url": "https://avatars.githubusercontent.com/u/11865?v=4"
},
{
"type": "User",
"login": "CAMOBAP",
"commits": 10,
"avatar_url": "https://avatars.githubusercontent.com/u/2169738?v=4"
},
{
"type": "User",
"login": "bradgessler",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/4628?v=4"
},
{
"type": "User",
"login": "chip",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/31725?v=4"
},
{
"type": "User",
"login": "d4rky-pl",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/284395?v=4"
}
],
"contributors_sampled": 6,
"top_contributor_share": 0.824
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"alpine.yml",
"gem-test-and-release.yml",
"lint-and-rspec.yml",
"macos.yml",
"ubuntu.yml",
"windows-msys.yml"
],
"has_docs_dir": false,
"linter_configs": [
".rubocop.yml"
],
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"Gemfile.lock"
],
"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": 0,
"reason": "branch protection not enabled on development/release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 4,
"reason": "2 out of 5 merged PRs checked by a CI test -- score normalized to 4",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 0,
"reason": "Found 0/10 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 7 contributing companies or organizations",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 0,
"reason": "no update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 9,
"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 0 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": 8,
"reason": "SAST tool is not run on all commits -- score normalized to 8",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 0,
"reason": "security policy file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": 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": "51787fd44a14a259e3d5783554da1f38246ce0b8",
"ran_at": "2026-07-23T08:38:52Z",
"aggregate_score": 4.8,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-23T08:27:30Z",
"oldest_open_prs": [
{
"number": 284,
"created_at": "2025-03-04T15:26:44Z",
"last_comment_at": "2025-03-04T23:39:16Z",
"last_comment_author": "ronaldtse"
},
{
"number": 332,
"created_at": "2026-01-18T17:45:21Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 336,
"created_at": "2026-07-06T21:12:02Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": "2026-07-23T05:57:03Z",
"ci_last_conclusion": null,
"oldest_open_issues": [
{
"number": 3,
"created_at": "2021-07-19T05:22:38Z",
"last_comment_at": "2021-10-21T00:27:39Z",
"last_comment_author": "ronaldtse"
},
{
"number": 4,
"created_at": "2021-07-19T05:23:23Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 11,
"created_at": "2021-08-25T07:13:29Z",
"last_comment_at": "2021-12-13T12:29:14Z",
"last_comment_author": "maxirmx"
},
{
"number": 48,
"created_at": "2021-12-13T06:01:12Z",
"last_comment_at": "2021-12-17T17:16:53Z",
"last_comment_author": "maxirmx"
},
{
"number": 52,
"created_at": "2021-12-15T19:45:38Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 59,
"created_at": "2021-12-18T08:06:13Z",
"last_comment_at": "2023-07-26T15:07:44Z",
"last_comment_author": "maxirmx"
},
{
"number": 60,
"created_at": "2021-12-21T12:53:15Z",
"last_comment_at": "2021-12-22T02:29:02Z",
"last_comment_author": "ronaldtse"
},
{
"number": 72,
"created_at": "2022-01-21T13:36:20Z",
"last_comment_at": "2022-02-15T08:39:41Z",
"last_comment_author": "maxirmx"
},
{
"number": 74,
"created_at": "2022-02-15T14:05:44Z",
"last_comment_at": "2022-09-09T13:21:57Z",
"last_comment_author": "ronaldtse"
},
{
"number": 119,
"created_at": "2023-11-15T13:51:53Z",
"last_comment_at": "2025-03-18T17:05:12Z",
"last_comment_author": "maxirmx"
},
{
"number": 142,
"created_at": "2024-04-01T13:09:13Z",
"last_comment_at": "2024-07-29T03:58:24Z",
"last_comment_author": "ronaldtse"
},
{
"number": 154,
"created_at": "2024-06-27T18:58:02Z",
"last_comment_at": "2025-02-27T11:20:44Z",
"last_comment_author": "maxirmx"
},
{
"number": 156,
"created_at": "2024-06-30T13:00:46Z",
"last_comment_at": "2024-08-04T18:17:10Z",
"last_comment_author": "maxirmx"
},
{
"number": 170,
"created_at": "2024-07-21T01:47:57Z",
"last_comment_at": "2024-07-29T03:33:17Z",
"last_comment_author": "ronaldtse"
},
{
"number": 176,
"created_at": "2024-07-29T03:44:36Z",
"last_comment_at": "2024-07-29T03:47:07Z",
"last_comment_author": "ronaldtse"
},
{
"number": 186,
"created_at": "2024-08-14T08:05:12Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 197,
"created_at": "2024-09-02T21:01:13Z",
"last_comment_at": "2026-07-06T21:36:27Z",
"last_comment_author": "SeanLF"
},
{
"number": 220,
"created_at": "2024-12-18T20:04:33Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 231,
"created_at": "2025-01-09T13:13:44Z",
"last_comment_at": "2025-01-15T20:34:28Z",
"last_comment_author": "maxirmx"
},
{
"number": 233,
"created_at": "2025-01-12T15:17:25Z",
"last_comment_at": "2025-03-06T07:22:02Z",
"last_comment_author": "ByronHRio"
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/tamatebako/tebako",
"host": "github.com",
"name": "tebako",
"owner": "tamatebako"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 63,
"inputs": {
"security": 58,
"vitality": 68,
"community": 61,
"governance": 60,
"engineering": 69
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "moderate",
"name": "Vitality",
"value": 68,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "moderate",
"name": "Development activity",
"note": null,
"notes": [],
"value": 61,
"inputs": {
"commits_last_year": 27,
"human_commit_share": 1,
"days_since_last_push": 0,
"active_weeks_last_year": 3
},
"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": "3/52 weeks with commits",
"points": 2.1,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 3
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "27 commits in the last year",
"points": 13,
"status": "partial",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 27
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "good",
"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": 78,
"inputs": {
"releases_count": 28,
"latest_release_tag": "v0.14.0",
"releases_from_tags": false,
"days_since_latest_release": 260,
"mean_days_between_releases": 29.2
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "28 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 28
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 260 days ago",
"points": 16.2,
"status": "partial",
"details": [
{
"code": "release_recency",
"params": {
"days": 260
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~29.2 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 29.2
}
}
],
"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": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "maintained",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": 0,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 0 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 0
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "moderate",
"name": "Community & Adoption",
"value": 61,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "moderate",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 59,
"inputs": {
"forks": 21,
"stars": 438,
"watchers": 9,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "438 stars",
"points": 42.8,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 438
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "21 forks",
"points": 10.8,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 21
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "9 watchers",
"points": 5,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 9
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "moderate",
"name": "Community health",
"note": null,
"notes": [],
"value": 64,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": true,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "license file present, not a recognized license",
"points": 16.9,
"status": "partial",
"details": [
{
"code": "license_custom",
"params": {}
}
],
"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": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
},
{
"key": "ecosystem_adoption",
"band": "moderate",
"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": 61,
"inputs": {
"packages": [
"tebako"
],
"dependents": null,
"ecosystems": "rubygems",
"total_downloads": 48976,
"monthly_downloads": null
},
"components": [
{
"key": "total_downloads",
"name": "Total downloads",
"detail": "48,976 downloads all-time across rubygems",
"points": 48.7,
"status": "partial",
"details": [
{
"code": "downloads_total",
"params": {
"count": 48976,
"ecosystems": "rubygems"
}
}
],
"max_points": 80
},
{
"key": "registry_dependents",
"name": "Registry dependents",
"detail": "not reported by this ecosystem",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_reported_by_this_ecosystem",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "moderate",
"name": "Sustainability & Governance",
"value": 60,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "at_risk",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 31,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 6,
"top_contributor_share": 0.824
},
"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 82% of commits",
"points": 4,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 82
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "6 contributors",
"points": 8.1,
"status": "partial",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 6
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 7 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "moderate",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 68,
"inputs": {
"merged_prs": 133,
"open_issues": 51,
"closed_issues": 130,
"issue_closed_ratio": 0.718,
"closed_unmerged_prs": 13
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "72% of issues closed",
"points": 33.6,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 72
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "133/146 decided PRs merged",
"points": 34.8,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 133,
"decided": 146
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/10 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "moderate",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 54,
"inputs": {
"followers": 3,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "tamatebako",
"public_repos": 19,
"account_age_days": 1830
},
"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": "3 followers of tamatebako",
"points": 4.3,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 3,
"login": "tamatebako"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "19 public repos, account ~5 yr old",
"points": 19.5,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 19
}
},
{
"code": "account_age_years",
"params": {
"years": 5
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"tebako"
],
"ecosystems": "rubygems",
"any_deprecated": false,
"min_days_since_publish": 0
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on rubygems",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "rubygems"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 0 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 0
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "72 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 72
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "moderate",
"name": "Engineering Quality",
"value": 69,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "good",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 72,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "6 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 6
}
}
],
"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": ".rubocop.yml",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".rubocop.yml"
}
}
],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "2 out of 5 merged PRs checked by a CI test -- score normalized to 4",
"points": 8,
"status": "partial",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "moderate",
"name": "Documentation",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"topics": [],
"has_wiki": true,
"homepage": "https://www.tebako.org",
"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://www.tebako.org",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "moderate",
"name": "Security",
"value": 58,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 48,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 4.8
},
"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": "branch protection not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "2 out of 5 merged PRs checked by a CI test -- score normalized to 4",
"points": 1,
"status": "partial",
"details": [],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 0/10 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 7 contributing companies or organizations",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "no update tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.2,
"status": "partial",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "30 commit(s) and 0 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 is not run on all commits -- score normalized to 8",
"points": 4,
"status": "partial",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "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": "dependency_advisories",
"band": "excellent",
"name": "Dependency advisories",
"note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 13 resolved dependencies against OSV; 25 could not be assessed (no resolved version, an unsupported ecosystem, or beyond the reported package list). This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"indirect_dependencies_free_of_known_advisories",
"no_advisories_left_outstanding"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "advisories_scope_repository",
"params": {
"assessed": 13
}
},
{
"code": "advisories_unassessed",
"params": {
"count": 25
}
},
{
"code": "advisories_repo_graph_caveat",
"params": {}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 100,
"inputs": {
"source": "osv",
"advisories": 0,
"affected_packages": 0,
"assessed_packages": 13,
"unassessed_packages": 25,
"affected_by_severity": "none",
"direct_affected_packages": 0
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "no direct dependency carries a known advisory",
"points": 35,
"status": "met",
"details": [
{
"code": "no_direct_advisories",
"params": {}
}
],
"max_points": 35
},
{
"key": "indirect_dependencies_free_of_known_advisories",
"name": "Indirect dependencies free of known advisories",
"detail": "transitive set not separable from development and test dependencies in this scope",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_scope_not_separable",
"params": {}
}
],
"max_points": 25
},
{
"key": "no_advisories_left_outstanding",
"name": "No advisories left outstanding",
"detail": "no advisory carries a publication date",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_no_publication_date",
"params": {}
}
],
"max_points": 40
}
]
},
{
"key": "malicious_dependencies",
"band": "excellent",
"name": "Malicious dependencies",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"source": "osv",
"meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
"packages": [],
"red_flag": false,
"assessed_packages": 13,
"malicious_packages": 0,
"direct_malicious_packages": 0,
"withdrawn_malicious_packages": 0,
"installable_malicious_packages": 0
},
"components": [
{
"key": "no_dependency_reported_as_a_malicious_package",
"name": "No dependency reported as a malicious package",
"detail": "no dependency is reported as a malicious package",
"points": 100,
"status": "met",
"details": [
{
"code": "no_malicious_dependencies",
"params": {}
}
],
"max_points": 100
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 7
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "at_risk",
"name": "AI Readiness",
"value": 45,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "at_risk",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 1,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "no CLAUDE.md / AGENTS.md / editor rules",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_instructions",
"params": {}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "100 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 100,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "at_risk",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 45,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"Gemfile.lock"
],
"has_dockerfile": false,
"typed_language": false,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [],
"agent_commit_share": 0.01,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"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": ".rubocop.yml",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".rubocop.yml"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "1 of the last 100 commits agent-authored or agent-credited",
"points": 2,
"status": "partial",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 1,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "moderate",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 55,
"inputs": {
"primary_language": "Ruby",
"largest_source_bytes": 35216,
"source_files_sampled": 111,
"oversized_source_files": 0
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "Ruby without a type-check config",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_typecheck_config_language",
"params": {
"language": "Ruby"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "0/111 source files over 60KB",
"points": 55,
"status": "met",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 111,
"oversized": 0
}
}
],
"max_points": 55
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
],
"report_type": "repository",
"generated_at": "2026-07-23T08:39:08.144590Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/t/tamatebako/tebako.svg",
"full_name": "tamatebako/tebako",
"license_state": "custom",
"license_spdx": null
}