fix(client): declare dotted remote namespace injects (dsh 0.1.2-rc.1) - #76
Merged
Conversation
This was referenced Sep 3, 2026
Merged
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
dsh@next (0.1.2-rc.1) + advisor v0.3.0: after boot, loading the advisor config on the web 插件配置 page throws
cannot get property "remote.llm" without inject— the card never loads its provider/model directory.Root cause
Upstream dsh commit
5b2f679e4a(refactor(client): consume migrated Remote namespaces, shipped by 0.1.2-alpha.2) split the client Remote assembly into dotted per-namespace services (remote.llm,remote.settings,remote.session, … — child-fiber services namedremote.<ns>). Consumers must declare the dotted names in their cordisinject; readingctx.remote.llmforwards through the traceable proxy to a context property read ofremote.llm, and the fiber walk only resolves it when the consuming plugin declares the dotted name. The advisor client still declared['slots','locale','connection','settingsSchema','remote']from the alpha.2 era → fiber walk hit the root and threw.The unit fixture stubbed
remoteas a plain object, so the real resolution path was never exercised (same blind spot as harness postmortem 0001).Fix
src/client/index.ts:inject→['slots','locale','connection','settingsSchema','remote','remote.llm','remote.settings','remote.session']; stale alpha.2 comments updated to the rc.1 dotted-namespace contract.tests/advisor-card.spec.tsx: fixture provides the dotted services (mirroring upstream spec fixtures); literal inject-shape contract assertion added (fails if any dotted name is dropped — verified by temporary removal during dev).Verification
pnpm typecheck/pnpm build/pnpm testgreen (18 files, 377 tests)..mstarreview bundle qc.md).without injecterrors (browser-verified, screenshot in review bundle).Scope
Web profile only this round (dsh-tui/headless deferred by maintainer decision 2026-09-03; neither reads
remote.*). Sibling note:dsh-llm-fallbacks(also mounted in the web profile) may need the same dotted-inject adaptation — out of scope here.