Raw JSON report machine-readable
{
"data": {
"repo": {
"topics": [
"database",
"memory-db",
"postgres",
"redis"
],
"is_fork": false,
"size_kb": 1078,
"has_wiki": true,
"homepage": null,
"languages": {
"Go": 1484893,
"Shell": 674
},
"pushed_at": "2026-07-22T19:40:37Z",
"created_at": "2026-07-03T15:10:33Z",
"owner_type": "User",
"updated_at": "2026-07-23T18:31:53Z",
"description": "A beta DB based on rohanthewiz/btypeDB - based on tidwall/btype",
"is_archived": false,
"is_disabled": false,
"license_spdx": null,
"default_branch": "main",
"license_spdx_raw": null,
"primary_language": "Go",
"significant_languages": [
"Go"
]
},
"owner": {
"blog": null,
"name": "Rohan Allison",
"type": "User",
"login": "rohanthewiz",
"company": null,
"location": "Texas",
"followers": 19,
"avatar_url": "https://avatars.githubusercontent.com/u/1130495?v=4",
"created_at": "2011-10-15T20:09:41Z",
"is_verified": null,
"public_repos": 136,
"account_age_days": 5399
},
"license": {
"state": "absent",
"spdx_id": null,
"raw_spdx": null,
"file_present": false,
"scorecard_found": false,
"profile_has_license": false
},
"activity": {
"releases": [
{
"tag": "v0.6.4",
"kind": "patch",
"published_at": "2026-07-22T19:40:34Z"
},
{
"tag": "v0.6.3",
"kind": "patch",
"published_at": "2026-07-22T15:30:16Z"
},
{
"tag": "v0.6.2",
"kind": "patch",
"published_at": "2026-07-20T00:05:25Z"
},
{
"tag": "v0.6.1",
"kind": "patch",
"published_at": "2026-07-19T22:39:45Z"
},
{
"tag": "v0.6.0",
"kind": "minor",
"published_at": "2026-07-19T22:21:50Z"
}
],
"recent_commits": [
{
"oid": "f5253cde16820ce86243a6fde66c6c0bcc20725a",
"body": "Add an \"Encryption at rest\" section to the README and the bytdb skill\ncovering WithEncryptionKey (value-only AES-256-GCM, v2 header, ciphertext\nthat flows to replicas/backups, wrong/missing-key errors, bytdbd key\nflags). Bump pgwire/go.mod's bytdb pin v0.6.3 -> v0.6.4 for the paired tag.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Release v0.6.4: document WAL encryption; bump pgwire bytdb pin",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-22T19:40:34Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "9c3a3d76dabd83c7c10033f3dbfbd2d96220b11e",
"body": "Repin root and pgwire go.mod to btypedb v0.6.2, which adds value-only\nAES-256-GCM WAL encryption (WithEncryptionKey, v2 header). Verified both\nmodules build against the published tag with GOWORK=off.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Bump btypedb pin to v0.6.2 (WAL encryption at rest)",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-22T19:34:41Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "813622c7298bd1a2f35878e35a3304e8c9219f60",
"body": "Re-export btypedb.WithEncryptionKey as bytdb.WithEncryptionKey (mirrors\nWithSyncNever); Engine.Open already forwards options. bytdbd gains\n-encryption-key-file / -encryption-key-env (raw 32 bytes, 64 hex chars, or\nbase64 of 32; never on argv, so it can't leak via ps or shell history).\n\nBecause repli\n[…]\nPairs with btypedb WAL encryption (value-only AES-256-GCM, v2 header).\nNot yet released -- pending a btypedb version bump + repin.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "WAL encryption at rest: re-export + bytdbd flags + tests",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-22T18:05:38Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "59eacf03c13e6f87b42c7e453d46ca36ba5ac99b",
"body": "…o v0.6.3\n\nbtypedb v0.6.1 carries the DB.Update recover that releases the writer lock\non a panic in the transaction closure, fixing the one-shot\nInsert/Update/Delete/DDL write paths at the source. Root and pgwire both\npin it. pgwire's bytdb pin moves to v0.6.3 for this release (resolved\nlocally via the replace directive).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Bump btypedb pin to v0.6.1 (Update panic-recover); pgwire bytdb pin t…",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-22T15:30:16Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "dda7872fc2ec60c877e6017f6d8f395d28a2dc43",
"body": "…restore manifest)\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Session doc: production-comb follow-ups (Update recover, pgwire DoS, …",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-22T13:39:21Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "a50e50eaeccbf930659cb20cb62ec8a91219c1fc",
"body": "…ward\n\nRestore previously chose the newest generation whose chunk chain started\nat offset zero. A generation freshly rolled by a compaction has exactly\nthat shape after its very first partial ship, so restore could pick an\n8 MB fragment of the new epoch over a complete older generation —\nsilently ro\n[…]\nneration skipped for an older complete one; all-short ->\nErrIncompleteReplica. Existing ship/restore/prune/prefix tests unchanged.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "replicate: generation-complete manifest — no silent restore roll-back…",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-22T13:37:11Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "9a70873842d6d1dcef23b5b44de7c0955d9cf280",
"body": "… caps\n\nCloses the DoS follow-ups surfaced in the production comb. Six changes,\neach with a regression test (dos_test.go unit-level, dos_wire_test.go end\nto end over a socket):\n\n- Write deadline (Server.WriteTimeout, default 60s, negative disables).\n A client that opens a writable transaction block\n[…]\nr.IdleTimeout, default off so\n connection pools are unaffected): terminates a session idle between\n statements with FATAL 57P05.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "pgwire: DoS hardening — write deadline, bounded body reads, conn/stmt…",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-22T13:27:23Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "16d2f48108d7e51b46050a8f06b2570b51b6e4c8",
"body": "Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Session doc: production comb — fixes, fuzzing, doc sync",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-22T12:52:58Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "65f99e8ca3ec84de5b6e5a08738aaeacf2002a1e",
"body": "- sql/parser: bound selectStmt recursion — nested FROM subqueries no\n longer overflow the stack (uncatchable fatal, killed the server)\n- sql/agg: SUM(expr) no longer drops runtime-float rows (e.g.\n SUM(CASE WHEN c THEN 1 ELSE 1.5 END) returned 1, not 7.0)\n- ddl: DropColumn now shifts foreign-key c\n[…]\nhSyncNever, Txn.Sequence, ctx-exec wrappers, viewOID.\nDocs: README + skill gain OWNER TO, BETWEEN, $n in LIMIT/OFFSET, and the\nS3 timeout note.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Production comb: 6 correctness/DoS fixes + fuzz + gap tests",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-22T12:52:58Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "33509b87360e39b5e93c172fe52bf2fe49727bb0",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Session doc: BETWEEN + LIMIT/OFFSET params, v0.6.2 release",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-20T00:07:06Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "526aee8a5cd67e3b4cf0947b5e3a47d07fd5245c",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "pgwire: bump bytdb pin to v0.6.2 (BETWEEN, LIMIT/OFFSET params)",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-20T00:06:02Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "91778f1af257f63dfbcaebac34cbf9be0c9844c4",
"body": "- [NOT] BETWEEN [SYMMETRIC] parses as an exprCmp postfix, desugared to\n the comparisons it is defined as — works in WHERE, CHECK constraints\n (the pg_dump shape), and anywhere else expressions do.\n- LIMIT/OFFSET accept $n counts: parsed into LimitParam/OffsetParam,\n resolved to the int64 twins at\n[…]\nejected), counted by numParams, described as int so\n wire drivers encode int8.\n- pgwire maps the negative-count errors to SQLSTATE 2201W/2201X.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "sql: BETWEEN in scalar grammar; $n placeholders in LIMIT/OFFSET",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-20T00:05:25Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f7decca8394c53ebae070784519de143b5d5552f",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Skill: document ALTER TABLE OWNER TO no-op",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-19T22:48:53Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "7744cb76d917466615d5e881f1fe167c5f7d5935",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Session doc: ALTER TABLE OWNER TO no-op, v0.6.1 release",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-19T22:46:39Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "e047b68703cbcb3f0d7ca6c80ebb4b1f8b114187",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "pgwire: bump bytdb pin to v0.6.1 (OWNER TO no-op)",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-19T22:40:19Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "0b9969dd29d359e4c9fd8c4ce7f828eb10f3cad6",
"body": "bytdb has no roles, but pg_dump output and migration tools (goose)\nemit OWNER TO lines routinely. Accept the statement and execute it as\na no-op — deliberately exempt from the DDL-in-transaction-block guard\nso goose's per-migration transactions pass through.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "sql: parse and ignore ALTER TABLE ... OWNER TO",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-19T22:39:45Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "e04e22ce24eedc9f59fefac5a37b02344674cd85",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Session doc: S3 replication, v0.6.0 release",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-19T22:29:58Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "4a104a0bb1108a38b9411cc43c936029a4b81982",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "pgwire: pin bytdb v0.6.0 for the versioned nested-module tag",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-19T22:26:50Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "18a430bb67699b39fa58c09d20d9737e131554b8",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Skill: document backup streaming and S3 replication",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-19T22:21:50Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "a815462989ecf44f00d9c49ceb48a2d122154a8e",
"body": "Litestream-style asynchronous replication to any S3-compatible object\nstore. The replicate package ships the append-only storage log as\nimmutable byte-range chunks (gen/<id>/<start>-<end>.wlog), rolling a\nnew generation on compaction or process restart and pruning old ones;\nRestore concatenates the \n[…]\nate/s3) and a streaming\nEngine.BackupTo(io.Writer) for direct-to-bucket snapshots. Rides the\nnew btypedb v0.6.0 LogState/ReadLogRange epoch API.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "S3 replication: replicate package, Engine.BackupTo, btypedb v0.6.0",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-19T22:20:36Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "35253986a226d2c4d0d5e1ac44c2c623d32cb56c",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "ON DELETE CASCADE foreign keys; README refresh; bytdb usage skill",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-19T21:13:16Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "74f66d9eaba971664e7701a46a55f81e98765035",
"body": "Accessors are ExArith ops at the additive level; predicates are five\nnew PredOps evaluated in checkPred (residual-only, like LIKE). Shared\nspellings || and - pick jsonb semantics via static operand typing\n(staticJSONB), leaving text concat and arithmetic untouched.\nContainment is fully recursive wit\n[…]\ny; deletes\nerror on wrong container kinds in Postgres's words. Semantics core in\nsql/jsonb_ops.go; verified end to end over both wire protocols.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "jsonb operator family: -> ->> #> #>> @> <@ ? ?| ?& || -",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-19T17:10:28Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "47dfdf9810dc4ec4291fcc5dd0f2448ca35a784d",
"body": "- DEFAULT clock functions: now() and the CURRENT_TIMESTAMP-family\n spellings normalize to a \"now()\" marker, CURRENT_DATE to its own;\n markers store as unquoted text in Column.Default (collision-proof:\n string constants always render quoted) and evaluate once per INSERT\n statement in columnDefaul\n[…]\n sql/jsonb_test.go, pgwire/jsonb_test.go,\n TestDefaultNow; verified end to end with a live pgx client\n including a server-restart reopen check\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "DEFAULT now()/current_date and jsonb core type",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-19T16:46:54Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "150764540dba2f06dc74e87d245dc19e9b16c592",
"body": "- LIKE/NOT LIKE/ILIKE/NOT ILIKE as PredOps sharing the regex ops'\n execution path; patterns compile to anchored regexes through the\n existing cache; ESCAPE accepts the default backslash only\n- text[] (TTextArray) riding on canonical Postgres array-literal\n strings: ParseTextArray/FormatTextArray/\n[…]\n to the\n column type\n- Tests: sql/like_array_test.go, textarray_test.go,\n pgwire/textarray_test.go; verified end to end with a live pgx client\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "LIKE/ILIKE operators, text[] type, array_to_string",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-19T16:21:55Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "5d14914c6e06d4182e042a61fabce27734bb9ecf",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Session doc: migration gap assessment verified against source",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-19T12:39:12Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "861153926ff94f8b958b0058e5308c33f784858b",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: audit-remediation-complete",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-12T06:24:54Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "38562182ad62b13d6eaa9e400e7aea0f68500db9",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Audit doc: record remediation status",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-12T06:21:34Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "0e80c2660a3ac8b5c9d342e5e4bde50a9a87b74a",
"body": "RENAME TO / RENAME [COLUMN] c TO d: descriptor-only changes — rows\nare keyed by table ID and tagged by column ID, so nothing rewrites.\nGuards keep text-anchored dependents honest: a table or column\nreferenced by another table's foreign key stays put (self-references\nrename along, in RefTable and Ref\n[…]\ne (active / idle / idle in\ntransaction [(aborted)]), and its current or last statement under a\nsmall mutex; the view reports them sorted by PID.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "ALTER TABLE RENAME and pg_stat_activity",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-12T06:21:11Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "284bc4762a8084301d0eecfcccc92ecd55915517",
"body": "When a join step's equality conjuncts cannot become index lookups —\nno index or primary key starts with any equijoin column, or the inner\nside is a virtual table (CTE, derived table, view, catalog table) —\nthe nested loop's full-scan-per-outer-row degrades to O(n·m). Such\nsteps now build a hash tabl\n[…]\nl back to the\nnested loop. EXPLAIN renders Hash Join / Hash Left Join with the Hash\nCond; a 3000x3000 unindexed join test guards the complexity.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Hash join for unindexed equijoins",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-12T06:15:29Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "bc7f71906ba6fab2d3d8dae4298fab995cfeef86",
"body": "All one mechanism: a subquery materializes once into a per-statement\nvirtual table (the same scopeTable.rows machinery that serves the\nsystem catalog), layered over the catalog in name lookup.\n\n- Derived tables — FROM (SELECT ...) alias — lower at parse to\n synthetic CTEs with un-spellable names ('\n[…]\necution wraps CTE/view statements in one snapshot.\n- IN (SELECT ...) / NOT IN (SELECT ...) now parse, lowered to the\n existing = ANY machinery.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Derived tables, WITH (CTEs), views, and IN (SELECT ...)",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-12T06:08:27Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "83a6fc80d4b01e19ab16035aa3fd25c2aaa0843f",
"body": "FKDesc lives on the child table's descriptor; the engine validates\nshape at AddForeignKey (referenced columns must be the parent's PK or\na unique index, types must match; existing rows optionally validated\nin the publishing transaction) and guards the schema side — no\ndropping a referenced table, an\n[…]\nPARTIAL are rejected at parse. Wire:\nSQLSTATE 23503 with Postgres's wording; FKs appear in pg_constraint\n(contype 'f') and pg_get_constraintdef.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Foreign keys (NO ACTION/RESTRICT, MATCH SIMPLE)",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-12T05:54:10Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ea8da92fe91bfbdeb62d4144d6d7408c7a2a1159",
"body": "Timestamps store as int64 microseconds since the Unix epoch (UTC\ninstants), dates as int64 days, UUIDs as 16 bytes — representations\nthe tuple encoding already orders correctly, so keys and indexes sort\nchronologically/bytewise with no format change. The shared text codecs\n(ParseTimestamp/FormatTime\n[…]\nby\n the declared column type since instants share int64 with counts.\n- Catalog: pg_type rows, information_schema/pg_attribute type\n reporting.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "TIMESTAMP/DATE/UUID types",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-12T05:41:12Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ebd00788160a74e3f463cd4d15c4053937acf5cd",
"body": "…, sync flag, query log\n\n- TRUNCATE [TABLE] t[, ...] [RESTART|CONTINUE IDENTITY]: one range\n delete per table key space (rows + all indexes), atomic across the\n list, DML semantics (runs and rolls back inside blocks). Engine gains\n Txn.Truncate.\n- VARCHAR(n) / CHARACTER VARYING(n): the limit is n\n[…]\nequest\n exempt) and Server.QueryLog(query, duration, err) hook.\n- bytdbd: -sync always|never (bytdb.WithSyncNever), -max-conns,\n -log-queries.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Operability batch: TRUNCATE, VARCHAR(n), UNIQUE sugar, SHOW, conn cap…",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-12T05:28:39Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "952e49e96466d9e88b1847cbf7f8ccb1ffeb6029",
"body": "Advertise the PLUS mechanism on TLS connections when the binding data\nis derivable (single static certificate, RFC 5929 hash defined for its\nsignature algorithm), verify the certificate hash inside the client\nproof, and fail the exchange on a \"y\" gs2 flag once PLUS was offered\n— the RFC 5802 downgrade tripwire. channel_binding=require clients now\nconnect.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "pgwire: SCRAM-SHA-256-PLUS channel binding (tls-server-end-point)",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-12T05:11:41Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "f309deb28f0eef312e654162a472cee4005198cd",
"body": "Three new optional Server fields, defaults preserving trust mode:\nTLSConfig upgrades the stream on SSLRequest (with a pipelined-bytes\nsmuggling guard), RequireTLS refuses plaintext startups (FATAL 28000),\nand Auth requires SCRAM-SHA-256 (RFC 5802/7677). The server stores\nonly Postgres-format verifie\n[…]\nS,\ngood/bad/unknown logins, live re-keying, SCRAM over TLS (the y,, gs2\npath), verifier round trips, and cancellation through the secured\nstack.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "pgwire: SCRAM-SHA-256 authentication and TLS",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-12T04:30:31Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a4a51a0bc94d96b8d7b9a16010ecc99596389fc1",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Bump btypedb to tagged v0.5.0",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-12T04:30:18Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "418e1fab70aa49709be3ca00f0a7950f88c77bef",
"body": "Standalone (non-workspace) builds now resolve Engine.Backup and the\nnew recovery behavior; go.work still points development at ../btypedb.\nTag btypedb v0.5.0 later and this becomes a clean version bump.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Bump btypedb to the header/corruption/backup commit",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-12T03:19:32Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "2ffe4aa8b1f3fc9eb7c4c5f50314b9680bc2c59c",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: production-hardening-backup-cancel",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-12T03:17:49Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "97ebb362150896bbbb722cc87c9ffed39433ebc0",
"body": "…meout\n\nThe first three items of the audit's remediation order (the header +\ncorruption-detection half lives in btypedb):\n\n- Engine.Backup(destPath): consistent point-in-time copy, atomic at\n the destination, without blocking readers or writers; restore is\n Open on the copy.\n- Context plumbing thr\n[…]\nconnection lives on.\n\ngo.work now includes ../btypedb; bytdb's go.mod still pins the last\ntagged btypedb, so tag and bump after pushing btypedb.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Production hardening: online backup, query cancellation, statement_ti…",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-12T03:05:18Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "019dbe890d192454e24e74a4e1e842638e0b53bd",
"body": "Four-dimension audit (durability/recovery, concurrency/transactions,\npgwire security/operability, SQL layer/testing) with the hard blockers,\nper-domain gaps, and a remediation order.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add production-readiness audit to ai_docs",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-12T03:05:18Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "bb4345d51f044017013d301308a3d81235b4383a",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: m29-insert-expr-select-distinct",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-11T23:17:47Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "71a4ec7fd4a32ce360af04c5cc48fbf653a4fe5b",
"body": "INSERT VALUES entries parse through the full expression grammar and\nevaluate per row against an empty scope — nextval('s'), arithmetic,\ncasts, scalar subqueries — with literals keeping their fast path and\n$n placeholders binding/describing inside expressions. SELECT DISTINCT\ndedups projected rows be\n[…]\nMIT (output columns and\npositions only, PG's rule) across plain, aggregate, windowed, UNION,\nand subquery shapes; EXPLAIN gains the Unique node.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Milestone 29: expression values in INSERT, SELECT DISTINCT",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-11T23:17:35Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "95285c6769a5b7c9daf0defa8fa8935543a0d3d6",
"body": "…f, order-aware ties\n\nFive features closing the outstanding list:\n- Window functions compose with GROUP BY: windows evaluate after\n grouping/HAVING over groups materialized as synthetic rows\n (aggQuery row mode + exOrd positional reads), so RANK() OVER\n (ORDER BY SUM(x) DESC) and SUM(SUM(x)) OVER\n[…]\ner serves ORDER BY, eliding the\n sort; selectivity still outranks order.\n\nVerified end to end over the wire (pgx, simple + extended protocols).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Milestone 28: window+GROUP BY, DISTINCT windows, sequences, pg_attrde…",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-11T07:55:58Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7e8e44b6a5a6358a95e00e0dfb0f5fa81e0e2cb6",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: m27-frame-exclude",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-11T07:05:44Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "ee22a455fe8855b56cad5b15f9a15da7eae9385a",
"body": "After the bounds pick a row's frame, exclusion clips the current row,\nits whole ORDER BY peer group, or the peers minus the row itself out\nof it — only ever removing rows the bounds selected, so TIES never\nre-admits a current row from outside the frame. A frame becomes up to\nthree disjoint segments:\n[…]\nROUP still\naggregates once per peer group. GROUP/TIES stay legal without ORDER\nBY (the partition is one peer group); EXPLAIN renders the clause.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add frame EXCLUDE: CURRENT ROW/GROUP/TIES on every window frame mode",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-11T07:05:44Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ca116d2ff8c0f9f90eb2839c6eb5d91861df5b1b",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: m26-range-offset-frames",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-10T23:46:31Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "17d0e911978d80a7486fc4b059fd3c4b9a1339a8",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add RANGE offset window frames: distances measured on the sort key",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-10T23:46:31Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "a6caff42ec27ab10b62cada4824c76518311b6e0",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: m25-window-frames",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-10T23:00:17Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "77b8433b45db8cb29556e9409ae3bc2114c46bae",
"body": "Frames reduce each row to a half-open position range over the sorted\npartition: ROWS by position arithmetic, RANGE/GROUPS through peer\ngroups. Honored by aggregate windows and FIRST/LAST/NTH_VALUE (empty\nframes yield NULL, COUNT 0); ignored by ranking and LAG/LEAD, as in\nPostgres. UNBOUNDED-PRECEDIN\n[…]\nse), bind\nvia $n, and describe as int on the wire. RANGE offset bounds and frame\nEXCLUDE (beyond NO OTHERS) are rejected with Postgres' wording.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add explicit window frames: ROWS/RANGE/GROUPS with BETWEEN bounds",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-10T23:00:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7cbaa52908a4eeb36a37c26d21f58d3a57bef337",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: m24-value-window-functions",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-10T21:59:03Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "ece7d36f1709f25a2519c4b92183d8397f43a17d",
"body": "…alue\n\nPostgres-faithful semantics over the existing partition/sort machinery:\nlag/lead address the whole partition (per-row offset, negative flips\ndirection, default fallback at the edges); last_value and nth_value\nhonor the PG default frame (ends at the current row's last peer).\nDescribe now infers window offset/default placeholder types so wire\ndrivers can bind lag(v, $1) with integer args.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add value window functions: lag, lead, first_value, last_value, nth_v…",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-10T21:58:56Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "a72053f7b0d642ebf792401210d69a15bad2d4ac",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: readme-sync-outstanding-audit",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-10T20:55:00Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "96e8e941b3c04abb90a0838d55f7670f75a0feb8",
"body": "The README's status and roadmap stopped at milestone 21, missing the\nfive feature commits since: identity columns (SERIAL sugar, durable\ncounters, explicit-insert bump), RETURNING, ON CONFLICT upsert,\nconstant column DEFAULTs, and lastval()/currval(). The mkdocs site\nalready covered them; this bring\n[…]\n.\nStandalone CREATE SEQUENCE joins the Later bullet.\n\nbench/main.go was the one file failing gofmt -l, pre-existing on\nboth machines; formatted.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Update README for milestones 22-23; gofmt bench",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-10T01:01:32Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f1dbfc0367f24ae2d712ad5e0376168404d8a3d0",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: upsert-defaults-lastval",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-09T18:48:45Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "1d2457233332947cedee3a5985b46d73781a71f4",
"body": "The post-insert readbacks some drivers send instead of RETURNING.\nIdentity draws record under the column's implied sequence name\n(table_col_seq, matching information_schema's column_default); an\nexplicit id insert is not a draw and moves nothing. State lives on a\nper-Session seqSession (a bare DB ac\n[…]\ndrawn name reports\nthe same, whether or not the implied sequence exists — sequences here\nare implied by identity columns, not cataloged objects.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add lastval() and currval() session functions",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-09T18:44:10Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "97f7ece2cee8f66a926d5da4cb75cf568b09f848",
"body": "DEFAULT <literal> on CREATE TABLE / ADD COLUMN columns, stored as SQL\nliteral text in the descriptor (the checks precedent: the engine\nstores and reports, the SQL layer applies). A column-list INSERT\nfills omitted columns with their defaults, DEFAULT works as a VALUES\nentry, and INSERT ... DEFAULT V\n[…]\naves them untouched,\nand the two are only equivalent when there are none.\n\ninformation_schema.columns reports the stored text in column_default.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add constant DEFAULT column values",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-09T18:35:27Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a0fd8db38193da5fcd2cd352b5eeb293f872d50a",
"body": "Postgres upsert semantics with no new engine machinery: conflicts are\nfound by probing the primary key (Get) or a unique index (a point-\nbounded index scan) with the proposed row's key values, and DO UPDATE\nrides the same UpdateReturning path as UPDATE.\n\nThe conflict target infers set-wise against t\n[…]\n's SET parsing is factored into a shared setClause; placeholder\nbinding, literal coercion, and Describe inference all extend through\nthe clause.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add INSERT ... ON CONFLICT (DO NOTHING | DO UPDATE)",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-09T18:21:51Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "92463dbaab5954d501dcd97e4ecd6db5a85b7ade",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: reconcile-parallel-returning",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-09T17:57:44Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "c20d6ebcc7fe6764786c13c71e828a52b83d0081",
"body": "RETURNING was implemented independently on two machines with\nnear-identical designs (engine hands back the row as stored;\nprojectSelect reused over a synthetic single-table SELECT; Describe\nannounces the shape). Resolution takes origin's implementation —\nfiner-grained tests, plus its coverage-expans\n[…]\n parse rejection case\n- both sessions' docs kept as the historical record\n\nThe local implementation is preserved on backup/local-returning-impl.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Merge origin/main: reconcile parallel RETURNING implementations",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-09T17:53:41Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "da5c2f2a658ff31ff69297b953edcd2311d3adfd",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: returning-clause",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-09T17:25:07Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "cae0b78b24e244fe4910668f79f891a76d487cad",
"body": "The engine now hands back the row as stored: insertRow and updateRow\nreturn the final values (identity columns filled, coercions applied),\nexposed as Txn.InsertReturning and Txn.UpdateReturning — the only way\nRETURNING can report a drawn SERIAL value without a second read.\nDELETE reports each row as\n[…]\ntes (pgx QueryRow over\nINSERT ... RETURNING, multi-row streaming, command tags) plus a live\npsql session matching Postgres output byte for byte.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add RETURNING to INSERT, UPDATE, and DELETE",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-09T17:21:21Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b7a0658e11bd01744cfbee247ca830942831a678",
"body": "Close reachable coverage gaps with test-only additions:\n- engine: seq ops (SetSeq/PeekSeq/DeleteSeq), Txn.Delete, reverse\n index scans, scan-bound validation, coerce matrix (83.2% -> 92.9%)\n- sql: window rewriting, prepared-param binding, CAST/format_type,\n Stmt.Command, EXPLAIN nodes, aggregate r\n[…]\n%)\n- tuple: normalize widths, NaN/overflow rejects (91.1% -> 97.3%)\n- pgwire: SQLSTATE mapping, decodeParam text/binary, rbuf\n (87.2% -> 91.3%)\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Expand test coverage across engine, sql, tuple, and pgwire",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-09T12:24:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "55fb95c25111f7923383a07465ef6cc5aad66f81",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: returning-clause",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-08T20:13:58Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "9cacb7cc3f20737769b8f03379c7092b74d1866f",
"body": "Stage 3 of the sequences work: the clause ORMs need to read back\nserver-generated ids. A RETURNING list is a select list — resolved\nwith SELECT's projection machinery against the target table's scope\nand evaluated per affected row: INSERT returns rows as stored\n(identity filled, values coerced) via \n[…]\nkeeps counting the write\n(INSERT 0 n) — so pgwire needed no code changes. Aggregates and\nwindow functions are rejected at parse, as in Postgres.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add INSERT/UPDATE/DELETE ... RETURNING",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-08T20:13:48Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "149a3642a027bee670eb6231b665e5d911a064a6",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: sequences-and-identity-columns",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-08T19:40:22Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "df30386698a0a4546a3b84b73a17ddd3d6fe1e05",
"body": "Stage 1: durable named uint64 counters in the system keyspace\n(NextSeq/SetSeq/PeekSeq/DeleteSeq on Engine and Txn), sharing one\nnextFromCounter primitive with the table-ID allocator, which now also\nchecks exhaustion.\n\nStage 2: Column.Identity — NULL draws the next value from the column's\nown counter\n[…]\nliases and GENERATED BY DEFAULT AS IDENTITY (ALWAYS rejected);\ninformation_schema.columns reports a serial-style default for\nintrospecting ORMs.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add named sequences and identity (SERIAL) columns",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-08T19:40:15Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "42c33f51b2a877fb5538d02d22041d79e952ea13",
"body": "…is its snapshot/reset\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Expand compaction docs: the WAL is the database file, and compaction …",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-08T17:20:58Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "642c76416e8ee80186b7d48b08844e3327dcc9f8",
"body": "Docs (mkdocs.yml + docs/, Material theme, mermaid diagrams): architecture\n(keyspace, tuple encoding, WAL/recovery, COW transactions, compaction,\npgwire), features with test-verified examples, considerations/gotchas,\ntesting strategy with measured coverage, and benchmarks.\n\nbench/: standalone module \n[…]\nSyncEverySecond, and over pgwire) against Postgres 16 on tmpfs, in-memory\nDuckDB, and Redis 7; results.json holds the numbers cited in the docs.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add MkDocs site docs and cross-database benchmark harness",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-08T16:10:28Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e3104cd85ece74c8fa5ba528d4e1216b485c065d",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: mkdocs-site-docs-and-benchmarks",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-08T16:08:29Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "aa34e00e801874befe3ea2d4d7ad9e2586a534da",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: catalog-in-kv-keyspace",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-08T06:37:10Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "f63a4ada6566779f06e7ca64549079fc8d3b3798",
"body": "Descriptors were already persisted at descKey(name); this makes kv the\nauthoritative read source. Every transaction resolves descriptors\nlazily from its own snapshot (per-Txn memo over a blob-validated parse\ncache), so the schema a transaction sees is exactly the schema of the\ndata it sees, by const\n[…]\n guards; new\ncatalog_kv_test.go pins concurrent-ALTER no-lost-update, racing\nCreateTable, snapshot-schema isolation, and the closed T1.3 window.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Move the catalog into the kv keyspace",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-08T06:37:03Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1ceb50dff381360d65ede4d046bd62d108170db5",
"body": "SUM over an integer argument now raises \"bigint out of range\" instead\nof silently wrapping at int64, using the same bound test as scalar\narithmetic; AVG keeps reading the float accumulator, and window SUM\nshares the check through accum.add.\n\nUPDATE SET accepts full expressions (SET age = age + 1, CA\n[…]\nt.go (extended-protocol end-to-end via pgx),\nDescribe inference cases, and an index-self-mutation rerun with a\nreal self-referential expression.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Checked SUM overflow and expressions in UPDATE SET",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-08T06:21:26Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "faf0384df6fd7c591c437cca03b3ad2d84a7334d",
"body": "…c-gap tests\n\nFuzz targets: tuple round-trip/order, SQL parser, pgwire message dispatch\n(below the recover fence). Property tests: reverse-scan equivalence over\nthree key spaces, planner equivalence over random queries. Crash tests:\nkill without Close, garbage tail, per-byte crash-point sweep with i\n[…]\n checkPred: a text column compared to a typed non-string value now\n errors like Postgres instead of silently parsing the stored text\n per row.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Tier 3 test coverage: fuzz, property, crash, concurrency, and semanti…",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-08T01:12:02Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a7e8016fab58087364bd1802e2984af5ecfdd29c",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: tier2-robustness",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-08T00:25:34Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "468fd9eb4f021b52b8938fde3a510f235a1fe0b5",
"body": "Tier 1 (confirmed defects, each with regression tests):\n- Parser depth limit (maxParseDepth=1000): deep nesting returns a\n parse error instead of a fatal stack overflow killing the server\n- recover() fence per pgwire connection: a panicking statement costs\n one connection (ErrorResponse XX000), no\n[…]\ntor format versioning\n with all bad descriptors reported at Open; commit-visibility docs\n\nBoth modules green under go test -race; go vet clean.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Reliability hardening: Tier 1 fixes and Tier 2 robustness",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-08T00:24:30Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6a596ecc94cab45f9342b24535257a5f624ffa7c",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: tier1-reliability-fixes",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-07T23:42:15Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "5c383d504d52f9d4de14e5a1b395ec2da9293946",
"body": "Full audit of durability, panic/error paths, concurrency, and test\ncoverage: 5 confirmed defects (Tier 1), 8 robustness gaps (Tier 2), and\na fuzz/property/crash/concurrency test plan (Tier 3), with a suggested\nexecution order.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add reliability-hardening plan",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-07T13:02:49Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "c91d9913fa25889d50b4f66667d4f821b0aae944",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: bytdb-milestone-21-bounded-reverse-scans",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-07T12:42:29Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "8381f7c4a4fbba9768d20a5916f344cba786035c",
"body": "Any pushed-down scan region can now be read backward, not just an\nunbounded one. A forward plan's region is already key-delimited on both\nedges (from below, the early-stops above), so reversing converts the\nstops into the backward walk's entry bound via plan.revEnd():\nequality-prefix values plus the\n[…]\n placement mismatch).\n\nVerified with go test -race in both modules and end-to-end over the\nwire with psql 16 driving bytdbd (plans and results).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Milestone 21: bounded reverse scans",
"author_name": "Rohan Allison",
"author_login": null,
"committed_at": "2026-07-07T12:41:33Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ddf2a1915d9044b5984cc32e907dc2d3266b040a",
"body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: bytdb-milestone-20-order-by-index-order",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-06T23:10:29Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "2d1f6fa6b1a6d261a3f62e9a03c65c1ddd6542ef",
"body": "A single-table SELECT whose ORDER BY matches a scan's key order now\nskips the sort and, under a LIMIT, stops the scan early. A fully\nreversed match runs the scan backward.\n\n- Engine: kvView.Descend; scanRowsRev/scanIndexRowsRev over btypedb's\n Descend; Engine+Txn ScanRangeRev/ScanIndexRev (index re\n[…]\nort. Tests: sql/order_test.go, reverse_test.go. Verified with\npsql 17 over bytdbd. go vet clean, -race green (bytdb, sql, pgwire).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Milestone 20: ORDER BY exploiting index order",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-06T23:10:24Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "9ec782eec20640586e92aff02d794bce7d1d96bb",
"body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Update session doc: milestones 18-19 (ANY/ALL + window functions)",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-06T22:37:52Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "02e34d08831e7a8b1c5a219843f2d42f766c7d22",
"body": "… OVER)\n\nA third SELECT execution shape that emits every input row: materialize\npost-filter rows, partition by the order-preserving tuple encoding (the\nsame equivalence GROUP BY uses), sort each partition by the window\nORDER BY, and assign per-row values. Ranking functions compute by\nordinal (ROW_NU\n[…]\nORDER BY key building between the plain and window paths.\n\nVerified with go test -race across all modules and end-to-end via psql.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Milestone 19: window functions (ROW_NUMBER/RANK/DENSE_RANK, aggregate…",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-06T22:35:50Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "34ec03fd19cd877898e44f5df529f846843893d3",
"body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: bytdb-milestone-18-any-all-arrays",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-06T22:23:03Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "06319ee58e89de69d61c933618b7475d61cd1412",
"body": "Right-hand side may be an ARRAY[...] constructor (new ExArray node), a\nsingle-column subquery, or a Postgres '{...}' array-literal string;\narray-typed casts (::int[]) are peeled off and elements coerce to the\nleft operand's type. Postgres three-valued logic: an empty array is\nANY->false, ALL->true e\n[…]\n ARRAY[...] also\nevaluates as a value rendering as {...}.\n\nVerified with go test -race across all modules and end-to-end via psql.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Milestone 18: op ANY(...) / op ALL(...) over arrays and subqueries",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-06T22:19:54Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "017584c4c25599254dcf01d49ee62ac8fd9bf28e",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: bytdb-milestone-17-distinct-agg-alter-constraint",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-06T18:29:25Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "e9c84a405d69a7e6ec652fe5e88874fc934e6b12",
"body": "DISTINCT aggregates: COUNT(DISTINCT x) and friends consume each\ndistinct non-NULL argument value once per group, deduplicated by the\norder-preserving tuple encoding (the same equivalence GROUP BY uses).\nA distinct call stays in expression form, so the aggregate-rewrite\nmachinery, HAVING, ORDER BY, a\n[…]\nreferenced column; the primary key stays\nstructural. ADD PRIMARY KEY/UNIQUE/FOREIGN KEY are rejected with\npointers to what bytdb offers instead.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Milestone 17: DISTINCT aggregates, ALTER TABLE ADD/DROP CONSTRAINT",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-06T18:19:44Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a73b5c3cdca14ed034032872868c30df8dee5b2b",
"body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: bytdb-milestone-16-desc-check-explain",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-06T17:34:52Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "25e5a0b91f33a5cfab7a63450edda05dbc93a6bf",
"body": "- tuple: AppendDesc encodes elements byte-inverted (CRDB-style), so\n byte order reverses semantic order; DecodeOne decodes either\n direction, letting mixed-direction composite keys self-delimit.\n- engine: IndexDesc.Desc per-column directions via CreateIndexCols;\n entries, bounds, and entry decodi\n[…]\nLL, DESC indexes, and\ncheck constraints; violation messages match Postgres verbatim. All\nsuites green under -race in both modules.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "Milestone 16: DESC index columns, NOT NULL/CHECK constraints, EXPLAIN",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-06T16:55:54Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "cbf714b75654307d94f523c22cfa1a44590bac28",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: bytdb-milestone-15-aggregate-expressions",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-06T06:17:11Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "c8728c44773847c4824c21ec5ae8df8fdd88fc6c",
"body": "GROUP BY keys are now expressions — columns, ordinals, age / 10,\nupper(city), CASE — and every select item, HAVING condition, and\nORDER BY key is rewritten against them: a subtree matching a key\nbecomes a reference to the group's key value, an aggregate call\nbecomes a (deduplicated) accumulator refe\n[…]\nguments, and preserves GroupBy nilness (a\nbound copy previously turned every parameterized query into an\naggregate). Verified against psql 17.5.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Milestone 15: aggregate expressions",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-06T06:16:16Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "dcbda52690fd1b2a436677bc49e1676dfc91e5ec",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: bytdb-milestone-14-group-ordinals-and-savepoints",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-06T05:42:50Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "88796f484be5479e3f52993d2fbdac429b12eeab",
"body": "GROUP BY keys may be integer ordinals naming select-list positions\n(GROUP BY 1), which must resolve to plain columns; non-integer\nconstants and out-of-range or aggregate-naming positions error as in\nPostgres.\n\nSavepoints ride btypedb v0.4.0's O(1) COW marks through all three\nlayers: engine Txn.Savep\n[…]\nhe SAVEPOINT/\nRELEASE/ROLLBACK tags and TxStatus 'E' -> 'T' recovery. pgx nested\ntransactions work unchanged on top. Verified against psql 17.5.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Milestone 14: GROUP BY ordinals and savepoints",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-06T05:41:00Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "216d9b61abeffd3dcfa1d511c1ddfa7189022fc6",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: bytdb-milestone-13-transaction-blocks",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-06T02:57:00Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "f05f070429053aec0df4c225818e838bfc8cc76f",
"body": "Engine: Begin(writable)/Txn.Commit/Txn.Rollback over btypedb's manual\ntransactions; a writable transaction holds the single-writer lock for\nits lifetime, so blocks serialize with all other writes.\n\nsql: TxnControl statement (BEGIN/START TRANSACTION with modes —\nisolation levels accepted as serializa\n[…]\nmantics,\npgx/database/sql over the wire incl. TxStatus bytes, notices, and\ndisconnect releasing the writer lock) and verified against psql 17.5.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Milestone 13: transaction blocks — BEGIN/COMMIT/ROLLBACK on the wire",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-05T12:42:29Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0c33d4d8da0324858b7ddc5433771123e44cba58",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: bytdb-milestone-12-expression-language",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-04T16:29:03Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "0da76f0fd892fc84d5ceeed7896cd257fd4e52e2",
"body": "One expression grammar now feeds select items and conditions: CASE\n(both forms), [NOT] IN, regex matches (~ !~ ~* !~*), OPERATOR()/\nCOLLATE, :: casts (int/oid families, text, bool, float, reg*),\narithmetic and || concat, E'...' strings, functions with arguments,\noutput aliases (ORDER BY resolves the\n[…]\n. \\dt, \\d,\n\\d <table>, \\d <index>, \\di, \\dn, \\du, \\dt+, \\d+ and \\l all render\nagainst a live psql 17.5 session.\n\nBoth modules green under -race.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Milestone 12: expression language — psql \\dt, \\d, \\d <name> render",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-04T16:27:56Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a3158e0c5433fd74a565225fbdf0b50c841ce2cb",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: bytdb-milestone-11-system-catalog",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-04T15:07:52Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "9062cd9d732db451246c4e6572c49b4ef8cd3b07",
"body": "…for ORM introspection\n\nVirtual system tables (pg_namespace, pg_class, pg_attribute, pg_type,\npg_index, information_schema.tables/columns) synthesize from the\nengine catalog and enter queries as materialized FROM-scope rows, so\nWHERE, joins, and aggregates work through the ordinary executor; all\nrea\n[…]\ne wire: GORM HasTable\n(parameterized, CURRENT_SCHEMA() in a predicate), pg_attribute/\npg_type column introspection, select pg_catalog.version().\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Milestone 11: system catalog — virtual pg_catalog/information_schema …",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-04T15:07:51Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2312eea72ce15dd70f579b9c1a3eb858bc003625",
"body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Add session doc: bytdb-milestone-10-postgres-wire-protocol",
"author_name": "Rohan Allison",
"author_login": "rohanallison",
"committed_at": "2026-07-04T14:44:48Z",
"body_truncated": false,
"is_coding_agent": true
}
],
"releases_count": 5,
"commits_last_year": 113,
"latest_release_at": "2026-07-22T19:40:34Z",
"latest_release_tag": "v0.6.4",
"releases_from_tags": true,
"days_since_last_push": 5,
"active_weeks_last_year": 4,
"days_since_latest_release": 5,
"mean_days_between_releases": 0.7
},
"community": {
"has_readme": true,
"has_license": false,
"has_description": true,
"has_contributing": false,
"health_percentage": 28,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "github.com/rohanthewiz/bytdb",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": true,
"registry_url": "https://pkg.go.dev/github.com/rohanthewiz/bytdb",
"is_deprecated": false,
"latest_version": "v0.6.4",
"repository_url": "https://github.com/rohanthewiz/bytdb",
"versions_count": 5,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-07-22T19:40:34Z",
"latest_version_yanked": null,
"days_since_latest_publish": 5
},
{
"name": "github.com/rohanthewiz/bytdb/pgwire",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": true,
"registry_url": "https://pkg.go.dev/github.com/rohanthewiz/bytdb/pgwire",
"is_deprecated": false,
"latest_version": "v0.6.4",
"repository_url": "https://github.com/rohanthewiz/bytdb",
"versions_count": 5,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-07-22T19:40:34Z",
"latest_version_yanked": null,
"days_since_latest_publish": 5
}
]
},
"popularity": {
"forks": 0,
"stars": 9,
"watchers": 0,
"fork_history": {
"days": [],
"complete": true,
"collected": 0,
"total_forks": 0
},
"star_history": null,
"open_issues_and_prs": 0
},
"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": [
"bench/go.mod",
"go.mod",
"pgwire/go.mod"
],
"largest_source_bytes": 99211,
"source_files_sampled": 165,
"oversized_source_files": 1,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"bench/go.mod",
"go.mod",
"pgwire/go.mod"
],
"advisories": {
"error": null,
"scope": null,
"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": 0,
"direct_affected_count": 0
},
"ecosystems": [
"go"
],
"dependencies": [
{
"name": "github.com/jackc/pgx/v5",
"manifest": "bench/go.mod",
"ecosystem": "go",
"version_constraint": "v5.10.0"
},
{
"name": "github.com/marcboeker/go-duckdb/v2",
"manifest": "bench/go.mod",
"ecosystem": "go",
"version_constraint": "v2.3.5"
},
{
"name": "github.com/redis/go-redis/v9",
"manifest": "bench/go.mod",
"ecosystem": "go",
"version_constraint": "v9.11.0"
},
{
"name": "github.com/rohanthewiz/btypedb",
"manifest": "bench/go.mod",
"ecosystem": "go",
"version_constraint": "v0.4.0"
},
{
"name": "github.com/rohanthewiz/bytdb",
"manifest": "bench/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/rohanthewiz/bytdb/pgwire",
"manifest": "bench/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/rohanthewiz/btypedb",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.6.2"
},
{
"name": "github.com/rohanthewiz/serr",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.4.0"
},
{
"name": "github.com/jackc/pgx/v5",
"manifest": "pgwire/go.mod",
"ecosystem": "go",
"version_constraint": "v5.10.0"
},
{
"name": "github.com/rohanthewiz/btypedb",
"manifest": "pgwire/go.mod",
"ecosystem": "go",
"version_constraint": "v0.6.2"
},
{
"name": "github.com/rohanthewiz/bytdb",
"manifest": "pgwire/go.mod",
"ecosystem": "go",
"version_constraint": "v0.6.4"
},
{
"name": "github.com/rohanthewiz/serr",
"manifest": "pgwire/go.mod",
"ecosystem": "go",
"version_constraint": "v1.4.0"
},
{
"name": "golang.org/x/text",
"manifest": "pgwire/go.mod",
"ecosystem": "go",
"version_constraint": "v0.29.0"
}
],
"all_dependencies": {
"error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"source": null,
"packages": [],
"collected": false,
"truncated": false,
"total_count": null,
"direct_count": null,
"indirect_count": null
}
},
"maintainership": {
"issues": {
"open_prs": 0,
"merged_prs": 0,
"open_issues": 0,
"closed_ratio": null,
"closed_issues": 0,
"closed_unmerged_prs": 0
},
"bus_factor": 1,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "rohanallison",
"commits": 47,
"avatar_url": "https://avatars.githubusercontent.com/u/127339601?v=4"
}
],
"contributors_sampled": 1,
"top_contributor_share": 1
},
"quality_signals": {
"has_ci": false,
"has_tests": true,
"ci_workflows": [],
"has_docs_dir": true,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"go.sum"
],
"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": null,
"reason": "no pull request found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 0,
"reason": "Found 0/30 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 0,
"reason": "project has 0 contributing companies or organizations -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": null,
"reason": "no workflows found",
"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": 10,
"reason": "project is fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 0,
"reason": "license file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 0,
"reason": "project was created within the last 90 days. Please review its contents carefully",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": null,
"reason": "packaging workflow not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": null,
"reason": "no dependencies found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "no SAST tool detected",
"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": null,
"reason": "No tokens found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 6,
"reason": "4 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "f5253cde16820ce86243a6fde66c6c0bcc20725a",
"ran_at": "2026-07-27T21:42:50Z",
"aggregate_score": 2.5,
"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": null,
"oldest_open_prs": [],
"last_merged_pr_at": null,
"ci_last_conclusion": null,
"oldest_open_issues": []
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/rohanthewiz/bytdb",
"host": "github.com",
"name": "bytdb",
"owner": "rohanthewiz"
},
"metrics": {
"overall": {
"key": "overall",
"band": "at_risk",
"name": "Overall health",
"note": null,
"notes": [],
"value": 42,
"inputs": {
"security": 25,
"vitality": 69,
"community": 20,
"governance": 37,
"engineering": 52
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "moderate",
"name": "Vitality",
"value": 69,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "moderate",
"name": "Development activity",
"note": null,
"notes": [],
"value": 57,
"inputs": {
"commits_last_year": 113,
"human_commit_share": 1,
"days_since_last_push": 5,
"active_weeks_last_year": 4
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 5 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 5
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "4/52 weeks with commits",
"points": 2.8,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 4
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "113 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 113
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"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": 88,
"inputs": {
"releases_count": 5,
"latest_release_tag": "v0.6.4",
"releases_from_tags": true,
"days_since_latest_release": 5,
"mean_days_between_releases": 0.7
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "5 version tags (no GitHub releases)",
"points": 16.2,
"status": "partial",
"details": [
{
"code": "version_tags_no_releases",
"params": {
"count": 5
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 5 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 5
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~0.7 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 0.7
}
}
],
"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": "unverified",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": "repository_too_young",
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": null,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "maintenance record not established from the collected data",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_unverified",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "critical",
"name": "Community & Adoption",
"value": 20,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 15,
"inputs": {
"forks": 0,
"stars": 9,
"watchers": 0,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "9 stars",
"points": 14.6,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 9
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "0 forks",
"points": 0,
"status": "missed",
"details": [
{
"code": "forks",
"params": {
"count": 0
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "0 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 0
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "critical",
"name": "Community health",
"note": null,
"notes": [],
"value": 25,
"inputs": {
"has_readme": true,
"has_license": false,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "no license file detected",
"points": 0,
"status": "missed",
"details": [
{
"code": "license_absent",
"params": {}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "at_risk",
"name": "Sustainability & Governance",
"value": 37,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "critical",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 10,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 1,
"top_contributor_share": 1
},
"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 100% of commits",
"points": 0,
"status": "missed",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 100
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "1 contributors",
"points": 1.4,
"status": "partial",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 1
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 0 contributing companies or organizations -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "critical",
"name": "Issue & PR responsiveness",
"note": "Excluded from scoring (no data or not applicable): Issue resolution, PR acceptance. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"issue_resolution",
"pr_acceptance"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 1,
"inputs": {
"merged_prs": 0,
"open_issues": 0,
"closed_issues": 0,
"issue_closed_ratio": null,
"closed_unmerged_prs": 0
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "no issues or no data",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_issues_or_data",
"params": {}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "no decided pull requests or no data",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_decided_prs_or_data",
"params": {}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "moderate",
"name": "Ownership & stewardship",
"note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"verified_domain"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 56,
"inputs": {
"followers": 19,
"owner_type": "User",
"is_verified": null,
"owner_login": "rohanthewiz",
"public_repos": 136,
"account_age_days": 5399
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "personal (user) account",
"points": 10,
"status": "partial",
"details": [
{
"code": "owner_personal",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": "not applicable to user accounts",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_applicable_to_user_accounts",
"params": {}
}
],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "19 followers of rohanthewiz",
"points": 9.4,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 19,
"login": "rohanthewiz"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "136 public repos, account ~14 yr old",
"points": 25,
"status": "met",
"details": [
{
"code": "public_repos",
"params": {
"count": 136
}
},
{
"code": "account_age_years",
"params": {
"years": 14
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"github.com/rohanthewiz/bytdb",
"github.com/rohanthewiz/bytdb/pgwire"
],
"ecosystems": "go",
"any_deprecated": false,
"min_days_since_publish": 5
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "2 package(s) on go",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 2,
"ecosystems": "go"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 5 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 5
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "5 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 5
}
}
],
"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": 52,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "at_risk",
"name": "Engineering practices",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_ci_tests"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 30,
"inputs": {
"has_ci": false,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "excellent",
"name": "Documentation",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"topics": [
"database",
"memory-db",
"postgres",
"redis"
],
"has_wiki": true,
"homepage": null,
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": null,
"points": 0,
"status": "missed",
"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": "4 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 4
}
}
],
"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": "critical",
"name": "Security",
"value": 25,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "critical",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): CI-Tests, Dangerous-Workflow, Packaging, Pinned-Dependencies, Signed-Releases, Token-Permissions. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"ci_tests",
"dangerous_workflow",
"packaging",
"pinned_dependencies",
"signed_releases",
"token_permissions"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 25,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 12,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 6,
"scorecard_aggregate": 2.5
},
"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": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 0 contributing companies or organizations -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no workflows found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"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 fuzzed",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow not detected",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "no dependencies found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "no SAST tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "No tokens found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "4 existing vulnerabilities detected",
"points": 4.5,
"status": "partial",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 1
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "moderate",
"name": "AI Readiness",
"value": 63,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "at_risk",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 32,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.59,
"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": "59 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 31.5,
"status": "partial",
"details": [
{
"code": "legible_history",
"params": {
"legible": 59,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "good",
"name": "Verify loop (build / test / typecheck)",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Pinned-Dependencies. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_pinned_dependencies"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 73,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"go.sum"
],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [],
"agent_commit_share": 1,
"toolchain_manifests": [
"bench/go.mod",
"go.mod",
"pgwire/go.mod"
],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "bench/go.mod, go.mod, pgwire/go.mod (toolchain convention, no task runner)",
"points": 12.6,
"status": "partial",
"details": [
{
"code": "toolchain_convention",
"params": {
"files": "bench/go.mod, go.mod, pgwire/go.mod"
}
}
],
"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": "Go (statically typed)",
"points": 11,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"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": "100 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 100,
"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": "no dependencies found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "Go",
"largest_source_bytes": 99211,
"source_files_sampled": 165,
"oversized_source_files": 1
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "Go (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "1/165 source files over 60KB",
"points": 54.7,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 165,
"oversized": 1
}
}
],
"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",
"GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
],
"report_type": "repository",
"generated_at": "2026-07-27T21:42:54.864535Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/r/rohanthewiz/bytdb.svg",
"full_name": "rohanthewiz/bytdb",
"license_state": "absent",
"license_spdx": null
}