Mastra is a TypeScript framework designed to accelerate the development of AI applications, offering tools for workflows, agents, and integrations. It is maintained by an active community and is gaining popularity with over 3,000 stars on GitHub. The project is in a state of active development, focusing on expanding voice capabilities and improving user experience.
@mastra/speech-openai
in favor of @mastra/voice-openai
.Dependency Management Issues (#1996, #1991):
Incomplete Feature Implementations (#1973):
Cyclical Dependencies (#1970):
Voice Feature Expansion:
Community Responsiveness:
Automated Versioning Practices:
Timespan | Opened | Closed | Comments | Labeled | Milestones |
---|---|---|---|---|---|
7 Days | 13 | 8 | 18 | 0 | 1 |
14 Days | 15 | 11 | 21 | 1 | 1 |
30 Days | 26 | 17 | 38 | 7 | 1 |
All Time | 42 | 33 | - | - | - |
Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
Ward Peeters | ![]() |
8 | 34/31/1 | 62 | 863 | 65663 |
YujohnNattrass | ![]() |
3 | 9/7/0 | 14 | 120 | 48801 |
Abhi Aiyer | ![]() |
8 | 10/8/2 | 47 | 499 | 46136 |
Tyler Barnes | ![]() |
4 | 32/32/0 | 40 | 272 | 32640 |
NikAiyer | ![]() |
5 | 23/20/2 | 43 | 335 | 25635 |
Ehindero Israel | ![]() |
4 | 21/19/2 | 26 | 128 | 20322 |
github-actions[bot] | ![]() |
8 | 27/26/0 | 35 | 96 | 11999 |
Your Name | ![]() |
3 | 0/0/0 | 24 | 65 | 8004 |
Tony Kovanen | ![]() |
2 | 5/5/0 | 7 | 65 | 5489 |
Taofeeq Oluderu | ![]() |
1 | 10/10/0 | 4 | 21 | 1970 |
dane-ai-mastra[bot] | ![]() |
2 | 0/0/0 | 3 | 217 | 1760 |
dayo | ![]() |
1 | 2/2/0 | 2 | 55 | 1297 |
Kenny | ![]() |
1 | 4/3/0 | 4 | 10 | 548 |
Sam Bhagwat | ![]() |
1 | 3/3/0 | 4 | 8 | 539 |
Shane Thomas | ![]() |
2 | 5/5/0 | 6 | 12 | 197 |
None (promptless[bot]) | 7 | 7/0/7 | 7 | 9 | 141 | |
Sathya Gunasekaran | ![]() |
1 | 1/1/0 | 1 | 2 | 42 |
Pulkit Sethi | ![]() |
1 | 2/2/0 | 2 | 7 | 14 |
Evgeny Klimenchenko | ![]() |
1 | 1/1/0 | 1 | 1 | 2 |
Dave Yen | ![]() |
1 | 1/1/0 | 1 | 1 | 2 |
User (za01br) | 0 | 1/0/0 | 0 | 0 | 0 | |
Tyler Plass (tplass-ias) | 0 | 1/0/1 | 0 | 0 | 0 | |
Hannes Furmans (umgefahren) | 0 | 1/0/1 | 0 | 0 | 0 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
Risk | Level (1-5) | Rationale |
---|---|---|
Delivery | 3 | The project shows active development with numerous open issues and pull requests. However, the net increase in open issues (26 opened vs. 17 closed) and the presence of draft pull requests without changesets indicate potential risks to delivery timelines. The lack of structured planning, as evidenced by minimal milestones, further compounds this risk. |
Velocity | 3 | While there is a high level of commit activity, with significant contributions from key developers like Ward Peeters, the disparity in commit volumes suggests potential dependency on certain team members. This could slow down velocity if these contributors are unavailable. The presence of unresolved issues and draft PRs also indicates possible bottlenecks. |
Dependency | 4 | Several issues highlight dependency management challenges, such as TypeScript monorepo handling (#1996) and pnpm build failures (#1991). The reliance on external systems for telemetry and storage further exacerbates this risk. Draft PRs aiming to update dependencies are not yet integrated, posing additional risks. |
Team | 3 | The team exhibits strong engagement with active discussions on issues and pull requests. However, the uneven distribution of workload among developers could lead to burnout or dependency on key individuals. The lack of contributions from some team members may indicate communication or engagement issues. |
Code Quality | 3 | The codebase shows good practices like TypeScript usage and documentation. However, the rapid pace of changes and lack of explicit error handling in some files pose risks to code quality. Unresolved bugs in open issues also suggest potential quality concerns. |
Technical Debt | 4 | The high volume of changes without corresponding changesets in several PRs indicates potential technical debt accumulation. Unresolved issues related to dependencies and integration further contribute to this risk. The rapid development pace necessitates careful management to prevent debt accumulation. |
Test Coverage | 3 | While some PRs include comprehensive tests, the absence of direct test cases for certain files raises concerns about coverage. Issues related to bugs and regressions suggest gaps in testing that need addressing to ensure robust functionality. |
Error Handling | 3 | Error handling is considered in some areas, such as workflow state management, but lacks consistency across the codebase. The presence of unresolved bugs indicates potential gaps in error handling mechanisms that need improvement. |
Recent GitHub issue activity for the Mastra project shows a mix of bug reports, enhancement requests, and questions. Notably, there has been a surge in issues related to dependencies and integration with other tools or frameworks. Several issues highlight complications with TypeScript monorepos, pnpm builds, and integration with specific logging and database tools. A recurring theme is the need for better documentation and support for various integrations, as well as handling dependencies more robustly.
#1996: This issue highlights a significant gap in handling TypeScript dependencies within a monorepo setup. The request for customizable Rollup configurations indicates a need for more flexible build processes.
#1991: The pnpm approve-builds command failing with Mastra suggests potential compatibility issues with package managers, which could hinder development workflows.
#1973: The UpstashTransport log drains error points to incomplete or incorrect implementation of features, which could affect users relying on logging capabilities.
#1970: The cyclical dependencies example not working as expected suggests possible regressions or overlooked edge cases in recent updates.
Recent closures include questions about deterministic evaluation results (#1990), installation errors (#1984), and broken documentation links (#1962). These closures indicate active maintenance and responsiveness to user queries.
Overall, the project is actively managed with a focus on addressing user-reported issues promptly, though some areas like dependency management and feature completeness require ongoing attention to ensure smooth user experiences.
package.json
files, suggesting significant dependency updates.@mastra/speech-openai
package in favor of @mastra/voice-openai
.These PRs cover a range of issues from fixing broken builds (#1994) to updating licenses (#1993), removing unnecessary scripts (#1992), and adding new features like the MastraVoice class (#1988). Notably:
Active Development on Voice Features: Multiple open PRs focus on voice-related enhancements (#1989, #1977), suggesting an area of active development and potential upcoming releases in this domain.
Frequent Versioning: The presence of automated versioning PRs (#1985) reflects a structured approach to managing releases even during pre-release phases.
Documentation Improvements: Several PRs aim to fix or enhance documentation (#1979, #1966), highlighting an emphasis on maintaining accurate and helpful resources for users.
Unmerged Drafts: Some drafts have been open for several days (#1836), which might indicate complex features or dependencies awaiting resolution before finalization.
Closed Without Merge: While most closed PRs were merged successfully, it's crucial to monitor any that close without merging to understand potential issues or shifts in project priorities.
Overall, the project appears to be under active development with a focus on expanding voice capabilities and refining existing features. The use of automated tools for versioning and documentation updates suggests a mature workflow aimed at maintaining quality and consistency across releases.
.changeset/huge-regions-attend.md
client-sdks/client-js/src/client.ts
MastraClient
class, providing methods to interact with various resources like agents, memory threads, tools, workflows, and telemetry.packages/deployer/src/server/handlers/telemetry.ts
getTelemetryHandler
is structured to handle HTTP requests and return JSON responses.speech/playai/src/index.ts
PlayAITTS
class for text-to-speech operations using PlayAI's API.packages/cli/src/commands/create/create.ts
packages/create-mastra/src/utils.ts
packages/cli/src/playground/src/domains/traces/mock-data.ts
.changeset/every-melons-pull.md
.changeset/fifty-moons-yawn.md
.changeset/lovely-results-open.md
MastraVoice
class in the core package.MastraVoice
entails or its impact on existing functionalities.The source files reviewed are generally well-organized and adhere to good coding practices, particularly in documentation and structure. There are areas where error handling could be improved to ensure robustness against unexpected failures or inputs. The changesets provide clear version tracking but could sometimes benefit from additional context or rationale behind certain changes.
Ward Peeters (wardpeet)
Ehindero Israel (TheIsrael1)
mastra create
workflow starter issues.Taofeeq Oluderu (Taofeeq-deru)
Tyler Barnes (TylerBarnes)
getPackageManager()
between create and init commands.Yujohn Nattrass
Abhi Aiyer (abhiaiyer91)
Pulkit Sethi (pulkitsethi)
Sam Bhagwat (calcsam)
Dave Yen (davecyen)
Shane Thomas (smthomas)
NikAiyer