{
  "interval": {
    "intervalStart": "2025-09-29T00:00:00.000Z",
    "intervalEnd": "2025-09-30T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-09-29 to 2025-09-30, elizaos/eliza had 4 new PRs (4 merged), 2 new issues, and 5 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs7Om1SJ",
      "title": "elizaos dev and elizaos start command in plugin directory doesnt work anymore",
      "author": "linear",
      "number": 6017,
      "repository": "elizaos/eliza",
      "body": "\\`elizaos dev\\` or `elizaos start` in plugin directory should load plugin with test character",
      "createdAt": "2025-09-29T19:17:21Z",
      "closedAt": "2025-09-30T08:53:00Z",
      "state": "CLOSED",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7OacIr",
      "title": "Add Config Option for Discord Plugin to Only Respond to Mentions/Name Calls",
      "author": "borisudovicic",
      "number": 6013,
      "repository": "elizaos/eliza",
      "body": "Introduce a configuration option in the Eliza Discord plugin so that the agent only responds when explicitly mentioned, or when directly called by its configured name.",
      "createdAt": "2025-09-29T03:08:24Z",
      "closedAt": "2025-10-01T14:21:47Z",
      "state": "CLOSED",
      "commentCount": 0
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6rCpmo",
      "title": "feat(client): Add agent runs visualization timeline",
      "author": "wtfsayo",
      "number": 6016,
      "body": "## Description\n\nThis PR adds a comprehensive agent runs visualization timeline component that provides detailed insights into agent execution flow and performance metrics.\n\n### Key Features\n\n- **Timeline Visualization**: Interactive timeline showing agent runs with expandable details\n- **Performance Metrics**: Display execution time, memory usage, and status information  \n- **Run Details**: Comprehensive view of messages, actions, evaluators, and providers\n- **Interactive UI**: Collapsible sections, hover effects, and responsive design\n- **Status Indicators**: Visual status badges and progress indicators\n\n### Components Added\n\n-  - Main timeline component with full agent run visualization\n- Comprehensive TypeScript types for agent run data structures\n- Interactive UI elements with proper accessibility support\n\n### Technical Implementation\n\n- Built with React and TypeScript\n- Uses Lucide React icons for consistent UI\n- Responsive design with proper mobile support\n- Optimized rendering for large datasets\n- Clean, maintainable component architecture\n\n### Testing\n\n- Component renders correctly with agent run data\n- Interactive elements function as expected\n- Responsive design tested across different screen sizes\n\nThis enhancement significantly improves the agent monitoring and debugging experience by providing detailed visual insights into agent execution patterns.\n\n<!-- CURSOR_SUMMARY -->\n---\n\n> [!NOTE]\n> Adds an interactive agent run timeline with new client hooks and server endpoints (with caching) backed by SQL adapter summaries and core types.\n> \n> - **Frontend (client)**:\n>   - **Timeline UI**: New `AgentRunTimeline` component and a \"Timeline\" tab in `agent-sidebar` to visualize runs and nested events with durations/status.\n>   - **Data Hooks**: Add `useAgentRuns` and `useAgentRunDetail` for polling run lists and details.\n>   - **Styles**: Timeline status classes added in `index.css`.\n> - **Backend (server)**:\n>   - **Runs API**: Implement `GET /:agentId/runs` and `GET /:agentId/runs/:runId` with aggregation, optional filters, and short-term caching; falls back to log aggregation if adapter summary unavailable.\n> - **Core/DB**:\n>   - **Types**: Introduce `RunStatus`, `AgentRunSummary`, `AgentRunSummaryResult` and `IDatabaseAdapter.getAgentRunSummaries`.\n>   - **SQL Adapter**: Implement `getAgentRunSummaries` in `BaseDrizzleAdapter` for efficient run listing and counts.\n> - **API Client**:\n>   - Wire up `RunsService` on `ElizaClient` (exposed for hooks usage).\n> - **Dependencies**:\n>   - Add `vis-timeline`, `vis-data` and related peer deps.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 80bff571f516eafdbe07c3efe09eaf89fd6d0484. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup>\n<!-- /CURSOR_SUMMARY -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-09-29T08:41:43Z",
      "mergedAt": "2025-09-29T15:33:21Z",
      "additions": 1398,
      "deletions": 82
    },
    {
      "id": "PR_kwDOMT5cIs6q_XeM",
      "title": "fix: new package publishing on NPM, add public publish config",
      "author": "ChristopherTrimboli",
      "number": 6012,
      "body": "### Summary\n- Added `publishConfig.access = public` to `@elizaos/service-interfaces`.\n- Extended release workflow to publish new/unpublished packages individually if bulk Lerna publish fails, keeping versions and dist-tags in sync.\n\n### What changed\n- In `packages/service-interfaces/package.json`:\n  - Added `publishConfig` so a new scoped package publishes publicly to npm.\n- In `.github/workflows/release.yaml`:\n  - Added a fallback step after the main `lerna publish from-package`:\n    - Enumerates monorepo packages via `lerna ls --json`.\n    - For each, checks `npm view <name>@<version>`.\n    - Publishes any not yet on npm using `npm publish --access public --tag <dist-tag>`.\n  - Keeps existing versioning flow via Lerna; no change to tagging or git steps.\n\n### Why\n- CI failed when publishing the newly added `@elizaos/service-interfaces`:\n  - New scoped package lacked `publishConfig.access=public`.\n  - Bulk publish can leave new packages unpublished; the fallback ensures first-time publishes succeed automatically.\n\n### How it works\n- Primary path: `lerna publish from-package --dist-tag <alpha|beta|latest>`.\n- Fallback (only on failure): publish only the missing packages with the same dist-tag, preserving version alignment with the rest of the release.\n\n### Impact\n- New packages (like `@elizaos/service-interfaces`) will publish on first release without manual intervention.\n- Existing packages are unaffected; versions remain synchronized via `lerna version`.\n\n### Security\n- Continues using `secrets.NPM_TOKEN` for auth.\n- No changes to permission scopes.\n\n### Verification\n- Re-run the release workflow on `develop`/`main` or create a GitHub release:\n  - Confirm all packages publish with the expected dist-tag (`alpha`, `beta`, or `latest`).\n  - Verify `@elizaos/service-interfaces@<version>` exists on npm.\n\n### Files touched\n- `packages/service-interfaces/package.json`\n- `.github/workflows/release.yaml`\n\n<!-- CURSOR_SUMMARY -->\n---\n\n> [!NOTE]\n> Adds public publish config for @elizaos/service-interfaces and a workflow fallback to individually publish any packages left unpublished after bulk Lerna publish.\n> \n> - **CI/CD (release workflow)**:\n>   - Adds a fallback step to individually publish unpublished packages when `lerna publish from-package` fails, using `lerna ls --json` + `npm view` checks and publishing with the same `dist-tag`.\n> - **Package config**:\n>   - Sets `publishConfig.access = public` in `packages/service-interfaces/package.json` to ensure public publishing of the new scoped package.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit efa85e4089481c2d19c712650bda7627bbaf20f9. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup>\n<!-- /CURSOR_SUMMARY -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-09-29T01:36:40Z",
      "mergedAt": "2025-09-29T01:38:36Z",
      "additions": 103,
      "deletions": 71
    },
    {
      "id": "PR_kwDOMT5cIs6rBJt3",
      "title": "chore: update zod pckg version",
      "author": "0xbbjoker",
      "number": 6015,
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Upgrade `zod` to `4.1.11` across the monorepo and align package resolutions.\n> \n> - **Dependencies**:\n>   - Upgrade `zod` to `4.1.11` in:\n>     - `packages/cli/package.json`\n>     - `packages/core/package.json`\n>     - `packages/plugin-quick-starter/package.json` (also update `resolutions.zod`)\n>     - `packages/plugin-starter/package.json` (also update `resolutions.zod`)\n>     - `packages/project-starter/package.json`\n>     - `packages/project-tee-starter/package.json`\n>   - Lockfile updated to reflect the new `zod` version and related transitive adjustments.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit a7a7c8bda698bb251bcc0805ebca940104b735b3. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup>\n<!-- /CURSOR_SUMMARY -->\n\n<!-- This is an auto-generated comment: release notes by coderabbit.ai -->\n\n## Summary by CodeRabbit\n\n- Chores\n  - Upgraded the validation library to the latest major version across CLI, core, and starter templates/plugins.\n  - Aligns all packages on a consistent version for improved compatibility and maintenance.\n  - No user-facing features changed; behavior should remain the same.\n\n<!-- end of auto-generated comment: release notes by coderabbit.ai -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-09-29T06:15:46Z",
      "mergedAt": "2025-09-29T06:17:15Z",
      "additions": 30,
      "deletions": 32
    },
    {
      "id": "PR_kwDOMT5cIs6rBJjx",
      "title": "chore: disable local env endpoint in production",
      "author": "wtfsayo",
      "number": 6014,
      "body": "This PR enforces a production guard on /api/system/env/local.\n\n- GET /api/system/env/local returns 403 in production\n- POST /api/system/env/local returns 403 in production\n\nRationale: Prevent exposing or mutating local .env via API in prod.\n\n<!-- CURSOR_SUMMARY -->\n---\n\n> [!NOTE]\n> Blocks GET/POST `api/system/environment:/local` in production, returning 403 to prevent reading or writing local `.env`.\n> \n> - **Backend**:\n>   - **`packages/server/src/api/system/environment.ts`**:\n>     - Add production guard (`NODE_ENV === 'production'`) to `GET /local` and `POST /local` routes.\n>     - Return `403 FORBIDDEN` with error message when invoked in production.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 06cdd0ca37daf24a074660d886bf803a87b66fe3. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup>\n<!-- /CURSOR_SUMMARY -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-09-29T06:15:25Z",
      "mergedAt": "2025-09-29T16:11:39Z",
      "additions": 19,
      "deletions": 0
    }
  ],
  "codeChanges": {
    "additions": 1550,
    "deletions": 185,
    "files": 21,
    "commitCount": 53
  },
  "completedItems": [
    {
      "title": "feat(client): Add agent runs visualization timeline",
      "prNumber": 6016,
      "type": "feature",
      "body": "## Description\n\nThis PR adds a comprehensive agent runs visualization timeline component that provides detailed insights into agent execution flow and performance metrics.\n\n### Key Features\n\n- **Timeline Visualization**: Interactive timelin",
      "files": [
        "bun.lock",
        "packages/api-client/src/client.ts",
        "packages/api-client/src/types/base.ts",
        "packages/client/package.json",
        "packages/client/src/components/agent-runs/AgentRunTimeline.tsx",
        "packages/client/src/components/agent-sidebar.tsx",
        "packages/client/src/hooks/use-query-hooks.ts",
        "packages/client/src/index.css",
        "packages/client/src/routes/agent-detail.tsx",
        "packages/core/src/types/database.ts",
        "packages/plugin-sql/src/base.ts",
        "packages/server/src/api/agents/runs.ts"
      ]
    },
    {
      "title": "chore: update zod pckg version",
      "prNumber": 6015,
      "type": "other",
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Upgrade `zod` to `4.1.11` across the monorepo and align package resolutions.\n> \n> - **Dependencies**:\n>   - Upgrade `zod` to `4.1.11` in:\n>     - `packages/cli/package.json`\n>     - `packages/core/package",
      "files": [
        "bun.lock",
        "packages/cli/package.json",
        "packages/core/package.json",
        "packages/plugin-quick-starter/package.json",
        "packages/plugin-starter/package.json",
        "packages/project-starter/package.json",
        "packages/project-tee-starter/package.json"
      ]
    },
    {
      "title": "chore: disable local env endpoint in production",
      "prNumber": 6014,
      "type": "other",
      "body": "This PR enforces a production guard on /api/system/env/local.\n\n- GET /api/system/env/local returns 403 in production\n- POST /api/system/env/local returns 403 in production\n\nRationale: Prevent exposing or mutating local .env via API in prod.",
      "files": [
        "packages/server/src/api/system/environment.ts"
      ]
    },
    {
      "title": "fix: new package publishing on NPM, add public publish config",
      "prNumber": 6012,
      "type": "bugfix",
      "body": "### Summary\n- Added `publishConfig.access = public` to `@elizaos/service-interfaces`.\n- Extended release workflow to publish new/unpublished packages individually if bulk Lerna publish fails, keeping versions and dist-tags in sync.\n\n### Wha",
      "files": [
        ".github/workflows/release.yaml",
        "bun.lock",
        "packages/service-interfaces/package.json"
      ]
    }
  ],
  "topContributors": [
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 87.8316400333531,
      "prScore": 82.3936400333531,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0.43799999999999994,
      "summary": null
    },
    {
      "username": "0xbbjoker",
      "avatarUrl": "https://avatars.githubusercontent.com/u/54844437?u=90fe1762420de6ad493a1c1582f1f70c0d87d8e2&v=4",
      "totalScore": 43.68797154237037,
      "prScore": 38.48797154237037,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0.2,
      "summary": null
    },
    {
      "username": "ChristopherTrimboli",
      "avatarUrl": "https://avatars.githubusercontent.com/u/27584221?u=0d816ce1dcdea8f925aba18bb710153d4a87a719&v=4",
      "totalScore": 41.16217896088527,
      "prScore": 41.16217896088527,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "linear",
      "avatarUrl": "https://avatars.githubusercontent.com/in/20150?v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "borisudovicic",
      "avatarUrl": "https://avatars.githubusercontent.com/u/31806472?u=8935f4d43fd7e4eb9bf5ff92d54d4d2f8ac8a786&v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    }
  ],
  "newPRs": 4,
  "mergedPRs": 4,
  "newIssues": 2,
  "closedIssues": 0,
  "activeContributors": 5
}