Skip to content

fix(client): declare dotted remote namespace injects (dsh 0.1.2-rc.1) - #76

Merged
btspoony merged 1 commit into
mainfrom
fix/client-remote-dotted-inject
Sep 3, 2026
Merged

fix(client): declare dotted remote namespace injects (dsh 0.1.2-rc.1)#76
btspoony merged 1 commit into
mainfrom
fix/client-remote-dotted-inject

Conversation

@btspoony

@btspoony btspoony commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

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 named remote.<ns>). Consumers must declare the dotted names in their cordis inject; reading ctx.remote.llm forwards through the traceable proxy to a context property read of remote.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 remote as 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 test green (18 files, 377 tests).
  • QC (single seat, inline hotfix): Approve — 0 critical / 0 warning (.mstar review bundle qc.md).
  • QA (real surface, dsh 0.1.2-rc.1, web profile): PASS — advisor card loads with provider directory populated, zero without inject errors (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.

@btspoony
btspoony merged commit 058fa1b into main Sep 3, 2026
1 check passed
@btspoony
btspoony deleted the fix/client-remote-dotted-inject branch September 3, 2026 10:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant