---
tagName: 11.2.0
name: Neo.mjs v11.2.0 Release Notes
publishedAt: '2025-11-13T13:36:25Z'
isPrerelease: false
isDraft: false
---
# 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](https://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](https://github.com/neomjs/pages/blob/main/buildScripts/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](https://github.com/neomjs/pages/blob/main/buildScripts/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](https://github.com/neomjs/pages/blob/main/buildScripts/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](https://github.com/neomjs/pages/blob/main/buildScripts/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
