Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 1.13.0 · 2026-07-27 21:42 UTC

rohanthewiz / bytdb

A beta DB based on rohanthewiz/btypeDB - based on tidwall/btype

GoSin licencia detectada★ 9 estrellas⑂ 0 forksdesde jul 2026Ver en GitHub ↗

rohanthewiz/bytdb tiene un índice de salud de 42 sobre 100, lo que lo sitúa en la banda En riesgo. Su puntuación más alta es Vitality (69/100) y la más baja, Community & Adoption (20/100). Se actualizó por última vez hace 5 días. Una sola persona concentra la mayor parte del trabajo reciente.

42
global / 100
En riesgo

Índice de salud del software

Las métricas se agrupan en categorías ponderadas sobre una escala de 1 a 100. El resultado global parte de su media; cuando la evidencia pública activa la Política de Jurisdicciones de Alto Riesgo, la calificación se ajusta y recibe el límite 49 (En riesgo). Preparación para IA queda fuera.

42
Excelente85-100Ejemplar; cumple prácticamente todos los criterios evaluados
Bueno70-84Saludable; carencias menores
Moderado50-69Aceptable con carencias notables; se recomienda revisión
En riesgo30-49Debilidades significativas; su adopción exige cautela
Crítico1-29Problemas graves (proyecto abandonado, un solo mantenedor, sin higiene)
VitalidadComunidad yAdopciónSostenibilidady GobernanzaCalidad deIngenieríaSeguridadPreparaciónpara IA

Perfil de puntuación

Cada eje es una categoría. La forma importa más que la media: un proyecto sano llena toda la figura, mientras que un perfil de picos y cráteres indica que la fortaleza en una dimensión enmascara el riesgo en otra.

Titularidad

Rohan AllisonCuenta personal
19 seguidores136 repositorios públicosdesde oct 2011

Este repositorio pertenece a una cuenta personal. Un proyecto con un único propietario conlleva más riesgo de continuidad que uno respaldado por una organización.

Ecosistemas de paquetes

RegistroPaqueteVersiónDescargas / mesVersionesÚltima publicación
Gogithub.com/rohanthewiz/bytdbv0.6.4-5hace 5 días
Gogithub.com/rohanthewiz/bytdb/pgwirev0.6.4-5hace 5 días

Métricas por categoría

Vitalidad

¿Está vivo el proyecto: se escribe código y se publican versiones?

69Moderado · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 5 días
2.8/36Cadencia de commits — 4/52 semanas con commits
18/18Volumen de commits — 113 commits en el último año
0/10OpenSSF Scorecard: Maintained — project was created within the last 90 days. Please review its contents carefully
Datos de entrada utilizados
commits_last_year113
human_commit_share1
days_since_last_push5
active_weeks_last_year4
Cómo se puntúa
16.2/27Publica versiones — 5 etiquetas de versión (sin releases de GitHub)
36/36Recencia de las versiones — última versión hace 5 días
27/27Cadencia de publicación — una versión cada ~0,7 días
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count5
latest_release_tagv0.6.4
releases_from_tags
days_since_latest_release5
mean_days_between_releases0,7
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: Signed-Releases. Los pesos restantes se han renormalizado.

Comunidad y Adopción

¿Tiene el proyecto usuarios, descargas, atención y unas condiciones acogedoras para quienes contribuyen?

20Crítico · 18% del índice global
Cómo se puntúa
14.6/60Estrellas — 9 estrellas
0/25Forks — 0 forks
0/15Observadores — 0 observadores
Datos de entrada utilizados
forks0
stars9
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
22.5/22.5README
0/22.5Licencia — no se detectó ningún archivo de licencia
0/18Guía CONTRIBUTING
0/13.5Código de conducta
0/7.2Plantilla de issues
0/6.3Plantilla de PR
Datos de entrada utilizados
has_readme
has_licenseno
has_contributingno
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno

Sostenibilidad y Gobernanza

¿Sobrevivirá el proyecto a sus personas: factor bus, capacidad de respuesta, quién lo respalda y mantenimiento del paquete?

