@stofone/dsh-agent-roster 0.8.1 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -1
- package/README.md +1 -1
- package/README.zh.md +1 -1
- package/client.js +6 -6
- package/index/registry.json +6 -6
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,36 @@
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.8.3] - 2026-11-03
|
|
8
|
+
|
|
9
|
+
### The panel no longer cuts long content
|
|
10
|
+
|
|
11
|
+
- **The page owns its own scroll.** A global panel is mounted inside the centre column, which is
|
|
12
|
+
`overflow: hidden`; a page that never asks for scroll silently clips everything below the fold —
|
|
13
|
+
that is why the sources tab looked half-rendered as soon as a collection was expanded. `.rstr-page`
|
|
14
|
+
now sets `height: 100%; min-height: 0; overflow-y: auto; overflow-x: hidden`.
|
|
15
|
+
- **Card grids no longer overflow narrow panels.** `repeat(auto-fill, minmax(380px, 1fr))` became
|
|
16
|
+
`repeat(auto-fill, minmax(min(380px, 100%), 1fr))`, so a narrow column stops clipping cards on the
|
|
17
|
+
right edge.
|
|
18
|
+
- **The expanded roster list scrolls inside its card** (`max-height: 340px`) instead of stretching
|
|
19
|
+
the card without bound, and long roster titles ellipsize instead of pushing the badges out.
|
|
20
|
+
- Three regression assertions pin the three layers (page / grid / expanded list) in
|
|
21
|
+
`test/client.test.js`, so a later style refactor cannot quietly bring the clipping back.
|
|
22
|
+
|
|
23
|
+
## [0.8.2] - 2026-11-03
|
|
24
|
+
|
|
25
|
+
### The whole family lives under one organization
|
|
26
|
+
|
|
27
|
+
- **The three example repositories moved too, and were renamed to their collection ids**:
|
|
28
|
+
`dsh-agent-roster/agent-teams`, `dsh-agent-roster/metagpt-company`,
|
|
29
|
+
`dsh-agent-roster/openmanus`. Their old `STofone/dsh-roster-*` names redirect, and each repo got
|
|
30
|
+
its own `registry.json` and README links rewritten, so nothing in them points at the old owner.
|
|
31
|
+
- **`index/registry.json` follows**: every collection's `repo` (and `homepage`) now names the org,
|
|
32
|
+
including the two collections that live in this repository.
|
|
33
|
+
- **All four repositories carry the `dsh-agent-roster` topic** (plus `dsh-plugin`,
|
|
34
|
+
`agent-roster`, `deepseek-harness`), which is what makes the collections findable by topic
|
|
35
|
+
rather than only by this hand-maintained index.
|
|
36
|
+
|
|
7
37
|
## [0.8.1] - 2026-11-03
|
|
8
38
|
|
|
9
39
|
### Moved to the `dsh-agent-roster` organization
|
|
@@ -310,7 +340,9 @@
|
|
|
310
340
|
- 工具返回值含 `undefined` 键,运行时按 `value is not lossless JSON` 整次拒绝;缺失值统一写 `null`,
|
|
311
341
|
且所有返回值先过 `lib/json.js#lossless`。
|
|
312
342
|
|
|
313
|
-
[Unreleased]: https://github.com/dsh-agent-roster/dsh-agent-roster/compare/v0.8.
|
|
343
|
+
[Unreleased]: https://github.com/dsh-agent-roster/dsh-agent-roster/compare/v0.8.3...main
|
|
344
|
+
[0.8.3]: https://github.com/dsh-agent-roster/dsh-agent-roster/releases/tag/v0.8.3
|
|
345
|
+
[0.8.2]: https://github.com/dsh-agent-roster/dsh-agent-roster/releases/tag/v0.8.2
|
|
314
346
|
[0.8.1]: https://github.com/dsh-agent-roster/dsh-agent-roster/releases/tag/v0.8.1
|
|
315
347
|
[0.8.0]: https://github.com/dsh-agent-roster/dsh-agent-roster/releases/tag/v0.8.0
|
|
316
348
|
[0.7.0]: https://github.com/dsh-agent-roster/dsh-agent-roster/releases/tag/v0.7.0
|
package/README.md
CHANGED
|
@@ -387,7 +387,7 @@ test/ unit tests
|
|
|
387
387
|
|
|
388
388
|
Verified on this machine:
|
|
389
389
|
|
|
390
|
-
- `npm test` —
|
|
390
|
+
- `npm test` — 240/240 passing (format, parse, validate, registry, paths, bridge, verify buckets, digests and provenance, roster diff, capability requirements and the capability gate, library organization, registry schema, lossless JSON, write plan/apply, all routes, panel snapshot and hints, dictionary consistency, tool contracts, client loader contract, library snapshot, config view, package manifest, declared fields and captain block, schema/constant alignment, remote registry and one-click install).
|
|
391
391
|
- `npm run smoke` — `apply()` registers all six tools through a real `defineTool` from a DSH bundle; `roster_list` / `roster_show` / `roster_create` / `roster_verify` / `roster_diff` execute, every output survives `lossless` checks, `path` overrides are honored, effect disposal runs cleanly. The same command then loads `client.js` against a stubbed module table and asserts the three slot registrations, style injection and effect disposal.
|
|
392
392
|
- CLI: `validate --dir examples` returns exit 0 over both example libraries.
|
|
393
393
|
- Installed into a real profile with the plugin manager (`plugin_manager install_bundle` against this directory → `link:` dependency + bundle entry); the profile re-reads the linked files on restart.
|
package/README.zh.md
CHANGED
|
@@ -370,7 +370,7 @@ test/ 单测
|
|
|
370
370
|
|
|
371
371
|
本机已验证:
|
|
372
372
|
|
|
373
|
-
- `npm test` ——
|
|
373
|
+
- `npm test` —— 240/240 通过(格式、解析、校验、扫描、路径、桥接、核对四桶、摘要与溯源、档案差异、能力要求与能力闸门、档案库组织、索引 schema、无损 JSON、写入计划与执行、六条路由、快照与提示、两本词典一致、工具契约、客户端加载器契约、包清单、配置视图、样式 token 约束、声明层字段与队长段、schema 与常量对齐)。
|
|
374
374
|
- `npm run smoke` —— 用真实 DSH bundle 的 `defineTool` 注册六个工具,逐个调用:输出全部通过无损校验、`path` 覆盖生效、释放干净;同一条命令随后用桩模块表加载 `client.js`,断言三处槽位注册、样式只注入一次、effect 可回收。
|
|
375
375
|
- CLI:`validate --dir examples` 对两座示例库退出码 0。
|
|
376
376
|
- 用插件管理器真的装进了本机 profile(`plugin_manager install_bundle` 指向本仓库 → `link:` 依赖 + bundle 条目),重启后按链接读取本仓库文件。
|
package/client.js
CHANGED
|
@@ -2064,7 +2064,7 @@ window.__ModuleLoader__.load({
|
|
|
2064
2064
|
* 文本色一律显式给出(不用 inherit),避免继承到与背景同色的文本。
|
|
2065
2065
|
*/
|
|
2066
2066
|
const CSS = `
|
|
2067
|
-
.rstr-page { display: flex; flex-direction: column; gap: 16px; padding: 20px 24px 32px; width: 100%; box-sizing: border-box; color: var(--dsw-alias-label-primary); font-size: 14px; line-height: 1.55; }
|
|
2067
|
+
.rstr-page { display: flex; flex-direction: column; gap: 16px; padding: 20px 24px 32px; width: 100%; height: 100%; min-height: 0; box-sizing: border-box; overflow-y: auto; overflow-x: hidden; color: var(--dsw-alias-label-primary); font-size: 14px; line-height: 1.55; }
|
|
2068
2068
|
.rstr-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
|
|
2069
2069
|
.rstr-h1 { margin: 0; font-size: 20px; font-weight: 600; letter-spacing: -0.01em; color: var(--dsw-alias-label-primary); }
|
|
2070
2070
|
.rstr-muted { color: var(--dsw-alias-label-secondary); margin: 0; }
|
|
@@ -2123,17 +2123,17 @@ window.__ModuleLoader__.load({
|
|
|
2123
2123
|
.rstr-tag-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
2124
2124
|
.rstr-tag-count { font-size: 11px; color: var(--dsw-alias-label-secondary); font-variant-numeric: tabular-nums; }
|
|
2125
2125
|
.rstr-tag-clear { align-self: flex-start; }
|
|
2126
|
-
.rstr-cards { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(380px, 1fr)); align-items: start; }
|
|
2127
|
-
.rstr-card { border: 1px solid var(--dsw-alias-border-l2); border-radius: 12px; padding: 14px 16px; background: var(--dsw-alias-bg-layer-1); color: var(--dsw-alias-label-primary); display: flex; flex-direction: column; gap: 10px; }
|
|
2126
|
+
.rstr-cards { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(380px, 100%), 1fr)); align-items: start; }
|
|
2127
|
+
.rstr-card { min-width: 0; border: 1px solid var(--dsw-alias-border-l2); border-radius: 12px; padding: 14px 16px; background: var(--dsw-alias-bg-layer-1); color: var(--dsw-alias-label-primary); display: flex; flex-direction: column; gap: 10px; }
|
|
2128
2128
|
.rstr-card-bad { border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 50%, transparent); }
|
|
2129
2129
|
.rstr-card-id { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
|
|
2130
2130
|
.rstr-card-title { margin: 4px 0 2px; font-size: 15px; font-weight: 600; color: var(--dsw-alias-label-primary); }
|
|
2131
2131
|
.rstr-card-meta { display: flex; gap: 12px; flex-wrap: wrap; font-size: 12px; color: var(--dsw-alias-label-secondary); }
|
|
2132
2132
|
.rstr-card-actions { display: flex; gap: 6px; flex-wrap: wrap; }
|
|
2133
2133
|
.rstr-sources { display: flex; flex-direction: column; gap: 10px; }
|
|
2134
|
-
.rstr-source-detail { display: flex; flex-direction: column; gap: 6px; border-top: 1px dashed var(--dsw-alias-border-l1); padding-top: 8px; }
|
|
2135
|
-
.rstr-source-roster { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12px; }
|
|
2136
|
-
.rstr-source-roster > .rstr-muted { flex: 1 1 auto; }
|
|
2134
|
+
.rstr-source-detail { display: flex; flex-direction: column; gap: 6px; min-width: 0; max-height: 340px; overflow-y: auto; overflow-x: hidden; border-top: 1px dashed var(--dsw-alias-border-l1); padding-top: 8px; }
|
|
2135
|
+
.rstr-source-roster { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; font-size: 12px; }
|
|
2136
|
+
.rstr-source-roster > .rstr-muted { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
2137
2137
|
.rstr-ok { color: var(--dsw-alias-label-secondary); font-weight: 600; }
|
|
2138
2138
|
|
|
2139
2139
|
.rstr-chip { font-size: 11px; padding: 1px 7px; border-radius: 999px; background: var(--dsw-alias-button-ghost-active-fill); color: var(--dsw-alias-label-secondary); }
|
package/index/registry.json
CHANGED
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"id": "agent-teams",
|
|
77
77
|
"title": "Agent Teams(wshobson/agents 迁移)",
|
|
78
78
|
"description": "把 wshobson/agents 的 agent-teams 插件(4.2 万星,MIT)迁成档案:队长、实现者、审查者、调试者,保留上游工具边界。",
|
|
79
|
-
"repo": "github:
|
|
79
|
+
"repo": "github:dsh-agent-roster/agent-teams",
|
|
80
80
|
"ref": "main",
|
|
81
81
|
"path": "rosters",
|
|
82
82
|
"rosters": [
|
|
@@ -92,13 +92,13 @@
|
|
|
92
92
|
"maintainers": [
|
|
93
93
|
"STofone"
|
|
94
94
|
],
|
|
95
|
-
"homepage": "https://github.com/
|
|
95
|
+
"homepage": "https://github.com/dsh-agent-roster/agent-teams"
|
|
96
96
|
},
|
|
97
97
|
{
|
|
98
98
|
"id": "metagpt-company",
|
|
99
99
|
"title": "MetaGPT 软件公司(迁移)",
|
|
100
100
|
"description": "MetaGPT(5 万星+,MIT)的软件公司角色:产品经理、架构师、项目经理、工程师,字段取自上游 Role 的 profile/goal/constraints。",
|
|
101
|
-
"repo": "github:
|
|
101
|
+
"repo": "github:dsh-agent-roster/metagpt-company",
|
|
102
102
|
"ref": "main",
|
|
103
103
|
"path": "rosters",
|
|
104
104
|
"rosters": [
|
|
@@ -113,13 +113,13 @@
|
|
|
113
113
|
"maintainers": [
|
|
114
114
|
"STofone"
|
|
115
115
|
],
|
|
116
|
-
"homepage": "https://github.com/
|
|
116
|
+
"homepage": "https://github.com/dsh-agent-roster/metagpt-company"
|
|
117
117
|
},
|
|
118
118
|
{
|
|
119
119
|
"id": "openmanus",
|
|
120
120
|
"title": "OpenManus 三件套(迁移)",
|
|
121
121
|
"description": "OpenManus(5.8 万星,MIT)的三个代理提示词:规划、编码、浏览器,systemPrompt 保留上游原文。",
|
|
122
|
-
"repo": "github:
|
|
122
|
+
"repo": "github:dsh-agent-roster/openmanus",
|
|
123
123
|
"ref": "main",
|
|
124
124
|
"path": "rosters",
|
|
125
125
|
"rosters": [
|
|
@@ -135,7 +135,7 @@
|
|
|
135
135
|
"maintainers": [
|
|
136
136
|
"STofone"
|
|
137
137
|
],
|
|
138
|
-
"homepage": "https://github.com/
|
|
138
|
+
"homepage": "https://github.com/dsh-agent-roster/openmanus"
|
|
139
139
|
}
|
|
140
140
|
]
|
|
141
141
|
}
|
package/package.json
CHANGED