LearnNewsExamplesServices
Frontmatter
tagName11.2.0
nameNeo.mjs v11.2.0 Release Notes
publishedAt11/13/2025, 1:36:25 PM
isPrerelease
isDraft

Neo.mjs v11.2.0 Release Notes

This release, coming just one day after v11.1.0, is a testament to the incredible velocity of our new AI-native development workflow. The enhancements in this version are focused on further refining our GitHub Workflow server and improving SEO capabilities, showcasing how our AI tooling enables rapid, iterative improvements to the project.

A special thank you to our contributor @MannXo for their outstanding work on multiple pull requests, including #7753, #7754, #7755, #7762, #7763, and #7764. Your contributions have been instrumental in this release!

✨ Highlights

🚀 Fully Automated Website Deployment

The deployment process for the neomjs.com website is now fully automated. This new process not only simplifies updates but also significantly improves the website's SEO and user experience. Previously, many of these steps had to be performed manually.

  • Root Domain Hosting: The portal application now runs directly on the root domain (neomjs.com) instead of being forwarded to a sub-path. This was achieved by copying the application's index.html to the root and injecting a <base> tag to ensure all assets load correctly. (See: enhanceSeo.mjs)
  • Automated SEO File Handling: The build process now automatically copies essential SEO files (sitemap.xml, robots.txt, llms.txt) to the root directory, ensuring they are always up-to-date and correctly located for crawlers. (See: enhanceSeo.mjs)
  • Navigation Fix: A click event listener has been added to the root index.html to correctly handle route-based hash navigation, which was affected by the introduction of the <base> tag. (See: enhanceSeo.mjs)
  • Automated Version Updates: A new script (updateNeoVersion.mjs) fully automates the process of updating the neo.mjs dependency, rebuilding the framework, and preparing it for deployment on the neomjs/pages repository. (See: updateNeoVersion.mjs)

🚀 AI-Native Tooling & Workflow Enhancements

  • Enhanced Local Issue Management: Significant improvements to the local issue synchronization process, now including GitHub timeline events and related commits in local markdown files. This provides a richer and more complete historical context without needing to refer back to GitHub. (Issue #7650)
  • Improved Issue Relationship Tooling: The update_issue_relationship tool now supports "blocked by" and "blocking" relationships, offering a more comprehensive dependency management solution. (Issue #7749)
  • Programmatic Comment Updates: Introduction of an update_comment tool to the GitHub Workflow server, enabling agents to programmatically edit their comments. (Issue #7752)

🌐 SEO & LLM Indexing

  • Root Domain SEO Fix: Addressed a critical SEO issue by patching the root index.html with a base tag, ensuring proper serving of the portal app and correct asset loading. (Issue #7447)
  • llms.txt Implementation: Implemented the llms.txt specification for improved LLM content indexing, enhancing the framework's discoverability by AI models. (Issue #7760)

🏗️ Framework & API Improvements

  • DocumentHead Addon:
    • Added an update() remote method to main.addon.DocumentHead for asynchronous updates of multiple items in document.head. (Issue #7765)
    • Introduced getDescription() and setDescription() remote methods as convenience shortcuts to main.addon.DocumentHead. (Issue #7766)

⚙️ Refactoring & Optimizations

  • IssueSyncer Refinements:
    • Refactored addSubIssue and removeSubIssue GraphQL mutations for efficiency, reducing their return payload to only essential information. (Issue #7750)
    • Removed redundant body content from IssueSyncer generated markdown files, making frontmatter the single source of truth for metadata. (Issue #7751)
    • Moved "blocked by" and "blocking" relationship information to the frontmatter in IssueSyncer.mjs for better data consistency and machine readability. (Issue #7759)
    • Removed the redundant "Relationships" section from the issue body in IssueSyncer generated markdown. (Issue #7767)
  • GraphQL Query Optimization: Optimized GraphQL responses for ADD_BLOCKED_BY and REMOVE_BLOCKED_BY mutations to fetch only essential information, reducing payload size and improving efficiency. (Issue #7757)
  • Codebase Clean-up:
    • Extracted inline GraphQL queries from IssueService.mjs to a dedicated queries folder for better code organization and maintainability. (Issue #7758)
    • Refactored resolveContentFileFromId in generateSeoFiles.mjs for accurate content path resolution by removing incorrect logic. (Issue #7761)

All changes in 1 commit: https://github.com/neomjs/neo/commit/d40f04a5e7a7db0ac57ec9b4a9120618a7750c51