37En riesgo · 24% del índice global
Cómo se puntúa
9/54Factor bus — la mitad de los commits recae en 1 contribuyente(s)
0/22.5Distribución de commits — el principal contribuyente firma el 100% de los commits
1.4/13.5Amplitud de contribuyentes — 1 contribuyentes
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
Datos de entrada utilizados
bus_factor1
contributors_sampled1
top_contributor_share1
Cómo se puntúa
0/46.8Resolución de issues — sin issues o sin datos
0/38.3Aceptación de PR — sin PR decididos o sin datos
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Datos de entrada utilizados
merged_prs0
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs0
Excluidos de la puntuación (sin datos o no aplicable): Resolución de issues, Aceptación de PR. Los pesos restantes se han renormalizado.
Cómo se puntúa
10/30Respaldo de la propiedad — cuenta personal (usuario)
0/20Dominio verificado — no aplicable a cuentas de usuario
9.4/25Alcance del propietario — 19 seguidores de rohanthewiz
25/25Trayectoria — 136 repos públicos, cuenta de ~14 años
Datos de entrada utilizados
followers19
owner_typeUser
is_verified
owner_loginrohanthewiz
public_repos136
account_age_days5399
Excluidos de la puntuación (sin datos o no aplicable): Dominio verificado. Los pesos restantes se han renormalizado.
Cómo se puntúa
25/25Publicado y resoluble — 2 paquete(s) en go
35/35Recencia de publicación — última publicación hace 5 días
20/20Historial de versiones — 5 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packagesgithub.com/rohanthewiz/bytdb, github.com/rohanthewiz/bytdb/pgwire
ecosystemsgo
any_deprecatedno
min_days_since_publish5

Calidad de Ingeniería

¿Existen unas prácticas mínimas de ingeniería y documentación?

52Moderado · 20% del índice global
Cómo se puntúa
0/24Flujos de trabajo de CI
24/24Pruebas presentes
0/16Configuración de linter
0/9.6Hooks de pre-commit
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — sin datos
Datos de entrada utilizados
has_cino
has_tests
has_editorconfigno
has_linter_configno
has_precommit_configno
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: CI-Tests. Los pesos restantes se han renormalizado.

Documentación

85Excelente
Cómo se puntúa
30/30README
25/25Directorio de documentación
0/15Sitio de documentación / página del proyecto
10/10Descripción del repositorio
10/10Topics — 4 topics
10/10Wiki
Datos de entrada utilizados
topicsdatabase, memory-db, postgres, redis
has_wiki
homepage
has_readme
has_docs_dir
has_description

Seguridad

¿Son sólidas las prácticas visibles de seguridad y de cadena de suministro, sin exposición jurisdiccional de alto riesgo sin resolver?

25Crítico · 16% del índice global
Cómo se puntúa
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
0/2.5CI-Tests — sin datos
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/30 approved changesets -- score normalized to 0
0/2.5Contributors — project has 0 contributing companies or organizations -- score normalized to 0
0/10Dangerous-Workflow — sin datos
0/7.5Dependency-Update-Tool — no update tool detected
5/5Fuzzing — project is fuzzed
0/2.5Licencia — license file not detected
0/7.5Maintained — project was created within the last 90 days. Please review its contents carefully
0/5Packaging — sin datos
0/5Pinned-Dependencies — sin datos
0/5SAST — no SAST tool detected
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — sin datos
0/7.5Token-Permissions — sin datos
4.5/7.5Vulnerabilities — 4 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated12
scorecard_versionv5.5.0
checks_inconclusive6
scorecard_aggregate2,5
Excluidos de la puntuación (sin datos o no aplicable): ci_tests, dangerous_workflow, packaging, pinned_dependencies, signed_releases, token_permissions. Los pesos restantes se han renormalizado.

Preparación para IA

¿Hasta qué punto está el repositorio preparado para desarrollarse y mantenerse con agentes de codificación de IA? Es una insignia independiente y experimental — peso 0,0, de modo que se presenta por separado y no afecta a la puntuación de salud global.

