Files
dsh-acfun/docs/acfun-panel-diagnosis.md
tamakyi 97825f020d feat: QR login, AcFun settings panel, and 动态 (moment) tools
- scan.acfun.cn QR flow (start -> long-poll scanResult -> acceptResult) with
  rotated-signature handling, background poller, durable session in the Host
  credential service, and cookie handoff to the provider
- Client half: Settings -> AcFun page (status, QR code, poll, logout) over a
  same-origin /acfun-panel JSON API with cross-origin rejection
- acfun_moment / acfun_moment_comments / acfun_topic read tools, moment_like /
  moment_unlike / moment_banana actions, and comment posting on moments
- acfun_account status tool; docs for the QR contract, the 广场/动态 research
  verdict, and the client-composition restart requirement
2026-10-27 11:50:44 +08:00

6.3 KiB

Raw client-composition diagnosis

Captured from a running Desktop Host on 2026-10-27 while dsh-plugin-acfun v0.1.0 was active (all twelve tools live, /acfun-panel/state answering).

Request: GET http://127.0.0.1:<port>/acfun-panel/diagnose

Interpretation:

  • client.available: true — the Host exposes the clientModules service.
  • client.path: null — the Web carrier has no registered bundle for this package, so client.js cannot be requested yet.
  • client.entries — the composed boot graph, i.e. every client module the page would load. dsh-plugin-acfun is absent.

Conclusion: the Host half is fine; the Client half has not been composed. The graph is built from the live Loader entry set at boot, so a package that gains a dsh.client declaration after the page booted needs a Harness restart (and then a page reload) — see client-panel.md.

Raw response:

{"ok":true,"client":{"available":true,"packageId":"dsh-plugin-acfun","path":null,"entries":[{"id":"@deepseek-ai/dsh-api-gateway","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-open-in-app","module":"","platform":""},{"id":"@deepseek-ai/dsh-api-job-controller","module":"","platform":""},{"id":"@deepseek-ai/dsh-api-terminal-controller","module":"","platform":""},{"id":"@deepseek-ai/dsh-api-workspace-files","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-settings-account","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-hmr","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-modules","module":"","platform":""},{"id":"@deepseek-ai/dsh-cordis-client-runner","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-theme","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-locale","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-shortcuts","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-shortcuts","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-layout","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-renderer","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-session","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-resources","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-sidebar","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-sidebar-right","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-sidebar-documentpreview","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-sidebar-browser","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-sidebar-terminal","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-sidebar-files","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-settings","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-settings-general","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-settings-models","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-plugin-manager","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-settings-plugin-inventory","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-conversation","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-approval","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-chat","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-brand-official","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-attachment","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-tool","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-cordis","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-workspace","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-workflow-run","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-input-trigger","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-commands","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-skill","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-subagent","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-reference","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-secret-mask","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-jobs","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-schedule","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-goal","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-message-feedback","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-model-selection","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-deepseek-model-label-1017","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-permission-presets","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-agent-preset","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-entry-customization","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-settings-session-log","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-settings-plugins","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-settings-shell","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-settings-agent-loop","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-settings-subagent","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-settings-web-search","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-plan","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-user-questions","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-trajectory","module":"","platform":""},{"id":"@deepseek-ai/dsh-experimental-client-ui-agent-team","module":"","platform":""},{"id":"@deepseek-ai/dsh-api-remote-access","module":"","platform":""},{"id":"@deepseek-ai/dsh-session-log-export","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-file-upload","module":"","platform":""},{"id":"@deepseek-ai/dsh-api-remotes","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-deliverables","module":"","platform":""},{"id":"@deepseek-ai/dsh-typert-registry","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-product-analytics","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-connection","module":"","platform":""},{"id":"@deepseek-ai/dsh-api-workspace-controller","module":"","platform":""},{"id":"@deepseek-ai/dsh-api-session-controller","module":"","platform":""},{"id":"@deepseek-ai/dsh-client-ui-directory-picker-native","module":"","platform":""}],"error":""}}