dshm-compat 0.1.2 → 0.1.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 CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.3
4
+
5
+ - Fixed dsh-ops recipe dispatch for GitHub specs: the converter now keys on
6
+ `report.package.name`, not `report.resolved.name` (which is `owner/repo` for
7
+ GitHub). `compat_convert("https://github.com/T-Auto/dsh-ops", ...)` now
8
+ reaches the recipe and returns `needs-native-build` instead of `skipped`.
9
+ - The dsh-ops recipe relaxes `peerDependencies["@deepseek-ai/dsh"]` to
10
+ `workspace:*` so installing it does not make the DSHM core fail its
11
+ prerelease compatibility check on the next boot.
12
+ - Clearer S2 skipped message ("needs a recipe or an external native build").
13
+ - Offline regression suite: 24/24.
14
+
3
15
  ## 0.1.2
4
16
 
5
17
  - Added `compat_doctor`: one read-only diagnosis of DSHM mode, core version,
package/INSTALL.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Installing dshm-compat
2
2
 
3
- The artifact is a normal DSH bundle package: `dshm-compat-0.1.2.tgz`.
3
+ The artifact is a normal DSH bundle package: `dshm-compat-0.1.3.tgz`.
4
4
  It is host-only, has no runtime dependencies, and adds eight agent tools.
5
5
 
6
6
  ## A. DSHM (the tablet)
@@ -15,7 +15,7 @@ input calls `pnpm view` before installing and fails with
15
15
  `Command failed with EACCES: pnpm view ... spawn pnpm EACCES`. Use one of these
16
16
  instead:
17
17
 
