实例卡片的 DOM 片段 —— data-name(角色)与 data-uid(这一个)

每一处标注同时带两个属性:data-name 说角色(同类共用,可重复),data-uid 说具体是哪一个(8 位 base36,全页唯一、跨刷新稳定)。svg 内部已折叠。

<div data-name="instance-card" data-uid="oik6nbmu" data-instance="web-dev" class="dsh-case">
  <div class="dsh-case-head">
    <span class="dsh-tile violet">
      <svg …/>
    </span>
    <div class="dsh-ident">
      <div class="dsh-title-line">
        <span data-name="card-name" data-uid="f1c4ogo5" class="dsh-name">
          web-dev
        </span>
        <!--[-->
        <!--]-->
      </div>
      <div data-name="sub-line" data-uid="xutwe5zh" data-status="stopped" class="dsh-sub off">
        <span data-name="sub-kind" data-uid="li4pcf7l" title="磁盘上真实存在的 profile,当前没有对应的 dsh 进程" class="dsh-kind">
          本地 profile
        </span>
        <span data-name="status-dot" data-uid="yphoujw1" class="dsh-dot-slot">
          <i class="dsh-dot">
            <!--[-->
            <!--]-->
          </i>
        </span>
        <span data-name="sub-state" data-uid="k5syc8vx" class="dsh-state">
          已停止
        </span>
        <span class="dsh-tail">
          <span data-name="sub-uptime" data-uid="kncfhmqd" title="cordis.patch.yml 182 行 · lock 10-15 18:50" class="dsh-uptime">
            cordis.patch.yml 182 行 · lock 10-15 18:50
          </span>
          <span data-name="port-note" data-uid="iwsyku8b" title="缺 11 个包:@deepseek-ai/dsh-experimental-agent-team-profile、@deepseek-ai/dsh-experimental-auto-review、@deepseek-ai/dsh-experimental-schedule-bundle、@local/dsh-retry-control、@local/dsh-linxi、dsh-session-manager、@local/dsh-copy-path、@local/dsh-provider-finder、@local/dsh-copy-session、@local/dsh-clyzhi-review、@local/dsh-proxy-pin" class="dsh-port-note">
            缺 11 个包:@deepseek-ai/dsh-experimental-agent-team-profile、@deepseek-ai/dsh-experimental-auto-review、@deepseek-ai/dsh-experimental-schedule-bundle、@local/dsh-retry-control、@local/dsh-linxi、dsh-session-manager、@local/dsh-copy-path、@local/dsh-provider-finder、@local/dsh-copy-session、@local/dsh-clyzhi-review、@local/dsh-proxy-pin
          </span>
        </span>
      </div>
    </div>
    <!--[-->
    <div class="dsh-actions">
      <button data-name="start" data-uid="sy8tftrv" type="button" class="dsh-btn primary violet">
        <svg …/>
        <span>
          启动
        </span>
      </button>
      <button data-name="restart" data-uid="8x8apiai" type="button" class="dsh-btn">
        <svg …/>
        <span>
          重启
        </span>
      </button>
      <button data-name="menu-trigger" data-uid="yoehocfs" id="dsh-trigger-profile-web-dev" aria-haspopup="menu" aria-expanded="false" aria-label="更多操作(web-dev)" type="button" class="dsh-btn icon-only">
        <svg …/>
      </button>
    </div>
    <!--]-->
  </div>
  <ul class="dsh-fields">
    <li data-name="card-field" data-uid="t6h54myq" data-field="dsh-version" class="dsh-field">
      <span class="dsh-field-icon">
        <svg …/>
      </span>
      <span data-name="field-label" data-uid="avy2vy65" class="dsh-field-label">
        DSH 版本 / 来源
      </span>
      <span data-name="field-value" data-uid="yct09x0q" title="控制台后端读到的 dsh 版本与来源(这只 profile 没有运行中的进程,版本取的是控制台自身的读数)" class="dsh-field-value">
        0.2.0-rc.2(本机已安装)
      </span>
    </li>
    <li data-name="card-field" data-uid="vio1dlrd" data-field="profile" class="dsh-field">
      <span class="dsh-field-icon">
        <svg …/>
      </span>
      <span data-name="field-label" data-uid="33mm3w6a" class="dsh-field-label">
        Profile
      </span>
      <span data-name="field-value" data-uid="sz4hc9bx" title="磁盘上真实存在的 profile 目录名:web-dev" class="dsh-field-value">
        web-dev
      </span>
    </li>
    <li data-name="card-field" data-uid="w0jdcftt" data-field="url" class="dsh-field">
      <span class="dsh-field-icon">
        <svg …/>
      </span>
      <span data-name="field-label" data-uid="e46ce2fu" class="dsh-field-label">
        访问地址
      </span>
      <span data-name="field-value" data-uid="c8vd9ecl" title="这只 profile 现在没有在跑,所以没有可访问的地址" class="dsh-field-value">
        已停用,无法访问
      </span>
    </li>
    <li data-name="card-field" data-uid="pu95nuim" data-field="home" class="dsh-field">
      <span class="dsh-field-icon">
        <svg …/>
      </span>
      <span data-name="field-label" data-uid="wjkhubqh" class="dsh-field-label">
        DSH_HOME
      </span>
      <span data-name="field-value" data-uid="lnftyjce" title="控制台当前使用的 DSH_HOME(来源见「关于」页的 DSH_HOME 一行)" class="dsh-field-value">
        ~/.dsh
      </span>
    </li>
    <li data-name="card-field" data-uid="x2yuqay4" data-field="plugin-count" class="dsh-field">
      <span class="dsh-field-icon">
        <svg …/>
      </span>
      <span data-name="field-label" data-uid="h8i6mh43" class="dsh-field-label">
        插件数量
      </span>
      <span data-name="field-value" data-uid="1vszc0a0" title="缺少的包:@deepseek-ai/dsh-experimental-agent-team-profile、@deepseek-ai/dsh-experimental-auto-review、@deepseek-ai/dsh-experimental-schedule-bundle、@local/dsh-retry-control、@local/dsh-linxi、dsh-session-manager、@local/dsh-copy-path、@local/dsh-provider-finder、@local/dsh-copy-session、@local/dsh-clyzhi-review、@local/dsh-proxy-pin" class="dsh-field-value">
        声明 13 · 已装 2
      </span>
    </li>
    <li data-name="card-field" data-uid="n3tvalto" data-field="mtime" class="dsh-field">
      <span class="dsh-field-icon">
        <svg …/>
      </span>
      <span data-name="field-label" data-uid="f8svqmyb" class="dsh-field-label">
        最近改动
      </span>
      <span data-name="field-value" data-uid="6kgbb7js" title="这只 profile 目录的最近改动时刻(mtime 2026-10-15T10:50:52.694Z,卡上按浏览器本地时间显示)。口径是「最近改动」不是「创建时间」:多数文件系统上可靠的创建时间拿不到(ctime 会在 chmod / 改名时变,birth time 不通用);刚派生出来的 profile 一定是最新的。来源:~/.dsh/profiles/web-dev 的 mtime" class="dsh-field-value">
        10-15 18:50
      </span>
    </li>
  </ul>
</div>