Raw JSON report machine-readable
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 11495,
"has_wiki": true,
"homepage": null,
"languages": {
"TypeScript": 14943247
},
"pushed_at": "2026-07-18T01:15:12Z",
"created_at": "2026-05-20T21:31:40Z",
"owner_type": "User",
"updated_at": "2026-07-18T01:10:06Z",
"description": "Goodvibes Agent - previously included in goodvibes-tui but in order to provide a more openclaw/hermes-like user experience, it is being split into its own product.",
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "main",
"license_spdx_raw": "MIT",
"primary_language": "TypeScript",
"significant_languages": [
"TypeScript"
]
},
"owner": {
"blog": "https://www.linkedin.com/in/mike-davis",
"name": "Michael Davis",
"type": "User",
"login": "mgd34msu",
"company": null,
"location": "Dallas, TX",
"followers": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/18431027?v=4",
"created_at": "2016-04-12T23:44:21Z",
"is_verified": null,
"public_repos": 22,
"account_age_days": 3753
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v1.12.5",
"kind": "patch",
"published_at": "2026-07-18T01:17:19Z"
},
{
"tag": "v1.12.4",
"kind": "patch",
"published_at": "2026-07-17T21:13:17Z"
},
{
"tag": "v1.12.3",
"kind": "patch",
"published_at": "2026-07-17T06:42:45Z"
},
{
"tag": "v1.12.2",
"kind": "patch",
"published_at": "2026-07-17T05:26:17Z"
},
{
"tag": "v1.12.1",
"kind": "patch",
"published_at": "2026-07-16T23:49:04Z"
},
{
"tag": "v1.12.0",
"kind": "minor",
"published_at": "2026-07-16T12:05:08Z"
},
{
"tag": "v1.11.0",
"kind": "minor",
"published_at": "2026-07-14T20:30:27Z"
},
{
"tag": "v1.10.0",
"kind": "minor",
"published_at": "2026-07-13T23:28:48Z"
},
{
"tag": "v1.9.1",
"kind": "patch",
"published_at": "2026-07-11T20:58:20Z"
},
{
"tag": "v1.9.0",
"kind": "minor",
"published_at": "2026-07-11T20:14:25Z"
},
{
"tag": "v1.8.2",
"kind": "patch",
"published_at": "2026-07-11T19:22:32Z"
},
{
"tag": "v1.8.1",
"kind": "patch",
"published_at": "2026-07-09T12:11:56Z"
},
{
"tag": "v1.8.0",
"kind": "minor",
"published_at": "2026-07-09T06:53:13Z"
},
{
"tag": "v1.7.0",
"kind": "minor",
"published_at": "2026-07-08T17:13:54Z"
},
{
"tag": "v1.6.4",
"kind": "patch",
"published_at": "2026-07-08T03:09:50Z"
},
{
"tag": "v1.6.3",
"kind": "patch",
"published_at": "2026-07-07T20:27:32Z"
},
{
"tag": "v1.6.2",
"kind": "patch",
"published_at": "2026-07-07T06:17:00Z"
},
{
"tag": "v1.6.1",
"kind": "patch",
"published_at": "2026-07-07T05:45:00Z"
},
{
"tag": "v1.6.0",
"kind": "minor",
"published_at": "2026-07-07T04:52:15Z"
},
{
"tag": "v1.5.9",
"kind": "patch",
"published_at": "2026-07-06T20:14:41Z"
},
{
"tag": "v1.5.8",
"kind": "patch",
"published_at": "2026-07-06T18:49:00Z"
},
{
"tag": "v1.5.7",
"kind": "patch",
"published_at": "2026-07-06T17:21:23Z"
},
{
"tag": "v1.5.6",
"kind": "patch",
"published_at": "2026-07-06T16:44:03Z"
},
{
"tag": "v1.5.5",
"kind": "patch",
"published_at": "2026-07-01T04:42:29Z"
},
{
"tag": "v1.5.3",
"kind": "patch",
"published_at": "2026-06-20T23:30:32Z"
},
{
"tag": "v1.5.2",
"kind": "patch",
"published_at": "2026-06-17T05:28:36Z"
},
{
"tag": "v1.5.1",
"kind": "patch",
"published_at": "2026-06-14T21:43:26Z"
},
{
"tag": "v1.5.0",
"kind": "minor",
"published_at": "2026-06-11T06:11:01Z"
},
{
"tag": "v1.4.4",
"kind": "patch",
"published_at": "2026-06-09T23:56:10Z"
},
{
"tag": "v1.4.3",
"kind": "patch",
"published_at": "2026-06-09T12:41:21Z"
},
{
"tag": "v1.4.2",
"kind": "patch",
"published_at": "2026-06-09T02:43:08Z"
},
{
"tag": "v1.4.1",
"kind": "patch",
"published_at": "2026-06-09T01:29:45Z"
},
{
"tag": "v1.3.0",
"kind": "minor",
"published_at": "2026-06-08T10:55:53Z"
},
{
"tag": "v1.2.0",
"kind": "minor",
"published_at": "2026-06-08T03:42:35Z"
},
{
"tag": "v1.1.7",
"kind": "patch",
"published_at": "2026-06-06T04:25:30Z"
},
{
"tag": "v1.1.6",
"kind": "patch",
"published_at": "2026-06-06T04:05:52Z"
},
{
"tag": "v1.1.5",
"kind": "patch",
"published_at": "2026-06-06T03:55:00Z"
},
{
"tag": "v1.1.4",
"kind": "patch",
"published_at": "2026-06-06T02:21:14Z"
},
{
"tag": "v1.1.3",
"kind": "patch",
"published_at": "2026-06-05T17:51:34Z"
},
{
"tag": "v1.1.2",
"kind": "patch",
"published_at": "2026-06-05T13:51:17Z"
},
{
"tag": "v1.1.1",
"kind": "patch",
"published_at": "2026-06-05T12:58:00Z"
},
{
"tag": "v1.1.0",
"kind": "minor",
"published_at": "2026-06-05T12:45:36Z"
},
{
"tag": "v1.0.44",
"kind": "patch",
"published_at": "2026-06-05T06:36:07Z"
},
{
"tag": "v1.0.43",
"kind": "patch",
"published_at": "2026-06-05T06:05:57Z"
},
{
"tag": "v1.0.42",
"kind": "patch",
"published_at": "2026-06-05T05:10:23Z"
},
{
"tag": "v1.0.41",
"kind": "patch",
"published_at": "2026-06-05T03:53:07Z"
},
{
"tag": "v1.0.40",
"kind": "patch",
"published_at": "2026-06-05T03:17:57Z"
},
{
"tag": "v1.0.39",
"kind": "patch",
"published_at": "2026-06-05T02:55:23Z"
},
{
"tag": "v1.0.38",
"kind": "patch",
"published_at": "2026-06-05T02:43:57Z"
},
{
"tag": "v1.0.37",
"kind": "patch",
"published_at": "2026-06-05T02:18:14Z"
},
{
"tag": "v1.0.36",
"kind": "patch",
"published_at": "2026-06-05T02:04:29Z"
},
{
"tag": "v1.0.35",
"kind": "patch",
"published_at": "2026-06-04T11:12:47Z"
},
{
"tag": "v1.0.34",
"kind": "patch",
"published_at": "2026-06-04T09:54:04Z"
},
{
"tag": "v1.0.33",
"kind": "patch",
"published_at": "2026-06-04T08:49:11Z"
},
{
"tag": "v1.0.31",
"kind": "patch",
"published_at": "2026-06-04T02:29:39Z"
},
{
"tag": "v1.0.30",
"kind": "patch",
"published_at": "2026-06-04T02:15:02Z"
},
{
"tag": "v1.0.29",
"kind": "patch",
"published_at": "2026-06-04T01:41:06Z"
},
{
"tag": "v1.0.28",
"kind": "patch",
"published_at": "2026-06-04T01:28:44Z"
},
{
"tag": "v1.0.27",
"kind": "patch",
"published_at": "2026-06-04T01:14:19Z"
},
{
"tag": "v1.0.26",
"kind": "patch",
"published_at": "2026-06-04T00:46:34Z"
},
{
"tag": "v1.0.25",
"kind": "patch",
"published_at": "2026-06-04T00:20:44Z"
},
{
"tag": "v1.0.24",
"kind": "patch",
"published_at": "2026-06-04T00:12:06Z"
},
{
"tag": "v1.0.23",
"kind": "patch",
"published_at": "2026-06-03T23:59:47Z"
},
{
"tag": "v1.0.22",
"kind": "patch",
"published_at": "2026-06-03T23:49:04Z"
},
{
"tag": "v1.0.21",
"kind": "patch",
"published_at": "2026-06-03T23:36:23Z"
},
{
"tag": "v1.0.20",
"kind": "patch",
"published_at": "2026-06-03T23:23:18Z"
},
{
"tag": "v1.0.19",
"kind": "patch",
"published_at": "2026-06-03T23:06:30Z"
},
{
"tag": "v1.0.18",
"kind": "patch",
"published_at": "2026-06-03T22:52:32Z"
},
{
"tag": "v1.0.17",
"kind": "patch",
"published_at": "2026-06-03T22:37:31Z"
},
{
"tag": "v1.0.16",
"kind": "patch",
"published_at": "2026-06-03T22:23:48Z"
},
{
"tag": "v1.0.15",
"kind": "patch",
"published_at": "2026-06-03T22:13:23Z"
},
{
"tag": "v1.0.14",
"kind": "patch",
"published_at": "2026-06-03T21:58:26Z"
},
{
"tag": "v1.0.13",
"kind": "patch",
"published_at": "2026-06-03T21:47:27Z"
},
{
"tag": "v1.0.12",
"kind": "patch",
"published_at": "2026-06-03T21:36:48Z"
},
{
"tag": "v1.0.11",
"kind": "patch",
"published_at": "2026-06-03T21:04:23Z"
},
{
"tag": "v1.0.10",
"kind": "patch",
"published_at": "2026-06-03T20:42:45Z"
},
{
"tag": "v1.0.9",
"kind": "patch",
"published_at": "2026-06-03T20:29:54Z"
},
{
"tag": "v1.0.8",
"kind": "patch",
"published_at": "2026-06-03T20:08:50Z"
},
{
"tag": "v1.0.7",
"kind": "patch",
"published_at": "2026-06-03T19:42:09Z"
},
{
"tag": "v1.0.6",
"kind": "patch",
"published_at": "2026-06-03T19:34:32Z"
},
{
"tag": "v1.0.5",
"kind": "patch",
"published_at": "2026-06-03T19:19:18Z"
},
{
"tag": "v1.0.4",
"kind": "patch",
"published_at": "2026-06-03T19:06:23Z"
},
{
"tag": "v1.0.3",
"kind": "patch",
"published_at": "2026-06-03T18:50:54Z"
},
{
"tag": "v1.0.2",
"kind": "patch",
"published_at": "2026-06-03T18:24:34Z"
},
{
"tag": "v1.0.1",
"kind": "patch",
"published_at": "2026-06-03T16:19:42Z"
},
{
"tag": "v1.0.0",
"kind": "major",
"published_at": "2026-06-03T14:53:51Z"
},
{
"tag": "v0.1.117",
"kind": "patch",
"published_at": "2026-06-02T19:46:06Z"
},
{
"tag": "v0.1.116",
"kind": "patch",
"published_at": "2026-06-02T08:57:30Z"
},
{
"tag": "v0.1.114",
"kind": "patch",
"published_at": "2026-06-02T07:41:59Z"
},
{
"tag": "v0.1.113",
"kind": "patch",
"published_at": "2026-06-02T07:01:16Z"
},
{
"tag": "v0.1.112",
"kind": "patch",
"published_at": "2026-06-02T06:16:31Z"
},
{
"tag": "v0.1.111",
"kind": "patch",
"published_at": "2026-06-02T04:40:39Z"
},
{
"tag": "v0.1.110",
"kind": "patch",
"published_at": "2026-06-02T04:25:59Z"
},
{
"tag": "v0.1.109",
"kind": "patch",
"published_at": "2026-06-02T02:53:26Z"
},
{
"tag": "v0.1.108",
"kind": "patch",
"published_at": "2026-06-02T02:20:32Z"
},
{
"tag": "v0.1.107",
"kind": "patch",
"published_at": "2026-06-01T22:27:21Z"
},
{
"tag": "v0.1.106",
"kind": "patch",
"published_at": "2026-06-01T22:09:26Z"
},
{
"tag": "v0.1.105",
"kind": "patch",
"published_at": "2026-06-01T20:51:29Z"
},
{
"tag": "v0.1.104",
"kind": "patch",
"published_at": "2026-06-01T20:24:43Z"
},
{
"tag": "v0.1.103",
"kind": "patch",
"published_at": "2026-06-01T19:41:59Z"
}
],
"recent_commits": [
{
"oid": "54b2c52e0220f7724529b844e280937daf2c34f3",
"body": null,
"is_bot": false,
"headline": "chore: release 1.12.5",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-18T01:09:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cc3af8c1cb918a3704978881361f84922353f0ff",
"body": "Carries the secrets-store key-mismatch hardening: exclusive keyfile\ngeneration, pre-write key revalidation with missing-keyfile restore, and\nkey fingerprints in store envelopes for precise mismatch reporting.",
"is_bot": false,
"headline": "deps: adopt published SDK 1.11.4 + terminal-shell 1.11.4",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-18T01:09:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c3463b1da43e6901e26480e2a1b5644da50799ca",
"body": "The package-facing-text gate rejects references to other GoodVibes package\nnames; describe the platform-runtime update without naming them.",
"is_bot": false,
"headline": "fix red CI: the changelog entry must not name non-Agent packages",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-17T21:05:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "21e7e633c16a9b34ee6da3a9fd6f822e7dfc5cbe",
"body": "The boot-model guard moves to its own module (provider-boot.ts,\nensureBootModelResolvable). No behavior change.",
"is_bot": false,
"headline": "fix red CI: keep bootstrap.ts under the 800-line architecture cap",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-17T21:00:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cdcc19155162a08c149e3df7486047ac13839a2f",
"body": null,
"is_bot": false,
"headline": "chore: release 1.12.4",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-17T20:47:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1e308eb166eb7bc536771ef35c457d5b0ad4ad48",
"body": "Boot fix: bootstrap awaits the custom-provider load (and re-runs the\nroutability guard) before the first current-model resolution, with a\nselectable-model fallback when the configured provider no longer exists —\na saved custom-provider model no longer crashes startup.\n\nTranscript: compaction-continuation user messages fold to a 'compaction\nhandoff' block (expandable) instead of re-printing the full re-injected\ninstruction wall after every automatic compaction.",
"is_bot": false,
"headline": "deps: adopt published SDK 1.11.3 + terminal-shell 1.11.3",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-17T20:47:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4ef927ab515d2fc7ff8636a74737d61e5821d126",
"body": "…ive a/b path as a GitHub spec and tries to clone it (failed the v1.12.3 publish)",
"is_bot": false,
"headline": "release lane: ./ prefix on the tarball path — npm parses a bare relat…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-17T06:35:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ac550a5b838e1f09b22428bf36048f77fb906909",
"body": "Under the step's pipefail, grep -q exits on first match and SIGPIPEs tar\nmid-listing, failing the pipeline even when the runtime entry is present —\nthis false-failed the first v1.12.3 release run at the pack job. List the\ntarball to a file, then grep the file.",
"is_bot": false,
"headline": "release lane: the tarball assertion must not pipe tar into grep -q",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-17T06:25:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "28c843e764eb3fe10ec129a2764b46e177e4bdf3",
"body": null,
"is_bot": false,
"headline": "chore: release v1.12.3",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-17T06:16:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "60e3633c7cabae398958d2f983aab773836639c6",
"body": "Publish the pack job's runtime-bundled tarball instead of a bare checkout\n(the defect behind 1.12.2's runtime-less npm tarball): publish-npm now stages\nthe npm-tarball artifact and publishes it via --tarball, and the pack job hard-\nasserts package/dist/package/main.js is inside the tgz before it can\n[…]\n2 and drop the direct\ntoolchain devDependency (the SDK now carries it transitively). Add zero-touch\nreleases: a green CI run on a main release commit tags and dispatches\nrelease.yml with mode=release.",
"is_bot": false,
"headline": "publish lane fixes + zero-touch release; adopt SDK 1.11.2",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-17T06:16:32Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8d245037cf93f8ebf998206dc7bc9c83bb2c75fa",
"body": "1.11.1 adds the toolchain dispatcher bin (bunx package-name resolution),\nwhich is what this repo's release lane invokes.",
"is_bot": false,
"headline": "deps: adopt published SDK 1.11.1 + toolchain 1.11.1",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-17T05:19:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cb18d36e19a09ba023c6bfc003141756285c0fea",
"body": "The temp roots live under the repo checkout (.test-tmp/), and the SDK's\nWorkspaceCheckpointManager prefers the enclosing git repo's top level — so\nevery test runtime resolved to the checkout itself and shared one\n.goodvibes/checkpoints/git side store, racing on git's config lock the first\ntime two t\n[…]\ned twice on exactly this). git-init-ing each test workspace stops the\ntoplevel walk at the workspace boundary; checkpoint stores are per-runtime\nagain and the repo checkout is never a snapshot target.",
"is_bot": false,
"headline": "test: each test workspace is its own git toplevel",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-17T05:10:02Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "48d9499c0ea5b660fd73fda3c6292dc7f663f218",
"body": "The packaged Agent bundle declares zero runtime dependencies (the\ndependency-surface test enforces it); the 1.11.0 re-pin wrongly introduced\na dependencies block with the SDK in it. The SDK rides devDependencies.\nAlso pin composite-action metadata as vars-expression-free.",
"is_bot": false,
"headline": "fix red CI: drop the runtime dependencies block added during the re-pin",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-17T04:56:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "55f7f0ae2a9d6a4d626990e897dd7fd381a1f73b",
"body": null,
"is_bot": false,
"headline": "chore: release v1.12.2",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-17T04:46:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "01f805f9859222a2beb759db9ee528c2b917ee19",
"body": "The toolchain dev-link (local file: tarball + override) served the CI/CD\nbuild round; the package is now published, so devDependencies re-pin to the\nexact registry versions (sdk, terminal-shell, toolchain), the override and\nTOOLCHAIN-PIN note are gone, and the lockfile resolves from the registry.",
"is_bot": false,
"headline": "deps: adopt published SDK 1.11.0 + toolchain 1.11.0 from the registry",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-17T04:45:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "216956313c126ddcca578eb6b2c2d2969067528c",
"body": "…flows request\n\nGitHub validates reusable-workflow permission grants at startup: a callee job\nrequesting more than the caller job grants rejects the entire workflow with\nstartup_failure and an empty jobs list. Grant actions:read + checks:read on\nrelease-verify and id-token:write on publish-npm (github-release already\ngranted contents:write); pin the contract with a shape test.",
"is_bot": false,
"headline": "ci: caller jobs must grant the permissions their called reusable work…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-17T04:30:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a7842871876402e5031c99825b55000b1f0df908",
"body": "- release.yml: artifact-glob and assets-glob converted from single-line\n space-separated strings to newline-separated | blocks. Their sinks\n (actions/upload-artifact path:, softprops files:) split patterns on newlines\n ONLY — the one-line form arrived as a single literal glob with embedded\n spac\n[…]\nartifact — the blind spot that let the suites\n pass over the defect.\n- package-verification.ts: smoke-leg markers now pin the per-leg binary;\n binaryDefault policy updated to the linux-x64 artifact.",
"is_bot": false,
"headline": "fix release-blocking glob + smoke-binary defects from adoption review",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-17T01:39:55Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "116d3489ce1c41d77d0ac5d8e66169ad2352a055",
"body": "- setup composite action: adopt the shared pattern (cache restore/save +\n bun install --frozen-lockfile), keeping the inline pinned bun-version the\n release verifier reads.\n- ci.yml: single-job gate content unchanged; concurrency now cancels PRs only\n (a push run on main is never auto-cancelled).\n[…]\nthe release\n script policy drops the deleted gate-re-run markers for CI-owns-validation.\n- new workflow-shape.test.ts ports the SDK's local workflow-shape proof for the\n by-reference release wiring.",
"is_bot": false,
"headline": "rewire CI/release workflows onto the shared setup + reusable workflows",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-17T01:14:02Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6718a244450e09ba76e9e9e41bbecdf99f947976",
"body": "Delete the parallel-copy script bodies in favour of @pellux/goodvibes-toolchain:\n- sdk-release-gates.ts: thin adapter over the toolchain sdk-pin-gate (overlay /\n exact-pin / pin-lock-installed tri-agreement / non-npm import sweep) with the\n Agent's devDependencies pin shape; publish-check + sdk:ga\n[…]\n/ evidence-hygiene / package-policy hooks.\n\nBehavior proven by: sdk-release-gates + coverage-gate unit tests, release:dry,\na native build with preserved addon layout + post-build smoke, and typecheck.",
"is_bot": false,
"headline": "swap duplicated CI scripts to shared toolchain invocations",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-17T01:01:10Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "80c8f513e0e4e218fb6a3618ccc815b81dc9d00f",
"body": "Declares the agent's real shapes for the shared toolchain: the 4-target binary\nmatrix (no daemon leg) with the preserved sqlite-vec TARBALL addon layout\n(lib/sqlite-vec-<os>-<arch>/vec0.<suffix> via addonOutDir dist/lib), the\ndevDependencies SDK pin source, coverage floors (funcs 84 / lines 82), the\n[…]\n packaging-failure sentinels, the release-cut\nprepare/bump/changelog/tag shape (plain heading, top insert), the single-npm\npublish tarball path policy, and the per-job-green run-verification identity.",
"is_bot": false,
"headline": "add toolchain.config.json expressing the agent's CI/CD behaviors",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-17T00:53:27Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1f5c899c2b50998046585f3cd68543851181088b",
"body": "…chain 1.10.1)\n\nDev-link the shared CI/CD toolchain built fresh from goodvibes-sdk@20093d41\n(git archive -> tsc -> bun pm pack) as a file: tarball devDependency plus an\noverride so the local build wins across the graph. Runtime pins (sdk,\nterminal-shell) are untouched. TOOLCHAIN-PIN.md records the tarball provenance\nand the registry re-pin recipe for the next release train.",
"is_bot": false,
"headline": "adopt shared toolchain via dev-linked tarball (@pellux/goodvibes-tool…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-17T00:51:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "950c7ea5f111dc5ac720680072abce59e2fe370f",
"body": null,
"is_bot": false,
"headline": "chore: release v1.12.1",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-16T23:32:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3adea44688ec6451f3e8b299dec25de004c1f062",
"body": "…wning host power seams\n\nBump @pellux/goodvibes-sdk and @pellux/goodvibes-terminal-shell to 1.10.1.\n\nReplace the Parameters<typeof startHostServices>[3] re-anchor for the SDK's\nfull runtime-services shape with the runtime bootstrap namespace's public\nRuntimeServices type alias, and add a compile-pin\n[…]\ntime in bootstrap-core.ts, which owns the sleep edge,\nopts into createHostPowerSeam(). Composition tests assert the wiring without\nspawning; a full suite run shows zero growth in power-seam processes.",
"is_bot": false,
"headline": "adopt SDK 1.10.1, use the public RuntimeServices type, stop tests spa…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-16T23:31:23Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a1374df41b7d773e260792219cc68311427b1ce8",
"body": null,
"is_bot": false,
"headline": "chore: release v1.12.0",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-16T11:58:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "53cfb77e9c592c4de7962c7255a50a10e0dfaecc",
"body": "…0.0 from the registry",
"is_bot": false,
"headline": "Remove SDK dev-link: pin @pellux/goodvibes-sdk and terminal-shell 1.1…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-16T11:57:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8ba7679d6201e921fa655edf82774aa02e2e06c9",
"body": "…v-link 5357f09e\n\nThe SDK fixed at source the three defects the previous adoption round\nreported: @pellux/goodvibes-sdk/platform/runtime/memory now publishes the full\nmemory-governance composition surface, RuntimeFoundationClientsOptions is\nnarrowed to its real slice, and singleFlight is public. Dev\n[…]\nvernor-present-STARTED-registered (cache ids, job\n ids, admission gate, stop()) plus ops.memory.get serving the real snapshot\n over the gateway, in the style of power-keep-awake-composition.test.ts.",
"is_bot": false,
"headline": "Compose the real SDK memory governor; live voice install progress; de…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-16T07:55:59Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7785ce4c81058c27fbe0548796141416f23428c3",
"body": "…e memory.* settings\n\n- runtime/services.ts: the earlier inert (throw-on-touch) memoryGovernor/\n cacheRegistry/pauseController shim broke a real SDK call site\n (facade-composition.ts's resolveDaemonFacadeRuntime, exercised whenever this\n repo hands its own RuntimeServices to the SDK's DaemonServe\n[…]\nas no effect — mirrors the existing\n external-host-owned-setting lock pattern.\n- .gitignore: exclude .test-suite-tmp/ (the test runner's own temp root),\n matching the pre-existing .test-tmp/ ignore.",
"is_bot": false,
"headline": "Fix real memory-governance consumers found in the full test run; rout…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-16T07:00:25Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "55e110a5e9014034213ee438b1042135d1cc500e",
"body": "…nest memory-diagnostics gap\n\nDev-links against goodvibes-sdk @ efc1b380 (tarball overrides; not yet on npm).\n\n- runtime/services.ts composes managed local-voice provisioning\n (voiceSetup: status/install) mirroring the SDK's own daemon composition,\n wired into both the /voice slash command and the\n[…]\n pins the real voice-setup wiring end-to-end (direct\n service and gateway invoke) and pins the memory-governance absence as an\n honest \"no internal handler\" gateway error, not a silent fake success.",
"is_bot": false,
"headline": "Adopt SDK memory-relay-voice-hardening: managed local-voice setup, ho…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-16T06:46:02Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ce5d327011ed50c6ebba36c01a9e216776718616",
"body": null,
"is_bot": false,
"headline": "chore: release v1.11.0",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-14T20:23:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "55d80aa70f21e9719f536d57987893abcf8a0282",
"body": "…into the real host power seam\n\nRemove the local dev-link: drop the file: tarball @pellux references from\ndevDependencies and overrides, pin @pellux/goodvibes-sdk and\n@pellux/goodvibes-terminal-shell to 1.9.0 from the registry, and regenerate\nthe lockfile so every @pellux dependency resolves from th\n[…]\n, never the unavailable seam, so a future SDK default\nflip can never silently downgrade the live inhibitor to a no-op. The\nexternal-daemon REST forward path (power-keep-awake-remote.ts) is unaffected.",
"is_bot": false,
"headline": "deps: pin platform SDK 1.9.0 from the registry; opt the runtime root …",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-14T20:22:02Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "038efcba8380e43bb00f236dd4adfe4f429025e0",
"body": "…w queue command\n\nConsolidation judgment proposals (contradictions, cross-scope\nduplicates, stale-delete candidates) already rendered as one-line\nattach notices (services.memoryConsolidationReceiptFeed, \"[Memory] ...\"\nsystem messages) when a run did something, but the proposals themselves\n— WHY a re\n[…]\nhanism.\n\nThe agent does have a memory-review surface (/memory queue and\n/memory review, in production use); this closes the specific gap\n(proposals were computed and logged but never listed anywhere).",
"is_bot": false,
"headline": "memory: surface pending consolidation proposals in the existing revie…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-14T13:37:34Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "43fed84620900e10e8864c2af807d53436f8b9e0",
"body": "…edundant local live-apply\n\nThe owner keep-awake toggle only ever reached this agent's own\nin-process PowerManager, whose OS-level inhibitor releases the moment\nthis agent process exits — the opposite of \"survives surfaces closing\".\npower.keepAwake is a plain surface-local config key (the SDK's\nshar\n[…]\n honest failure without\nthrowing. A composition-level test drives the real PowerManager through\na config write and through an external settings.json edit, proving the\nlocal live-apply path end-to-end.",
"is_bot": false,
"headline": "power: forward the keep-awake toggle to an adopted daemon; drop the r…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-14T13:25:27Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "08ddcbf13fae6200e868546beebe99eb43981129",
"body": "…tup, mirroring the SDK's own composition root\n\nTwo write-model residues fixed at this repo's composition root\n(runtime/services.ts), mirroring the SDK round at\nplatform/runtime/services.ts:\n\noperations.runStartupAppendOnlySweep now runs once at startup with the\nFULL roots object (workingDirectory, \n[…]\nust that a function was called), a fresh\nunder-cap file is left alone (the sweep is retention, not a wipe), and\nan external settings.json edit reaches configManager.get() with no\nexplicit reload call.",
"is_bot": false,
"headline": "composition: run the append-only sweep and watch config files at star…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-14T13:17:08Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e5b6b559143dcbc16e684b338f7dfc80fbeea313",
"body": "…stead of one suppressing the other\n\nThe footer status line's right-side notice area picked ONE of copied /\ndangerMode / powerNote by priority, so the sleep-disabled chip vanished\ncompletely whenever danger-mode auto-approve was also on — exactly the\nmoment both safety states matter most.\n\ncomposeSa\n[…]\n safety state.\n\nRender tests cover both-on, each-alone, and narrow widths (44 cols) for\nthe full footer, plus direct unit tests of composeSafetyNoticeSegments\nincluding a pathological 4-column budget.",
"is_bot": false,
"headline": "footer: compose the auto-approve and sleep-disabled safety notices in…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-14T13:10:30Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "60f500c053a28063094f35dfefefd73b1a928450",
"body": "…ig apply, exit/orphan reaping)\n\nFresh git-archive extraction of sdk e0a5595d (six commits past 89690d07:\npower hold cleanup, watchConfigFiles wired at the SDK's own composition\nroot, memory consolidation proposals routed to a review queue plus the\nmemory.consolidation.receipts verb, the append-only\n[…]\nager.watchConfigFiles are both reachable through the public\nplatform/runtime export surface, and RuntimeServices' existing composition\n(services.ts) still compiles unchanged against the new SDK build.",
"is_bot": false,
"headline": "dev-link: re-link to sdk e0a5595d (power lifecycle cleanup, live conf…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-14T13:10:21Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "22b855ed83032565ec68e8c798c2b45ab6308dc6",
"body": "…st-class now\n\nsdk 89690d07 completed the published ConfigKey string-literal union (with a\ndrift gate so a new config domain can never fall out of it again), so the\ndocumented cast workarounds come out: schema-extensions.test.ts's\nFLEET_MAX_SIZE `as unknown as ConfigKey` constant is deleted (get/set\n[…]\narchitecture check\npassed (685 non-test source files), workflows OK, perf budgets PASSED,\nfull suite 9041 pass / 0 fail, coverage-gate functions 86.65% (floor 84%)\nand lines 85.16% (floor 82%) — PASS.",
"is_bot": false,
"headline": "config tests: drop the ConfigKey casts — fleet.maxSize typechecks fir…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-14T11:17:03Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f2af963966c7c53292f898bc3d522d7e3aac2f97",
"body": "…PLETED memory provenance)\n\nFresh git-archive extraction of sdk 89690d07 (two commits past a03bf218:\nthe complete ConfigKey union with its drift gate, and memory-injection\nprovenance riding TURN_COMPLETED as metadata.memory.recordIds), rebuilt\nand repacked all ten packages into tarballs-agent-89690d\n[…]\n-literal union.\n\nTURN_COMPLETED consumers (bootstrap.ts's turn-settled handlers) need no\nchange — the new metadata field is optional and additive; compilation\nconfirmed clean against the new contract.",
"is_bot": false,
"headline": "dev-link: re-link to sdk 89690d07 (complete ConfigKey union, TURN_COM…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-14T11:16:45Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e816fa7beb26771eade9897f3305b3c9c8f08bca",
"body": "… retire the workaround port\n\nsdk a03bf218 closed the packaging gaps this round surfaced, so the local\nworkarounds come out:\n\n- src/runtime/memory-consolidation-scheduler.ts (the faithful local port\n that existed only while the class had no public export path) is deleted;\n runtime/services.ts cons\n[…]\nhe first coverage attempt failed\nat 66% from host /tmp exhaustion — a peer writer's test scratch dirs\nfilled the 63G tmpfs; cleaned up ~17G of gv-*/goodvibes-* leftovers and\nthe honest re-run passed.)",
"is_bot": false,
"headline": "consolidation: consume the SDK's public MemoryConsolidationScheduler;…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-14T08:59:49Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "66973d68ea22123405b46b6ab08c746302314da5",
"body": "…aced are closed upstream)\n\nFresh git-archive extraction of sdk a03bf218 (one commit past fc3bbf5e:\n\"exports: close three phantom-export gaps a consumer re-link surfaced\"),\nrebuilt and repacked all ten packages into tarballs-agent-a03bf218; the\nfc3bbf5e snapshot and tarball dirs removed. bun.lock re\n[…]\nch needed this time), and\nMemoryConsolidationScheduler + MemoryConsolidationSchedulerOptions are\nre-exported from the platform/state barrel. The local workaround removals\nland in the follow-on commit.",
"is_bot": false,
"headline": "dev-link: re-link to sdk a03bf218 (the packaging gaps this round surf…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-14T08:41:24Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "00381e0b56858bb6c1df81e3a1dffe66c80e17a2",
"body": "Four fixes the full 9041-test run (bun run test) caught that the scoped\nruns during development did not:\n\n- connected-host-autostart.test.ts: the wireAgentExternalServices fixture's\n bare services stand-in was missing memoryConsolidationReceiptFeed (added\n alongside daemonReceiptFeed in bootstrap-\n[…]\ncyConfig field itself is\n unrelated and unchanged) — both assertions updated to match.\n\nFull suite: 9041 pass, 0 fail. coverage:gate: functions 86.65% (floor 84%),\nlines 85.18% (floor 82%) — both OK.",
"is_bot": false,
"headline": "tests: fix the full-suite fallout from this round's real changes",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-14T08:24:59Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "03275ae617706d3660d5d3f498bd50113642ddf8",
"body": "…bserved-agent parity researched and reported absent\n\nFresh git-archive extraction of sdk fc3bbf5e (two commits past the prior\na5c63e3b link — never the working tree), rebuilt and repacked all ten\npackages into a new durable tarball dir (tarballs-agent-fc3bbf5e); the old\na5c63e3b tarball dir removed\n[…]\netection input existed. This fork has no TUI-style\n panel/FleetView system to add such a row to (no src/renderer/*panel*\n files exist).\nBoth absences are structural, not oversights; nothing to wire.",
"is_bot": false,
"headline": "dev-link: re-link to sdk fc3bbf5e (fleet.graph.get wired for free); o…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-14T08:09:55Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "70efff6c99a5af9bbc558e2f793b5ac571328e7f",
"body": "…real keep-awake toggle\n\nForks the TUI's renderer-surface convention (the TUI has not built its own\npower UI yet at this SDK round, so this is the first adoption of the\ncontract): the footer's single-slot status note (same slot the copied/\nauto-approve badges already use) now shows \"sleep disabled (\n[…]\nthe category; this wires the live-apply path): toggling it in the\nsettings workspace calls the live PowerManager.setKeepAwake so the OS\ninhibitor actually engages, not just the persisted config value.",
"is_bot": false,
"headline": "power: the always-visible sleep-disabled chip, held-because-X, and a …",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-14T07:56:59Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0589551fc797c1917876be4ce446a492eccd3c0a",
"body": "… categories\n\nfleet.maxSize (schema-domain-fleet.ts, the orchestration.maxActiveAgents\nrename), voice.local.* (schema-domain-voice-local.ts, the free local\nSTT/TTS engines), and power.* (schema-domain-power.ts, sleep ownership)\nwere all registered in the SDK's CONFIG_SCHEMA at runtime but had no\nset\n[…]\nroups every key by its first path segment) — a coverage test catches\nthis class of gap and now passes again. orchestration's category\ndescription is corrected: the active-agent ceiling moved to Fleet.",
"is_bot": false,
"headline": "settings: fleet.maxSize, local voice engines, and power get their own…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-14T07:48:28Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7868b2203aebfee1fd5f790677b4358a277205a2",
"body": "…leet.maxSize)\n\nFresh git-archive extraction of sdk a5c63e3b (never the working tree — a\nwriter may be active there), packed all ten packages into a new durable\ntarball dir (tarballs-agent-a5c63e3b); old 3bddf143 tarball dir left alone\nbecause goodvibes-webui still points at it. bun.lock regenerated\n[…]\n retired wiring\nalready read the shared learning.consolidation.enabled — so no config\nmigration was needed; the settings category description is corrected to\nmatch the SDK's new on-by-default posture.",
"is_bot": false,
"headline": "dev-link: re-link to sdk a5c63e3b (memory consolidation retirement, f…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-14T07:44:38Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6c21fb5bdbf05e008ead12e04d53b90026816626",
"body": "Extracted the away-digest's connected-host-connection wiring into\nbuildListAutomationRunsSince (src/agent/automation-runs-source.ts) so\nmain.ts's own wiring is one line instead of four, and merged two duplicate\nsingle-symbol imports from the same module. Also dropped an internal\nplanning identifier (\"Wave-2\") from a comment in services.ts that the\narchitecture gate's internal-identifier scan correctly caught.",
"is_bot": false,
"headline": "gates: keep main.ts under the 800-line cap, drop an internal identifier",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-14T01:31:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ee928d9f7e0991afa4db4b1537cf33cb8f79d15e",
"body": "AgentRecord.failureReason === 'max_turns' plus turnBudget { limit, source }\n(SDK 1.8.0's typed turn-budget-exhaustion outcome, stamped at the source\nrather than left to prose-matching) now renders a distinct \"spent its turn\nbudget — N turns (source)\" line for a failed delegated task, instead of\nfold\n[…]\n/wrfcController are constructed\nreal-but-inert (delegation goes through /delegate to the TUI) and nothing\nhere subscribes to the 'workflow' domain, so there is no polling loop to\nretire for that part.",
"is_bot": false,
"headline": "delegated tasks: a spent turn budget renders as an honest budget line",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-14T01:22:54Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d25bc48600001de52c7a652f087b168e378aff71",
"body": "…omes\n\n/schedule list now reads automation.schedules.list from the connected host\n(fetchLiveSchedules) instead of the agent's local automation manager, and\nannotates each schedule with its most recent run outcome from\nautomation.runs.list (latestRunPerJob) so a missed or failed run renders as\nan honest outcome line rather than staying silent. No longer depends on\nctx.ops.automationManager at all.",
"is_bot": false,
"headline": "schedule list: show the connected host's schedules with drift as outc…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-14T01:14:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4ce23e780a0aa47e30e8fb56a6cff073e1b5d15c",
"body": "…tomation manager\n\nLocal automation execution is disabled by design, so the digest's old source\n(the agent's local AutomationManager) never reflected what actually ran. The\ndigest, and the \"reminders fired\" line, now read automation.runs.list ?since=\nover the wire (src/agent/automation-runs-source.t\n[…]\nlines alongside the existing completed/\ndelivery lines. The local automation manager is no longer consulted anywhere\nin the digest path; it still feeds the sidebar's unrelated Coming-up next-run\nlist.",
"is_bot": false,
"headline": "away-digest: read the connected host's run outcomes, not the local au…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-14T01:09:28Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5a0e8284d899c687037843433948a662e93260af",
"body": "…now requires\n\nSDK 1.8.0 Wave-2 added pairingTokens: PairingTokenManager to its RuntimeServices\ncontract (backing the new pairing.tokens.* verbs). Constructed the same way the\nSDK's own composition root does, filed alongside userPermissionRuleStore in the\ncontrol-plane config dir.",
"is_bot": false,
"headline": "runtime: construct the pairing token store the SDK's RuntimeServices …",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-14T01:09:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "90e3a064f8321f00efe4202daed4ce771bddcff1",
"body": "Extracted SDK commit 3bddf143 from a git-archive snapshot (never the live\ncheckout — a writer is active there), built all ten @pellux workspace\npackages, packed each into a tarball, and pointed devDependencies + overrides\nat the tarballs so bun resolves every @pellux package (including transitive\nsi\n[…]\nblished 1.8.0. Verified before\ncoding: automation.runs.list's since param and 'missed' run status, the\npairing.tokens.* verbs, and agents.maxTurns config keys are all present in\nthe installed package.",
"is_bot": false,
"headline": "dev-link: overlay the SDK's Wave-2 work via packed tarballs",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-14T01:09:15Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4ec70c7fc35b09bb795cac00352d198f8d51520a",
"body": null,
"is_bot": false,
"headline": "chore: release v1.10.0",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-13T23:22:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "114e1df275d8a108f767f93c78b1c11effbe51ef",
"body": "Replace the local dev-link tarball references (devDependencies file: paths\nand the tree-wide overrides block) with the published\n@pellux/goodvibes-sdk@1.8.0 and @pellux/goodvibes-terminal-shell@1.8.0,\nrestoring the overrides block to its pre-dev-link state (minimatch only).\nFresh install from the re\n[…]\negistry package: full suite 9037/0, typecheck +\ntypecheck:test clean, architecture check (686 files) pass, workflows check\npass, perf budgets pass, coverage gate pass (functions 86.50%, lines 85.03%).",
"is_bot": false,
"headline": "chore: pin the platform SDK 1.8.0 from the registry",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-13T23:11:39Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "da041d3f91dac36d98ff72b954ef122cfbdd1ad0",
"body": "…documented reviewed exemption\n\nFour tracked files under .goodvibes/audit/ (dated 2026-07-05 decision\nrecords) carry legacy planning tokens and were neither scanned nor\ndeliberately exempted — a scan-scope hole. Following the SDK's treatment of\nits decision-record directory: the rule now documents .\n[…]\nied live, then reverted), and the permanent test drives the same\npipeline — listing plus rule — against a seeded temp git repo, plus the\nreal repo as a fixture (audit records listed, zero violations).",
"is_bot": false,
"headline": "Identifier gate scans tracked .goodvibes text; audit records get the …",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-13T18:37:53Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b0fdac3af9d7fdb7b63857e8910d150eb8714342",
"body": "The agent's openModelPicker never ran the picker-open live-discovery\nre-check, so a freshly-opened picker could not reflect models a provider\nstarted or stopped serving since the last refresh. Wire the same shape the\nTUI's picker uses (the fix-everywhere convention for this defect class):\nfire-and-f\n[…]\nny\nprovider's list actually changed, and never let a rejecting re-check break\nthe open. Tests cover the hook firing once per open, the changed-vs-\nunchanged re-render decision, and the rejection path.",
"is_bot": false,
"headline": "Model picker re-checks live model discovery on open",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-13T18:33:25Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "48e9d9663e26b2792e5a1c0ab3c571829e6b0386",
"body": "…faces\n\nThe command surface guards still classified 'update' as a copied TUI\ncommand to hide; with the Agent's own real self-update shipped, /update is\na legitimate root: model policy metadata (mixed effect — check reads, apply\nswaps the installed binary and addon with the previous version kept,\nrollback exchanges it back; explicit user intent required), the\ntools-and-commands catalog row, and removal from both hidden-command\nlists.",
"is_bot": false,
"headline": "Recognize /update as a first-class Agent command across the guard sur…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-13T15:34:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8c16c4e3075e830914bc83e55bd2db49ab7d2938",
"body": "main.ts crossed the 800-line architecture cap after the launch auto-update\nwiring landed. The fatal-error tail (log full detail, print the user-facing\nexplanation, exit 1) moves into cli/tui-startup.ts as\nreportFatalStartupError, beside the two formatters it composes — main.ts\nkeeps only the sink wiring. 798 lines; architecture check green.",
"is_bot": false,
"headline": "Extract the fatal-startup exit path beside its formatters",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-13T15:28:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "69f87e05202b4d4acd9a5a0754f7a59311a7067a",
"body": "…t startup\n\nCompiled release binaries had no self-update at all — no version check at\nlaunch, no /update command, no rollback path. Adopt the SDK's canonical\nupdate policy module (platform/runtime/self-update: redirect-tag resolution,\nchecksum manifest, verified download, atomic swap with the outgoi\n[…]\narchive extraction units; an\nend-to-end suite with real processes and a real local release server —\nfull update/respawn/rollback loop, corrupted binary checksum, corrupted\naddon checksum, dead server.",
"is_bot": false,
"headline": "Launch auto-update: a standalone binary lands on the newest release a…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-13T15:25:28Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a80b296aa7e681452953d8f7209416ad880e67fa",
"body": "…it registration\n\nThe registration record schema now natively carries origin and\ncheckpointEligible (absent means false), and the store's add stamps and\nupgrades them typed without ever demoting an existing stamp. Explicit\ncheckpoint registration becomes one typed add call; the agent-local record\nex\n[…]\ned — the boundary still consumes only checkpointEligible === true,\nand the one-time boot backfill keeps its raw field-preserving document\nwrite because it runs inside the synchronous composition path.",
"is_bot": false,
"headline": "Consume the store's typed origin/checkpointEligible fields for explic…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-13T15:14:51Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b5dd870336b087db22fabacd289845039cf61862",
"body": "Both agent-local fork-mirrors existed only because the SDK classes had no\npublic export path; this SDK round exports them (platform/state/store-snapshots\nwith RetentionPolicy/SnapshotPruner, platform/runtime/permissions/\nexec-prompt-wiring), and the upstream scheduler now also dedups the daily\ncopy \n[…]\nat the adopt-only external-services seam: the agent never\nconstructs a DaemonServer, so absent (host-managed) is the correct stance;\nthe agent's own binary updates through its launch auto-update path.",
"is_bot": false,
"headline": "Adopt the SDK's public store-snapshot scheduler and exec prompt wiring",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-13T15:14:51Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b5d4b2120ea105b793363f47523cba54b364c3e7",
"body": "Fresh git-archive extract, rebuilt, all ten packages re-packed with\nworkspace ranges rewritten; overrides and devDependencies pin every\npackage to the new snapshot tarballs. Verified the installed manifest\nexports ./platform/runtime/self-update and ./platform/state/store-snapshots\nand the registration record types carry origin/checkpointEligible.",
"is_bot": false,
"headline": "dev: re-link local SDK tarballs to the d494938c snapshot build",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-13T15:09:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "df7c1aea4bf3ce41cae0f37f2e9793b0934ac735",
"body": "…ed snapshot dedup\n\nComposition root: expose consumeDaemonReceipts (one ?receipts=consume read that\npushes into the receipt feed) and run the checkpoint-eligibility backfill right\nafter the registry migration, before building the live checkpoint checker.\n\nAlso fix a pre-existing time-coupling defect\n[…]\ne scheduler's clock — wrong in principle and\ntime-of-day-flaky (it failed deterministically today). Stamp each snapshot's\nmtime with its logical creation time; a no-op in production where now is real.",
"is_bot": false,
"headline": "Wire the receipt consumer and eligibility backfill in; fix time-coupl…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-13T14:24:26Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e30b5f036e2f35f559c79eb01cfcaba4f2c4c691",
"body": "…tration\n\nThe shared registration store is one file the whole platform reads and writes;\nthe TUI's first-open self-recording adds a plain record for any directory a user\nmerely opens. That silently widened the agent's checkpoint boundary, which the\nowner ruled stays explicit.\n\nCarry agent-local orig\n[…]\n's own legacy explicit list (still-present registry\nfile) so already-registered workspaces are not retroactively dropped. The CLI\nstatus line now reports checkpoint eligibility, not bare registration.",
"is_bot": false,
"headline": "Gate checkpoints on explicit eligibility, not mere shared-store regis…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-13T14:24:12Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "22c17a432a1def9336dd0bbe34a50bf5c5670e6d",
"body": "A current daemon delivers its undelivered honesty receipts ('updated from X\nto Y', 'restarted after a crash at HH:MM', settings-migration notes) only to a\n/status read that opts in with ?receipts=consume; a plain /status read is\nreceipt-neutral. The spine keepalive probe fetched plain /status, so ag\n[…]\n\nfires at boot and again whenever a daemon reappears after a loss. Corrected the\nstale 'first authenticated reader' comments across the probe, the receipt feed,\nand the external-services attach point.",
"is_bot": false,
"headline": "Consume daemon honesty receipts via an explicit once-per-attach read",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-13T14:24:03Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "27b1d8b97e64789b08a02add4632c6cd5d21b7ad",
"body": "Keeps main.ts under the architecture line cap and gives the fleet\nheadline/stall join (agents matched to fleet nodes by id) its own unit\ncoverage.",
"is_bot": false,
"headline": "Extract sidebar agent-row building into the renderer module",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-13T08:42:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "73e4d2030b7c12d7fbf6d9ec64f109fd7f2d542f",
"body": "- Provider stubs declare a credentialAuthority (registration is now\n fail-closed without one).\n- The catalog cache fixture writes envelope version 2 (nullable pricing).\n- Settings workspace routes the new update.* (daemon self-update posture)\n and pricing.modelPrices keys as first-class categories\n[…]\nf waiting out the discover-probe timeout; listServers rows\n carry the negotiated-protocol fields.\n- The boot-wiring fixture provides the daemon receipt feed the wiring\n now attaches unconditionally.",
"is_bot": false,
"headline": "Adopt the SDK's new test-visible contracts across the suite",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-13T08:37:12Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ce4a664cee1dbee3a25eaeee4a8bc9d922047c4c",
"body": "…he agent's surfaces\n\nThe daemon serves undelivered receipts (updates, crash restarts, settings\nmigrations) once, to the first authenticated /status reader — the agent's\nspine keepalive probe now captures them instead of discarding the body,\nbuffers them through a delivery feed (exactly-once by id),\n[…]\neet\nread-model's per-node headline (derived from task/phase identity,\nreplaced in place — never a feed; it wins over the per-turn progress\nchurn) and the stall tell as a compact quiet-duration marker.",
"is_bot": false,
"headline": "Deliver connected-host honesty receipts and fleet headline/stall on t…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-13T08:17:10Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4e5a250f035300f5582a0a10e860d55de1a5742d",
"body": "…efresh, rule store, exec prompts, snapshots, registrar deps\n\n- priceUsage now routes through the ONE model pricing resolver\n (resolveModelPricing + computeUsageCostUsd) and is shared by the fleet\n registry and the orchestration engine, alongside the provider-backed\n attempt judge; unknown models\n[…]\nut pushes are never suppressed.\n- Test stubs updated for the widened SDK types (resolveModelPricing on\n registry picks, secrets get, nullable catalog pricing, optional MCP\n command for url servers).",
"is_bot": false,
"headline": "Mirror the SDK composition-root drift: pricing resolver, credential r…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-13T08:05:03Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e466aff74f4452b20bc76c676b99348edaf70068",
"body": "…awn routing\n\nDeletes the vendored resolver mirror (resolveSpawnRoutingModelReference,\nfindClosestModelIds, levenshteinDistance) in favor of the public\nresolveModelReference from the providers barrel, and brings the routing\nbuilder byte-faithful to the SDK's: a provider-qualified id conflicting\nwith the provider hint now throws, and a bare id with no registry\ncandidates now throws instead of passing through bare. The contract cases\nare proven in src/test/runtime/spawn-routing-contract.test.ts.",
"is_bot": false,
"headline": "Adopt the SDK's public model-reference resolver for shared-session sp…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-13T07:43:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bb911317154f4d12b4284dcf65be2855105bcb9d",
"body": "…SDK's public modules\n\nThe SDK now exports platform/runtime/feature-announcements and\nplatform/runtime/permissions/localhost-fetch-approval publicly; the\nreceipt-parity tests pass unchanged against the public modules.",
"is_bot": false,
"headline": "Replace vendored announcement and loopback-approval mirrors with the …",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-13T07:34:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "547aa0e7fa8970791af9ac6ed37bc2f72fa9ff06",
"body": null,
"is_bot": false,
"headline": "dev: refresh local SDK link to the current snapshot build",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-13T07:31:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b62d907d9685feec35954ddd120dfc81a796cdef",
"body": "Ruling: vestigial — evidence-forced deletion, not a re-wire.\n\nEvidence:\n- bootstrap.ts gated OpsControlPlane on isEnabled('operator-control-plane'),\n an id that has never existed in any feature registry: a search of the\n SDK's full history finds no registration, and the gate arrived verbatim\n in \n[…]\npsApi (built with no plane, exactly\nas bootstrap-shell builds it) refuses intervention verbs with the honest\n'Ops control plane is not available in this runtime.' reason while read\npaths keep working.",
"is_bot": false,
"headline": "Delete the never-constructed ops intervention plane wiring",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-12T23:41:22Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "219b13384a67f40fde75c9db5f687b8c3d14792b",
"body": "…s on the new surfaces\n\n- product-quality and performance gates assert FEATURE_SETTINGS metadata\n (domain-led enablement keys, default-on pins for fetch sanitization and\n session compaction, budget enforcement still default-off)\n- automation-foundation gates track default-on automation/web/watcher\n[…]\nCLI flags test exercises applyRuntimeFeatureOverrides domain-key writes\n (runtime-only, never persisted) and the honest constant-feature error\n- provider-api stubs implement refreshLiveModelDiscovery",
"is_bot": false,
"headline": "Finish test adoption: quality/performance gates and provider-api stub…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-12T23:16:53Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d7b9354512c73c5fb9b40ad3711717ad1f71af14",
"body": "- feature-model-receipts: a populated legacy featureFlags fixture migrates\n onto domain settings keys on ConfigManager load with the one-line\n receipt logged exactly once (second load silent, file rewritten without\n the legacy record, derived gate states match); announce-once ids/texts\n pinned b\n[…]\non with historical error\n wording, runtime-only CLI overrides (in-memory, honest per-feature\n errors), and onboarding legacy set-config apply/verify including honest\n failure after post-apply drift",
"is_bot": false,
"headline": "Prove receipt parity and the explicit-enablement contract with tests",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-12T23:11:13Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c5e5cee200c4cf7ec582ee1f403a33cf99653544",
"body": "…n posture\n\nWhat changed underneath and how the tests now assert it honestly:\n- loopback targets classify as the approvable 'localhost' trust tier\n (per-project fetch.allowLocalhost ask) instead of hard-blocked SSRF;\n encoded loopback and private ranges stay blocked. Fetch/web-search\n fixtures gr\n[…]\nve-verified)\n- sandbox.judgmentAutoApprove became sandbox.judgment; ledger/package\n markers track FEATURE_SETTINGS and the 'Feature settings' area;\n providers surface gains refreshLiveModelDiscovery",
"is_bot": false,
"headline": "Adapt tests to the linked SDK's dissolved feature model and default-o…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-12T23:08:37Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f6aba3c35609526b17038171359d0ac7053a6744",
"body": "…tings workspace\n\nThe featureFlags config category and the FEATURE_FLAGS/FEATURE_FLAG_CONFIG\nexports are gone from the SDK; features are enabled through first-class\ndomain settings keys described by FEATURE_SETTINGS.\n\n- new runtime/feature-enablement.ts: explicit enable/disable requests\n resolve to\n[…]\ndomain key and rides the live settings\n bridge (restart-required features save with an honest next-launch note)\n- removed the dead surface-feature-flags helpers and the PersistedFlagState\n re-export",
"is_bot": false,
"headline": "Adopt the dissolved feature model across CLI, onboarding, and the set…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-12T22:47:09Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2c7386fa8a1bdccad96384bbf739a6d6b0d7a0d1",
"body": "…discovery, announce-once receipts\n\nThe Agent forks the SDK's createRuntimeServices; the SDK's root gained\nwiring this repo missed (the recorded fork-drift failure class). Mirrored\nfrom the committed SDK snapshot:\n- gate states now derive from domain settings keys (deriveFeatureStates)\n with the li\n[…]\nlayed in bootstrap-core's full setDependencies replacement\n- relay CLI + verification ledger read FEATURE_SETTINGS instead of the\n removed FEATURE_FLAG_MAP; runtime barrel drops its unknown-id filter",
"is_bot": false,
"headline": "Mirror the SDK composition-root drift: settings-derived gates, model …",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-12T22:38:00Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "88796f8a5bf1cb11b29fc1e3a5514527df51843e",
"body": null,
"is_bot": false,
"headline": "dev: link local SDK build for feature-model adoption",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-12T19:04:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6dab4c93a79a12146a56b226bbe44811ef87f33d",
"body": "…ance\n\nPorts the internal-identifier architecture-gate rule from goodvibes-tui\n(scripts/internal-identifier-rule.ts) and wires it into this repo's\narchitecture check over all source, script, and docs text. The rule\nbans wave ids, work-order ids, debt-register ids, security-review\nfinding ids, UX-wor\n[…]\nst.\n\nUnit tests mirror the sibling repo's gate tests (fixtures built by\nconcatenation so this file never contains a live identifier), extended\nfor the two new patterns and their false-positive guards.",
"is_bot": false,
"headline": "Ban internal planning identifiers from tracked text, sweep every inst…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-12T18:50:16Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b7c82073c7b6981da800b3a51de9d71cdb4d242b",
"body": "When boot discovery finds nothing on the configured daemon port but the\nhost's service entry is installed on this machine, the agent now issues\none start through the platform service manager (systemctl --user enable\n--now on systemd; launchd/windows equivalents via the SDK service\nmanager), waits a \n[…]\nled\ndaemon state instead of racing the start. Stale never-start wording in\nthe CLI diagnostics, setup guidance, operator policy, and docs is\nupdated to describe the one bounded boot behavior honestly.",
"is_bot": false,
"headline": "Agent boot starts an installed-but-stopped connected host",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-12T18:28:48Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "25575f327334c501210ae24f578a7b14d3f26b43",
"body": "release/release-notes.md is a fixed release-evidence sample the model-visible\nrelease-evidence surface returns, and the agent_harness release-evidence test\npins a stable substring of it; per-release notes belong in CHANGELOG.md via the\nrelease notes channel. Restore the sample to its committed content so the\nrelease-evidence artifact contract stays green. The v1.9.1 product notes remain\nin CHANGELOG.md.",
"is_bot": false,
"headline": "Keep the release-notes.md evidence sample stable",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-11T20:51:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "972c4726ea36d6775b401902f1cf5cea0491743f",
"body": null,
"is_bot": false,
"headline": "chore: release v1.9.1",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-11T20:47:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7c5ad877794368d50a24f49e42969f74d78294dd",
"body": "The compiled binary resolves the sqlite-vec native extension at\n<binary-dir>/lib/sqlite-vec-<os>-<arch>/vec0.<suffix>, but Bun cannot embed a\nnative addon in the compiled binary. Extend the binary release lane so a\ndirectly-downloaded standalone binary can restore the semantic memory vector\nindex by\n[…]\n package\n verification tracks the new cross-target fetch build markers.\n- README and release docs cover co-locating the addon next to a downloaded\n binary and the macOS extension-loading limitation.",
"is_bot": false,
"headline": "Ship per-platform sqlite-vec native addon archives as release assets",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-11T20:46:16Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "05f44ad708fb8c344299d4ff8068e421b686c555",
"body": null,
"is_bot": false,
"headline": "chore: release v1.9.0",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-11T20:08:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b6bfad53ebfdaefb3cf4c059bb9679a7ecae367c",
"body": "The public curl installer is pure-binary, so the release must attach the\nfour compiled platform binaries and a SHA256SUMS manifest alongside the\nexisting npm tarball.\n\n- release.yml gains a per-platform binary build matrix (linux-x64,\n linux-arm64, macos-x64, macos-arm64), a linux-x64 compiled-bina\n[…]\nlane; wire it into ci.yml and the ci:gate battery.\n- Extend package-verification release-workflow policy with the binary lane\n markers and update the tarball/download markers for the new release job.",
"is_bot": false,
"headline": "Ship compiled platform binaries as GitHub release artifacts",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-11T20:07:40Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "88437297e3a936f803b9fdfc0ac5ad6343c26442",
"body": null,
"is_bot": false,
"headline": "chore: release v1.8.2",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-11T19:16:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b627069122372be3753da9e25fcdf512b699c753",
"body": "…new settings\n\nRe-wires to the published @pellux/goodvibes-sdk@1.7.1 (registry pin, no\ndev-tarball overrides). StepUpService and emitPermissionModeChanged are\nnow public SDK exports (@pellux/goodvibes-sdk/daemon and\n@pellux/goodvibes-sdk/platform/runtime/emitters), so the two isolated\ndeep-import br\n[…]\ncompaction/passive-injection tuning) into the settings modal:\nnew SettingsCategory entries, group placement, category labels and\ndescriptions, following the existing schema-driven category convention.",
"is_bot": false,
"headline": "Adopt SDK 1.7.1, drop the step-up/permission-events bridges, wire 20 …",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-11T19:15:00Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8f4bff24b392fc6e90b47d84a339fe07f432a090",
"body": "The automatic (turn/agent-lifecycle) checkpoint subscription was wired at\nprocess-construction time based on a one-time registration check: an\nunregistered-at-boot workspace never received a runtimeBus, so the\nWorkspaceCheckpointManager could never auto-subscribe, and registering the\nworkspace mid-l\n[…]\ne long-running services instance (no new createRuntimeServices\n call) proving both automatic and explicit checkpoint creation start working\n immediately after the workspace is registered mid-launch.",
"is_bot": false,
"headline": "Make register-mid-launch checkpointing take effect without a restart",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-11T14:20:20Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "9b2efbd5fa932ec5e1f50a1ba53258359cf16ff2",
"body": "Apply appendTemporalLabel alongside the precise value (never replacing it)\nacross the CLI surfaces that still printed a raw ISO/epoch timestamp with no\nsense of recency: support bundle capturedAt, channel-profile updatedAt, CI\nreport checkedAt, subscription/pairing expiresAt and createdAt, memory re\n[…]\n skill bundle created/updated, skill created/updated,\nand the onboarding status/doctor updated line. Swept the rest of src/cli for\nany remaining unwrapped Date(...)/toISOString() renders — none found.",
"is_bot": false,
"headline": "Extend CLI temporal labels to every remaining raw-timestamp listing",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-11T14:09:33Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "381e771c8e2dd8c4f3fab154dc9e326ec819b6ef",
"body": "… typed emitter\n\n- Restore the committed bun.lock so the repacked @pellux tarballs install\n without drifting transitive deps; the earlier lockfile reset had bumped\n openai 6.29.0 -> 6.46.0, whose construction-time credential/fetch checks\n broke the SDK's eager provider construction across the suite.\n- Emit PERMISSION_MODE_CHANGED through the SDK's typed emitter via an isolated\n bridge instead of a raw RuntimeEventBus.emit(), satisfying the GC-ARCH-002\n typed-emission enforcement.",
"is_bot": false,
"headline": "Pin transitive deps via restored lockfile and route mode emit through…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-11T13:54:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0cc4bc91d3481a294f26879dda2f7760080cee06",
"body": "Step 0: purge bun cache, reinstall the repacked local SDK tarballs, and\nreconcile the new SDK surface — construct the now-required relay step-up\nceremony service (via an isolated bridge, since the SDK does not export the\nclass) and add the new required COMPACTION_RECEIPT sectionsIncluded field to\nte\n[…]\nted-host metrics: add cli/connected-host-metrics.ts using\n runtime.metrics.get and render host runtime metrics in status/doctor, with\n an honest read:telemetry-scope-missing line instead of zeros.",
"is_bot": false,
"headline": "Adopt repacked SDK 1.6.1 and build four deferred agent surfaces",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-11T13:32:43Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "94abf56287829b6ff5857517ff586673e27d102c",
"body": "…lies\n\nRe-ran the SDK 1.6.1 gateway parity pin (gateway-parity-verb-families.test.ts)\nagainst the repacked tarballs: no new verb family exists in\nregisterGatewayVerbGroups beyond what was already pinned -- confirmed by\nenumerating every registered gateway method id on this fork's own\ncomposed daemon\n[…]\nter, or /api/runtime/metrics. Deferred: no fork-owned surface\nexists to add the counters to; this is not a gap the SDK bump created.\n\nFull suite green (8888 pass, 0 fail) and tsc clean at this commit.",
"is_bot": false,
"headline": "test(daemon): extend the gateway parity pin; confirm no new verb fami…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-11T03:47:03Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "bcee751485b02230781e72865139fa394a41e95f",
"body": "Settings entries: behavior.compactionStrategy, telemetry.decisionOtlp*,\nand sandbox.judgmentAutoApprove already route into this fork's settings\nUI with honest descriptions (SettingsModal derives every entry\ndynamically from CONFIG_SCHEMA by category, and 'behavior'/'telemetry'/\n'sandbox' already exi\n[…]\nr than silently no-op-ing.\n\nNo new gateway verb families expected from this round (confirmed\nseparately by the existing parity pin).\n\nFull suite green (8885 pass, 0 fail) and tsc clean at this commit.",
"is_bot": false,
"headline": "feat(surfaces): adopt the SDK 1.6.1 agent-experience and platform round",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-11T03:38:44Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "92011877acd0f42e2d6ab9ce86335508c796b9a4",
"body": "…estrator\n\nThis fork is an interactive consumer with its own Orchestrator (one\nsession, one live conversation) -- the SDK's context_accounting tool\n(SDK 1.6.1) is always on the standard roster but starts unbound, honestly\nreporting \"no live session context is bound\" until a consumer binds a\nContextA\n[…]\nng/compactionCount track live runtime-store and bus signals,\nscoped correctly to one session; unbind reverts to the unbound message.\n\nFull suite green (8875 pass, 0 fail) and tsc clean at this commit.",
"is_bot": false,
"headline": "feat(context-accounting): bind context_accounting to this fork's Orch…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-11T03:35:37Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1cbbf7b860abc480195d73bd8e0fe98b640975d9",
"body": "…ldens\n\nThe 1.6.1 tarballs at .gv-dev-tarballs were repacked with three SDK rounds:\naudit fixes (search tools enforce read-deny; the fleet gateway registrar\nmodule renamed register-w3-s2.ts -> register-fleet-checkpoints-search.ts),\nthe agent-experience round (child-failure envelopes on the agent too\n[…]\nden gains\n context_accounting (always registered, per the SDK's own roster\n default); gave it a compact model-visible description.\n\nFull suite green (8872 pass, 0 fail) and tsc clean at this commit.",
"is_bot": false,
"headline": "chore: refresh local SDK dev tarballs to 1.6.1 (repack), reconcile go…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-11T03:32:41Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "58ca6983dba2f4c81f46231e8acaff549cc5b660",
"body": "The full suite run after the release-train sweep (dev-link refresh + relay\nexposure + gateway parity pin sweep + conversation rewind port) surfaced one\nfailure the scoped test runs during that work did not touch:\nagent-workspace-command-parity.test.ts asserts every product CLI command has\nTUI worksp\n[…]\nad) with no mutating action a TUI workspace editor would expose.\n\nFull suite (bun run scripts/run-tests.ts): 8872 tests, 0 failures after this\nfix (was 1 failure before). tsc and typecheck:test clean.",
"is_bot": false,
"headline": "test: add relay to the shell-only CLI/workspace-parity allowlist",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-11T00:17:12Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c215620e4916680bfcdc1997ab9e03dacd2e36f7",
"body": "…daemon\n\nTask 3 of the release-train adoption sweep (CONVERSATION REWIND PORT).\n\nThis Agent's architecture DOES have an equivalent conversation/session store\nat the composition root: its own ConversationManager (src/core/conversation.ts)\nextends the same shared SDK base class goodvibes-tui's does, a\n[…]\nble path).\n\ntsc and typecheck:test clean; src/test/core, src/test/runtime, and\nsrc/test/daemon green (1822 tests, 0 failures); architecture:check passes\n(677 non-test source files, 800-line cap held).",
"is_bot": false,
"headline": "feat(rewind): thread a live conversationRewindPort into the composed …",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-11T00:12:13Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e10e5b975fe90449bbdc9c646a4cbfe112065d78",
"body": "…mily\n\nTask 2 of the release-train adoption sweep (GATEWAY PARITY PIN SWEEP).\n\nAdded src/test/daemon/gateway-parity-verb-families.test.ts as the single\nfork-drift firewall covering every verb family\nregisterGatewayVerbGroups landed this cycle: workspaces.registrations.*/\nresolve, rewind.plan/apply, \n[…]\nnned as an absence-with-reason: there is no family\nin this fork's release scope left unregistered.\n\ntsc and typecheck:test clean; src/test/daemon/ and src/test/runtime/ green\n(1227 tests, 0 failures).",
"is_bot": false,
"headline": "test(daemon): gateway parity pin sweep across every SDK 1.6.1 verb fa…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-11T00:05:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "518a378c10213cb0bdde33bcb7a60b29abdd9e1f",
"body": "…ss policy\n\nTask 1 of the release-train adoption sweep (RELAY EXPOSURE), scoped to what\nthis repo's architecture actually supports.\n\nInvestigated the premise \"this agent hosts the always-on daemon\" against the\ncodebase and found it does not hold here: parser.ts's own\nBLOCKED_PRODUCT_COMMAND_HINTS ex\n[…]\n clean; cli/input/config/tools/control-plane/daemon/runtime test suites\ngreen (558+ tests, including the new relay-command.test.ts and the\nsettings-modal.test.ts lock assertion from the prior commit).",
"is_bot": false,
"headline": "feat(relay): relay status|pair CLI, honest status/doctor lines, harne…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-11T00:02:36Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4313454873d90a9f27c2a8e1221e0b3a13b00324",
"body": "… round)\n\nRepacked tarballs changed goodvibes-contracts, goodvibes-daemon-sdk,\ngoodvibes-sdk, goodvibes-transport-core, and goodvibes-transport-realtime\n(errors/operator-sdk/peer-sdk/terminal-shell/transport-http were byte-identical).\nbun caches local-tarball extraction by absolute path, so a plain \n[…]\nsts\n(src/test/daemon/*) all pass unmodified against the refreshed SDK — no other\ngolden drifted. tsc and the affected test suites (cli, input, config, tools,\ncontrol-plane, daemon, runtime) are green.",
"is_bot": false,
"headline": "chore: refresh local SDK dev tarballs to 1.6.1 (relay + open-platform…",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-11T00:02:08Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ef377be28f10f3265def419003c61f07dcd6bbfe",
"body": "At interactive TUI start, when the resolved workspace directory is\nunknown (not covered by a registered root, not previously declined),\nshow a one-time ambient yes/no prompt: register this directory as a\nworkspace? \"y\" registers via the shared store's add(); any other key\n(Escape, Enter-through, Ctr\n[…]\ngained the minimal\nstate/wiring lines, offset by collapsing two existing assignment\nstatements into one destructure).\n\nFull suite green (8839 pass), tsc clean (both configs), architecture\ncheck clean.",
"is_bot": false,
"headline": "feat(workspace): first-start registration prompt at interactive launch",
"author_name": "Mike Davis",
"author_login": "mgd34msu",
"committed_at": "2026-07-10T22:30:46Z",
"body_truncated": true,
"is_coding_agent": false
}
],
"releases_count": 100,
"commits_last_year": 1321,
"latest_release_at": "2026-07-18T01:17:19Z",
"latest_release_tag": "v1.12.5",
"releases_from_tags": false,
"days_since_last_push": 5,
"active_weeks_last_year": 10,
"days_since_latest_release": 5,
"mean_days_between_releases": 0.7
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": false,
"health_percentage": 42,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "@pellux/goodvibes-agent",
"exists": true,
"license": "MIT",
"keywords": [
"goodvibes",
"agent",
"operator",
"assistant",
"tui",
"bun",
"automation",
"ai"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/@pellux/goodvibes-agent",
"is_deprecated": false,
"latest_version": "1.12.5",
"repository_url": "https://github.com/mgd34msu/goodvibes-agent",
"versions_count": 202,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 5616,
"first_published_at": "2026-05-30T04:14:13.589000Z",
"latest_published_at": "2026-07-18T01:17:48.862000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 5
}
]
},
"popularity": {
"forks": 0,
"stars": 0,
"watchers": 0,
"fork_history": {
"days": [],
"complete": true,
"collected": 0,
"total_forks": 0
},
"star_history": {
"days": [],
"complete": true,
"collected": 0,
"total_stars": 0,
"collected_at": 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": [
"tsconfig.json"
],
"toolchain_manifests": [],
"largest_source_bytes": 709845,
"source_files_sampled": 1388,
"oversized_source_files": 8,
"agent_instruction_files": [
"src/test/fixtures/openclaw-workspace/AGENTS.md",
"src/test/fixtures/openclaw-workspace/CLAUDE.md"
],
"agent_instruction_max_bytes": 218
},
"dependencies": {
"manifests": [
"package.json"
],
"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": [
"npm"
],
"dependencies": [],
"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": "mgd34msu",
"commits": 1321,
"avatar_url": "https://avatars.githubusercontent.com/u/18431027?v=4"
}
],
"contributors_sampled": 1,
"top_contributor_share": 1
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"ci.yml",
"release.yml"
],
"has_docs_dir": true,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 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": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 0,
"reason": "no update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file 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": 3,
"reason": "dependency not pinned by hash detected -- score normalized to 3",
"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": 0,
"reason": "Project has not signed or included provenance with any releases.",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 10,
"reason": "GitHub workflow tokens follow principle of least privilege",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 10,
"reason": "0 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "54b2c52e0220f7724529b844e280937daf2c34f3",
"ran_at": "2026-07-23T10:47:02Z",
"aggregate_score": 3.7,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-18T01:18:31Z",
"oldest_open_prs": [],
"last_merged_pr_at": null,
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": []
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/mgd34msu/goodvibes-agent",
"host": "github.com",
"name": "goodvibes-agent",
"owner": "mgd34msu"
},
"metrics": {
"overall": {
"key": "overall",
"band": "at_risk",
"name": "Overall health",
"note": null,
"notes": [],
"value": 49,
"inputs": {
"security": 37,
"vitality": 73,
"community": 33,
"governance": 34,
"engineering": 66
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "good",
"name": "Vitality",
"value": 73,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "moderate",
"name": "Development activity",
"note": null,
"notes": [],
"value": 61,
"inputs": {
"commits_last_year": 1321,
"human_commit_share": 1,
"days_since_last_push": 5,
"active_weeks_last_year": 10
},
"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": "10/52 weeks with commits",
"points": 6.9,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 10
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "1321 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 1321
}
}
],
"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": null,
"notes": [],
"value": 90,
"inputs": {
"releases_count": 100,
"latest_release_tag": "v1.12.5",
"releases_from_tags": false,
"days_since_latest_release": 5,
"mean_days_between_releases": 0.7
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "100 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 100
}
}
],
"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": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"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": "at_risk",
"name": "Community & Adoption",
"value": 33,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 1,
"inputs": {
"forks": 0,
"stars": 0,
"watchers": 0,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "0 stars",
"points": 0,
"status": "missed",
"details": [
{
"code": "stars",
"params": {
"count": 0
}
}
],
"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": "moderate",
"name": "Community health",
"note": null,
"notes": [],
"value": 50,
"inputs": {
"has_readme": true,
"has_license": true,
"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": "recognized license (MIT)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "MIT"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 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
}
]
},
{
"key": "ecosystem_adoption",
"band": "moderate",
"name": "Ecosystem adoption (downloads)",
"note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"registry_dependents"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 62,
"inputs": {
"packages": [
"@pellux/goodvibes-agent"
],
"dependents": null,
"ecosystems": "npm",
"total_downloads": null,
"monthly_downloads": 5616
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "5,616 downloads/month across npm",
"points": 50,
"status": "partial",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 5616,
"ecosystems": "npm"
}
}
],
"max_points": 80
},
{
"key": "registry_dependents",
"name": "Registry dependents",
"detail": "not reported by this ecosystem",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_reported_by_this_ecosystem",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "at_risk",
"name": "Sustainability & Governance",
"value": 34,
"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": "at_risk",
"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": 43,
"inputs": {
"followers": 1,
"owner_type": "User",
"is_verified": null,
"owner_login": "mgd34msu",
"public_repos": 22,
"account_age_days": 3753
},
"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": "1 followers of mgd34msu",
"points": 2.2,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 1,
"login": "mgd34msu"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "22 public repos, account ~10 yr old",
"points": 21.9,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 22
}
},
{
"code": "account_age_years",
"params": {
"years": 10
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"@pellux/goodvibes-agent"
],
"ecosystems": "npm",
"any_deprecated": false,
"min_days_since_publish": 5
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on npm",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "npm"
}
}
],
"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": "202 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 202
}
}
],
"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": 66,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "moderate",
"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": 60,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "2 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 2
}
}
],
"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": "good",
"name": "Documentation",
"note": null,
"notes": [],
"value": 75,
"inputs": {
"topics": [],
"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": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "at_risk",
"name": "Security",
"value": 37,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): CI-Tests, Packaging. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"ci_tests",
"packaging"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 37,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 16,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 2,
"scorecard_aggregate": 3.7
},
"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 dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "no update tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"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": "dependency not pinned by hash detected -- score normalized to 3",
"points": 1.5,
"status": "partial",
"details": [],
"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": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "GitHub workflow tokens follow principle of least privilege",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "0 existing vulnerabilities detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "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": 2
},
"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": 65,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "excellent",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.99,
"agent_instruction_files": [
"src/test/fixtures/openclaw-workspace/AGENTS.md",
"src/test/fixtures/openclaw-workspace/CLAUDE.md"
],
"agent_instruction_max_bytes": 218
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "src/test/fixtures/openclaw-workspace/AGENTS.md, src/test/fixtures/openclaw-workspace/CLAUDE.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "src/test/fixtures/openclaw-workspace/AGENTS.md, src/test/fixtures/openclaw-workspace/CLAUDE.md"
}
}
],
"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": "99 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 99,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "at_risk",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 36,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [
"tsconfig.json"
],
"agent_commit_share": 0,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "tsconfig.json"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "no agent-authored commits among the last 100",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_authored_commits",
"params": {
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 3",
"points": 3,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "TypeScript",
"largest_source_bytes": 709845,
"source_files_sampled": 1388,
"oversized_source_files": 8
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "TypeScript (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "TypeScript"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "8/1388 source files over 60KB",
"points": 54.7,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 1388,
"oversized": 8
}
}
],
"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": [
"GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"deps.dev does not index npm:@pellux/goodvibes-agent@1.12.5; advisories assessed against the repository dependency graph instead"
],
"report_type": "repository",
"generated_at": "2026-07-23T10:47:07.903678Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/m/mgd34msu/goodvibes-agent.svg",
"full_name": "mgd34msu/goodvibes-agent",
"license_state": "standard",
"license_spdx": "MIT"
}