18
- - ask the DSHM Agent to run `pnpm add dshm-compat@0.1.2` in its bash tool (the
18
+ - ask the DSHM Agent to run `pnpm add dshm-compat@0.1.3` in its bash tool (the
19
19
  bundled pnpm shim routes that command to the host install queue); or
20
20
  - install from a GitHub repository URL; or
21
21
  - after any working install, use the plugin's own `compat_install` tool for
@@ -28,7 +28,7 @@ not accept local paths, `file:` or `http://` specs.
28
28
 
29
29
  ### A2. HTTPS tarball
30
30
 
31
- Put `dshm-compat-0.1.2.tgz` on any HTTPS host (GitHub Release, Gitee Release,
31
+ Put `dshm-compat-0.1.3.tgz` on any HTTPS host (GitHub Release, Gitee Release,
32
32
  object storage) and paste the `.tgz` URL into the same Add plugin input. DSHM's
33
33
  installer accepts tarball specs; if the current market UI refuses a plain URL,
34
34
  use A1.
@@ -38,7 +38,7 @@ use A1.
38
38
  If `hdc` is available and the app can read the path:
39
39
 
40
40
  ```sh
41
- hdc file send dshm-compat-0.1.2.tgz /data/storage/el2/base/haps/entry/files/dshm-compat-0.1.2.tgz
41
+ hdc file send dshm-compat-0.1.3.tgz /data/storage/el2/base/haps/entry/files/dshm-compat-0.1.3.tgz
42
42
  ```
43
43
 
44
44
  Then enter the absolute path (or `file:/...`) in the Add plugin input. This
@@ -47,7 +47,7 @@ depends on the DSHM build's local-file support; A1 is safer.
47
47
  ## B. Desktop DSH (for testing only)
48
48
 
49
49
  ```powershell
50
- & 'D:\安装\dsh-desktop\resources\runtime\cli\bin\dsh.cmd' plugin --profile desktop add 'D:\dsh\dsh-26-09-30\dshm-compat\dshm-compat-0.1.2.tgz'
50
+ & 'D:\安装\dsh-desktop\resources\runtime\cli\bin\dsh.cmd' plugin --profile desktop add 'D:\dsh\dsh-26-09-30\dshm-compat\dshm-compat-0.1.3.tgz'
51
51
  ```
52
52
 
53
53
  If the profile reports `ERR_PNPM_UNEXPECTED_VIRTUAL_STORE`, its `node_modules`
package/README.md CHANGED
@@ -5,7 +5,8 @@ them through the least invasive strategy that can work.
5
5
 
6
6
  ## Current phase
7
7
 
8
- 0.1.2 adds `compat_doctor`, rollback-safe local installs, and codeload
8
+ 0.1.3 fixes dsh-ops recipe dispatch for GitHub specs and relaxes its DSH peer
9
+ range; it also adds `compat_doctor`, rollback-safe local installs, and codeload
9
10
  fallbacks for GitHub. Phase 1 ships the analyzer, the S0/S1 converter, the
10
11
  dsh-ops recipe, guest probing/provisioning, the DSHM install-queue transport,
11
12
  and a profile-local fallback for artifacts the host queue rejects:
package/lib/convert.js CHANGED
@@ -47,7 +47,7 @@ function safeName(name) {
47
47
  */
48
48
  export async function convert(spec, options = {}) {
49
49
  const report = options.report ?? await analyze(spec, { textScan: false, signal: options.signal, registry: options.registry })
50
- if (report.resolved?.name === 'dsh-ops' && report.rule?.nativeBuild?.language === 'rust') {
50
+ if (report.package?.name === 'dsh-ops' && report.rule?.nativeBuild?.language === 'rust') {
51
51
  const { convertDshOps } = await import('./recipes/dsh-ops.js')
52
52
  return await convertDshOps(spec, {
53
53
  report,
@@ -62,7 +62,7 @@ export async function convert(spec, options = {}) {
62
62
  strategy: report.strategy,
63
63
  reasons: report.reasons,
64
64
  next: report.next,
65
- message: `strategy ${report.strategy} is not handled by the phase-1 manifest converter`,
65
+ message: `strategy ${report.strategy} needs a recipe or an external native build; see next`,
66
66
  }
67
67
  }
68
68
  if (report.signals?.hasDsh !== true) {
@@ -128,6 +128,14 @@ export async function convertDshOps(spec, options = {}) {
128
128
  const pkg = JSON.parse(pkgFile.data.toString('utf8'))
129
129
  delete pkg.os
130
130
  delete pkg.cpu
131
+ // DSHM core is a prerelease (e.g. 0.2.1-alpha.4+dshm.56). The upstream
132
+ // ^0.2.0-rc.2 range does not match 0.2.1-*, and the bundle loader would throw
133
+ // on the next boot. "workspace:*" follows the running core instead.
134
+ if (pkg.peerDependencies !== null && typeof pkg.peerDependencies === 'object' && !Array.isArray(pkg.peerDependencies)) {
135
+ if (typeof pkg.peerDependencies['@deepseek-ai/dsh'] === 'string') {
136
+ pkg.peerDependencies['@deepseek-ai/dsh'] = 'workspace:*'
137
+ }
138
+ }
131
139
  if (pkg.optionalDependencies !== null && typeof pkg.optionalDependencies === 'object') {
132
140
  delete pkg.optionalDependencies['@dsh-ops/bash-win32-x64']
133
141
  delete pkg.optionalDependencies['@dsh-ops/pwsh-win32-x64']
@@ -165,6 +173,7 @@ export async function convertDshOps(spec, options = {}) {
165
173
  'added linux-arm64 to PLATFORMS and mapped openharmony/linux-arm64 to it',
166
174
  'wrapped the file worker spawn in bash -c so dshm-vm-bash routes it to the guest',
167
175
  'removed package.json os/cpu gates and win32 optional payloads',
176
+ 'relaxed @deepseek-ai/dsh peer range to workspace:* for the DSHM core',
168
177
  'added dsh-plugin.json openharmony/linux-arm64 targets',
169
178
  `staged ${workerPath}`,
170
179
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dshm-compat",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Analyze and convert DSH plugins that cannot be installed or run on HarmonyOS DSHM.",
5
5
  "type": "module",
6
6
  "main": "index.js",