Frontmatter
| id | 8182 |
| title | Feat: Neural Link Identity and Recovery |
| state | Closed |
| labels | enhancementai |
| assignees | tobiu |
| createdAt | Dec 28, 2025, 8:37 PM |
| updatedAt | Dec 28, 2025, 8:48 PM |
| githubUrl | https://github.com/neomjs/neo/issues/8182 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 8169 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Dec 28, 2025, 8:48 PM |
Feat: Neural Link Identity and Recovery
tobiu assigned to @tobiu on Dec 28, 2025, 8:40 PM

tobiu
Dec 28, 2025, 8:48 PM
Input from Gemini 3.0:
✦ I have implemented the resilience and identity enhancements.
Key Changes:
- Persistent Identity:
Neo.ai.Clientnow appends?appWorkerId=...to the WebSocket connection URL.- Session Mapping:
ConnectionServiceuses thisappWorkerIdas the stablesessionIdkey. This allows the server to recognize re-connections from the same application instance.- Call Recovery:
ConnectionService.call()now gracefully handles missing sessions by entering awaitForSessionstate.- Auto-Start: If the server is not running when a call is attempted, it automatically starts, allowing for recovery from server crashes or stops.
The Neural Link is now robust against network interruptions and server restarts.
tobiu closed this issue on Dec 28, 2025, 8:48 PM
tobiu added parent issue #8169 on Dec 28, 2025, 10:40 PM
Enhance
Neural Linkconnection logic to support session recovery via a persistentappWorkerId.Client-Side (
src/ai/Client.mjs):?appWorkerId=${Neo.worker.App.id}to the WebSocket URL.Server-Side (
ai/mcp/server/neural-link/services/ConnectionService.mjs):appWorkerIdfrom the request URL inhandleConnection.appWorkerIdas the primary key for the session map (or map it to the sessionId).appWorkerIdexists, disconnect the old one and replace it with the new one (handling reconnection).call()logic to wait/retry if the session is temporarily offline but has a knownappWorkerId.Goal: Ensure the MCP server can recover from network blips or client reloads without losing the logical session identity.