dsh-scnet 0.6.10 → 0.6.11

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/README.md CHANGED
@@ -4,15 +4,16 @@
4
4
 
5
5
  DSH-SCNet (`dsh-scnet` on npm) is a community-maintained DSH bundle for operating Supercomputing Network (SCNet). It packages the source [`scnet-hpc`](https://github.com/lql341/scnet-hpc) Skill, profile-aware utilities, and bounded tools for SSH, Slurm, OpenAPI files, regional resources, and Notebook discovery.
6
6
 
7
- Current release: **0.6.10**
7
+ Current release: **0.6.11**
8
8
 
9
9
  <!-- scnet-release:start -->
10
- ## 0.6.10 highlights
10
+ ## 0.6.11 highlights
11
11
 
12
- - Coordinate the synchronized downstream DSH release with a protocol-neutral one-shot loopback
13
- OAuth callback listener, fixed-path validation, timeout cleanup, and generic browser responses.
14
- - Keep the canonical Skill endpoint-neutral; no SCNet issuer, endpoint, client ID, scope, or
15
- credential is embedded in this release.
12
+ - Generate Slurm job scripts even when the optional SSH node-count probe fails, using
13
+ profile/cache metadata as a fallback; add deterministic coverage for probe outcomes.
14
+ - Correct Windows configuration-permission diagnostics and clarify WSL2 setup guidance.
15
+ - Keep shell scripts on LF line endings across all three repositories; synchronize downstream
16
+ versions and README release blocks after canonical main validation succeeds.
16
17
  <!-- scnet-release:end -->
17
18
 
18
19
  > This is an independent community project. It is compatible with DeepSeek Harness but is not an official DeepSeek product and does not imply endorsement, partnership, or authorization by DeepSeek.
package/README_CN.md CHANGED
@@ -4,15 +4,16 @@
4
4
 
5
5
  <p align="center">在 DeepSeek Harness 里操作超算互联网(SCNet):配置 SSH、管理 Slurm 作业、查询 OpenAPI 区域和文件、检查 Notebook 资源与实例,并保留海光 DCU/DTK 诊断能力。</p>
6
6
 
7
- 当前版本:**0.6.10**
7
+ 当前版本:**0.6.11**
8
8
 
9
9
  <!-- scnet-release:start -->
10
- ## 0.6.10 更新
10
+ ## 0.6.11 更新
11
11
 
12
- - 协调下游 DSH 发布协议无关的一次性 loopback OAuth 回调监听器,包含固定路径校验、
13
- 超时清理和不暴露回调细节的通用浏览器响应。
14
- - canonical Skill 继续保持 endpoint 无关;本版本不嵌入 SCNet issuer、endpoint、client ID、
15
- scope 或任何凭证。
12
+ - SSH 实时节点数探测失败时,回退到 profile/cache,继续生成 Slurm 作业脚本;
13
+ 使用模拟 SSH 覆盖各类探测结果,回归测试不依赖真实网络。
14
+ - 修复 Windows 配置文件权限诊断误报,补充 Windows 提示与 WSL2 使用指引。
15
+ - 三个仓库统一保持 shell 脚本使用 LF;源仓库 main 校验通过后,自动同步下游版本与
16
+ 中英文 README 发布说明。
16
17
  <!-- scnet-release:end -->
17
18
 
18
19
  > 本项目是独立维护的社区项目,与 DeepSeek Harness 兼容,但不是 DeepSeek 官方产品,也不表示 DeepSeek 对本项目提供背书、合作或授权。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-scnet",
3
- "version": "0.6.10",
3
+ "version": "0.6.11",
4
4
  "description": "Community DeepSeek Harness bundle for SCNet SSH and OpenAPI jobs, files, Notebook resources, Slurm diagnostics, and Hygon DCU/DTK guidance.",
5
5
  "type": "module",
6
6
  "main": "./index.mjs",
@@ -1 +1 @@
1
- 0.6.10
1
+ 0.6.11
@@ -53,10 +53,12 @@ refresh_live_node_count() {
53
53
  [ -n "${CLUSTER_ID:-}" ] || return 0
54
54
  [ -n "${PARTITION:-}" ] || return 0
55
55
 
56
- local live
56
+ # Live metadata is optional; a failed SSH probe must not trigger callers'
57
+ # errexit/pipefail settings or discard the existing profile/cache value.
58
+ local live=""
57
59
  live=$(ssh -o BatchMode=yes -o ConnectTimeout=10 -o ServerAliveInterval=15 -o ServerAliveCountMax=2 \
58
60
  "$CLUSTER_ID" "scontrol show partition ${PARTITION}" 2>/dev/null \
59
- | tr ' ' '\n' | sed -n 's/^TotalNodes=//p' | head -1)
61
+ | tr ' ' '\n' | sed -n 's/^TotalNodes=//p' | head -1) || live=""
60
62
 
61
63
  if [[ "$live" =~ ^[0-9]+$ ]] && [ "$live" -gt 0 ]; then
62
64
  NODE_COUNT="$live"
@@ -706,6 +706,13 @@ def _print_terminal_help() -> None:
706
706
  "Linux:使用 ↑/↓ 和 Enter,也可输入编号;"
707
707
  "Ctrl+C 可取消。敏感输入不会回显。"
708
708
  )
709
+ elif system == "Windows":
710
+ print("Windows:输入编号并按 Enter 选择;Ctrl+C 可取消。敏感输入不会回显。")
711
+ print("完整脚本环境建议使用 WSL2;Git Bash 尚未作为完整环境验证。")
712
+ print(
713
+ "当前实现未接入 Windows 凭据管理器;AK/SK 请通过环境变量注入:"
714
+ "SCNET_OPENAPI_USER / SCNET_OPENAPI_ACCESS_KEY / SCNET_OPENAPI_SECRET_KEY。"
715
+ )
709
716
  print()
710
717
 
711
718
 
@@ -1411,12 +1418,19 @@ def doctor_report(
1411
1418
  try:
1412
1419
  path = config_path()
1413
1420
  if path.is_file():
1414
- mode = path.stat().st_mode & 0o777
1415
- add(
1416
- "user_config",
1417
- mode & 0o077 == 0,
1418
- f"{path} mode={mode:03o}",
1419
- )
1421
+ if os.name == "posix":
1422
+ mode = path.stat().st_mode & 0o777
1423
+ add(
1424
+ "user_config",
1425
+ mode & 0o077 == 0,
1426
+ f"{path} mode={mode:03o}",
1427
+ )
1428
+ else:
1429
+ add(
1430
+ "user_config",
1431
+ True,
1432
+ f"{path}(非 POSIX,跳过 mode 检查;未验证 ACL)",
1433
+ )
1420
1434
  else:
1421
1435
  add("user_config", False, f"{path} 不存在;先运行 setup")
1422
1436
  except OSError as exc: