{
  "generated": "2026-06-30T07:34:26.252Z",
  "services": {
    "fabric-auth": {
      "repo": "BloclabsHQ/fabric-auth",
      "owner": "PramodTKodag",
      "commits": [
        {
          "sha": "cd0d2464",
          "author": "surajkadam98",
          "date": "2026-06-25T22:26:56Z",
          "message": "feat(auth): add MCP browser auth grant"
        }
      ],
      "pullRequests": [],
      "latestDeploy": {
        "name": "Migration Snapshot Backup",
        "status": "completed",
        "conclusion": "success",
        "createdAt": "2026-06-30T03:22:48Z",
        "url": "https://github.com/BloclabsHQ/fabric-auth/actions/runs/28418033876"
      },
      "latestRelease": {
        "tag": "fabric-auth-openapi-v1.3.0",
        "publishedAt": "2026-06-25T22:27:31Z",
        "url": "https://github.com/BloclabsHQ/fabric-auth/releases/tag/fabric-auth-openapi-v1.3.0"
      },
      "activity": {
        "commits7d": 1,
        "prsOpen": 0
      }
    },
    "fabric-bundler": {
      "repo": "BloclabsHQ/fabric-bundler",
      "owner": "PramodTKodag",
      "commits": [
        {
          "sha": "72871973",
          "author": "PramodTKodag",
          "date": "2026-06-29T08:20:19Z",
          "message": "fix: surface reverted UserOps as included(success=false) with full receipt (ERC-4337 conformance) (#216)"
        }
      ],
      "pullRequests": [
        {
          "number": 217,
          "title": "feat(messaging): publish bundler.useroperation.submitted to fabric-events",
          "author": "rohanpb",
          "createdAt": "2026-06-29T11:14:25Z",
          "mergedAt": null,
          "additions": 0,
          "deletions": 0,
          "url": "https://github.com/BloclabsHQ/fabric-bundler/pull/217"
        }
      ],
      "latestDeploy": {
        "name": "Claude Code",
        "status": "completed",
        "conclusion": "skipped",
        "createdAt": "2026-06-29T11:14:38Z",
        "url": "https://github.com/BloclabsHQ/fabric-bundler/actions/runs/28367987949"
      },
      "latestRelease": {
        "tag": "fabric-bundler-openapi-v1.0.0",
        "publishedAt": "2026-04-23T16:34:42Z",
        "url": "https://github.com/BloclabsHQ/fabric-bundler/releases/tag/fabric-bundler-openapi-v1.0.0"
      },
      "activity": {
        "commits7d": 1,
        "prsOpen": 1
      }
    },
    "fabric-events": {
      "repo": "BloclabsHQ/fabric-events",
      "owner": "Madgeniusblink",
      "commits": [
        {
          "sha": "3faddde5",
          "author": "Madgeniusblink",
          "date": "2026-06-26T04:55:23Z",
          "message": "docs(indexer): rewrite INDEXER_INTEGRATION around chain.* + how to query indexer events (#211)"
        },
        {
          "sha": "5c594bc8",
          "author": "Madgeniusblink",
          "date": "2026-06-26T04:25:06Z",
          "message": "fix(events): distinguish duplicate publish from new receipt (#579) (#210)"
        },
        {
          "sha": "612cfa1c",
          "author": "Madgeniusblink",
          "date": "2026-06-26T02:55:55Z",
          "message": "fix: expose zero receipt metric signal"
        },
        {
          "sha": "1d210ab6",
          "author": "Madgeniusblink",
          "date": "2026-06-26T01:11:00Z",
          "message": "fix: expose event receipt metrics for ops validation"
        },
        {
          "sha": "241e6463",
          "author": "Madgeniusblink",
          "date": "2026-06-25T02:00:09Z",
          "message": "feat(registry): register chain.* indexer confirmation types + Asynq routing (ADR-0014) (#207)"
        },
        {
          "sha": "86207acb",
          "author": "Madgeniusblink",
          "date": "2026-06-24T05:12:17Z",
          "message": "fix(events): CI test gate + resource/correctness hygiene (#206)"
        },
        {
          "sha": "55a11655",
          "author": "Madgeniusblink",
          "date": "2026-06-24T04:25:15Z",
          "message": "feat(schemas): accept fabric.indexer.events.* via type-prefix namespace rule (#205)"
        }
      ],
      "pullRequests": [
        {
          "number": 212,
          "title": "feat(schemas): enforce canonical chain.* data field names",
          "author": "Madgeniusblink",
          "createdAt": "2026-06-26T04:48:48Z",
          "mergedAt": null,
          "additions": 0,
          "deletions": 0,
          "url": "https://github.com/BloclabsHQ/fabric-events/pull/212"
        }
      ],
      "latestDeploy": {
        "name": "Schema Registry Lock",
        "status": "completed",
        "conclusion": "success",
        "createdAt": "2026-06-26T05:01:22Z",
        "url": "https://github.com/BloclabsHQ/fabric-events/actions/runs/28218247754"
      },
      "latestRelease": null,
      "activity": {
        "commits7d": 7,
        "prsOpen": 1
      }
    },
    "fabric-nft": {
      "repo": "BloclabsHQ/fabric-nft",
      "owner": "Aryancsz",
      "commits": [
        {
          "sha": "c8a3f4fb",
          "author": "Aryancsz",
          "date": "2026-06-29T15:17:19Z",
          "message": "fix(config): restore strings import dropped in the #310/#312 merge (#313)"
        },
        {
          "sha": "138e5c1f",
          "author": "Aryancsz",
          "date": "2026-06-26T05:17:15Z",
          "message": "feat(events): migrate indexer consumer to the Asynq bus, retire the webhook receiver (#309) (#310)"
        },
        {
          "sha": "2a846785",
          "author": "Aryancsz",
          "date": "2026-06-25T09:52:37Z",
          "message": "fix(txconfirmer): disable + loud-error when chain RPC is the unset sentinel (#311) (#312)"
        },
        {
          "sha": "1186ac96",
          "author": "Madgeniusblink",
          "date": "2026-06-25T00:57:05Z",
          "message": "docs(specs): migrate durable specs to docs/specs/ (ADR 0015) (#308)"
        },
        {
          "sha": "348aef2a",
          "author": "Aryancsz",
          "date": "2026-06-23T08:50:24Z",
          "message": "feat(indexer): apply decoded base_uri_set to collection metadata (#303) (#307)"
        }
      ],
      "pullRequests": [
        {
          "number": 70,
          "title": "release: merge dev into main — config refactor, CLAUDE.md rewrite, Docker improvements",
          "author": "Aryancsz",
          "createdAt": "2026-04-02T09:00:48Z",
          "mergedAt": null,
          "additions": 0,
          "deletions": 0,
          "url": "https://github.com/BloclabsHQ/fabric-nft/pull/70"
        }
      ],
      "latestDeploy": {
        "name": "Dev CI/CD Pipeline",
        "status": "completed",
        "conclusion": "failure",
        "createdAt": "2026-06-29T15:17:22Z",
        "url": "https://github.com/BloclabsHQ/fabric-nft/actions/runs/28382687055"
      },
      "latestRelease": {
        "tag": "fabric-nft-openapi-vv1",
        "publishedAt": "2026-06-26T05:17:38Z",
        "url": "https://github.com/BloclabsHQ/fabric-nft/releases/tag/fabric-nft-openapi-vv1"
      },
      "activity": {
        "commits7d": 5,
        "prsOpen": 1
      }
    },
    "fabric-platform": {
      "repo": "BloclabsHQ/fabric-platform",
      "owner": "Madgeniusblink",
      "commits": [
        {
          "sha": "224700cc",
          "author": "Madgeniusblink",
          "date": "2026-06-25T23:47:57Z",
          "message": "fix(canon): correct drifted values to source-owner truth (ADR 0015 sweep) (#172)"
        }
      ],
      "pullRequests": [],
      "latestDeploy": {
        "name": "Dependabot Auto-Merge",
        "status": "completed",
        "conclusion": "skipped",
        "createdAt": "2026-06-25T00:45:18Z",
        "url": "https://github.com/BloclabsHQ/fabric-platform/actions/runs/28139219479"
      },
      "latestRelease": {
        "tag": "fabric-subscription-openapi-v1.0",
        "publishedAt": "2026-03-17T18:29:23Z",
        "url": "https://github.com/BloclabsHQ/fabric-platform/releases/tag/fabric-subscription-openapi-v1.0"
      },
      "activity": {
        "commits7d": 1,
        "prsOpen": 0
      }
    },
    "fabric-token": {
      "repo": "BloclabsHQ/fabric-token",
      "owner": "Aryancsz",
      "commits": [
        {
          "sha": "ef7a95ee",
          "author": "Madgeniusblink",
          "date": "2026-06-26T03:53:10Z",
          "message": "docs: correct health path to singular /v1/token/health (ADR 0002) (#52)"
        },
        {
          "sha": "eca266c8",
          "author": "Madgeniusblink",
          "date": "2026-06-26T02:44:24Z",
          "message": "fix(health): remove legacy plural /v1/tokens/health route (singular-only) (#51)"
        },
        {
          "sha": "f5de0fec",
          "author": "Madgeniusblink",
          "date": "2026-06-26T02:00:46Z",
          "message": "fix(health): singular /v1/token/health (ADR 0002) — DRAFT, needs coordinated iac flip (#50)"
        },
        {
          "sha": "a30335ce",
          "author": "Madgeniusblink",
          "date": "2026-06-25T00:57:27Z",
          "message": "fix(canon): correct drifted values to source-owner truth (ADR 0015 sweep) (#49)"
        }
      ],
      "pullRequests": [
        {
          "number": 12,
          "title": "docs: Migrate documentation to wiki",
          "author": "Madgeniusblink",
          "createdAt": "2026-02-28T04:55:18Z",
          "mergedAt": null,
          "additions": 0,
          "deletions": 0,
          "url": "https://github.com/BloclabsHQ/fabric-token/pull/12"
        },
        {
          "number": 29,
          "title": "Feat/token changes for custodial",
          "author": "Aryancsz",
          "createdAt": "2026-03-13T21:29:46Z",
          "mergedAt": null,
          "additions": 0,
          "deletions": 0,
          "url": "https://github.com/BloclabsHQ/fabric-token/pull/29"
        }
      ],
      "latestDeploy": {
        "name": "Dev CI/CD Pipeline",
        "status": "completed",
        "conclusion": "success",
        "createdAt": "2026-06-26T02:44:27Z",
        "url": "https://github.com/BloclabsHQ/fabric-token/actions/runs/28213805282"
      },
      "latestRelease": {
        "tag": "fabric-token-openapi-v1.0",
        "publishedAt": "2026-06-08T02:33:08Z",
        "url": "https://github.com/BloclabsHQ/fabric-token/releases/tag/fabric-token-openapi-v1.0"
      },
      "activity": {
        "commits7d": 4,
        "prsOpen": 2
      }
    },
    "fabric-wallet": {
      "repo": "BloclabsHQ/fabric-wallet",
      "owner": "PramodTKodag",
      "commits": [
        {
          "sha": "8582b188",
          "author": "PramodTKodag",
          "date": "2026-06-25T18:04:33Z",
          "message": "refactor(ddd): slice 4 keybus PR-2c-1 — app-composed wallet reads via keybus ShardReader (#543)"
        },
        {
          "sha": "8bece194",
          "author": "PramodTKodag",
          "date": "2026-06-25T16:36:58Z",
          "message": "chore(db): align wallets partial-index WHERE to ANY(ARRAY[...]) so atlas stops drifting (#544)"
        },
        {
          "sha": "1483b921",
          "author": "PramodTKodag",
          "date": "2026-06-25T09:48:30Z",
          "message": "refactor(chain): extract AddressInspector + GasEstimator out of WalletService (#542)"
        },
        {
          "sha": "090de377",
          "author": "PramodTKodag",
          "date": "2026-06-25T08:33:45Z",
          "message": "refactor(ddd): slice 4 keybus — PR-2b HSM seam + project_id EncryptionContext (#541)"
        },
        {
          "sha": "6c406da2",
          "author": "PramodTKodag",
          "date": "2026-06-25T08:10:27Z",
          "message": "harden(session-key): add read-tier rate limiter to validate-execution (#540)"
        },
        {
          "sha": "7d0b4b13",
          "author": "PramodTKodag",
          "date": "2026-06-25T05:54:46Z",
          "message": "refactor(ddd): slice 4 keybus PR-2a — DKG genesis/rekey cutover onto sqltx + keybus (#539)"
        },
        {
          "sha": "e716ea97",
          "author": "Madgeniusblink",
          "date": "2026-06-25T00:57:31Z",
          "message": "fix(canon): correct drifted values to source-owner truth (ADR 0015 sweep) (#538)"
        },
        {
          "sha": "5af386e8",
          "author": "PramodTKodag",
          "date": "2026-06-24T19:43:17Z",
          "message": "refactor(ddd): slice 4 keybus — PR-1 additive foundation (#537)"
        },
        {
          "sha": "66ff53dc",
          "author": "PramodTKodag",
          "date": "2026-06-24T18:11:39Z",
          "message": "fix(sessionkeyapp): restore whitelist validation + write locks (parity) (#536)"
        },
        {
          "sha": "60e9f154",
          "author": "PramodTKodag",
          "date": "2026-06-24T17:19:02Z",
          "message": "refactor(ddd): slice 3 — sessionkeybus (#532)"
        },
        {
          "sha": "8c7ace1f",
          "author": "PramodTKodag",
          "date": "2026-06-24T08:50:11Z",
          "message": "chore(webhook): retire orphaned auth.consumer.* consumer (#508) (#528)"
        }
      ],
      "pullRequests": [
        {
          "number": 555,
          "title": "refactor(ddd): slice 5 PR-2b — operationdb adapter (GORM Storer, real-pg tests)",
          "author": "PramodTKodag",
          "createdAt": "2026-06-26T12:18:42Z",
          "mergedAt": null,
          "additions": 0,
          "deletions": 0,
          "url": "https://github.com/BloclabsHQ/fabric-wallet/pull/555"
        },
        {
          "number": 553,
          "title": "refactor(ddd): slice 5 PR-2a — operationbus skeleton (entities, state machine, Storer port)",
          "author": "PramodTKodag",
          "createdAt": "2026-06-26T11:21:24Z",
          "mergedAt": null,
          "additions": 0,
          "deletions": 0,
          "url": "https://github.com/BloclabsHQ/fabric-wallet/pull/553"
        },
        {
          "number": 551,
          "title": "refactor(ddd): slice 5 PR-1 — chain I/O ports + foundation/blockchain adapters",
          "author": "PramodTKodag",
          "createdAt": "2026-06-26T08:13:57Z",
          "mergedAt": null,
          "additions": 0,
          "deletions": 0,
          "url": "https://github.com/BloclabsHQ/fabric-wallet/pull/551"
        }
      ],
      "latestDeploy": {
        "name": "Claude Code",
        "status": "completed",
        "conclusion": "skipped",
        "createdAt": "2026-06-29T16:40:57Z",
        "url": "https://github.com/BloclabsHQ/fabric-wallet/actions/runs/28387894676"
      },
      "latestRelease": {
        "tag": "fabric-wallet-openapi-v1.0.0",
        "publishedAt": "2026-06-21T06:33:24Z",
        "url": "https://github.com/BloclabsHQ/fabric-wallet/releases/tag/fabric-wallet-openapi-v1.0.0"
      },
      "activity": {
        "commits7d": 11,
        "prsOpen": 3
      }
    },
    "fabric-indexer-rs": {
      "repo": "BloclabsHQ/fabric-indexer-rs",
      "owner": "Madgeniusblink",
      "commits": [
        {
          "sha": "d1be9fc3",
          "author": "Madgeniusblink",
          "date": "2026-06-30T02:54:08Z",
          "message": "feat: add indexer environment config manifests"
        },
        {
          "sha": "23ae0359",
          "author": "Madgeniusblink",
          "date": "2026-06-29T21:43:56Z",
          "message": "feat: make NFT provenance queryable (#145)"
        },
        {
          "sha": "763dfdf7",
          "author": "Madgeniusblink",
          "date": "2026-06-29T06:30:27Z",
          "message": "fix: preserve balance projections across rollback"
        },
        {
          "sha": "27aabeeb",
          "author": "Madgeniusblink",
          "date": "2026-06-28T05:13:35Z",
          "message": "fix(registry): keep startup load byte-safe (#97)"
        },
        {
          "sha": "9a377373",
          "author": "Madgeniusblink",
          "date": "2026-06-28T04:38:02Z",
          "message": "fix(observability): expose indexer blind spots (#86)"
        },
        {
          "sha": "ff6883b6",
          "author": "Madgeniusblink",
          "date": "2026-06-28T03:52:17Z",
          "message": "fix(enricher): keep ERC-721 ownership deterministic"
        },
        {
          "sha": "11b5bdb4",
          "author": "Madgeniusblink",
          "date": "2026-06-27T00:26:26Z",
          "message": "test: add ClickHouse harness for storage proof (#130)"
        },
        {
          "sha": "004b2096",
          "author": "Madgeniusblink",
          "date": "2026-06-27T00:14:12Z",
          "message": "test: harden fabric-events receive e2e"
        },
        {
          "sha": "d4f0ea0e",
          "author": "Madgeniusblink",
          "date": "2026-06-26T23:07:26Z",
          "message": "fix(ci): fetch fabric-contracts submodules for e2e seed deploy (#138)"
        },
        {
          "sha": "082e5f94",
          "author": "Madgeniusblink",
          "date": "2026-06-26T21:58:44Z",
          "message": "fix(ci): lowercase GHCR owner in e2e image pull (#137)"
        },
        {
          "sha": "e008aa45",
          "author": "Madgeniusblink",
          "date": "2026-06-26T21:53:36Z",
          "message": "ci(e2e): use ORG_GITHUB_TOKEN for the fabric-contracts checkout (#136)"
        },
        {
          "sha": "953e1a38",
          "author": "Madgeniusblink",
          "date": "2026-06-26T05:53:53Z",
          "message": "test(e2e): assert seeded chain.* event reaches fabric-events (#135)"
        },
        {
          "sha": "f8d41a1f",
          "author": "Madgeniusblink",
          "date": "2026-06-26T04:40:57Z",
          "message": "feat(events): emit canonical chain.* confirmation types for nft/token (ADR-0014) (#126)"
        },
        {
          "sha": "961b015b",
          "author": "Madgeniusblink",
          "date": "2026-06-26T04:26:33Z",
          "message": "fix: rebuild balances from decoded event truth (#132)"
        },
        {
          "sha": "a068d2d0",
          "author": "Madgeniusblink",
          "date": "2026-06-26T04:26:30Z",
          "message": "feat(outbox): classify created vs duplicate fabric-events receipts (#579) (#134)"
        },
        {
          "sha": "e9f3435f",
          "author": "Madgeniusblink",
          "date": "2026-06-26T02:49:26Z",
          "message": "fix: prevent balance drift on Transfer replay"
        },
        {
          "sha": "b6acf5e1",
          "author": "Madgeniusblink",
          "date": "2026-06-25T04:58:36Z",
          "message": "feat(app): run ClickHouse migrations on startup (fail-fast, RUN_MIGRATIONS gate) (#128)"
        },
        {
          "sha": "652d1ba5",
          "author": "Madgeniusblink",
          "date": "2026-06-25T01:15:45Z",
          "message": "docs: credit @codeDem as co-owner alongside @Madgeniusblink (#125)"
        },
        {
          "sha": "2e4ea9a3",
          "author": "Madgeniusblink",
          "date": "2026-06-25T00:56:58Z",
          "message": "fix(canon): correct drifted values to source-owner truth (ADR 0015 sweep) (#124)"
        },
        {
          "sha": "827bcb7f",
          "author": "Madgeniusblink",
          "date": "2026-06-25T00:56:55Z",
          "message": "docs(specs): migrate durable specs to docs/specs/ (ADR 0015) (#123)"
        },
        {
          "sha": "b37eff32",
          "author": "Madgeniusblink",
          "date": "2026-06-24T23:35:42Z",
          "message": "fix(outbox): capture registry-class poison events to a DLQ instead of dropping (#122)"
        },
        {
          "sha": "cfb44d81",
          "author": "Madgeniusblink",
          "date": "2026-06-24T23:03:25Z",
          "message": "docs: defer indexer event docs to ADR-0014 (kill competing source of truth) (#121)"
        },
        {
          "sha": "f9f0cb0d",
          "author": "Madgeniusblink",
          "date": "2026-06-24T21:36:18Z",
          "message": "fix(outbox): make stuck-detection metrics finality-aware (#120)"
        },
        {
          "sha": "f9db8306",
          "author": "Madgeniusblink",
          "date": "2026-06-24T20:38:17Z",
          "message": "fix(outbox): gate delivery on block finality to close reorg race (#119)"
        },
        {
          "sha": "256f2d86",
          "author": "Madgeniusblink",
          "date": "2026-06-24T05:29:58Z",
          "message": "test(events): producer contract test vs fabric-events schema (#118)"
        },
        {
          "sha": "51a4aad3",
          "author": "Madgeniusblink",
          "date": "2026-06-24T04:27:38Z",
          "message": "fix(events): publish fabric.event.v1 NewEvent to fabric-events /publish (#117)"
        },
        {
          "sha": "d058500d",
          "author": "Madgeniusblink",
          "date": "2026-06-24T02:08:00Z",
          "message": "feat(health): add curl-free 'health' subcommand for distroless ECS probe (#113)"
        },
        {
          "sha": "dd7dc0f1",
          "author": "Madgeniusblink",
          "date": "2026-06-23T20:28:21Z",
          "message": "fix(api): isolate REST/health server on its own runtime to stop the restart loop (#113)"
        }
      ],
      "pullRequests": [
        {
          "number": 150,
          "title": "feat: add events keyset resync cursor",
          "author": "Madgeniusblink",
          "createdAt": "2026-06-30T03:11:09Z",
          "mergedAt": null,
          "additions": 0,
          "deletions": 0,
          "url": "https://github.com/BloclabsHQ/fabric-indexer-rs/pull/150"
        },
        {
          "number": 149,
          "title": "fix: read portfolio balances by update block",
          "author": "Madgeniusblink",
          "createdAt": "2026-06-30T03:04:21Z",
          "mergedAt": null,
          "additions": 0,
          "deletions": 0,
          "url": "https://github.com/BloclabsHQ/fabric-indexer-rs/pull/149"
        }
      ],
      "latestDeploy": {
        "name": "Commitlint",
        "status": "completed",
        "conclusion": "success",
        "createdAt": "2026-06-30T03:19:43Z",
        "url": "https://github.com/BloclabsHQ/fabric-indexer-rs/actions/runs/28417925170"
      },
      "latestRelease": {
        "tag": "v0.2.0",
        "publishedAt": "2026-05-17T13:46:08Z",
        "url": "https://github.com/BloclabsHQ/fabric-indexer-rs/releases/tag/v0.2.0"
      },
      "activity": {
        "commits7d": 28,
        "prsOpen": 2
      }
    },
    "fabric-dao": {
      "repo": "BloclabsHQ/fabric-dao",
      "owner": "Madgeniusblink",
      "commits": [
        {
          "sha": "364a24ba",
          "author": "Madgeniusblink",
          "date": "2026-06-25T23:53:44Z",
          "message": "docs(specs): migrate durable specs to docs/specs/ (ADR 0015) (#73)"
        },
        {
          "sha": "787a9021",
          "author": "Madgeniusblink",
          "date": "2026-06-25T23:53:37Z",
          "message": "fix(canon): correct drifted values to source-owner truth (ADR 0015 sweep) (#74)"
        },
        {
          "sha": "3cb8a5b4",
          "author": "rohanpb",
          "date": "2026-06-25T15:57:28Z",
          "message": "feat(operations): add expiry + stale background sweepers (PR 9) (#76)"
        },
        {
          "sha": "f1b1d23c",
          "author": "pamelaromeroo",
          "date": "2026-06-24T17:09:12Z",
          "message": "feat: add operation tracking endpoints (PR 8) (#65)"
        },
        {
          "sha": "b5195b00",
          "author": "rohanpb",
          "date": "2026-06-24T16:10:44Z",
          "message": "chore(indexer): reject empty proposal action arrays (PR 6 M7) (#70)"
        },
        {
          "sha": "8575a287",
          "author": "rohanpb",
          "date": "2026-06-24T16:09:55Z",
          "message": "chore(proposaldb): scope state-machine transitions by chain_id (PR 6 M4) (#71)"
        },
        {
          "sha": "fd91fabe",
          "author": "rohanpb",
          "date": "2026-06-24T16:09:13Z",
          "message": "chore(governancedb): add PG test coverage for 4 chain-confirmed methods (PR 6 M8) (#72)"
        }
      ],
      "pullRequests": [
        {
          "number": 79,
          "title": "fix(dbtest): use UUID for parallel-safe database name",
          "author": "rohanpb",
          "createdAt": "2026-06-29T10:49:49Z",
          "mergedAt": null,
          "additions": 0,
          "deletions": 0,
          "url": "https://github.com/BloclabsHQ/fabric-dao/pull/79"
        },
        {
          "number": 80,
          "title": "docs(specs): add PR 9b — StatusConfirming + autonomous reconciler",
          "author": "rohanpb",
          "createdAt": "2026-06-29T11:14:27Z",
          "mergedAt": null,
          "additions": 0,
          "deletions": 0,
          "url": "https://github.com/BloclabsHQ/fabric-dao/pull/80"
        },
        {
          "number": 77,
          "title": "feat(dao): merge worker into dao-api binary (single ECS service)",
          "author": "rohanpb",
          "createdAt": "2026-06-26T18:57:44Z",
          "mergedAt": null,
          "additions": 0,
          "deletions": 0,
          "url": "https://github.com/BloclabsHQ/fabric-dao/pull/77"
        },
        {
          "number": 81,
          "title": "fix: fence first-deploy DAO routes",
          "author": "pamelaromeroo",
          "createdAt": "2026-06-29T20:28:27Z",
          "mergedAt": null,
          "additions": 0,
          "deletions": 0,
          "url": "https://github.com/BloclabsHQ/fabric-dao/pull/81"
        },
        {
          "number": 78,
          "title": "docs(runbooks): add dev launch 1Password vault + smoke checklist",
          "author": "rohanpb",
          "createdAt": "2026-06-29T10:43:14Z",
          "mergedAt": null,
          "additions": 0,
          "deletions": 0,
          "url": "https://github.com/BloclabsHQ/fabric-dao/pull/78"
        }
      ],
      "latestDeploy": {
        "name": "Dev CI/CD Pipeline",
        "status": "completed",
        "conclusion": "failure",
        "createdAt": "2026-06-29T20:28:30Z",
        "url": "https://github.com/BloclabsHQ/fabric-dao/actions/runs/28400570780"
      },
      "latestRelease": null,
      "activity": {
        "commits7d": 7,
        "prsOpen": 5
      }
    }
  },
  "additionalRepos": {
    "fabricbloc-mcp": {
      "repo": "FabricBloc/fabricbloc-mcp",
      "owner": "surajkadam98",
      "label": "MCP Server",
      "commits": [],
      "pullRequests": [],
      "activity": {
        "commits7d": 0,
        "prsOpen": 0
      }
    },
    "fabricbloc-shell": {
      "repo": "BloclabsHQ/fabricbloc-shell",
      "owner": "Taimurmirza01",
      "label": "Shell Host",
      "commits": [
        {
          "sha": "5b3162ed",
          "author": "Madgeniusblink",
          "date": "2026-06-26T00:13:17Z",
          "message": "chore(canon): retire the parent-facing canon-summary surface (#262)"
        },
        {
          "sha": "87e9b9f0",
          "author": "Madgeniusblink",
          "date": "2026-06-24T21:18:50Z",
          "message": "fix(shell): no-cache the HTML shell so deploys reach users immediately (#261)"
        },
        {
          "sha": "0fad7e9a",
          "author": "Madgeniusblink",
          "date": "2026-06-24T20:30:41Z",
          "message": "feat(analytics): init PostHog above the auth gate (#260)"
        },
        {
          "sha": "fd3d039a",
          "author": "Madgeniusblink",
          "date": "2026-06-24T05:13:16Z",
          "message": "chore(shell): source POSTHOG_API_KEY from IaC, drop baked token (#259)"
        },
        {
          "sha": "941902e0",
          "author": "Madgeniusblink",
          "date": "2026-06-24T03:29:44Z",
          "message": "feat(analytics): consent-free PostHog product analytics (#258)"
        }
      ],
      "pullRequests": [],
      "activity": {
        "commits7d": 5,
        "prsOpen": 0
      }
    },
    "fabric-gateway": {
      "repo": "BloclabsHQ/fabric-gateway",
      "owner": "debu99",
      "label": "API Gateway (Kong)",
      "commits": [
        {
          "sha": "39ccc7f0",
          "author": "Madgeniusblink",
          "date": "2026-06-29T05:48:48Z",
          "message": "chore: require 1Password local gateway env"
        },
        {
          "sha": "c8d5cf92",
          "author": "Madgeniusblink",
          "date": "2026-06-27T02:15:34Z",
          "message": "fix: restore events publish route"
        },
        {
          "sha": "c5c58b18",
          "author": "Madgeniusblink",
          "date": "2026-06-26T01:11:00Z",
          "message": "fix: expose events health route for dev API"
        },
        {
          "sha": "9f4b67d5",
          "author": "vl-kp",
          "date": "2026-06-25T12:43:49Z",
          "message": "chore: add hmac"
        },
        {
          "sha": "42603e77",
          "author": "vl-kp",
          "date": "2026-06-25T12:40:54Z",
          "message": "chore: add aws lambda plugin"
        }
      ],
      "pullRequests": [
        {
          "number": 216,
          "title": "fix(auth-routes): register MCP browser-auth routes in Kong confi",
          "author": "surajkadam98",
          "createdAt": "2026-06-29T14:02:57Z",
          "mergedAt": null,
          "additions": 0,
          "deletions": 0,
          "url": "https://github.com/BloclabsHQ/fabric-gateway/pull/216"
        }
      ],
      "activity": {
        "commits7d": 5,
        "prsOpen": 1
      }
    },
    "fabric-iac": {
      "repo": "BloclabsHQ/fabric-iac",
      "owner": "debu99",
      "label": "Infrastructure",
      "commits": [
        {
          "sha": "6df63eb6",
          "author": "vl-kp",
          "date": "2026-06-30T03:28:28Z",
          "message": "chore: add prod 1password"
        },
        {
          "sha": "d604087d",
          "author": "Madgeniusblink",
          "date": "2026-06-30T00:57:16Z",
          "message": "fix: guard Alloy scrape targets (#198)"
        },
        {
          "sha": "17cf8d97",
          "author": "Madgeniusblink",
          "date": "2026-06-29T23:33:22Z",
          "message": "docs: expand internal-service-urls into the canonical connection-config standard (#197)"
        },
        {
          "sha": "fe1668fe",
          "author": "Madgeniusblink",
          "date": "2026-06-29T22:56:29Z",
          "message": "fix(fabric-lambda): pin promote-dispatcher by digest to force the image refresh (#194)"
        },
        {
          "sha": "ef79c469",
          "author": "Madgeniusblink",
          "date": "2026-06-29T22:55:21Z",
          "message": "fix: extend Alloy scrape coverage (#196)"
        },
        {
          "sha": "f05036d7",
          "author": "Madgeniusblink",
          "date": "2026-06-26T02:10:09Z",
          "message": "fix(token): flip dev health_check_path to singular /v1/token/health (#190)"
        },
        {
          "sha": "e26e6b17",
          "author": "vl-kp",
          "date": "2026-06-25T12:37:22Z",
          "message": "chore: update kong lambda perm"
        },
        {
          "sha": "6affae3f",
          "author": "vl-kp",
          "date": "2026-06-25T12:18:06Z",
          "message": "chore: add fabric lambda pipeline"
        },
        {
          "sha": "ba923a7a",
          "author": "Madgeniusblink",
          "date": "2026-06-25T12:05:38Z",
          "message": "feat(dev): agent Lambda unit + promote dispatcher (draft) (#189)"
        },
        {
          "sha": "27ae3acb",
          "author": "Madgeniusblink",
          "date": "2026-06-25T03:09:15Z",
          "message": "fix(canon): correct drifted values to source-owner truth (ADR 0015 sweep) (#188)"
        },
        {
          "sha": "de15a30e",
          "author": "Madgeniusblink",
          "date": "2026-06-24T03:45:16Z",
          "message": "feat(dev/fabric): inject POSTHOG_API_KEY into the shell task (#186)"
        },
        {
          "sha": "676995e8",
          "author": "Madgeniusblink",
          "date": "2026-06-24T03:16:22Z",
          "message": "feat(dev/fabric): exec indexer health subcommand for distroless ECS probe (#182)"
        },
        {
          "sha": "91887d49",
          "author": "Madgeniusblink",
          "date": "2026-06-24T01:01:20Z",
          "message": "fix(dev/fabric): serve docs + agents via the resilient fabric-s3 proxy (stops docs.fabric.test stall) (#180)"
        },
        {
          "sha": "a7ea89f4",
          "author": "Madgeniusblink",
          "date": "2026-06-23T23:56:04Z",
          "message": "fix(dev/fabric): disable broken curl health check on the distroless indexer (#179)"
        }
      ],
      "pullRequests": [
        {
          "number": 192,
          "title": "feat(dev): add fabric-dao ECS service entry + 1Password vault",
          "author": "rohanpb",
          "createdAt": "2026-06-26T19:37:05Z",
          "mergedAt": null,
          "additions": 0,
          "deletions": 0,
          "url": "https://github.com/BloclabsHQ/fabric-iac/pull/192"
        }
      ],
      "activity": {
        "commits7d": 14,
        "prsOpen": 1
      }
    },
    "fabric-dev-stack": {
      "repo": "BloclabsHQ/fabric-dev-stack",
      "owner": "debu99",
      "label": "Dev Stack",
      "commits": [
        {
          "sha": "7dcde179",
          "author": "Madgeniusblink",
          "date": "2026-06-29T05:50:11Z",
          "message": "fix: diagnose Mimir sync reachability"
        },
        {
          "sha": "9ebb91de",
          "author": "Madgeniusblink",
          "date": "2026-06-29T05:45:11Z",
          "message": "fix: join tailnet for observability sync"
        },
        {
          "sha": "6688e395",
          "author": "Madgeniusblink",
          "date": "2026-06-29T05:32:43Z",
          "message": "fix: allow internal observability sync runner"
        },
        {
          "sha": "d96d5ae6",
          "author": "Madgeniusblink",
          "date": "2026-06-29T05:01:40Z",
          "message": "fix: require observability runtime proof (#69)"
        },
        {
          "sha": "cffffd28",
          "author": "Madgeniusblink",
          "date": "2026-06-28T04:38:10Z",
          "message": "feat(indexer): alert on data-integrity gaps (#86)"
        },
        {
          "sha": "9ac5fda3",
          "author": "Madgeniusblink",
          "date": "2026-06-26T21:45:54Z",
          "message": "feat(grafana): indexer outbox created-vs-duplicate receipts panel (#579) (#66)"
        },
        {
          "sha": "6c8f7189",
          "author": "Madgeniusblink",
          "date": "2026-06-26T04:26:10Z",
          "message": "feat(grafana): surface created-vs-duplicate publish receipts (#579) (#65)"
        },
        {
          "sha": "da6907d9",
          "author": "Madgeniusblink",
          "date": "2026-06-26T02:56:05Z",
          "message": "fix: show receipt zero signal in Grafana"
        },
        {
          "sha": "de565833",
          "author": "Madgeniusblink",
          "date": "2026-06-26T01:11:00Z",
          "message": "fix: show event receipt signal in Grafana"
        },
        {
          "sha": "6d75f1d4",
          "author": "Madgeniusblink",
          "date": "2026-06-25T01:01:46Z",
          "message": "fix(compose): unswap fabric-account / events-worker host ports (#62)"
        },
        {
          "sha": "67eb05ff",
          "author": "Madgeniusblink",
          "date": "2026-06-25T00:57:09Z",
          "message": "fix(canon): correct drifted values to source-owner truth (ADR 0015 sweep) (#61)"
        }
      ],
      "pullRequests": [],
      "activity": {
        "commits7d": 11,
        "prsOpen": 0
      }
    }
  },
  "contributors": {
    "surajkadam98": {
      "name": "Suraj Kadam",
      "avatarUrl": "https://avatars.githubusercontent.com/u/96656710?v=4",
      "role": "AI/MCP",
      "services": [
        "fabricbloc-mcp"
      ],
      "activity": {
        "commits7d": 1,
        "prsOpen": 1,
        "prsMerged7d": 1,
        "reviewsGiven7d": 0,
        "conventionalCommitPct": 100,
        "prSizeDistribution": {
          "xs": 1,
          "s": 0,
          "m": 0,
          "l": 0,
          "xl": 0
        }
      }
    },
    "rohanpb": {
      "name": "Rohan",
      "avatarUrl": "https://avatars.githubusercontent.com/u/163278201?v=4",
      "role": "Product/DevRel",
      "services": [],
      "activity": {
        "commits7d": 4,
        "prsOpen": 6,
        "prsMerged7d": 4,
        "reviewsGiven7d": 1,
        "conventionalCommitPct": 100,
        "prSizeDistribution": {
          "xs": 4,
          "s": 0,
          "m": 0,
          "l": 0,
          "xl": 0
        }
      }
    },
    "jessicakorenko-beep": {
      "name": "Jess Korenko",
      "avatarUrl": "https://avatars.githubusercontent.com/u/283025653?v=4",
      "role": "Digital Communication",
      "services": [],
      "activity": {
        "commits7d": 0,
        "prsOpen": 0,
        "prsMerged7d": 0,
        "reviewsGiven7d": 0,
        "conventionalCommitPct": 0,
        "prSizeDistribution": {
          "xs": 0,
          "s": 0,
          "m": 0,
          "l": 0,
          "xl": 0
        }
      }
    },
    "Taimurmirza01": {
      "name": "Taimur Mirza",
      "avatarUrl": "https://avatars.githubusercontent.com/u/146766531?v=4",
      "role": "Frontend",
      "services": [
        "fabricbloc-shell"
      ],
      "activity": {
        "commits7d": 0,
        "prsOpen": 0,
        "prsMerged7d": 0,
        "reviewsGiven7d": 0,
        "conventionalCommitPct": 0,
        "prSizeDistribution": {
          "xs": 0,
          "s": 0,
          "m": 0,
          "l": 0,
          "xl": 0
        }
      }
    },
    "debu99": {
      "name": "Vincent",
      "avatarUrl": "https://avatars.githubusercontent.com/u/25805758?v=4",
      "role": "DevOps/Infra",
      "services": [
        "fabric-gateway",
        "fabric-iac",
        "fabric-dev-stack"
      ],
      "activity": {
        "commits7d": 0,
        "prsOpen": 0,
        "prsMerged7d": 0,
        "reviewsGiven7d": 3,
        "conventionalCommitPct": 0,
        "prSizeDistribution": {
          "xs": 0,
          "s": 0,
          "m": 0,
          "l": 0,
          "xl": 0
        }
      }
    },
    "GeryaDF": {
      "name": "Gerya",
      "avatarUrl": "https://avatars.githubusercontent.com/u/279818428?v=4",
      "role": "Marketing",
      "services": [],
      "activity": {
        "commits7d": 0,
        "prsOpen": 0,
        "prsMerged7d": 0,
        "reviewsGiven7d": 0,
        "conventionalCommitPct": 0,
        "prSizeDistribution": {
          "xs": 0,
          "s": 0,
          "m": 0,
          "l": 0,
          "xl": 0
        }
      }
    },
    "Aryancsz": {
      "name": "Mallikarjun Hiremath",
      "avatarUrl": "https://avatars.githubusercontent.com/u/73257543?v=4",
      "role": "Backend",
      "services": [
        "fabric-nft",
        "fabric-token"
      ],
      "activity": {
        "commits7d": 4,
        "prsOpen": 2,
        "prsMerged7d": 4,
        "reviewsGiven7d": 0,
        "conventionalCommitPct": 100,
        "prSizeDistribution": {
          "xs": 4,
          "s": 0,
          "m": 0,
          "l": 0,
          "xl": 0
        }
      }
    },
    "PramodTKodag": {
      "name": "Pramod Kodag",
      "avatarUrl": "https://avatars.githubusercontent.com/u/24697885?v=4",
      "role": "Backend",
      "services": [
        "fabric-auth",
        "fabric-bundler",
        "fabric-wallet"
      ],
      "activity": {
        "commits7d": 11,
        "prsOpen": 3,
        "prsMerged7d": 19,
        "reviewsGiven7d": 46,
        "conventionalCommitPct": 91,
        "prSizeDistribution": {
          "xs": 19,
          "s": 0,
          "m": 0,
          "l": 0,
          "xl": 0
        }
      }
    },
    "pamelaromeroo": {
      "name": "Pamela Romero",
      "avatarUrl": "https://avatars.githubusercontent.com/u/252098911?v=4",
      "role": "Product/DevRel",
      "services": [],
      "activity": {
        "commits7d": 1,
        "prsOpen": 1,
        "prsMerged7d": 1,
        "reviewsGiven7d": 2,
        "conventionalCommitPct": 100,
        "prSizeDistribution": {
          "xs": 1,
          "s": 0,
          "m": 0,
          "l": 0,
          "xl": 0
        }
      }
    },
    "codeDem": {
      "name": "Dhiraj Kadam",
      "avatarUrl": "https://avatars.githubusercontent.com/u/8732860?v=4",
      "role": "Co-founder",
      "services": [],
      "activity": {
        "commits7d": 0,
        "prsOpen": 0,
        "prsMerged7d": 0,
        "reviewsGiven7d": 0,
        "conventionalCommitPct": 0,
        "prSizeDistribution": {
          "xs": 0,
          "s": 0,
          "m": 0,
          "l": 0,
          "xl": 0
        }
      }
    },
    "Madgeniusblink": {
      "name": "Cris R",
      "avatarUrl": "https://avatars.githubusercontent.com/u/42707764?v=4",
      "role": "CEO/CTO/Founder",
      "services": [
        "fabric-events",
        "fabric-platform",
        "fabric-dao",
        "fabric-indexer-rs"
      ],
      "activity": {
        "commits7d": 74,
        "prsOpen": 4,
        "prsMerged7d": 75,
        "reviewsGiven7d": 11,
        "conventionalCommitPct": 100,
        "prSizeDistribution": {
          "xs": 75,
          "s": 0,
          "m": 0,
          "l": 0,
          "xl": 0
        }
      }
    }
  }
}