63Moderado · 0% del índice global
Cómo se puntúa
0/45Instrucciones para agentes — sin CLAUDE.md / AGENTS.md / reglas de editor
0/15Documentación legible por máquinas (llms.txt)
31.5/40Historial de commits legible — 59 de 100 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share0,59
agent_instruction_files
agent_instruction_max_bytes
Cómo se puntúa
12.6/18Arranque con un solo comando — bench/go.mod, go.mod, pgwire/go.mod (convención del toolchain, sin ejecutor de tareas)
22/22Pruebas automatizadas
0/11Configuración de lint / formato
11/11Verificación estática de tipos — Go (tipado estático)
10/10Entorno reproducible — lockfile
10/10Práctica demostrada con agentes — 100 de los últimos 100 commits con autoría o crédito de agente
0/8Mantenimiento automatizado — no se observan actualizaciones automáticas de dependencias
0/10OpenSSF Scorecard: Pinned-Dependencies — sin datos
Datos de entrada utilizados
has_nixno
has_tests
lockfilesgo.sum
has_dockerfileno
typed_language
bootstrap_files
has_devcontainerno
has_linter_configno
typecheck_configs
agent_commit_share1
toolchain_manifestsbench/go.mod, go.mod, pgwire/go.mod
dependency_bot_commit_share0
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: Pinned-Dependencies. Los pesos restantes se han renormalizado.
Cómo se puntúa
45/45Código verificable por tipos — Go (tipado estático)
54.7/55Tamaños de archivo manejables — 1/165 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageGo
largest_source_bytes99.211
source_files_sampled165
oversized_source_files1

Datos clave

9estrellas de GitHub
1contribuidores
113commits en los últimos 12 meses
5días desde el último push
5versiones publicadas
1factor bus
0issues abiertas
Goecosistemas de paquetes

Advertencias de recopilación de datos

  • 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

Más detalle

OpenSSF Scorecard 2.5 / 10
2.5agregado

Evaluación de seguridad independiente y agnóstica en cuanto a herramientas, procedente del proyecto de código abierto OpenSSF Scorecard. Cada comprobación premia una práctica de seguridad, no la herramienta de un proveedor concreto. Las comprobaciones que Scorecard no pudo determinar se marcan como n/d y se excluyen de la puntuación de seguridad (nunca se cuentan como cero).Scorecard v5.5.0 · 2026-07-27 21:42 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
n/dCI-Testsno pull request found
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
0Contributorsproject has 0 contributing companies or organizations -- score normalized to 0
n/dDangerous-Workflowno workflows found
0Dependency-Update-Toolno update tool detected
10Fuzzingproject is fuzzed
0Licenselicense file not detected
0Maintainedproject was created within the last 90 days. Please review its contents carefully
n/dPackagingpackaging workflow not detected
n/dPinned-Dependenciesno dependencies found
0SASTno SAST tool detected
0Security-Policysecurity policy file not detected
n/dSigned-Releasesno releases found
n/dToken-PermissionsNo tokens found
6Vulnerabilities4 existing vulnerabilities detected
Dependencias directas 13
RegistroPaqueteRestricción de versiónManifiesto
Gogithub.com/jackc/pgx/v5v5.10.0bench/go.mod
Gogithub.com/marcboeker/go-duckdb/v2v2.3.5bench/go.mod
Gogithub.com/redis/go-redis/v9v9.11.0bench/go.mod
Gogithub.com/rohanthewiz/btypedbv0.4.0bench/go.mod
Gogithub.com/rohanthewiz/bytdbv0.0.0bench/go.mod
Gogithub.com/rohanthewiz/bytdb/pgwirev0.0.0bench/go.mod
Gogithub.com/rohanthewiz/btypedbv0.6.2go.mod
Gogithub.com/rohanthewiz/serrv1.4.0go.mod
Gogithub.com/jackc/pgx/v5v5.10.0pgwire/go.mod
Gogithub.com/rohanthewiz/btypedbv0.6.2pgwire/go.mod
Gogithub.com/rohanthewiz/bytdbv0.6.4pgwire/go.mod
Gogithub.com/rohanthewiz/serrv1.4.0pgwire/go.mod
Gogolang.org/x/textv0.29.0pgwire/go.mod
Todas las dependencias no recopilado

No fue posible recopilar el conjunto de dependencias resuelto para este informe: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Informe JSON sin procesar legible por máquina
{
  "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
}

Las puntuaciones son señales, no garantías. Reflejan prácticas públicamente visibles en GitHub; no son una auditoría de código ni una garantía de seguridad.

Los datos ausentes se excluyen y los pesos se renormalizan; nunca se puntúan como cero. La metodología es versionada y abierta: métricas v1.13.0, esquema v0.27.0 — metodología completa · wiki de métricas.

Cómo se sitúa un resultado dentro del registro general: estadísticas agregadasGo.