Informe JSON sin procesar legible por máquina
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 192035,
"has_wiki": false,
"homepage": null,
"languages": {
"Go": 2133192,
"Ruby": 1766,
"Shell": 199670,
"Makefile": 12499,
"Dockerfile": 2713,
"Go Template": 924
},
"pushed_at": "2026-07-02T15:00:51Z",
"created_at": "2026-03-29T13:18:35Z",
"owner_type": "User",
"updated_at": "2026-07-02T15:02:38Z",
"description": "Supervisor for coding agents - use any TUI",
"is_archived": false,
"is_disabled": false,
"license_spdx": "AGPL-3.0",
"default_branch": "main",
"license_spdx_raw": "AGPL-3.0",
"primary_language": "Go",
"significant_languages": [
"Go"
]
},
"owner": {
"blog": null,
"name": null,
"type": "User",
"login": "Shaik-Sirajuddin",
"company": null,
"location": null,
"followers": 14,
"avatar_url": "https://avatars.githubusercontent.com/u/89742297?v=4",
"created_at": "2021-08-29T16:27:41Z",
"is_verified": null,
"public_repos": 62,
"account_age_days": 1793
},
"license": {
"state": "standard",
"spdx_id": "AGPL-3.0",
"raw_spdx": "AGPL-3.0",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v1.2.48",
"kind": "patch",
"published_at": "2026-07-02T15:03:16Z"
},
{
"tag": "v1.2.47",
"kind": "patch",
"published_at": "2026-07-02T13:26:13Z"
},
{
"tag": "v1.2.46",
"kind": "patch",
"published_at": "2026-07-01T07:14:31Z"
},
{
"tag": "v1.2.45",
"kind": "patch",
"published_at": "2026-06-29T07:13:25Z"
},
{
"tag": "v1.2.44",
"kind": "patch",
"published_at": "2026-06-24T10:03:37Z"
},
{
"tag": "v1.2.43",
"kind": "patch",
"published_at": "2026-06-24T09:55:33Z"
},
{
"tag": "v1.2.42",
"kind": "patch",
"published_at": "2026-06-23T05:00:06Z"
},
{
"tag": "v1.2.41",
"kind": "patch",
"published_at": "2026-06-21T08:30:59Z"
},
{
"tag": "v1.2.40",
"kind": "patch",
"published_at": "2026-06-07T12:26:20Z"
},
{
"tag": "v1.2.39",
"kind": "patch",
"published_at": "2026-06-04T15:51:05Z"
},
{
"tag": "v1.2.38",
"kind": "patch",
"published_at": "2026-06-03T09:08:03Z"
},
{
"tag": "v1.2.36",
"kind": "patch",
"published_at": "2026-06-03T08:45:31Z"
},
{
"tag": "v1.2.35",
"kind": "patch",
"published_at": "2026-06-02T16:06:50Z"
},
{
"tag": "v1.2.34",
"kind": "patch",
"published_at": "2026-06-02T14:49:05Z"
},
{
"tag": "v1.2.32",
"kind": "patch",
"published_at": "2026-06-02T08:29:22Z"
},
{
"tag": "v1.2.29",
"kind": "patch",
"published_at": "2026-06-02T08:14:56Z"
},
{
"tag": "v1.2.25",
"kind": "patch",
"published_at": "2026-05-31T11:22:00Z"
},
{
"tag": "v1.2.19",
"kind": "patch",
"published_at": "2026-05-29T13:29:08Z"
},
{
"tag": "v1.2.18",
"kind": "patch",
"published_at": "2026-05-29T13:27:33Z"
},
{
"tag": "v1.2.15",
"kind": "patch",
"published_at": "2026-05-28T14:24:22Z"
},
{
"tag": "v1.2.13",
"kind": "patch",
"published_at": "2026-05-28T14:19:27Z"
},
{
"tag": "v1.2.11",
"kind": "patch",
"published_at": "2026-05-28T14:05:44Z"
},
{
"tag": "v1.2.9",
"kind": "patch",
"published_at": "2026-05-28T04:41:02Z"
},
{
"tag": "v1.2.8",
"kind": "patch",
"published_at": "2026-05-28T04:20:54Z"
},
{
"tag": "v1.2.5",
"kind": "patch",
"published_at": "2026-05-27T08:50:02Z"
},
{
"tag": "v1.2.4",
"kind": "patch",
"published_at": "2026-05-23T08:20:53Z"
},
{
"tag": "v1.2.3",
"kind": "patch",
"published_at": "2026-05-23T08:15:16Z"
},
{
"tag": "v1.2.1",
"kind": "patch",
"published_at": "2026-05-23T08:04:20Z"
},
{
"tag": "v1.1.0",
"kind": "minor",
"published_at": "2026-05-17T11:31:30Z"
},
{
"tag": "1.0.0",
"kind": "major",
"published_at": "2026-05-06T06:14:36Z"
}
],
"recent_commits": [
{
"oid": "183304cd2bb4673eb5c7fc2973bafd5bedc61d93",
"body": "…all.sh in non-tty/non-systemd envs (#155)\n\nTwo bugs reported after using omni in a real Coder workspace:\n\n1. `omni agent init NAME -r -p codex` silently ignored -p and always\n resumed whatever provider the agent's currently active session used\n (defaulting to claude). Root cause: ResumeAgent's \n[…]\nw exits 0\nwith binaries usable via `omni server start` immediately after.\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(init): honor --provider when resuming an existing agent; fix inst…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-07-02T15:00:06Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "37b01a8a4dc794603ffbfc59aef4e115cd4feda9",
"body": "…all.sh in non-tty/non-systemd envs (#154)\n\nTwo bugs reported after using omni in a real Coder workspace:\n\n1. `omni agent init NAME -r -p codex` silently ignored -p and always\n resumed whatever provider the agent's currently active session used\n (defaulting to claude). Root cause: ResumeAgent's \n[…]\nw exits 0\nwith binaries usable via `omni server start` immediately after.\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(init): honor --provider when resuming an existing agent; fix inst…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-07-02T13:23:10Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "9196e34c23dc19f2dfd17ab3e245ec8dffd91bfe",
"body": "…paces (#153)\n\nFound via live end-to-end testing in an actual Coder workspace pod (cpu=1,\nmemory=2Gi, no systemd, non-root user \"coder\", /run and /var/lib both\nroot-owned 0755). The prior non-systemd fix (#150) tested only as root\ninside a Docker container, which masked all four bugs below.\n\n1. pkg/\n[…]\nete successfully with a real claude\nsession running under the PTY daemon.\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(non-root): make omni server start/status work in real Coder works…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-07-01T07:11:12Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "44d13a5e54e05a20003c2a45ba2ed2874bf198c1",
"body": "* fix(switch-provider): pass --arg and --env flags to switch-provider like resume does\n\nswitch-provider was missing support for --arg, --env, --clear-args, and\n--clear-envs flags that are available in resume. This meant users couldn't\npersist runner arguments and environment variables when switching\n[…]\nall.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(switch-provider): pass --arg and --env flags like resume does (#152)",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-07-01T07:11:02Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7d9243db23e7448a4f9b4675a162ad59554d1ff7",
"body": "When a stored session ID doesn't exist in codex's store (due to cache\npurge, different machine, or other reasons), fall back to interactive\nmode that lets the user choose from available sessions instead of failing.\n\nThis addresses the \"No saved session found\" error by re-enabling the\nsession fallbac\n[…]\nurn.completed before\nterminating, sessions are properly flushed to disk.\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(codex): gracefully fall back when resume session not found (#151)",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-07-01T07:10:51Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6a99e98fe73d38870bb1abfc63ce50a3795883a8",
"body": "…P config (#150)\n\n* feat(memory): make tasks/ a first-class v3 agent dir + validator guards\n\nOwn task definitions now live at memory/<agent>/tasks/<namespace>/<name>.yaml\n(flat, version-namespaced) — a first-class v3 sibling of instructions/, skills/,\nknowledge/, gen/. Previously v3 had no own-tasks\n[…]\nnd.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(ptydaemon): create socket/db dirs on startup; handle empty agy MC…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-29T06:00:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "14537641b8224ef0976582e5c7a338e0b80decd4",
"body": "…e Create-time only (#149)\n\n* feat(memory): make tasks/ a first-class v3 agent dir + validator guards\n\nOwn task definitions now live at memory/<agent>/tasks/<namespace>/<name>.yaml\n(flat, version-namespaced) — a first-class v3 sibling of instructions/, skills/,\nknowledge/, gen/. Previously v3 had no\n[…]\nem.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": true,
"headline": "fix(run-config): do not forward ExtraArgs to Resume; session flags ar…",
"author_name": "axoswe[bot]",
"author_login": "axoswe[bot]",
"committed_at": "2026-06-26T11:28:54Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d351d9d8b74673c8d8184bd65cdf39d99147c902",
"body": "…e (#148)\n\n* feat(memory): make tasks/ a first-class v3 agent dir + validator guards\n\nOwn task definitions now live at memory/<agent>/tasks/<namespace>/<name>.yaml\n(flat, version-namespaced) — a first-class v3 sibling of instructions/, skills/,\nknowledge/, gen/. Previously v3 had no own-tasks concep\n[…]\n v3\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(run-config): persist --arg/--env flags across agent init → resum…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-24T10:01:00Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "209e409ef608439638cde5c4dcd942555e1a5973",
"body": "…templates (#146)\n\n* fix(memory): agent upgrade relocation + <agent_name> substitution in templates\n\nFix A — relocation on upgrade: Upgrade() now computes the target dir using\nlayoutForVersion(target).agentSubDir(name), performs os.Rename when the path\nchanges (v1/v2 memory/agents/<name> → v3 memory\n[…]\nure).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(memory): agent upgrade relocation + <agent_name> substitution in …",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-24T04:03:44Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d793d31cdeabf8b5ba9b4378c00318a1a7eb7b00",
"body": "…paths (#145)\n\nRoot cause: `omni init` could freeze indefinitely because the claude/codex\nseed call (`claude -p hello` / `codex exec .`) ran with no deadline, and\nthe pty client used bare `net.Dial` with no timeout. An unauthenticated CLI\nblocking on a login/onboarding prompt caused a permanent hang\n[…]\n with net.DialTimeout(\"unix\", …, 5s) (Attach, openStdinRelay, roundtrip).\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(operator): add timeouts to session bootstrap/resume and pty dial …",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-24T03:58:35Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "5449c2c108433af082091cac5e9cb6d69a716b8d",
"body": "…#144)\n\n* ci(release): add workflow_dispatch with level + force inputs\n\nAllow manual releases from the Actions UI:\n- level: patch (default) | minor | major — bumps the latest semver tag and\n creates/pushes the new tag on the current commit, then runs the existing\n goreleaser flow.\n- force: false (\n[…]\nfore.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "ci(release): manual dispatch with level (patch/minor/major) + force (…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-23T04:56:10Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e4d6d0e0e0aa58f0b7add1c9317ebfc5ec30dbb2",
"body": "…ds (#147)\n\n* feat(memory): make tasks/ a first-class v3 agent dir + validator guards\n\nOwn task definitions now live at memory/<agent>/tasks/<namespace>/<name>.yaml\n(flat, version-namespaced) — a first-class v3 sibling of instructions/, skills/,\nknowledge/, gen/. Previously v3 had no own-tasks conce\n[…]\nyaml.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(memory): make tasks/ a first-class v3 agent dir + validator guar…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-23T04:55:19Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7ef3160fa4aa47ccd80ea9ab436ac516a16421ed",
"body": "…LI, operator migration (#143)\n\n* feat(memory): version-aware layout loader, v3 validator CLI, operator migration\n\nMake the operator's memory loader resolve layout per-agent by version (v1/v2/v3)\nwith no dependency on a root memory.yaml, and add CLI tooling + an e2e itest for\nthe new versioned \"circ\n[…]\nive).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(memory): versioned layout v3 — version-aware loader, validator C…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-21T08:20:46Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "778cf7f06743729b745b8d9cc1c7abbd023a1410",
"body": "…142)\n\n* feat(config): wire axolink_mcp feature flag through OmniConfig\n\nAdd AxolinkMCP bool to Features struct (defaults true), update\nProvisionDefaultOmniConfig/ApplyOmniConfigDefaults to set the default,\nand teach svc/cmd/main.go to load OmniConfig at startup so that\nfeatures.axolink_mcp=false in\n[…]\n.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(config): wire axolink_mcp feature flag with live config watch (#…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-18T06:15:01Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d1b5be7f3d272f85b74c0d34b4c8c1d5857b7dd0",
"body": "…ator seed-session fix (R1) + entrypoint re-seed (#140)\n\n* fix(engine): confirm mandatory tool on PostToolUse, not PreToolUse\n\nPreToolUse fires before a tool runs, so a send_response that then errors\n(rejected for an already-failed/delivered message, or schema failure)\nwould falsely set MandatoryToo\n[…]\nude Opus 4.8 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
"is_bot": false,
"headline": "test/e2e-tool-recall: engine MessageQueue/NextMessage refactor + oper…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-07T12:13:36Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b6e1aed4019f8b2187045cfa2c0200b2308369fb",
"body": "…onOnly, adopt re-key) (#139)\n\n* fix(ptydaemon): unify List with in-memory registry + join drainer on close\n\nListSessions(agentID) now treats the in-memory registry as the authority for\nwhich terminals exist, with the same leniency as get() (agent_id=\"\" matches any\nrequested agent). This closes the \n[…]\nned).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>",
"is_bot": false,
"headline": "fix(ptydaemon): clear init→exec→init resume wedge (ordered GetBySessi…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-07T09:05:59Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "20bd3402850c69aad9bc7b5e91b8ba8805fe857a",
"body": "…ot generated/ (#137)\n\n* refactor: rename development/ → dev/, tunnel_mcp/ → axolink/, drop root generated/\n\n- development/ → dev/: update Makefile, docker-compose, Dockerfile,\n entrypoint.sh, install.sh, release.sh, README, docs/docker-dev.md, .gitignore\n- tunnel_mcp/ → axolink/: update go.work, o\n[…]\nr\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "refactor: rename development/ → dev/, tunnel_mcp/ → axolink/, drop ro…",
"author_name": "axoswe[bot]",
"author_login": "axoswe[bot]",
"committed_at": "2026-06-06T14:08:41Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f38ff7955ebd9a2105c616ab26921ddf65fa32ca",
"body": "…der; drop dead AllWorkspaces code (#136)\n\n* fix(cli/store/service): OMNI_WORKSPACE in exec + global sender resolution fallback\n\nFix 1: agent exec now reads OMNI_WORKSPACE env var for name resolution.\nThe harness injects OMNI_WORKSPACE into every command; agent exec was\nignoring it (passing empty wo\n[…]\n.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(e2e,tunnel_mcp): MCP via container stdio bridge + get_message sen…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-06T12:03:08Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ca695d198f018fdcc7b373f8ca3b2f3c3b84a964",
"body": "…tion fallback (#135)\n\n* fix(cli/store/service): OMNI_WORKSPACE in exec + global sender resolution fallback\n\nFix 1: agent exec now reads OMNI_WORKSPACE env var for name resolution.\nThe harness injects OMNI_WORKSPACE into every command; agent exec was\nignoring it (passing empty workspace to resolveAg\n[…]\n.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(cli/store/service): OMNI_WORKSPACE in exec + global sender resolu…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-06T09:00:40Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "c258e16faf9da0e2c6a1ed4fdbbfe3fce21a6063",
"body": "* feat(tests/e2e): migrate bash e2e tests to Go with Docker SDK\n\nReplaces tests/e2e/*.sh with proper Go e2e tests using //go:build e2e\nbuild tags. Tests run inside a Docker container via the Docker SDK\n(ContainerExecCreate + ContainerExecAttach + stdcopy.StdCopy) or\nlocally via HostExecutor with env\n[…]\nred-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "feat(tests/e2e): migrate bash e2e tests to Go with Docker SDK (#126)",
"author_name": "axoswe[bot]",
"author_login": "axoswe[bot]",
"committed_at": "2026-06-06T08:12:22Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "38efabc6ef613a3e2126504156d0ffada3e97ab8",
"body": "….omni\n\nAllows observing omni logs and state files locally from the worktree\nwithout exec-ing into the container or streaming via journalctl.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "feat(dev): bind-mount development/local/omni into container at /root/…",
"author_name": "AxoSWE",
"author_login": null,
"committed_at": "2026-06-06T06:14:46Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "7e2e007eec370892679e555e0ebe27900e2b2bf4",
"body": "…ace (#125)\n\n* fix(ptydaemon/hook): instant drain pause + resolve agent_id from session on hook race\n\n- terminal.go: add drainWakeR/W pipe to PTYTerminal; pauseDrain writes to the\n pipe so the drain goroutine wakes from unix.Poll immediately instead of\n waiting up to one 200ms poll cycle. stopDrai\n[…]\n.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "fix(ptydaemon/hook): instant drain pause + resolve agent_id on hook r…",
"author_name": "axoswe[bot]",
"author_login": "axoswe[bot]",
"committed_at": "2026-06-06T05:36:26Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "798d296c172084abff91a70010f647fcb1ec77e5",
"body": "The one-time migration shim removing the pre-rename \"tunnel_mcp\" entry\nwas no longer needed — any install that ran after the axolink rename has\nalready had the stale entry cleaned up.\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(svc/cmd): remove stale DeleteMCP tunnel_mcp cleanup (#133)",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-06T05:32:48Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "5931908569ce04f2dc48b2f8315adec36183c496",
"body": "* feat(log): unified log routing with session-linked log files\n\n- All levels route to ~/.omni/log/omni.log by default (no per-component debug files)\n- InitSessionLog(sessionID) switches OMNI_LOG_FILE to session-<id>.log; called by\n operator after session create/resume so all subprocesses inherit th\n[…]\ne\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(log): unified log routing with session-linked log files (#128)",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-06T05:29:01Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "856f3dfd3b5831a1480e5a5241d17325cb0fffc3",
"body": "… sudo (#132)\n\n- Short bulleted features: one/two-way messaging, auto retries, JSON schema, Claude/Codex/Agy\n- Auto MCP config registration + first-run tool approval note\n- Shortened MCP hooks note\n- Removed sudo requirement from install\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(readme): features, messaging, retries, JSON schema, MCP note, no…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-05T14:49:39Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "cecf9cde97fa442def67001d9e8dcf5c597e391c",
"body": "…E (#131)\n\n* docs(readme): one-liner, blue install callout, quick ref, MCP note, LICENSE\n\n- One-line highlighted description as blockquote\n- IMPORTANT callout for install (renders blue on GitHub); Linux + WSL combined\n- Quick reference adds `omni team init` and `omni agent init -r -p`\n- NOTE callout\n[…]\ns\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(readme): one-liner, install callout, quick ref, MCP note, LICENS…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-05T14:47:14Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6fb7e7ed6a485196125f5c2d60dfdc052abdedf9",
"body": "…cense (#130)\n\n* docs(readme): add demo gif, install sections, features, and AGPL-3 license\n\n- Add readme.gif showing multi-agent Claude + Codex side-by-side demo\n- Expand description: inter-agent messaging, auto retries, Claude/Codex/Agy support\n- Add Linux and Windows (WSL 2) install sections with\n[…]\ng\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs(readme): add demo gif, install sections, features, and AGPL-3 li…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-05T14:33:13Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "8b9d64beee29ec9522d9beb7362b73b078e8ac8b",
"body": "…ing installs (#124)\n\napplySchema runs on every startup. On an existing DB at migration ≤4 (before\nmigrations 5/6 added schema/task_id/creator_agent_id to messages), the base\nschema 1-message.sql tries to CREATE INDEX idx_messages_task referencing those\ncolumns, which fails with \"has no column named\n[…]\ntion 6 will subsequently add the columns and recreate the index safely.\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(db): skip index-on-missing-column errors in applySchema for exist…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-04T16:22:50Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "336319b3bd5cdc234bbead181c8ce3d603902736",
"body": "* test(e2e): add full exec --bg / resume attach suite (10 cases)\n\nCovers all operator-requested edge cases:\nT1 --bg accepted; --resume rejected (flag rename)\nT2 fresh exec --bg: non-blocking (508ms), PTY starts in background\nT3 exec --bg on active PTY: non-blocking (418ms)\nT4 exec --bg agent not\n[…]\nn\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(ptydaemon/operator/cli): resume hang + exec --bg reliability (#112)",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-04T16:22:24Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "23081d1dd2c3db19a508268bc26a80a168fce439",
"body": null,
"is_bot": true,
"headline": "ci: track .goreleaser.yaml; remove from gitignore",
"author_name": "AxoSWE",
"author_login": null,
"committed_at": "2026-06-04T15:48:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f8473b87873287d40505f8d007eb7154788b0e3a",
"body": null,
"is_bot": true,
"headline": "Merge branch 'main' of github.com:Shaik-Sirajuddin/omni",
"author_name": "AxoSWE",
"author_login": null,
"committed_at": "2026-06-04T15:46:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "21b89996512a22855e9dbe295ef11b576161aab0",
"body": "… (#123)\n\nPR #118 accidentally removed the Env/EnvVars fields from the axolink\nAddMCP call that were introduced in PR #109 to fix X-SENDER-ID errors.\nCodex clears the parent env before spawning stdio subprocesses; without\nenv_vars forwarding, AXO_LINK_MCP_SENDER_ID and friends never reach the\nomni a\n[…]\nVars forwarding for AUTH_TOKEN, SENDER_ID, SENDER_TYPE, AGENT_WORKSPACE\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(mux): restore AXO_LINK_MCP_* env forwarding for axolink stdio MCP…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-04T15:27:01Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d02a422140e61179e0e873c988e8a017aaabc1cf",
"body": null,
"is_bot": true,
"headline": "chore: ignore go.work.sum",
"author_name": "AxoSWE",
"author_login": null,
"committed_at": "2026-06-04T15:11:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "217f2b61b8b1e09aadba6c1e0f519f6227e07fda",
"body": "Triggers automatically on any v* tag push to main.\nUses goreleaser/goreleaser-action@v6 with GITHUB_TOKEN for\npublishing release assets to GitHub Releases.\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>",
"is_bot": false,
"headline": "ci: add GitHub Actions release workflow via GoReleaser (#121)",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-04T10:03:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b367af22ba15ac73d336a95356d4cb0496dc9464",
"body": "* feat(pkg/log): route CLI logs to ~/.omni/log/omni.log; no terminal output\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n* fix(log): auto-clear omni.log at 10MB; clarify session isolation\n\n- Replace rotation (omni.log → omni.log.1) with in-place truncation when\n omni.log exceeds 10MB\n[…]\n.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(pkg/log): silent CLI logging — route to ~/.omni/log/omni.log (#117)",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-04T08:35:57Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2fd18e3f9d6cfa0f1312db8754da20b6d2c5bee6",
"body": "…nfig.json (#118)\n\n* feat(agy+mux+hookoperator): agy MCP writes to ~/.gemini/config/mcp_config.json\n\n- agy MCPManager writes MCP server entries to ~/.gemini/config/mcp_config.json\n (global) and <workDir>/.gemini/config/mcp_config.json (workspace); follows\n the same mtime-guarded atomic-write patte\n[…]\n.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(agy+mux+hookoperator): agy MCP writes to ~/.gemini/config/mcp_co…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-04T08:33:56Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ba0a27c78334fa780985ab25c3d4cbd15fd99ab9",
"body": "…(#111)\n\n* fix(operator): skip code agent init in ExecInSession when PTY session is live\n\nWhen ExecInSession was called for an already-running PTY session, it\nunconditionally called codeAgentForAgentID which tries to locate the\nprovider binary (e.g. claude). If the binary is not in PATH the call\nfai\n[…]\n.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(engine): v1.2.5 delivery fixes — D1-D6 + post-review corrections …",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-04T06:37:29Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e061c605458a57cd2e7757a6ad8970676568e3d8",
"body": "…package loggers (#116)\n\n* feat(pkg/log): lazy writer — UseStderrForAll() routes all loggers to journald\n\nLoggers now use a lazyWriter that defers destination resolution to the\nfirst Write() call. This means UseStderrForAll() called at daemon startup\nin main() is respected by every sub-package logge\n[…]\nl\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(pkg/log): lazy writer — UseStderrForAll() propagates to all sub-…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-04T06:36:01Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ba117a33091afa63af9a55a1f462f8d3f1673a00",
"body": null,
"is_bot": true,
"headline": "fix(deployment): add /root/.local/bin to systemd unit PATH for uid=0",
"author_name": "AxoSWE",
"author_login": null,
"committed_at": "2026-06-04T06:17:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "da9f9f4dfc0b9abda24f6469e6508f2fd5bc54fb",
"body": "…y points use stderr (#115)\n\n* feat(pkg/log): route debug logs to ~/.config/omni/debug/ instead of /tmp\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n* feat(svc/cmd): route daemon logs to stderr for journald; restore file default for other callers\n\nCo-Authored-By: Claude Sonnet 4.6 <no\n[…]\ns\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(pkg/log): route debug logs to ~/.config/omni/debug/; daemon entr…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-04T05:38:02Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e71b271506fd3c6cdd372d17951adf35dde675db",
"body": "- pkg/log: add InitSessionLog() — sets OMNI_LOG_FILE to\n ~/.config/omni/log/session-<pid>.log at startup so all in-process\n components and child subprocesses share one file per session\n- pkg/log: resolveWriter now routes to OMNI_LOG_FILE at any log level\n (not just debug); OMNI_LOG_FILE unset + n\n[…]\nong-lived daemons (ptydaemon, tunnel_mcp) must not call InitSessionLog.\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(log): unified session log file; OMNI_DEBUG env override (#114)",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-04T05:34:02Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "fd5dc85dd6d9325875ed27ac0856174d4e21e051",
"body": "…Windows (#113)\n\n* test(operator): add MCPManager stub methods to stubCodeAgent\n\nImplements AddMCP, ListMCP, DeleteMCP, SetMCPToolPrompt on stubCodeAgent\nso it satisfies the updated codeagent.CodeAgent interface.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n* feat(codex): implement MC\n[…]\ny: Claude Sonnet 4.6 <noreply@anthropic.com>\nCo-authored-by: Shaik-Sirajuddin <89742297+Shaik-Sirajuddin@users.noreply.github.com>\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "feat(pkg/sockpath): platform-specific socket paths for Linux, macOS, …",
"author_name": "axoswe[bot]",
"author_login": "axoswe[bot]",
"committed_at": "2026-06-04T05:31:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "c6a1354fcb7decc213fd4bc6a28db082b5417760",
"body": "* fix(operator): skip code agent init in ExecInSession when PTY session is live\n\nWhen ExecInSession was called for an already-running PTY session, it\nunconditionally called codeAgentForAgentID which tries to locate the\nprovider binary (e.g. claude). If the binary is not in PATH the call\nfails even t\n[…]\nr cache is\nshared (content-addressed) so builds remain fast.\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "feat(docker): scope containers and volumes per git worktree (#104)",
"author_name": "axoswe[bot]",
"author_login": "axoswe[bot]",
"committed_at": "2026-06-04T04:54:34Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "db30cce0034e2a11e860d727d2b6cb1a027b29da",
"body": "…TaskKey\n\n- message.Message: add Schema, TaskID, CreatorAgentID fields\n- store: update INSERT/SELECT/scan to include new columns\n- schema/1-message.sql: add schema, task_id, creator_agent_id columns + task index\n- migrations/5.sql: ALTER TABLE migration for existing databases\n- service/types.go: add\n[…]\nPayloadMessage\n- service/mcp_extensions.go: SendMessageWithMetadata, SendResponse,\n SendResponseBatch, PauseTask, ResumeTask implementations\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "feat(tunnel_mcp): task messaging — schema/task fields, SendResponse, …",
"author_name": "AxoSWE",
"author_login": null,
"committed_at": "2026-06-04T03:56:53Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "dd0647daa6a18e7a8b2e835ebd346329bb703d44",
"body": "More robust T1/T2 detection — cd into workspace dir so --workspace isn't\nneeded on exec (not a local flag in pre-df907a6 binaries), and distinguish\nbetween unknown-flag failures and operator-error failures.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "test(e2e): improve T1/T2 flag detection in exec-bg-resume-attach suite",
"author_name": "AxoSWE",
"author_login": null,
"committed_at": "2026-06-04T03:52:11Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "9b37acd98609ff9781e7742c5be2a8cef51d4386",
"body": "MetaAttached check was unreachable after the Attach call was moved into\nthe active-session loop. Move it before Attach so a second `omni agent\nresume` on an already-attached session returns nil gracefully instead of\nsurfacing a hard daemon error.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "fix(operator): guard double-attach in ResumeAgent active-PTY branch",
"author_name": "AxoSWE",
"author_login": null,
"committed_at": "2026-06-04T03:46:16Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "55dd75267ea3ddbd23d26602c1bc3ba80724e0e4",
"body": "…ttach suite\n\n- Update all e2e tests to use --bg/-b instead of the renamed --resume/-r flag\n (test.sh, test_exec_resume_hook.sh, test_exec_detach_mux_route.sh,\n test_exec_double_wrap_fix.sh, test_agy_gemini_exec_resume.sh,\n test_codex_config_e2e_strict.sh)\n- Add test_exec_bg_resume_attach.sh: 5-c\n[…]\nlaunch (T2), resume\n attaches to active PTY via ptyDaemon.Attach (T3), exec --bg on active PTY\n stays detached (T4), and -b short flag (T5)\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "test(e2e): rename --resume to --bg in all tests; add exec-bg-resume-a…",
"author_name": "AxoSWE",
"author_login": null,
"committed_at": "2026-06-04T03:45:16Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "df907a6dd13435c07f1811fbdcc58b58c1730020",
"body": "…ume to --bg\n\n- ResumeAgent: when PTY is already active and Detached=false, call\n ptyDaemon.Attach instead of returning nil — fixes `omni agent resume`\n not attaching after a background exec\n- exec command: rename --resume/-r flag to --bg/-b to reflect that it\n starts the agent in background without attaching\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "fix(operator/cli): attach when resuming active PTY; rename exec --res…",
"author_name": "AxoSWE",
"author_login": null,
"committed_at": "2026-06-04T03:41:16Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "d4e5e36d87e6835a8faf189bf6a769b05c243095",
"body": "…err option\n\n- Debug mode now writes to /tmp/omni-debug-<component>.log by default\n- Set OMNI_LOG_FILE env var to override the log file path\n- Add WithStderr() option to retain stderr output (for systemd services)\n- Announce log file path to stderr once on first open per path\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "feat(pkg/log): route debug output to tmp file by default; add WithStd…",
"author_name": "AxoSWE",
"author_login": null,
"committed_at": "2026-06-04T03:20:56Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "967cd422a140ef04d95798e8b71408bb7dc717c9",
"body": "Previously ResumeAgent returned an error when a PTY terminal was already\nactive and Detached=false. This blocked exec flows where the session is\nrunning but the caller just wants to write a prompt (no attachment).\n\nNow all callers (detached or not) get nil when the terminal is already\nactive, keeping the PTY available for an independent interactive attach.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "fix(operator): don't error when resuming already-active PTY terminal",
"author_name": "AxoSWE",
"author_login": null,
"committed_at": "2026-06-04T03:20:08Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "56416b16546e206e4fa552c995a86a02179df99d",
"body": "… is live\n\nWhen ExecInSession was called for an already-running PTY session, it\nunconditionally called codeAgentForAgentID which tries to locate the\nprovider binary (e.g. claude). If the binary is not in PATH the call\nfails even though the PTY daemon is already running and no binary is\nneeded to del\n[…]\nis active — no\ncode agent runtime init required. The full codeAgentForAgentID path is\nnow only taken in the no-PTY fallback (stdio provider).\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "fix(operator): skip code agent init in ExecInSession when PTY session…",
"author_name": "AxoSWE",
"author_login": null,
"committed_at": "2026-06-04T03:19:51Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "25e381965bb251e5cdc110cf3b7233280b8e18c4",
"body": "…cess (#109)\n\nCodex clears the parent environment before spawning stdio MCP subprocesses\n(env_clear in codex-rs) then only injects an allowlist of ~11 system vars.\nThe AXO_LINK_MCP_* session vars set by the operator on every PTY session\nwere never reaching the omni axolink subprocess, causing X-SEND\n[…]\np.Envs.\n- Delete stale tunnel_mcp entry from before the axolink rename.\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "fix(codex): forward AXO_LINK_MCP_* env vars into axolink stdio subpro…",
"author_name": "axoswe[bot]",
"author_login": "axoswe[bot]",
"committed_at": "2026-06-03T14:58:38Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "c19231cbf684e901e8cbe65c89cc5eaa30f47927",
"body": "PTY debug logs flooded the journal and — for the 'omni agent' client, whose\nstderr IS the user's terminal — rendered on top of the attached TUI.\n\nRemoved (high-frequency / terminal-polluting):\n- writeUser + trackUserInput logs (fired on every relayed keystroke)\n- daemon drainLoop mode-scan + client \n[…]\nexec logs (execPrompt begin/payload/reinject, submit-key retry) are kept.\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": true,
"headline": "chore(log,ptydaemon): cut debug-log noise; opt-in file logging (#108)",
"author_name": "axoswe[bot]",
"author_login": "axoswe[bot]",
"committed_at": "2026-06-03T09:06:09Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "211c0675ae04669551d3ff5206d9096e99d7f8e7",
"body": "… exec input delivery (#107)\n\nA session can have two terminal entries — the master-owning one from the\nCreate/Start path (agentID empty, hasDrain=true) and an adopted duplicate from\nRegister/Adopt (real agentID, its own non-owning fd). get() did an exact\n(agentID,sessionID) lookup, so 'omni agent pi\n[…]\n into claude's\ninput box and submit (confirmed via the agent transcript).\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": true,
"headline": "fix(ptydaemon): route pipe/exec to the master-owning terminal; harden…",
"author_name": "axoswe[bot]",
"author_login": "axoswe[bot]",
"committed_at": "2026-06-03T08:42:49Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "98c5690f690eb9e431bcad60f55e74ccf3516420",
"body": "…aste before exec (#106)\n\nMouse-copy fix: the interactive client restored cursor/alt-screen/SGR on detach\nbut never disabled the mouse-tracking (?1000/1002/1003/1006) or bracketed-paste\n(?2004) modes the agent enables at startup. term.Restore only fixes termios, not\nthese app-set output modes, so af\n[…]\n when no paste is open. Still a single atomic write — no inter-write gap.\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(ptydaemon): restore mouse/paste modes on detach; close dangling p…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-02T16:04:48Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ed3dd4cc8a8356d9e83c913630d87ab67d4ad734",
"body": "* fix(operator): skip code agent init in ExecInSession when PTY session is live\n\nWhen ExecInSession was called for an already-running PTY session, it\nunconditionally called codeAgentForAgentID which tries to locate the\nprovider binary (e.g. claude). If the binary is not in PATH the call\nfails even t\n[…]\nace gemini with agy in agent binary check, fix install hints\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "fix(deployment): replace gemini with agy in agent binary check (#103)",
"author_name": "axoswe[bot]",
"author_login": "axoswe[bot]",
"committed_at": "2026-06-02T14:56:51Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "8d47292127e1f4b93609d23175cd6f25e560de1f",
"body": "…ent active lock (#102)\n\n* fix(operator): skip code agent init in ExecInSession when PTY session is live\n\nWhen ExecInSession was called for an already-running PTY session, it\nunconditionally called codeAgentForAgentID which tries to locate the\nprovider binary (e.g. claude). If the binary is not in P\n[…]\ns\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(ptydaemon): Stop uses wrong agentID for adopted sessions — perman…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-02T14:55:36Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "8a323a1db441227776c0dff92a5b6874c967cc3e",
"body": "* test(operator): add MCPManager stub methods to stubCodeAgent\n\nImplements AddMCP, ListMCP, DeleteMCP, SetMCPToolPrompt on stubCodeAgent\nso it satisfies the updated codeagent.CodeAgent interface.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n* feat(codex): implement MCPManager (AddMCP,\n[…]\n.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>",
"is_bot": false,
"headline": "fix(merge): resolve feat/mcp_orchestor conflicts with main (#97)",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-02T14:54:16Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a8a11bd700ce612ef06ef8b987ffda2a0a67ffbc",
"body": "…ctives (#101)\n\n* fix(operator): skip code agent init in ExecInSession when PTY session is live\n\nWhen ExecInSession was called for an already-running PTY session, it\nunconditionally called codeAgentForAgentID which tries to locate the\nprovider binary (e.g. claude). If the binary is not in PATH the c\n[…]\n.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(gomod): add missing pkg/pty and pkg/filelock require+replace dire…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-02T14:44:34Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b44f66750221d66f2417530f8acf80b38e12821c",
"body": "…ogs (#100)\n\nOutput-race fix: handleAttach sent the PTY master fd to the client BEFORE\npausing the idle drainer, so for the handoff window both the drainer and the\nclient called read() on the same master. The kernel split each escape sequence\nbetween the two readers, so the client received torn outp\n[…]\nformed-framing when\ndiagnosing the typing-fast + exec broken-render case.\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(ptydaemon): pause drain before fd handoff; add input-path debug l…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-02T14:27:31Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "07d89626aa2ad4df50ecc9d775ead120ad2e59a1",
"body": "…od (#99)\n\n* fix(operator): skip code agent init in ExecInSession when PTY session is live\n\nWhen ExecInSession was called for an already-running PTY session, it\nunconditionally called codeAgentForAgentID which tries to locate the\nprovider binary (e.g. claude). If the binary is not in PATH the call\nf\n[…]\n.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "fix(go.mod): add missing pkg/filelock require+replace to svc/cmd/go.m…",
"author_name": "axoswe[bot]",
"author_login": "axoswe[bot]",
"committed_at": "2026-06-02T08:27:44Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "363923e19f61435fd317f99eebe803cdbac4ae55",
"body": "* fix(operator): skip code agent init in ExecInSession when PTY session is live\n\nWhen ExecInSession was called for an already-running PTY session, it\nunconditionally called codeAgentForAgentID which tries to locate the\nprovider binary (e.g. claude). If the binary is not in PATH the call\nfails even t\n[…]\n.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "fix(go.mod): add missing pkg/pty require+replace to omni/go.mod (#98)",
"author_name": "axoswe[bot]",
"author_login": "axoswe[bot]",
"committed_at": "2026-06-02T08:24:40Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6d3886ba60f0ecef6c8b97fe8f3efb9735d3f33c",
"body": "… (#96)\n\n* refactor(ptydaemon): assume bracketed-paste on; serialize human input\n\nFollow-up to the exec-framing work (#77). Two changes:\n\n1. execPrompt unconditionally wraps the prompt in ESC[200~ … ESC[201~ —\n paste mode (DECSET 2004) is assumed active, since every supported TUI\n enables it at \n[…]\nttle.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "refactor(ptydaemon): assume bracketed-paste on; serialize human input…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-02T06:34:41Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "68949b16e444b64095aaaa4f2b94f650300988fd",
"body": "…session is live (#95)\n\n* fix(operator): skip code agent init in ExecInSession when PTY session is live\n\nWhen ExecInSession was called for an already-running PTY session, it\nunconditionally called codeAgentForAgentID which tries to locate the\nprovider binary (e.g. claude). If the binary is not in PA\n[…]\n.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(operator): skip binary lookup in ExecInSession and Pipe when PTY …",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-02T05:51:00Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "083746cf22ca83d7b7345351c2e201962f12b90b",
"body": "* test(operator): add MCPManager stub methods to stubCodeAgent\n\nImplements AddMCP, ListMCP, DeleteMCP, SetMCPToolPrompt on stubCodeAgent\nso it satisfies the updated codeagent.CodeAgent interface.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n* feat(codex): implement MCPManager (AddMCP,\n[…]\n-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>\nCo-authored-by: AxoSWE[bot] <3923146+AxoSWE[bot]@users.noreply.github.com>",
"is_bot": false,
"headline": "feat(store): PromptSessionStore + prompt_sessions schema (v1.2.5) (#93)",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-02T05:37:36Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "8c369cccadfd529656687bfca7fbb05df56c9855",
"body": "* test(operator): add MCPManager stub methods to stubCodeAgent\n\nImplements AddMCP, ListMCP, DeleteMCP, SetMCPToolPrompt on stubCodeAgent\nso it satisfies the updated codeagent.CodeAgent interface.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n* feat(codex): implement MCPManager (AddMCP,\n[…]\n.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>",
"is_bot": false,
"headline": "feat(axolink): stdio transport + rename axo-link → axolink (#91)",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-02T04:19:01Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2c1bb11b0b917c0134a6bb1c121947775e089c1c",
"body": "Renames all user-facing and internal references from \"tunnel-mcp\" to\n\"axolink\": MCP server name, health response Service field, default auth\ntoken, reply/query-result author refs, engine warm-up instruction, and\noperator connector default token. Callers must update MCP tool permission\npatterns (mcp__tunnel-mcp__* → mcp__axolink__*) and the default dev token.\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(rename): tunnel-mcp → axolink across service and MCP layers (#90)",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-02T04:17:18Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "518741880f72ef5357e1077654a29f81f4209976",
"body": "…orrect header handling (#89)\n\n* feat(claude): per-worktree MCP path resolution and per-path mutex\n\n- mcpWorkspaceSettingsPath: .mcp.json at project root (not settings.json)\n- mcpUserSettingsPath: ~/.claude.json (not ~/.claude/settings.json)\n- replace single mcpFileMu with sync.Map keyed by path so \n[…]\nh\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(claude/mcp): per-worktree MCP path resolution, per-path mutex, c…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-02T04:17:01Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "c24edef6cdd09f21c22d88de82f58414d15e0818",
"body": "…n (#88)\n\n* fix(codex): wait for turn.started before SIGTERM in bootstrapSession\n\nCapture thread_id from thread.started but delay SIGTERM until turn.started\narrives — codex must reach turn.started to have fully flushed session state.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n* fix(\n[…]\n.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(codex): wait for turn.completed before SIGTERM in bootstrapSessio…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-02T03:54:50Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "db0a7b8f659e4a057fb346bebea50274b5899d30",
"body": "…de.json (#87)\n\nclaude creates ~/.claude.json as {} on first run, causing seed_mcp_json to\nskip it; the onboarding/trust dialog flags were never written. A Python\npost-processing step now merges the required flags (hasCompletedOnboarding,\nhasTrustDialogAccepted, hasTrustDialogHooksAccepted,\nshiftEnt\n[…]\n so existing user values are\npreserved. Also adds .envrc to .gitignore.\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(entrypoint): pre-set claude onboarding and trust flags in ~/.clau…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-02T03:54:25Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a3e91dc11118ee811f94ed54aa37511dbcf3b3ee",
"body": null,
"is_bot": true,
"headline": "Merge branch 'main' of https://github.com/Shaik-Sirajuddin/omni",
"author_name": "AxoSWE",
"author_login": null,
"committed_at": "2026-06-01T17:15:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1e466971cfe3298823ea85545b40a24d29a6d21c",
"body": "…lls (#85)\n\nCLAUDE_CODE_OAUTH_TOKEN was only written to the systemd drop-in, making\nit available to omni-server but not to interactive shells opened with\n`docker exec bash`. Running `claude` directly in the container showed\nthe full login selection screen even when the token was set — because\nshells\n[…]\nm\n~/.bashrc) so any shell inside the container has the token available.\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "fix(entrypoint): write auth env vars to profile.d for interactive she…",
"author_name": "axoswe[bot]",
"author_login": "axoswe[bot]",
"committed_at": "2026-06-01T17:14:31Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "c3f48ec3406bd58c2698f698c8d7f82eb3160e2f",
"body": "…tion (#83)\n\n* test(operator): add MCPManager stub methods to stubCodeAgent\n\nImplements AddMCP, ListMCP, DeleteMCP, SetMCPToolPrompt on stubCodeAgent\nso it satisfies the updated codeagent.CodeAgent interface.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n* feat(codex): implement MCPMan\n[…]\n.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>",
"is_bot": false,
"headline": "fix(codex): SIGTERM bootstrap + filelock + EnvHeaders + MCP orchestra…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-01T17:13:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "652a4b3329590a5aeb57685360f5e7d0fe289302",
"body": "--max-turns is not a recognized flag in codex-cli 0.135.x / 0.136.x.\nThe process exits immediately with an unknown-flag error, so no\nthread_id is ever captured and every Create → Resume flow silently fails.\n\nFix: capture thread_id as before, then send SIGTERM so codex flushes the\nsession file before\n[…]\n.CommandContext)\nbackstops the Wait() in case codex ignores the signal.\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(codex): replace --max-turns=1 with SIGTERM in bootstrapSession (#84)",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-01T17:12:06Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3f8645fd8dc06648f82c70e4329ab925d1bc9510",
"body": "senderContextFromRequest now emits a WARN when X-SENDER-ID is absent so\nanonymous clients (e.g. Claude Code without sender headers) are visible\nin the journal — previously only the sender-type parse failure was logged,\nleaving no clear signal that the entire session had no identity.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "fix(mcp): log anonymous connections with missing X-SENDER-ID",
"author_name": "AxoSWE",
"author_login": null,
"committed_at": "2026-06-01T17:06:47Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "537cf0501c83a16c9daae0d86249139bca270d04",
"body": "--max-turns is not supported in codex-cli 0.135/0.136, causing bootstrap\nto exit with an unknown-flag error and return an empty session ID, which\nbroke every Create → Resume flow.\n\nUse SIGTERM after capturing thread_id so codex flushes the session file\nbefore exiting, fixing the original \"No saved session found\" regression.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "fix(codex): replace --max-turns=1 with SIGTERM in bootstrapSession",
"author_name": "AxoSWE",
"author_login": null,
"committed_at": "2026-06-01T16:57:52Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "66d3d7141b49ec835a21e21f9b80ced9065f3cea",
"body": "…ion (#81)\n\nbootstrapSession was killing the `codex exec` process immediately after\nreading the thread_id from the first JSON line. Codex only writes the\nsession file on clean shutdown, so the early kill meant Resume could never\nfind the session — producing \"No saved session found\" errors.\n\nFix: add\n[…]\nl thread_id) so codex\nis never blocked on a full pipe during that wait.\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(codex): wait for natural exit in bootstrapSession to persist sess…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-01T16:43:52Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "33399e93c60716acc12b2443ea313b09633f5ec4",
"body": "…orkdirs (#80)\n\nTwo issues preventing CLAUDE_CODE_OAUTH_TOKEN from being picked up:\n\n1. Stale ~/.claude/.credentials.json from a previous interactive login\n (e.g. claude auth login --console) persists in the docker volume.\n Although CLAUDE_CODE_OAUTH_TOKEN (precedence pos 5) outranks stored\n c\n[…]\n: write trust\n JSON for /build, /workspace, and / at container start.\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "fix(entrypoint): clear stale credentials + write trust JSON for all w…",
"author_name": "axoswe[bot]",
"author_login": "axoswe[bot]",
"committed_at": "2026-06-01T16:18:01Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b48efb9baeb00d435ff81461aad287d0a95ca3a7",
"body": "…keted-paste leak; deprecate gemini (#77)\n\n* fix(agy): stop double-wrapping exec payload — prompts leaked into TUI\n\nThe ptydaemon's execPrompt is the sole owner of exec input framing\n(clear-line, bracketed paste, submit key, human-input reinjection).\nclaude and codex already send the raw prompt, but\n[…]\nence.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(exec): correct exec input framing — agy double-wrap + claude brac…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-01T08:11:40Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "37626d1c156ad5e25e3119c3bcc1d046877735a0",
"body": "withMCPConfig calls a.locker.Lock() — nil on a zero-value codexAgent,\ncausing a SIGSEGV at startup when the AxolinkMCP loop calls AddMCP on\nthe bare agent registered by init().\n\nFix: pass locker: filelock.New() so the pre-session MCP registration\nis safe to call before any agent session is created.\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "fix(codex): initialize locker in init() MCP registration (#79)",
"author_name": "axoswe[bot]",
"author_login": "axoswe[bot]",
"committed_at": "2026-06-01T08:11:22Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "144b08c91158d2d9075704674d0a884ab0772af9",
"body": "Neither module is imported by any other package in the repo.\nBoth use placeholder module name example.com/m/v2 which also\nblocked go.work workspace inclusion.\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": true,
"headline": "chore: remove unused svc/auth and svc/store modules (#78)",
"author_name": "axoswe[bot]",
"author_login": "axoswe[bot]",
"committed_at": "2026-06-01T07:30:32Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "86d4ab9ecdc6c699dcd348c1034831d005ab86ce",
"body": "…t installers (#70)\n\n* test(operator): add MCPManager stub methods to stubCodeAgent\n\nImplements AddMCP, ListMCP, DeleteMCP, SetMCPToolPrompt on stubCodeAgent\nso it satisfies the updated codeagent.CodeAgent interface.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n* feat(codex): implemen\n[…]\nr\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>",
"is_bot": false,
"headline": "feat(os-compat): deployment structure, pkg/pty abstraction, curl agen…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-01T07:08:25Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b0dd8ce58984af256c97c252e9b6ce4a82d3f2cb",
"body": "…ust dialog (#76)\n\n* fix(entrypoint): remove dead fix_claude_binary; use command -v for trust dialog\n\nfix_claude_binary() symlinked the npm path (/usr/lib/node_modules/...) to\n/usr/bin/claude. Now that Node/npm is removed and the official claude\ninstaller is used, that path never exists — the functi\n[…]\n.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(entrypoint): remove dead fix_claude_binary; use command -v for tr…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-01T07:06:22Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "846d51f8c9ca4fb807143ba3bf182f21510af36b",
"body": "… gate, status callbacks (v1.2.5) (#69)\n\n* test(operator): add MCPManager stub methods to stubCodeAgent\n\nImplements AddMCP, ListMCP, DeleteMCP, SetMCPToolPrompt on stubCodeAgent\nso it satisfies the updated codeagent.CodeAgent interface.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n* f\n[…]\n-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>\nCo-authored-by: AxoSWE[bot] <3923146+AxoSWE[bot]@users.noreply.github.com>",
"is_bot": false,
"headline": "feat(engine): WarmUp/Active prompts, MandatoryToolInvoked, Stop retry…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-01T06:56:29Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f9e3b28db88fb0a7c6f784cfc51f628e1e94dbae",
"body": "…(#74)\n\n* test(operator): add MCPManager stub methods to stubCodeAgent\n\nImplements AddMCP, ListMCP, DeleteMCP, SetMCPToolPrompt on stubCodeAgent\nso it satisfies the updated codeagent.CodeAgent interface.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n* feat(codex): implement MCPManager \n[…]\ne\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>",
"is_bot": false,
"headline": "feat(v1.2.6): pkg/filelock cross-process write guard for config.toml …",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-01T06:48:54Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "82c28a9965e80280dd627f97bb53c2b85b50437d",
"body": "Co-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>",
"is_bot": false,
"headline": "fix(agy): use equals sign for --conversation and -c for resume (#75)",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-01T06:47:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "802cfc6c1c10a139afa37d79afbefd49d58ceb6a",
"body": "…u 22.04 (#73)\n\nUbuntu 22.04 ships mawk by default. mawk does not support {n} interval\nexpressions in regex. The Codex install script uses /^[0-9a-fA-F]{64}$/\nto validate SHA256 digests — this silently never matches under mawk,\nfailing with:\n \"Could not find SHA-256 digest for codex-package-x86_64-\n[…]\nsions.\nVerified: full install completes and `codex --version` responds.\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(docker): add gawk — required by Codex official installer on Ubunt…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-01T05:50:38Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a4fca52883c60ce330f2f766619ac667db0b8351",
"body": "Replaces GitHub release tarball + pinned CODEX_VERSION ARG with:\n curl -fsSL https://chatgpt.com/codex/install.sh | CODEX_NON_INTERACTIVE=1 sh\n\nVersion is now managed by the official installer, consistent with Claude\n(claude.ai/install.sh) and Agy (antigravity.google/cli/install.sh).\n\nCo-authored-by: AxoSWE <3923146+AxoSWE[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(docker): use official OpenAI curl installer for Codex (#72)",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-01T04:48:41Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "29562a433896d6cfbbef9d52cb495d7b8472a848",
"body": "…fd close (#65)\n\n* feat(ptydaemon): idle output drain + repaint-on-attach; eager master fd close\n\nDetached PTY sessions had no reader, so once a child out-produced the\nkernel PTY buffer it blocked on write and stalled mid-run — breaking a\nfully headless create -> exec. This adds a per-session idle d\n[…]\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>\nCo-authored-by: AxoSWE[bot] <3923146+AxoSWE[bot]@users.noreply.github.com>",
"is_bot": false,
"headline": "feat(ptydaemon): idle output drain + repaint-on-attach; eager master …",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-06-01T04:02:00Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "96861c3608f9278476b392eb826e0c798276094c",
"body": "- Claude Code: official binary installer (https://claude.ai/install.sh)\n- Codex: Rust binary from GitHub releases\n- Gemini/Agy: antigravity curl installer already present; @google/gemini-cli npm package removed\n- Removes: nodesource, nodejs, pnpm, npm, all three npm install -g calls\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(docker): remove Node.js entirely — all agent CLIs via curl (#67)",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-05-31T15:43:01Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "dcd2eafce63dc6ad6115461101120eeaf29e603c",
"body": "…isable (#64)\n\n* test(operator): add MCPManager stub methods to stubCodeAgent\n\nImplements AddMCP, ListMCP, DeleteMCP, SetMCPToolPrompt on stubCodeAgent\nso it satisfies the updated codeagent.CodeAgent interface.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n* feat(codex): implement MCPM\n[…]\nfix(makefile): clearer errors and auto-fix root-owned development/local\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(v1.2.5): MCP orchestration, exec-resume, codex config, sandbox d…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-05-31T15:25:28Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "10fa17cb68619f12d59af28d3db8bf21bfcbef62",
"body": "…(#63)\n\nNon-root users can't mkdir in /run directly, causing axolink-mcp to fail\nat startup with \"permission denied\". Replace the hardcoded /run/omni-<user>/\npath with sockpath.Service() which resolves XDG_RUNTIME_DIR/omni/ first,\nthen /run/user/<uid>/omni/, only falling back to /run/omni-<user>/ for root.\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(tunnel-mcp): use pkg/sockpath for service socket path resolution …",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-05-31T11:20:37Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "32b06263e41741ae99b3efe37d8d340badd3aa52",
"body": "- development/local/ is now a real per-worktree directory (agents/ only)\n- development/local/shared/ symlinks to main worktree's local/shared/\n- Credentials in shared/: .codex/auth.json, .gemini token, .env.docker\n- docker-compose.yaml bind mounts updated to ./local/shared/... paths\n- Removed .bash_\n[…]\ngent-*)\n- dev-preflight guards mkdir/touch to non-symlink dirs only\n\nTested: fresh worktree → make docker-rebuild → Healthy, no manual steps.\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(make): local/shared/ for credentials, per-worktree local dir (#60)",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-05-31T09:12:35Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "73e6cd86b3b539ed2b48a6bfb41ededfa5ee4865",
"body": "…ight (#59)\n\n* fix(make): clean dir-as-file from Docker volumes before container start\n\nDocker creates auth.json and antigravity-oauth-token as directories in\nagent-codex/agent-gemini volumes when bind-mount source files are absent.\nAdd docker-fix-volumes target that removes these directory entries \n[…]\non-worktree users\n\nTested: make docker-rebuild → Healthy from worktree.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(make): clean dir-as-file from Docker volumes + simplify dev-prefl…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-05-31T08:37:34Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d867092acefc3b614f0234dd103f70ab96dc9259",
"body": "* feat(cli): add theme-oriented terminal colour system\n\nFour built-in themes (dark, dark-dim, light, colorblind) with fixed-array\ncolour lookup; only the active theme is allocated. Cobra help colourised via\ncustom SetHelpFunc. Log-level tags colourised via logWriter shim on stderr.\nTheme activated f\n[…]\nsables\n ANSI codes when stdout is piped or redirected (CI, grep, etc.)\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(cli): theme-oriented terminal colour system (#53)",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-05-31T08:31:49Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "c8d547254a33a2dd271a5bb28a6048c575a0fce5",
"body": "mkdir -p fails with Permission denied when .codex/.gemini dirs already\nexist as root-owned (created by Docker). Guard each mkdir with a directory\nexistence check so it only runs when the dir is missing.\n\nAlso removes the rm -rf guards that could delete files from the shared\ndevelopment/local symlink target. Tested: make docker-rebuild → container\nreaches healthy state cleanly.\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(make): guard mkdir in dev-preflight, remove rm -rf lines (#58)",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-05-31T08:23:03Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "01e77d5779b2eeecdc2222602280e8781cc4e2b2",
"body": "* fix(make): rm dir-as-file before creating bind-mount files in dev-preflight\n\nDocker creates auth.json and antigravity-oauth-token as directories when\na bind-mount target file is missing. Guard against this by removing each\npath with rm -rf if it is a directory before attempting to create it as\na f\n[…]\ne\nroot-owned directory entries. Makefile should not touch shared files.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "Review fix preflight dirbust (#57)",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-05-31T08:15:49Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "46d67a2bc8db5b1c7302d024d0f8394c594375a8",
"body": "…flight (#56)\n\nDocker creates auth.json and antigravity-oauth-token as directories when\na bind-mount target file is missing. Guard against this by removing each\npath with rm -rf if it is a directory before attempting to create it as\na file, preventing the OCI \"not a directory\" mount error on next docker-up.\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(make): rm dir-as-file before creating bind-mount files in dev-pre…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-05-31T08:11:05Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "e1044971d4f0b1d26aa3357eeee7f1f038bc1dde",
"body": "…files exist (#55)\n\ndev-preflight now symlinks development/local to the main worktree's\ndevelopment/local (detected via `git worktree list --porcelain`) so all\nworktrees share one set of credentials. Falls back to cp from local.example\nonly if no main worktree local exists.\n\nEnsures auth.json, antig\n[…]\nhe \"mount src is not a directory\" OCI\nerror when files are missing.\n\ndocker-up now depends on dev-preflight so worktree launches always pass.\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(make): symlink dev/local from main worktree + ensure bind-mount …",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-05-31T08:07:23Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "850090f1e8b3a3615880bfca96d943d79619c1b1",
"body": "…iring (#51)\n\n* test(operator): add MCPManager stub methods to stubCodeAgent\n\nImplements AddMCP, ListMCP, DeleteMCP, SetMCPToolPrompt on stubCodeAgent\nso it satisfies the updated codeagent.CodeAgent interface.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n* feat(codex): implement MCPMa\n[…]\n50.\n\n* fix(infra): add hasTrustDialogAccepted to seed_mcp_json template\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(mcp): MCPManager interface, connector implementations, and svc w…",
"author_name": "Shaik-Sirajuddin",
"author_login": "Shaik-Sirajuddin",
"committed_at": "2026-05-31T05:58:39Z",
"body_truncated": true,
"is_coding_agent": true
}
],
"releases_count": 30,
"commits_last_year": 340,
"latest_release_at": "2026-07-02T15:03:16Z",
"latest_release_tag": "v1.2.48",
"releases_from_tags": false,
"days_since_last_push": 25,
"active_weeks_last_year": 14,
"days_since_latest_release": 25,
"mean_days_between_releases": 3.1
},
"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": "github.com/Shaik-Sirajuddin/memory",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": false,
"registry_url": "https://pkg.go.dev/github.com/Shaik-Sirajuddin/memory",
"is_deprecated": false,
"latest_version": "v1.2.48",
"repository_url": "https://github.com/Shaik-Sirajuddin/memory",
"versions_count": 47,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-07-02T15:00:06Z",
"latest_version_yanked": null,
"days_since_latest_publish": 25
}
]
},
"popularity": {
"forks": 0,
"stars": 1,
"watchers": 0,
"fork_history": {
"days": [],
"complete": true,
"collected": 0,
"total_forks": 0
},
"star_history": null,
"open_issues_and_prs": 19
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": true,
"has_mcp_signal": true,
"bootstrap_files": [
"Makefile",
"axolink/Makefile",
"omni/config/Makefile",
"omni/config/hooks/Makefile",
"omni/connector/codeagent/agy/makefile",
"omni/connector/codeagent/claude/makefile",
"omni/connector/codeagent/codex/makefile",
"omni/connector/codeagent/gemini/makefile",
"omni/makefile"
],
"api_schema_files": [
"omni/connector/codeagent/agy/spec/openapi.yaml",
"omni/connector/codeagent/claude/spec/openapi.yaml",
"omni/connector/codeagent/codex/spec/openapi.yaml",
"omni/connector/codeagent/gemini/cli/openapi.yaml",
"svc/ptydaemon/proto/ptydaemon.proto"
],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [
"axolink/go.mod",
"deployment/windows/installer/go.mod",
"omni/go.mod",
"pkg/filelock/go.mod",
"pkg/log/go.mod",
"pkg/pty/go.mod",
"pkg/sockpath/go.mod",
"svc/cmd/go.mod",
"svc/config_sync/go.mod",
"svc/hook-operator/go.mod",
"svc/ptydaemon/go.mod",
"tests/e2e/go.mod"
],
"largest_source_bytes": 155173,
"source_files_sampled": 338,
"oversized_source_files": 5,
"agent_instruction_files": [
"axolink/store/agents.md",
"omni/connector/codeagent/agy/agents.md",
"omni/connector/codeagent/claude/agents.md",
"omni/omniagent/agent.md",
"omni/operator/agent.md",
"omni/sandbox/agents.md",
"svc/ptydaemon/agents.md"
],
"agent_instruction_max_bytes": 4233
},
"dependencies": {
"manifests": [
"axolink/go.mod",
"omni/go.mod"
],
"advisories": {
"error": null,
"scope": null,
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"go"
],
"dependencies": [
{
"name": "github.com/Shaik-Sirajuddin/memory",
"manifest": "axolink/go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.0"
},
{
"name": "github.com/Shaik-Sirajuddin/memory/pkg/log",
"manifest": "axolink/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/Shaik-Sirajuddin/memory/pkg/sockpath",
"manifest": "axolink/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/adrg/xdg",
"manifest": "axolink/go.mod",
"ecosystem": "go",
"version_constraint": "v0.5.3"
},
{
"name": "github.com/docker/docker",
"manifest": "axolink/go.mod",
"ecosystem": "go",
"version_constraint": "v28.5.2+incompatible"
},
{
"name": "github.com/google/uuid",
"manifest": "axolink/go.mod",
"ecosystem": "go",
"version_constraint": "v1.6.0"
},
{
"name": "github.com/mark3labs/mcp-go",
"manifest": "axolink/go.mod",
"ecosystem": "go",
"version_constraint": "v0.54.1"
},
{
"name": "github.com/stretchr/testify",
"manifest": "axolink/go.mod",
"ecosystem": "go",
"version_constraint": "v1.11.1"
},
{
"name": "gopkg.in/yaml.v3",
"manifest": "axolink/go.mod",
"ecosystem": "go",
"version_constraint": "v3.0.1"
},
{
"name": "modernc.org/sqlite",
"manifest": "axolink/go.mod",
"ecosystem": "go",
"version_constraint": "v1.50.1"
},
{
"name": "github.com/santhosh-tekuri/jsonschema/v6",
"manifest": "axolink/go.mod",
"ecosystem": "go",
"version_constraint": "v6.0.2"
},
{
"name": "github.com/BurntSushi/toml",
"manifest": "omni/go.mod",
"ecosystem": "go",
"version_constraint": "v1.6.0"
},
{
"name": "github.com/Shaik-Sirajuddin/memory/mcp",
"manifest": "omni/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/Shaik-Sirajuddin/memory/pkg/filelock",
"manifest": "omni/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/Shaik-Sirajuddin/memory/pkg/log",
"manifest": "omni/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/Shaik-Sirajuddin/memory/svc/ptydaemon",
"manifest": "omni/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/adrg/xdg",
"manifest": "omni/go.mod",
"ecosystem": "go",
"version_constraint": "v0.5.3"
},
{
"name": "github.com/go-viper/mapstructure/v2",
"manifest": "omni/go.mod",
"ecosystem": "go",
"version_constraint": "v2.5.0"
},
{
"name": "github.com/google/jsonschema-go",
"manifest": "omni/go.mod",
"ecosystem": "go",
"version_constraint": "v0.4.3"
},
{
"name": "github.com/google/uuid",
"manifest": "omni/go.mod",
"ecosystem": "go",
"version_constraint": "v1.6.0"
},
{
"name": "github.com/invopop/jsonschema",
"manifest": "omni/go.mod",
"ecosystem": "go",
"version_constraint": "v0.14.0"
},
{
"name": "github.com/knadh/koanf/parsers/json",
"manifest": "omni/go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.0"
},
{
"name": "github.com/knadh/koanf/providers/posflag",
"manifest": "omni/go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.1"
},
{
"name": "github.com/knadh/koanf/providers/rawbytes",
"manifest": "omni/go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.0"
},
{
"name": "github.com/knadh/koanf/v2",
"manifest": "omni/go.mod",
"ecosystem": "go",
"version_constraint": "v2.3.4"
},
{
"name": "github.com/spf13/cobra",
"manifest": "omni/go.mod",
"ecosystem": "go",
"version_constraint": "v1.10.2"
},
{
"name": "github.com/stretchr/testify",
"manifest": "omni/go.mod",
"ecosystem": "go",
"version_constraint": "v1.11.1"
},
{
"name": "golang.org/x/sys",
"manifest": "omni/go.mod",
"ecosystem": "go",
"version_constraint": "v0.45.0"
},
{
"name": "gopkg.in/yaml.v3",
"manifest": "omni/go.mod",
"ecosystem": "go",
"version_constraint": "v3.0.1"
},
{
"name": "modernc.org/sqlite",
"manifest": "omni/go.mod",
"ecosystem": "go",
"version_constraint": "v1.50.1"
},
{
"name": "github.com/Shaik-Sirajuddin/memory/svc/hook-operator",
"manifest": "omni/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/spf13/pflag",
"manifest": "omni/go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.10"
},
{
"name": "golang.org/x/term",
"manifest": "omni/go.mod",
"ecosystem": "go",
"version_constraint": "v0.43.0"
},
{
"name": "go.opentelemetry.io/contrib/bridges/otelslog",
"manifest": "pkg/log/go.mod",
"ecosystem": "go",
"version_constraint": "v0.18.0"
},
{
"name": "go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp",
"manifest": "pkg/log/go.mod",
"ecosystem": "go",
"version_constraint": "v0.19.0"
},
{
"name": "go.opentelemetry.io/otel/sdk/log",
"manifest": "pkg/log/go.mod",
"ecosystem": "go",
"version_constraint": "v0.19.0"
},
{
"name": "github.com/creack/pty",
"manifest": "pkg/pty/go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.24"
},
{
"name": "github.com/Shaik-Sirajuddin/memory",
"manifest": "svc/cmd/go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.0"
},
{
"name": "github.com/Shaik-Sirajuddin/memory/mcp",
"manifest": "svc/cmd/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/Shaik-Sirajuddin/memory/pkg/log",
"manifest": "svc/cmd/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/Shaik-Sirajuddin/memory/pkg/sockpath",
"manifest": "svc/cmd/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/Shaik-Sirajuddin/memory/svc/config_sync",
"manifest": "svc/cmd/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/Shaik-Sirajuddin/memory/svc/hook-operator",
"manifest": "svc/cmd/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/Shaik-Sirajuddin/memory/svc/ptydaemon",
"manifest": "svc/cmd/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/Shaik-Sirajuddin/memory",
"manifest": "svc/config_sync/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/Shaik-Sirajuddin/memory",
"manifest": "svc/hook-operator/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/Shaik-Sirajuddin/memory/pkg/filelock",
"manifest": "svc/hook-operator/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/Shaik-Sirajuddin/memory/pkg/log",
"manifest": "svc/hook-operator/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/Shaik-Sirajuddin/memory/pkg/sockpath",
"manifest": "svc/hook-operator/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/Shaik-Sirajuddin/memory/pkg/log",
"manifest": "svc/ptydaemon/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/Shaik-Sirajuddin/memory/pkg/pty",
"manifest": "svc/ptydaemon/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/Shaik-Sirajuddin/memory/pkg/sockpath",
"manifest": "svc/ptydaemon/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0"
},
{
"name": "github.com/creack/pty",
"manifest": "svc/ptydaemon/go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.24"
},
{
"name": "golang.org/x/sys",
"manifest": "svc/ptydaemon/go.mod",
"ecosystem": "go",
"version_constraint": "v0.45.0"
},
{
"name": "golang.org/x/term",
"manifest": "svc/ptydaemon/go.mod",
"ecosystem": "go",
"version_constraint": "v0.43.0"
},
{
"name": "modernc.org/sqlite",
"manifest": "svc/ptydaemon/go.mod",
"ecosystem": "go",
"version_constraint": "v1.50.1"
}
],
"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": 8,
"merged_prs": 126,
"open_issues": 11,
"closed_ratio": 0,
"closed_issues": 0,
"closed_unmerged_prs": 13
},
"bus_factor": 1,
"bot_contributors": 1,
"top_contributors": [
{
"type": "User",
"login": "Shaik-Sirajuddin",
"commits": 308,
"avatar_url": "https://avatars.githubusercontent.com/u/89742297?v=4"
}
],
"contributors_sampled": 1,
"top_contributor_share": 1
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"release.yml"
],
"has_docs_dir": true,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"go.sum"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 7,
"reason": "binaries present in source code",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 5,
"reason": "branch protection is not maximal on development and all release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 0,
"reason": "0 out of 27 merged PRs checked by a CI test -- score normalized to 0",
"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/26 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": 10,
"reason": "30 commit(s) and 10 issue activity found in the last 90 days -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": 10,
"reason": "packaging workflow detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 0,
"reason": "dependency not pinned by hash detected -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "SAST tool is not run on all commits -- score normalized to 0",
"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": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 1,
"reason": "9 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "183304cd2bb4673eb5c7fc2973bafd5bedc61d93",
"ran_at": "2026-07-27T23:01:05Z",
"aggregate_score": 3.3,
"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-02T15:03:22Z",
"oldest_open_prs": [
{
"number": 9,
"created_at": "2026-05-23T13:49:18Z",
"last_comment_at": "2026-05-31T09:25:52Z",
"last_comment_author": "Shaik-Sirajuddin"
},
{
"number": 54,
"created_at": "2026-05-31T07:00:03Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 82,
"created_at": "2026-06-01T16:30:51Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 105,
"created_at": "2026-06-02T15:51:05Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 119,
"created_at": "2026-06-04T07:18:28Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 120,
"created_at": "2026-06-04T08:41:23Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 129,
"created_at": "2026-06-05T07:40:11Z",
"last_comment_at": "2026-06-06T14:24:03Z",
"last_comment_author": "axoswe"
},
{
"number": 138,
"created_at": "2026-06-06T12:48:32Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": "2026-07-02T15:00:06Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 1,
"created_at": "2026-04-06T03:38:47Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 16,
"created_at": "2026-05-27T08:26:12Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 18,
"created_at": "2026-05-27T16:28:26Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 26,
"created_at": "2026-05-28T04:40:10Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 34,
"created_at": "2026-05-29T10:11:00Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 38,
"created_at": "2026-05-29T12:55:27Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 61,
"created_at": "2026-05-31T09:18:53Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 122,
"created_at": "2026-06-04T09:21:11Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 156,
"created_at": "2026-07-09T03:34:24Z",
"last_comment_at": "2026-07-17T23:56:03Z",
"last_comment_author": "hegu-1"
},
{
"number": 157,
"created_at": "2026-07-09T03:37:53Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 158,
"created_at": "2026-07-24T12:42:56Z",
"last_comment_at": null,
"last_comment_author": null
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/Shaik-Sirajuddin/omni",
"host": "github.com",
"name": "omni",
"owner": "Shaik-Sirajuddin"
},
"metrics": {
"overall": {
"key": "overall",
"band": "at_risk",
"name": "Overall health",
"note": null,
"notes": [],
"value": 45,
"inputs": {
"security": 33,
"vitality": 76,
"community": 24,
"governance": 31,
"engineering": 55
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "good",
"name": "Vitality",
"value": 76,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "moderate",
"name": "Development activity",
"note": null,
"notes": [],
"value": 66,
"inputs": {
"commits_last_year": 340,
"human_commit_share": 0.68,
"days_since_last_push": 25,
"active_weeks_last_year": 14
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 25 days ago",
"points": 28.8,
"status": "partial",
"details": [
{
"code": "push_recency",
"params": {
"days": 25
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "14/52 weeks with commits",
"points": 9.7,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 14
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "340 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 340
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 10 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"releases_count": 30,
"latest_release_tag": "v1.2.48",
"releases_from_tags": false,
"days_since_latest_release": 25,
"mean_days_between_releases": 3.1
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "30 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 30
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 25 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 25
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~3.1 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 3.1
}
}
],
"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": "critical",
"name": "Community & Adoption",
"value": 24,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 1,
"inputs": {
"forks": 0,
"stars": 1,
"watchers": 0,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "1 stars",
"points": 0,
"status": "missed",
"details": [
{
"code": "stars",
"params": {
"count": 1
}
}
],
"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 (AGPL-3.0)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "AGPL-3.0"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "at_risk",
"name": "Sustainability & Governance",
"value": 31,
"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": "at_risk",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 35,
"inputs": {
"merged_prs": 126,
"open_issues": 11,
"closed_issues": 0,
"issue_closed_ratio": 0,
"closed_unmerged_prs": 13
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "0% of issues closed",
"points": 0,
"status": "missed",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 0
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "126/139 decided PRs merged",
"points": 34.7,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 126,
"decided": 139
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/26 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "moderate",
"name": "Ownership & stewardship",
"note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"verified_domain"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 52,
"inputs": {
"followers": 14,
"owner_type": "User",
"is_verified": null,
"owner_login": "Shaik-Sirajuddin",
"public_repos": 62,
"account_age_days": 1793
},
"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": "14 followers of Shaik-Sirajuddin",
"points": 8.5,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 14,
"login": "Shaik-Sirajuddin"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "62 public repos, account ~4 yr old",
"points": 22.8,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 62
}
},
{
"code": "account_age_years",
"params": {
"years": 4
}
}
],
"max_points": 25
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "moderate",
"name": "Engineering Quality",
"value": 55,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "at_risk",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 48,
"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": "1 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 1
}
}
],
"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": "0 out of 27 merged PRs checked by a CI test -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "moderate",
"name": "Documentation",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"topics": [],
"has_wiki": false,
"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": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "at_risk",
"name": "Security",
"value": 33,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": null,
"notes": [],
"value": 33,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 18,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 0,
"scorecard_aggregate": 3.3
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "binaries present in source code",
"points": 5.2,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection is not maximal on development and all release branches",
"points": 3.8,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "0 out of 27 merged PRs checked by a CI test -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 0/26 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": "30 commit(s) and 10 issue activity found in the last 90 days -- score normalized to 10",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is not run on all commits -- score normalized to 0",
"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": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "9 existing vulnerabilities detected",
"points": 0.8,
"status": "partial",
"details": [],
"max_points": 7.5
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "good",
"name": "AI Readiness",
"value": 78,
"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": 1,
"agent_instruction_files": [
"axolink/store/agents.md",
"omni/connector/codeagent/agy/agents.md",
"omni/connector/codeagent/claude/agents.md",
"omni/omniagent/agent.md",
"omni/operator/agent.md",
"omni/sandbox/agents.md",
"svc/ptydaemon/agents.md"
],
"agent_instruction_max_bytes": 4233
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "axolink/store/agents.md, omni/connector/codeagent/agy/agents.md, omni/connector/codeagent/claude/agents.md, omni/omniagent/agent.md, omni/operator/agent.md, omni/sandbox/agents.md, svc/ptydaemon/agents.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "axolink/store/agents.md, omni/connector/codeagent/agy/agents.md, omni/connector/codeagent/claude/agents.md, omni/omniagent/agent.md, omni/operator/agent.md, omni/sandbox/agents.md, svc/ptydaemon/agents.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": "68 of 68 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 68,
"sampled": 68
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "good",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 71,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"go.sum"
],
"has_dockerfile": true,
"typed_language": true,
"bootstrap_files": [
"Makefile",
"axolink/Makefile",
"omni/config/Makefile",
"omni/config/hooks/Makefile",
"omni/connector/codeagent/agy/makefile",
"omni/connector/codeagent/claude/makefile",
"omni/connector/codeagent/codex/makefile",
"omni/connector/codeagent/gemini/makefile",
"omni/makefile"
],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [],
"agent_commit_share": 0.93,
"toolchain_manifests": [
"axolink/go.mod",
"deployment/windows/installer/go.mod",
"omni/go.mod",
"pkg/filelock/go.mod",
"pkg/log/go.mod",
"pkg/pty/go.mod",
"pkg/sockpath/go.mod",
"svc/cmd/go.mod",
"svc/config_sync/go.mod",
"svc/hook-operator/go.mod",
"svc/ptydaemon/go.mod",
"tests/e2e/go.mod"
],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "Makefile, axolink/Makefile, omni/config/Makefile, omni/config/hooks/Makefile, omni/connector/codeagent/agy/makefile, omni/connector/codeagent/claude/makefile, omni/connector/codeagent/codex/makefile, omni/connector/codeagent/gemini/makefile, omni/makefile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Makefile, axolink/Makefile, omni/config/Makefile, omni/config/hooks/Makefile, omni/connector/codeagent/agy/makefile, omni/connector/codeagent/claude/makefile, omni/connector/codeagent/codex/makefile, omni/connector/codeagent/gemini/makefile, omni/makefile"
}
}
],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "Go (statically typed)",
"points": 11,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "Dockerfile, lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Dockerfile, lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "93 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 93,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 99,
"inputs": {
"primary_language": "Go",
"largest_source_bytes": 155173,
"source_files_sampled": 338,
"oversized_source_files": 5
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "Go (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "5/338 source files over 60KB",
"points": 54.2,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 338,
"oversized": 5
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "moderate",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 60,
"inputs": {
"example_dirs": [],
"has_mcp_signal": true,
"api_schema_files": [
"omni/connector/codeagent/agy/spec/openapi.yaml",
"omni/connector/codeagent/claude/spec/openapi.yaml",
"omni/connector/codeagent/codex/spec/openapi.yaml",
"omni/connector/codeagent/gemini/cli/openapi.yaml",
"svc/ptydaemon/proto/ptydaemon.proto"
]
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": "omni/connector/codeagent/agy/spec/openapi.yaml, omni/connector/codeagent/claude/spec/openapi.yaml, omni/connector/codeagent/codex/spec/openapi.yaml, omni/connector/codeagent/gemini/cli/openapi.yaml, svc/ptydaemon/proto/ptydaemon.proto",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "omni/connector/codeagent/agy/spec/openapi.yaml, omni/connector/codeagent/claude/spec/openapi.yaml, omni/connector/codeagent/codex/spec/openapi.yaml, omni/connector/codeagent/gemini/cli/openapi.yaml, svc/ptydaemon/proto/ptydaemon.proto"
}
}
],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 20,
"status": "met",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
"go package 'github.com/Shaik-Sirajuddin/memory' points at a different repository (https://github.com/Shaik-Sirajuddin/memory); excluded from ecosystem scoring",
"Could not fetch go package 'github.com/Shaik-Sirajuddin/memory/mcp' from its registry",
"Could not fetch go package 'github.com/Shaik-Sirajuddin/memory/pkg/log' from its registry",
"Could not fetch go package 'github.com/Shaik-Sirajuddin/memory/pkg/pty' from its registry",
"Could not fetch go package 'github.com/Shaik-Sirajuddin/memory/svc/cmd' from its registry",
"Could not fetch go package 'github.com/Shaik-Sirajuddin/memory/pkg/filelock' from its registry",
"Could not fetch go package 'github.com/Shaik-Sirajuddin/memory/pkg/sockpath' from its registry",
"Could not fetch go package 'github.com/Shaik-Sirajuddin/memory/svc/ptydaemon' from its registry",
"Could not fetch go package 'github.com/Shaik-Sirajuddin/memory/svc/config_sync' from its registry",
"Could not fetch go package 'github.com/Shaik-Sirajuddin/memory/svc/hook-operator' from its registry",
"GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
],
"report_type": "repository",
"generated_at": "2026-07-27T23:01:23.779188Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/s/Shaik-Sirajuddin/omni.svg",
"full_name": "Shaik-Sirajuddin/omni",
"license_state": "standard",
"license_spdx": "AGPL-3.0"
}