You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Treat the DeepSeek Harness optimistic-message UI as optional instead of a mandatory web-boot dependency.
Use the supported conversation event registry when available.
If the UI service is missing or registration fails, skip only the optimistic UI and allow DSH plus core memory features to continue.
Keep the App and Memory plugin templates aligned with focused regression tests.
Root cause
Different DSH builds do not always expose the same conversation UI service. Memmy declared that optional service as mandatory and threw when it was unavailable, so DSH marked the Memmy client entry as failed and aborted web startup.
User impact
Supported DSH versions keep the early user-message display. Other versions lose only that optional early display; normal messages, memory recall/write, and DSH startup continue working.
Scope
This PR only fixes the startup boundary. It does not change plugin installation, process detection, hot-update blocking, or file rewrite policy.
Validation
App backend DSH target tests: 13 passed
Memory DSH compatibility tests: 7 passed
@memmy/backend typecheck and lint passed
@memmy/memory typecheck passed
Automated smoke tests passed
Synced with the latest v1.2.6 base without conflicts
With inject = [] and the inject: ["@deepseek-ai/dsh-client-ui-conversation"] manifest entry removed, nothing guarantees the conversation-event service exists when apply(ctx) runs. In that case this early return silently disables the optimistic-user bubble for the whole session — no retry once the service is later registered, and no diagnostic (the catch below at least warns). Consider deferring registration (e.g. retry/ctx.get readiness) or emitting a debug/warn log on the null-registry path so the disabled state is observable.
The object literal passed to registry.register was not re-indented after being wrapped in the try block, so kind, target, match, start, etc. sit at the same level as registry.register({. Re-indent the block body by two spaces for readability in the generated client.js.
With inject = [] and the inject: ["@deepseek-ai/dsh-client-ui-conversation"] manifest entry removed, nothing guarantees the conversation-event service exists when apply(ctx) runs. In that case this early return silently disables the optimistic-user bubble for the whole session — no retry once the service is later registered, and no diagnostic (the catch below at least warns). Consider deferring registration (e.g. retry/ctx.get readiness) or emitting a debug/warn log on the null-registry path so the disabled state is observable.
The object literal passed to registry.register was not re-indented after being wrapped in the try block, so kind, target, match, start, etc. sit at the same level as registry.register({. Re-indent the block body by two spaces for readability in the generated client.js.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Root cause
Different DSH builds do not always expose the same conversation UI service. Memmy declared that optional service as mandatory and threw when it was unavailable, so DSH marked the Memmy client entry as failed and aborted web startup.
User impact
Supported DSH versions keep the early user-message display. Other versions lose only that optional early display; normal messages, memory recall/write, and DSH startup continue working.
Scope
This PR only fixes the startup boundary. It does not change plugin installation, process detection, hot-update blocking, or file rewrite policy.
Validation
@memmy/backendtypecheck and lint passed@memmy/memorytypecheck passedv1.2.6base without conflicts