{
  "interval": {
    "intervalStart": "2025-09-05T00:00:00.000Z",
    "intervalEnd": "2025-09-06T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-09-05 to 2025-09-06, elizaos/eliza had 5 new PRs (5 merged), 1 new issues, and 9 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs7I4LpR",
      "title": "path not found",
      "author": "MagdiejamesNYC",
      "number": 5856,
      "repository": "elizaos/eliza",
      "body": "when I try to create a new project I have this error:\n\nCleaning up due to error...\n└  Failed to create Project.\n\n Error      Create command failed: {\n  error: error: Cannot find module '/home/runner/work/eliza/eliza/packages/cli/package.json' from '/Users/james/my-eliza-project/node_modules/@elizaos/cli/dist/index.js',\n}\n Error      An error occurred: {\n  error: error: Cannot find module '/home/runner/work/eliza/eliza/packages/cli/package.json' from '/Users/james/my-eliza-project/node_modules/@elizaos/cli/dist/index.js',\n}\n Error      Unknown error type: {\n  type: \"object\",\n}\n Error      Error value: {\n  error: error: Cannot find module '/home/runner/work/eliza/eliza/packages/cli/package.json' from '/Users/james/my-eliza-project/node_modules/@elizaos/cli/dist/index.js',\n}\n\nthere is not way to do a fresh install. Can you push an update to the package?",
      "createdAt": "2025-08-31T11:35:58Z",
      "closedAt": "2025-09-05T11:43:07Z",
      "state": "CLOSED",
      "commentCount": 1
    },
    {
      "id": "I_kwDOMT5cIs7HaHnG",
      "title": "Image Generation not working in Discord",
      "author": "harperaa",
      "number": 5809,
      "repository": "elizaos/eliza",
      "body": "**Describe the bug**\n\nGenerated images not appearing in discord, it shows in the webui, but not in discord.\n\n**To Reproduce**\n\nAsk to create an image, it says here it is, and describes it, but does not show up in discord.\n\nI see this in logs on webui. Executed action: GENERATE_IMAGE\n\n**Expected behavior**\n\nImage in discord.\n\n**Screenshots**\n\nIf I am missing some permission or config needed, please let me know.  Again, it works in webui, but not in discord.",
      "createdAt": "2025-08-22T13:33:19Z",
      "closedAt": "2025-09-05T11:44:30Z",
      "state": "CLOSED",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7J8rMQ",
      "title": "Logger is broken",
      "author": "borisudovicic",
      "number": 5886,
      "repository": "elizaos/eliza",
      "body": "<img src=\"https://uploads.linear.app/186bdefa-3633-464a-80cd-6e86fe765a5c/6a6dd3e2-c6ca-49a5-aeec-2389e5512ab6/db1e362e-a61d-4f62-9ede-f2cab465f1bf?signature=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXRoIjoiLzE4NmJkZWZhLTM2MzMtNDY0YS04MGNkLTZlODZmZTc2NWE1Yy82YTZkZDNlMi1jNmNhLTQ5YTUtYWVlYy0yMzg5ZTU1MTJhYjYvZGIxZTM2MmUtYTYxZC00ZjYyLTllZGUtZjJjYWI0NjVmMWJmIiwiaWF0IjoxNzU3MDg5NDk4LCJleHAiOjMzMzI3NjQ5NDk4fQ.LAbORBuIpFGxaA8FJ16q3dQj1B9a9NR_TA9tn3DJl2k \" alt=\"Screenshot 2025-09-05 at 18.24.20.png\" width=\"1498\" data-linear-height=\"743\" />",
      "createdAt": "2025-09-05T16:24:59Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 0
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6lb8rP",
      "title": "feat: scenarios dynamic prompting + spec",
      "author": "monilpat",
      "number": 5824,
      "body": "# Draft Pull Request: Implement Dynamic Prompting (Multi-Turn Conversations) in ElizaOS Scenarios\r\n\r\n## 🎯 Overview\r\n\r\nThis PR implements **Dynamic Prompting** (multi-turn conversations) in ElizaOS scenarios, enabling sophisticated testing of agent behavior through extended conversations where an LLM simulates realistic user responses. This feature extends the existing single-turn scenario framework to support complex conversation flows while maintaining 100% backward compatibility.\r\n\r\n**Ticket**: [ELIZA-669](https://linear.app/eliza-labs/issue/ELIZA-669/implement-dynamic-prompting-multi-turn-conversations-in)\r\n\r\n## 🚀 Key Features\r\n\r\n### ✨ Multi-Turn Conversation Support\r\n- **LLM User Simulator**: Generates realistic, persona-driven user responses\r\n- **Conversation Orchestration**: Manages multi-turn execution with termination logic\r\n- **Turn-Level Evaluations**: Real-time assessment during conversation flow\r\n- **Advanced Evaluators**: New conversation-specific evaluation types\r\n\r\n### 🔄 Backward Compatibility\r\n- **100% Compatible**: All existing single-turn scenarios work unchanged\r\n- **Gradual Adoption**: Teams can enhance existing scenarios incrementally\r\n- **No Breaking Changes**: Existing APIs and CLI commands remain unchanged\r\n\r\n### 🧠 Intelligent Conversation Management\r\n- **Termination Conditions**: Multiple strategies for ending conversations early\r\n- **Context Retention**: Agent memory testing across conversation turns\r\n- **Emotional Intelligence**: Handling complex user personas and emotional states\r\n- **Performance Optimization**: Timeout mechanisms and resource management\r\n\r\n## 📁 Files Changed\r\n\r\n### New Files\r\n```\r\npackages/cli/src/commands/scenario/src/\r\n├── conversation-types.ts          # TypeScript interfaces for conversation components\r\n├── UserSimulator.ts              # LLM-based user response generation\r\n├── ConversationManager.ts        # Multi-turn conversation orchestration\r\n├── ConversationEvaluators.ts    # New conversation-specific evaluators\r\n└── __tests__/\r\n    ├── UserSimulator.test.ts     # Unit tests for user simulator\r\n    ├── ConversationManager.test.ts # Unit tests for conversation manager\r\n    ├── ConversationEvaluators.test.ts # Unit tests for new evaluators\r\n    ├── schema-conversation.test.ts # Schema validation tests\r\n    └── integration/\r\n        ├── conversation-flow.test.ts # Integration tests\r\n        └── backward-compatibility.test.ts # Compatibility tests\r\n```\r\n\r\n### Modified Files\r\n```\r\npackages/cli/src/commands/scenario/src/\r\n├── schema.ts                     # Extended with conversation schemas\r\n├── LocalEnvironmentProvider.ts   # Added conversation support\r\n├── E2BEnvironmentProvider.ts     # Added conversation support\r\n└── EvaluationEngine.ts           # Registered new evaluators\r\n```\r\n\r\n### New Example Files\r\n```\r\npackages/cli/src/commands/scenario/examples/\r\n├── basic-conversation.yaml       # Basic multi-turn conversation\r\n├── emotional-intelligence.yaml   # Complex persona testing\r\n├── technical-support.yaml        # Troubleshooting conversation\r\n└── knowledge-transfer.yaml       # Educational conversation\r\n```\r\n\r\n## 🔧 Technical Implementation\r\n\r\n### Schema Extensions\r\n- **ConversationConfigSchema**: Defines conversation configuration with user simulator settings\r\n- **New Evaluation Types**: `conversation_length`, `conversation_flow`, `user_satisfaction`, `context_retention`\r\n- **Backward Compatible**: Optional `conversation` field in existing `RunStepSchema`\r\n\r\n### User Simulator\r\n- **Persona-Driven**: Configurable personality, objectives, constraints, and knowledge level\r\n- **Context-Aware**: Builds prompts based on conversation history and agent responses\r\n- **Realistic Generation**: LLM-based response generation with behavioral constraints\r\n\r\n### Conversation Manager\r\n- **Multi-Turn Orchestration**: Manages conversation flow and turn execution\r\n- **Termination Logic**: Intelligent conversation ending based on multiple conditions\r\n- **Evaluation Integration**: Supports both turn-level and final evaluations\r\n- **Error Handling**: Graceful handling of failures and timeouts\r\n\r\n### New Evaluators\r\n- **ConversationLengthEvaluator**: Validates optimal conversation duration\r\n- **ConversationFlowEvaluator**: Detects required conversation patterns\r\n- **UserSatisfactionEvaluator**: Measures user satisfaction through multiple methods\r\n- **ContextRetentionEvaluator**: Verifies agent memory across conversation turns\r\n\r\n## 📋 Configuration Examples\r\n\r\n### Basic Multi-Turn Conversation\r\n```yaml\r\nrun:\r\n  - input: \"Hi, I need help with something\"\r\n    conversation:\r\n      max_turns: 4\r\n      user_simulator:\r\n        persona: \"polite customer with a billing question\"\r\n        objective: \"find out why charged twice this month\"\r\n        temperature: 0.6\r\n      final_evaluations:\r\n        - type: \"llm_judge\"\r\n          prompt: \"Did the agent successfully help resolve the billing issue?\"\r\n          expected: \"yes\"\r\n```\r\n\r\n### Advanced Emotional Intelligence Testing\r\n```yaml\r\nrun:\r\n  - input: \"This is ridiculous! Your product doesn't work!\"\r\n    conversation:\r\n      max_turns: 6\r\n      user_simulator:\r\n        persona: \"angry customer who had bad experience\"\r\n        objective: \"vent frustration but eventually want help\"\r\n        style: \"initially hostile, gradually becomes cooperative if handled well\"\r\n        constraints:\r\n          - \"Start with complaints and criticism\"\r\n          - \"Become more cooperative if agent shows empathy\"\r\n      termination_conditions:\r\n        - type: \"user_expresses_satisfaction\"\r\n        - type: \"agent_escalates_to_human\"\r\n      final_evaluations:\r\n        - type: \"user_satisfaction\"\r\n          satisfaction_threshold: 0.6\r\n        - type: \"conversation_flow\"\r\n          required_patterns: [\"empathy_then_solution\", \"clarification_cycle\"]\r\n```\r\n\r\n## 🧪 Testing Strategy\r\n\r\n### Unit Tests\r\n- **UserSimulator**: Tests persona-driven response generation and constraint handling\r\n- **ConversationManager**: Tests turn execution, termination logic, and error handling\r\n- **ConversationEvaluators**: Tests all new evaluation types with various scenarios\r\n- **Schema Validation**: Tests conversation schema validation and backward compatibility\r\n\r\n### Integration Tests\r\n- **Conversation Flow**: End-to-end conversation execution with realistic scenarios\r\n- **Provider Integration**: Tests both local and cloud environment providers\r\n- **Evaluation Integration**: Tests new evaluators with existing evaluation engine\r\n- **Backward Compatibility**: Ensures existing scenarios work unchanged\r\n\r\n### Performance Tests\r\n- **Resource Usage**: Memory and CPU usage validation for long conversations\r\n- **LLM API Optimization**: Token usage and rate limiting verification\r\n- **Timeout Handling**: Tests timeout mechanisms and graceful degradation\r\n\r\n## 📊 Performance Impact\r\n\r\n### Resource Usage\r\n- **Memory**: Additional ~50MB per conversation (configurable limits)\r\n- **CPU**: Minimal impact, primarily during LLM API calls\r\n- **Network**: Additional LLM API calls for user simulation (optimized with caching)\r\n\r\n### Execution Time\r\n- **Single-Turn Scenarios**: No impact (unchanged execution path)\r\n- **Multi-Turn Scenarios**: ~30-60 seconds per turn (configurable timeouts)\r\n- **Matrix Testing**: Parallel execution with rate limiting\r\n\r\n### LLM API Usage\r\n- **User Simulation**: ~200 tokens per turn (configurable)\r\n- **Evaluation**: ~100 tokens per evaluation (existing pattern)\r\n- **Rate Limiting**: Built-in throttling and retry logic\r\n\r\n## 🔒 Security & Reliability\r\n\r\n### Error Handling\r\n- **LLM API Failures**: Retry logic with exponential backoff\r\n- **Timeout Mechanisms**: Configurable timeouts per turn and total conversation\r\n- **Graceful Degradation**: Fallback to simpler simulation strategies\r\n- **Resource Limits**: Memory and execution time limits to prevent runaway conversations\r\n\r\n### Data Privacy\r\n- **No Persistent Storage**: Conversation data not stored beyond execution\r\n- **Transcript Export**: Optional full conversation export for debugging\r\n- **Logging Control**: Configurable debug logging levels\r\n\r\n## 🚦 Migration Guide\r\n\r\n### For Existing Scenarios\r\n**No changes required!** All existing scenarios continue to work unchanged:\r\n\r\n```yaml\r\n# Existing scenario - works exactly as before\r\nrun:\r\n  - input: \"Hello agent\"\r\n    evaluations:\r\n      - type: \"string_contains\"\r\n        value: \"hello\"\r\n```\r\n\r\n### For Enhanced Scenarios\r\nGradually add conversation features to existing scenarios:\r\n\r\n```yaml\r\n# Enhanced scenario - adds conversation while keeping existing evaluations\r\nrun:\r\n  - input: \"Hello agent\"\r\n    conversation:\r\n      max_turns: 2\r\n      user_simulator:\r\n        persona: \"friendly user\"\r\n        objective: \"have brief chat\"\r\n    evaluations:  # Keep existing evaluations for compatibility\r\n      - type: \"string_contains\"\r\n        value: \"hello\"\r\n```\r\n\r\n### For New Conversation-First Scenarios\r\nCreate scenarios designed for multi-turn testing:\r\n\r\n```yaml\r\n# New conversation-first scenario\r\nrun:\r\n  - input: \"I have a complex problem\"\r\n    conversation:\r\n      max_turns: 8\r\n      user_simulator:\r\n        persona: \"confused user with technical issue\"\r\n        objective: \"get step-by-step help\"\r\n      final_evaluations:\r\n        - type: \"user_satisfaction\"\r\n          satisfaction_threshold: 0.7\r\n        - type: \"conversation_length\"\r\n          optimal_turns: 5\r\n```\r\n\r\n## 📈 Future Enhancements\r\n\r\n### Planned Features\r\n- **Advanced Personas**: More sophisticated user personality modeling\r\n- **Multi-Agent Conversations**: Support for multiple agents in conversation\r\n- **Emotional Intelligence**: Enhanced emotional state tracking and response\r\n- **Conversation Analytics**: Advanced conversation quality metrics\r\n- **Custom Evaluators**: Framework for custom conversation evaluators\r\n\r\n### Performance Optimizations\r\n- **Response Caching**: Cache common user simulation responses\r\n- **Parallel Processing**: Concurrent evaluation execution\r\n- **Streaming Transcripts**: Real-time conversation monitoring\r\n- **Resource Pooling**: Shared LLM connection pools\r\n\r\n## ✅ Acceptance Criteria\r\n\r\n### Functional Requirements\r\n- [x] **Backward Compatibility**: All existing single-turn scenarios execute without modification\r\n- [x] **Multi-turn Execution**: Conversation scenarios execute successfully with realistic user simulation\r\n- [x] **User Simulation**: LLM generates persona-consistent, contextually appropriate responses\r\n- [x] **Termination Logic**: Conversation ends appropriately based on configured conditions\r\n- [x] **Evaluation System**: All new evaluation types provide meaningful insights\r\n- [x] **Matrix Testing**: Matrix scenarios support conversation parameters and execute correctly\r\n- [x] **Error Handling**: Graceful handling of LLM failures, timeouts, and edge cases\r\n\r\n### Performance Requirements\r\n- [x] **Execution Time**: Conversation scenarios complete within reasonable time limits (max 5 minutes for 8-turn conversation)\r\n- [x] **Memory Usage**: Memory usage remains within acceptable bounds (max 2GB for complex scenarios)\r\n- [x] **LLM API Usage**: Optimized token usage and rate limiting (max 1000 tokens per user simulation)\r\n- [x] **Resource Efficiency**: No memory leaks or resource accumulation across multiple scenarios\r\n\r\n### Quality Requirements\r\n- [x] **Test Coverage**: Comprehensive test coverage (unit: 90%, integration: 80%, e2e: 70%)\r\n- [x] **Error Handling**: Clear error messages and debugging capabilities\r\n- [x] **Documentation**: Well-documented examples and migration guide\r\n- [x] **Logging**: Comprehensive logging for debugging and monitoring\r\n- [x] **Metrics**: Performance metrics and conversation quality measurements\r\n\r\n## 🔍 Testing Instructions\r\n\r\n### Manual Testing\r\n1. **Backward Compatibility**: Run existing scenario suite to ensure no regressions\r\n2. **Basic Conversation**: Test simple multi-turn conversation scenarios\r\n3. **Complex Personas**: Test emotional intelligence and difficult user scenarios\r\n4. **Matrix Testing**: Test conversation parameters in matrix scenarios\r\n5. **Error Scenarios**: Test timeout, LLM failure, and resource limit scenarios\r\n\r\n### Automated Testing\r\n```bash\r\n# Run all tests\r\nbun test\r\n\r\n# Run conversation-specific tests\r\nbun test --grep \"conversation\"\r\n\r\n# Run backward compatibility tests\r\nbun test --grep \"backward\"\r\n\r\n# Run performance tests\r\nbun test --grep \"performance\"\r\n```\r\n\r\n## 📚 Documentation\r\n\r\n### Updated Documentation\r\n- **Dynamic Prompting Guide**: Comprehensive implementation guide\r\n- **Engineering Design**: Detailed technical design document\r\n- **Configuration Examples**: Real-world scenario examples\r\n- **Migration Guide**: Step-by-step migration instructions\r\n\r\n### New Documentation\r\n- **Conversation Best Practices**: Guidelines for effective conversation scenarios\r\n- **Persona Design Guide**: How to create realistic user personas\r\n- **Evaluation Strategies**: Advanced evaluation techniques for conversations\r\n- **Performance Tuning**: Optimization guidelines for conversation scenarios\r\n\r\n## 🤝 Review Checklist\r\n\r\n### Code Quality\r\n- [ ] **TypeScript**: All code properly typed with no `any` types\r\n- [ ] **Error Handling**: Comprehensive error handling and edge case coverage\r\n- [ ] **Logging**: Appropriate logging levels and debug information\r\n- [ ] **Documentation**: Inline code documentation and JSDoc comments\r\n- [ ] **Naming**: Clear, descriptive variable and function names\r\n\r\n### Architecture\r\n- [ ] **Separation of Concerns**: Clear boundaries between components\r\n- [ ] **Dependency Management**: Proper dependency injection and loose coupling\r\n- [ ] **Extensibility**: Framework supports future enhancements\r\n- [ ] **Performance**: Efficient resource usage and optimization\r\n- [ ] **Security**: Proper input validation and data handling\r\n\r\n### Testing\r\n- [ ] **Unit Tests**: Comprehensive unit test coverage for all components\r\n- [ ] **Integration Tests**: End-to-end testing of conversation flows\r\n- [ ] **Backward Compatibility**: Existing scenarios work unchanged\r\n- [ ] **Performance Tests**: Resource usage and timeout validation\r\n- [ ] **Error Scenarios**: Failure mode testing and recovery\r\n\r\n### Documentation\r\n- [ ] **User Guide**: Clear instructions for using conversation features\r\n- [ ] **Migration Guide**: Step-by-step migration for existing scenarios\r\n- [ ] **API Documentation**: Complete API reference for new components\r\n- [ ] **Examples**: Comprehensive example scenarios\r\n- [ ] **Troubleshooting**: Common issues and solutions\r\n\r\n## 🎉 Impact\r\n\r\nThis implementation significantly enhances ElizaOS scenario testing capabilities by enabling:\r\n\r\n1. **Realistic Agent Testing**: Multi-turn conversations that test real-world interaction patterns\r\n2. **Complex Behavior Assessment**: Evaluation of agent memory, emotional intelligence, and problem-solving\r\n3. **Comprehensive Coverage**: Testing scenarios previously impossible with single-turn interactions\r\n4. **Production Readiness**: Agent validation for complex customer support and assistance scenarios\r\n\r\nThe feature maintains full backward compatibility while providing a powerful new testing paradigm for sophisticated agent behavior evaluation.",
      "repository": "elizaos/eliza",
      "createdAt": "2025-08-26T15:22:47Z",
      "mergedAt": "2025-09-05T17:27:43Z",
      "additions": 7470,
      "deletions": 274
    },
    {
      "id": "PR_kwDOMT5cIs6m-zhX",
      "title": "feat: dev cli fix, logging cleanup, file watching optz.",
      "author": "ChristopherTrimboli",
      "number": 5881,
      "body": "This pull request introduces several improvements to development workflow and logging, with a major focus on enhancing the developer experience for monorepo and project setups that include a client UI. The most significant change is the addition of robust support for automatically starting and managing a Vite client development server alongside the backend server, including graceful shutdown and improved status reporting. Other changes include more targeted file watching for rebuilds, cleaner and less noisy logging, and expanded watcher configuration for better reliability.\r\n\r\n**Client Dev Server Integration:**\r\n\r\n* Added logic to detect the presence of a client package and automatically start a Vite development server for the client UI in monorepo or project setups. This includes handling process management, output streaming, and graceful shutdown of the client dev server. (`packages/cli/src/commands/dev/actions/dev-server.ts`) [[1]](diffhunk://#diff-889e97856af209d02514c0f8b48694ef9b085cc4527ac25326e15c309a0788edR8-R207) [[2]](diffhunk://#diff-889e97856af209d02514c0f8b48694ef9b085cc4527ac25326e15c309a0788edR292-R309) [[3]](diffhunk://#diff-889e97856af209d02514c0f8b48694ef9b085cc4527ac25326e15c309a0788edR334-R398)\r\n\r\n**Developer Experience & Logging:**\r\n\r\n<img width=\"649\" height=\"335\" alt=\"Screenshot From 2025-09-04 22-29-17\" src=\"https://github.com/user-attachments/assets/11be91cf-ba2c-4433-8f74-1a7b18894344\" />\r\n\r\n* Improved console output throughout the build and dev processes to be more concise and readable, removing references to parallel execution and reducing noise in asset copying and build steps. (`build-utils.ts`, `packages/cli/build.ts`, `packages/core/build.ts`) [[1]](diffhunk://#diff-a69aed1cd2ab488fd0350da3228e93094a9cbe3f8cf4b12fdf1ee9bbf2df3c7cL161-R161) [[2]](diffhunk://#diff-a69aed1cd2ab488fd0350da3228e93094a9cbe3f8cf4b12fdf1ee9bbf2df3c7cL202) [[3]](diffhunk://#diff-a69aed1cd2ab488fd0350da3228e93094a9cbe3f8cf4b12fdf1ee9bbf2df3c7cL221-R222) [[4]](diffhunk://#diff-a69aed1cd2ab488fd0350da3228e93094a9cbe3f8cf4b12fdf1ee9bbf2df3c7cL477-L485) [[5]](diffhunk://#diff-a69aed1cd2ab488fd0350da3228e93094a9cbe3f8cf4b12fdf1ee9bbf2df3c7cL496-R510) [[6]](diffhunk://#diff-38a7bfc3de9135d0af986757713f0fc589a906dd9be2f715932e303ae8bc7e4cL13-R13) [[7]](diffhunk://#diff-38a7bfc3de9135d0af986757713f0fc589a906dd9be2f715932e303ae8bc7e4cL41-R41) [[8]](diffhunk://#diff-38a7bfc3de9135d0af986757713f0fc589a906dd9be2f715932e303ae8bc7e4cL68-R68) [[9]](diffhunk://#diff-38a7bfc3de9135d0af986757713f0fc589a906dd9be2f715932e303ae8bc7e4cL116-R116) [[10]](diffhunk://#diff-d7ef5dd9fcf3ebdeeeb230b1ba9d7e64b93732b0a056c5b4de8c19f62ee33be2L96-R96)\r\n\r\n**File Watching Reliability:**\r\n\r\n* Expanded ignored file patterns in the default watcher configuration to avoid unnecessary rebuilds and improve performance. Added support for `awaitWriteFinish` to prevent rebuilds on partial file writes. (`packages/cli/src/commands/dev/types.ts`, `packages/cli/src/commands/dev/utils/file-watcher.ts`) [[1]](diffhunk://#diff-6023f4b19b52307d6dd173b0a6aee33857b9746a8bf84c862a13f44918134fbfR39-R42) [[2]](diffhunk://#diff-933184909707c3cb021eb27c82b442bebd11fe1b2c5559dba54e4f08b3dc6516L10-R37)\r\n\r\n* Changed file watcher to only monitor relevant TypeScript/JavaScript files in `src` (or root) and improved logging for watched files, making rebuild triggers more accurate and less noisy. (`packages/cli/src/commands/dev/utils/file-watcher.ts`)\r\n\r\n**Developer Feedback & Graceful Shutdown:**\r\n\r\n* Enhanced dev mode startup to display clear status for both backend and client servers, including URLs for API and UI. Added graceful shutdown handling for both servers on process termination signals. (`packages/cli/src/commands/dev/actions/dev-server.ts`)",
      "repository": "elizaos/eliza",
      "createdAt": "2025-09-05T05:03:13Z",
      "mergedAt": "2025-09-05T17:26:16Z",
      "additions": 543,
      "deletions": 150
    },
    {
      "id": "PR_kwDOMT5cIs6nEEyJ",
      "title": "fix: LOG_JSON_FORMAT not working",
      "author": "wookosh",
      "number": 5885,
      "body": "# Risks\r\n- Low: Minimal code added, extensive testing, backwards compatible, no interface changes.\r\n\r\n# Background\r\n- When LOG_JSON_FORMAT=true, you will get the following error when trying to use logger:\r\n```\r\n💩💩💩 $ elizaos dev\r\nwarn: Adze: Required fields are missing from the log meta for generating a JSON log.\r\n      at formatMessage (/Users/lkocz/Documents/projects/wookosh/eliza/packages/core/dist/node/index.node.js:92290:18)\r\n      at print (/Users/lkocz/Documents/projects/wookosh/eliza/packages/core/dist/node/index.node.js:92177:86)\r\n      at terminate (/Users/lkocz/Documents/projects/wookosh/eliza/packages/core/dist/node/index.node.js:93160:43)\r\n      at info (/Users/lkocz/Documents/projects/wookosh/eliza/packages/core/dist/node/index.node.js:92702:10)\r\n      at info (/Users/lkocz/Documents/projects/wookosh/eliza/packages/core/dist/node/index.node.js:92705:16)\r\n      at invoke (/Users/lkocz/Documents/projects/wookosh/eliza/packages/core/dist/node/index.node.js:93628:14)\r\n      at <anonymous> (/Users/lkocz/Documents/projects/wookosh/eliza/packages/cli/src/utils/local-cli-delegation.ts:106:12)\r\n      at new Promise (1:11)\r\n      at <anonymous> (/Users/lkocz/Documents/projects/wookosh/eliza/packages/cli/src/utils/local-cli-delegation.ts:105:10)\r\n      at delegateToLocalCli (/Users/lkocz/Documents/projects/wookosh/eliza/packages/cli/src/utils/local-cli-delegation.ts:104:35)\r\n      at <anonymous> (/Users/lkocz/Documents/projects/wookosh/eliza/packages/cli/src/utils/local-cli-delegation.ts:248:11)\r\n      at tryDelegateToLocalCli (/Users/lkocz/Documents/projects/wookosh/eliza/packages/cli/src/utils/local-cli-delegation.ts:201:44)\r\n      at <anonymous> (/Users/lkocz/Documents/projects/wookosh/eliza/packages/cli/src/index.ts:88:27)\r\n      at main2 (/Users/lkocz/Documents/projects/wookosh/eliza/packages/cli/src/index.ts:85:20)\r\n      at /Users/lkocz/Documents/projects/wookosh/eliza/packages/cli/src/index.ts:154:1\r\n```\r\n\r\nThe issue is that `hasRequiredFields()` needs `name` and `hostname` set when using JSON format. Currently there are no way to set these values.\r\n\r\n## What does this PR do?\r\n\r\n1. Accept `name` and `hostname` as parameters to createLogger()\r\n2. If `name` and/or `hostname` are not provided, use default values\r\n3. Supports both node and browser environments\r\n\r\n## What kind of change is this?\r\n- This is a bug fix\r\n\r\n## Why are we doing this? Any context or related work?\r\n- JSON logging format is critical for production/enterprise environments where you need machine consumable logs (cloudwatch, sentry, etc.)\r\n\r\n# Documentation changes needed?\r\n- My changes do not require a change to the project documentation.\r\n\r\n# Testing\r\n## Detailed testing steps\r\n- Set `LOG_JSON_FORMAT=true` in your `.env` file\r\n- Try `elizaos start` or `elizaos dev` and you'll see the log messages now work\r\n\r\n## Discord username\r\n@wookosh\r\n",
      "repository": "elizaos/eliza",
      "createdAt": "2025-09-05T15:00:04Z",
      "mergedAt": "2025-09-05T16:36:29Z",
      "additions": 347,
      "deletions": 1
    },
    {
      "id": "PR_kwDOMT5cIs6m_jL3",
      "title": "fix: Scope npmPackage field for registry entries",
      "author": "yungalgo",
      "number": 5882,
      "body": "(related to issue #5813)\r\n\r\na bug got introduced resulting in incorrect construction of the npmPackages value. This is causing a malformed addition to the registry when users do elizaos publish, specifically, it is constructing the npmPackage without the scope:\r\n\r\ne.g. \r\n\r\n\"npmPackage\": \"plugin-test\"\r\n\r\ninstead of:\r\n\r\n\"npmPackage\": \"@yungalgo/plugin-test\"\r\n\r\nthis obviously is wrong and causes publishing to not work correctly. \r\n\r\nfix is to adjust the logic to construct the variable correctly with the scope.",
      "repository": "elizaos/eliza",
      "createdAt": "2025-09-05T06:58:38Z",
      "mergedAt": "2025-09-06T13:30:33Z",
      "additions": 63,
      "deletions": 3
    },
    {
      "id": "PR_kwDOMT5cIs6nC-wF",
      "title": "fix: Prevent excessive SECRET_SALT error logging",
      "author": "wtfsayo",
      "number": 5884,
      "body": "## Problem\n\nThe application was logging 'SECRET_SALT is not set or using default value' error multiple times during startup, causing excessive log noise. This happens because:\n\n1. The `getSalt()` function logs an error every time it's called when SECRET_SALT isn't configured\n2. `getSetting()` in AgentRuntime calls `getSalt()` for every setting retrieval that needs decryption\n3. During startup, multiple settings are retrieved, causing repeated error logs\n\n## Solution\n\nImplemented a TTL-based caching mechanism for the salt value with the following features:\n\n- **Cache with TTL**: Salt value is cached for 5 minutes to prevent repeated environment reads\n- **One-time error logging**: Error is logged only once per application lifecycle\n- **Cache invalidation**: Added `clearSaltCache()` function for tests and environment changes\n- **Maintains functionality**: Salt value can still be updated by clearing cache or waiting for TTL expiry\n\n## Changes\n\n1. Added `SaltCache` interface to store salt value with timestamp\n2. Implemented 5-minute TTL for cached salt values\n3. Added `saltErrorLogged` flag to prevent duplicate error messages\n4. Created `clearSaltCache()` function for test cleanup\n5. Updated tests to use cache clearing for proper isolation\n\n## Testing\n\n- All existing tests pass\n- Cache behavior verified with TTL expiry\n- Error is now logged only once during application startup",
      "repository": "elizaos/eliza",
      "createdAt": "2025-09-05T13:17:35Z",
      "mergedAt": "2025-09-05T13:45:37Z",
      "additions": 37,
      "deletions": 2
    }
  ],
  "codeChanges": {
    "additions": 13349,
    "deletions": 434,
    "files": 78,
    "commitCount": 27
  },
  "completedItems": [
    {
      "title": "feat: scenarios dynamic prompting + spec",
      "prNumber": 5824,
      "type": "feature",
      "body": "# Draft Pull Request: Implement Dynamic Prompting (Multi-Turn Conversations) in ElizaOS Scenarios\r\n\r\n## 🎯 Overview\r\n\r\nThis PR implements **Dynamic Prompting** (multi-turn conversations) in ElizaOS scenarios, enabling sophisticated testing ",
      "files": [
        "ELIZA-669-Dynamic-Prompting-Ticket.md",
        "ELIZA-669-Implementation-Code.md",
        "bun.lock",
        "packages/cli/src/commands/scenario/DYNAMIC_PROMPTING_ENG_DESIGN.md",
        "packages/cli/src/commands/scenario/DYNAMIC_PROMPTING_GUIDE.md",
        "packages/cli/src/commands/scenario/IMPLEMENTATION_VALIDATION_REPORT.md",
        "packages/cli/src/commands/scenario/SCENARIO_REPORT_SPEC.md",
        "packages/cli/src/commands/scenario/examples/basic-conversation.scenario.yaml",
        "packages/cli/src/commands/scenario/examples/conversation-matrix.matrix.yaml",
        "packages/cli/src/commands/scenario/examples/customer-support-conversation.scenario.yaml",
        "packages/cli/src/commands/scenario/examples/emotional-intelligence.scenario.yaml",
        "packages/cli/src/commands/scenario/examples/knowledge-transfer.scenario.yaml",
        "packages/cli/src/commands/scenario/examples/legacy-compatibility.scenario.yaml",
        "packages/cli/src/commands/scenario/examples/minimal-test.scenario.yaml",
        "packages/cli/src/commands/scenario/examples/simple-test.scenario.yaml",
        "packages/cli/src/commands/scenario/examples/technical-troubleshooting.scenario.yaml",
        "packages/cli/src/commands/scenario/examples/working-test.scenario.yaml",
        "packages/cli/src/commands/scenario/index.ts",
        "packages/cli/src/commands/scenario/src/ConversationEvaluators.ts",
        "packages/cli/src/commands/scenario/src/ConversationManager.ts",
        "packages/cli/src/commands/scenario/src/EvaluationEngine.ts",
        "packages/cli/src/commands/scenario/src/LocalEnvironmentProvider.ts",
        "packages/cli/src/commands/scenario/src/UserSimulator.ts",
        "packages/cli/src/commands/scenario/src/__tests__/ConversationEvaluators.test.ts",
        "packages/cli/src/commands/scenario/src/__tests__/ConversationManager.test.ts",
        "packages/cli/src/commands/scenario/src/__tests__/UserSimulator.test.ts",
        "packages/cli/src/commands/scenario/src/__tests__/backwards-compatibility.test.ts",
        "packages/cli/src/commands/scenario/src/__tests__/e2e-integration.test.ts",
        "packages/cli/src/commands/scenario/src/__tests__/schema-backwards-compatibility.test.ts",
        "packages/cli/src/commands/scenario/src/conversation-types.ts",
        "packages/cli/src/commands/scenario/src/runtime-factory.ts",
        "packages/cli/src/commands/scenario/src/schema.ts",
        "packages/cli/package.json",
        "packages/cli/packages/cli/src/commands/scenario/_logs_/run-run-2025-08-29-001-07-41-43.json",
        "packages/cli/packages/cli/src/commands/scenario/_logs_/run-run-2025-08-29-001-07-42-28.json",
        "packages/cli/packages/cli/src/commands/scenario/_logs_/run-run-2025-08-29-001-07-43-17.json",
        "packages/cli/packages/cli/src/commands/scenario/_logs_/run-run-2025-08-29-001-07-47-27.json",
        "packages/cli/packages/cli/src/commands/scenario/_logs_/run-run-2025-08-29-001-07-51-09.json",
        "packages/cli/packages/cli/src/commands/scenario/_logs_/run-run-2025-08-29-001-07-52-30.json",
        ".cursor",
        ".gitignore",
        "packages/cli/src/commands/report/generate.ts",
        "packages/cli/src/commands/scenario/docs/README.md",
        "packages/cli/src/commands/scenario/docs/scenario-runner-spec.md",
        "packages/cli/src/commands/scenario/docs/scenarios.md",
        "packages/cli/src/commands/scenario/examples/test-github-issues.scenario.yaml",
        "packages/cli/src/commands/scenario/src/E2BEnvironmentProvider.ts",
        "packages/cli/src/commands/scenario/src/EnhancedEvaluationEngine.ts",
        "packages/cli/src/commands/scenario/src/TrajectoryReconstructor.ts",
        "packages/cli/src/commands/scenario/src/matrix-orchestrator.ts",
        "packages/cli/src/commands/scenario/docs/file-format-spec.md",
        "packages/cli/src/commands/scenario/examples/analyze-past-trade.scenario.yaml",
        "packages/cli/src/commands/scenario/examples/answer-roadmap-questions.scenario.yaml",
        "packages/cli/src/commands/scenario/examples/check-coinbase-balance.scenario.yaml",
        "packages/cli/src/commands/scenario/examples/debug-llm-judge.scenario.yaml",
        "packages/cli/src/commands/scenario/examples/enhanced-demo.scenario.yaml",
        "packages/cli/src/commands/scenario/examples/llm-judge-test.scenario.yaml",
        "packages/cli/src/commands/scenario/examples/llm-judge-with-capabilities.scenario.yaml",
        "packages/cli/src/commands/scenario/examples/test-basic.scenario.yaml",
        "packages/cli/src/commands/scenario/examples/trajectory-demo.scenario.yaml"
      ]
    },
    {
      "title": "fix: LOG_JSON_FORMAT not working",
      "prNumber": 5885,
      "type": "bugfix",
      "body": "# Risks\r\n- Low: Minimal code added, extensive testing, backwards compatible, no interface changes.\r\n\r\n# Background\r\n- When LOG_JSON_FORMAT=true, you will get the following error when trying to use logger:\r\n```\r\n💩💩💩 $ elizaos dev\r\nwarn: A",
      "files": [
        "packages/core/src/__tests__/logger-browser-node.test.ts",
        "packages/core/src/__tests__/logger.test.ts",
        "packages/core/src/logger.ts"
      ]
    },
    {
      "title": "fix: Prevent excessive SECRET_SALT error logging",
      "prNumber": 5884,
      "type": "bugfix",
      "body": "## Problem\n\nThe application was logging 'SECRET_SALT is not set or using default value' error multiple times during startup, causing excessive log noise. This happens because:\n\n1. The `getSalt()` function logs an error every time it's calle",
      "files": [
        "packages/core/src/__tests__/settings.test.ts",
        "packages/core/src/settings.ts"
      ]
    },
    {
      "title": "fix: add SERVER_HOST support to dev command",
      "prNumber": 5883,
      "type": "bugfix",
      "body": "# Risks                                                                                                                                                                                                                                         ",
      "files": [
        "packages/cli/src/commands/dev/actions/dev-server.ts",
        "packages/cli/src/commands/scenario/src/runtime-factory.ts",
        "packages/cli/src/commands/test/actions/e2e-tests.ts"
      ]
    },
    {
      "title": "feat: dev cli fix, logging cleanup, file watching optz.",
      "prNumber": 5881,
      "type": "feature",
      "body": "This pull request introduces several improvements to development workflow and logging, with a major focus on enhancing the developer experience for monorepo and project setups that include a client UI. The most significant change is the add",
      "files": [
        "build-utils.ts",
        "bun.lock",
        "packages/cli/build.ts",
        "packages/cli/src/commands/dev/actions/dev-server.ts",
        "packages/cli/src/commands/dev/types.ts",
        "packages/cli/src/commands/dev/utils/file-watcher.ts",
        "packages/core/build.ts",
        "packages/plugin-quick-starter/build.ts",
        "packages/plugin-starter/build.ts",
        "packages/project-starter/build.ts",
        "packages/project-tee-starter/build.ts",
        "packages/server/build.ts",
        "scripts/dev-watch.js"
      ]
    }
  ],
  "topContributors": [
    {
      "username": "yungalgo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/113615973?u=92e0f29f7e2fbb8ce46ed13c51f692ca803de02d&v=4",
      "totalScore": 67.8106189861594,
      "prScore": 63.110618986159395,
      "issueScore": 0,
      "reviewScore": 4.5,
      "commentScore": 0.2,
      "summary": null
    },
    {
      "username": "ChristopherTrimboli",
      "avatarUrl": "https://avatars.githubusercontent.com/u/27584221?u=0d816ce1dcdea8f925aba18bb710153d4a87a719&v=4",
      "totalScore": 62.91235980253403,
      "prScore": 62.712359802534024,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": null
    },
    {
      "username": "wookosh",
      "avatarUrl": "https://avatars.githubusercontent.com/u/120273332?u=493e01d0863a55ed139425760447079b96ef931d&v=4",
      "totalScore": 42.40160788330364,
      "prScore": 42.40160788330364,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "standujar",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16385918?u=718bdcd1585be8447bdfffb8c11ce249baa7532d&v=4",
      "totalScore": 39.59688308335967,
      "prScore": 34.15888308335967,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0.43799999999999994,
      "summary": null
    },
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 37.71087945411394,
      "prScore": 27.87087945411394,
      "issueScore": 0,
      "reviewScore": 9.5,
      "commentScore": 0.33999999999999997,
      "summary": null
    },
    {
      "username": "0xbbjoker",
      "avatarUrl": "https://avatars.githubusercontent.com/u/54844437?u=90fe1762420de6ad493a1c1582f1f70c0d87d8e2&v=4",
      "totalScore": 5,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "claude",
      "avatarUrl": "https://avatars.githubusercontent.com/in/1236702?v=4",
      "totalScore": 4.938,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 4.5,
      "commentScore": 0.43799999999999994,
      "summary": null
    },
    {
      "username": "borisudovicic",
      "avatarUrl": "https://avatars.githubusercontent.com/u/31806472?u=27713fbe603baae91ef519990facbacd6c23e93d&v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "1BDO",
      "avatarUrl": "https://avatars.githubusercontent.com/u/210645034?v=4",
      "totalScore": 0.2,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": null
    }
  ],
  "newPRs": 5,
  "mergedPRs": 5,
  "newIssues": 1,
  "closedIssues": 2,
  "activeContributors": 9
}