dsh-deeppilot 0.8.0 → 0.8.1
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/COMPATIBILITY.md +35 -3
- package/icon.svg +6 -7
- package/lib/index.js +24 -1
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
package/COMPATIBILITY.md
CHANGED
|
@@ -7,7 +7,7 @@ This file separates tested evidence from intended behavior. Passing unit tests d
|
|
|
7
7
|
| Component | Baseline | Evidence |
|
|
8
8
|
|---|---|---|
|
|
9
9
|
| Node.js | 22 or newer | package engine and CI |
|
|
10
|
-
| DSH CLI and Host API | the `0.1.5-rc.*` and `0.1.6-*`/`0.1.6` lines, `0.1.5-rc.1` minimum, for plugin `0.7.x` | plugin source typecheck, unit suite (
|
|
10
|
+
| DSH CLI and Host API | the `0.1.5-rc.*` and `0.1.6-*`/`0.1.6` lines, `0.1.5-rc.1` minimum, for plugin `0.7.x` | plugin source typecheck, unit suite (301 tests) and `tsdown` build run against the `0.1.5-rc.2`, `0.1.6-alpha.1` and `0.1.6-alpha.2` package families; the `deeppilot/report` contribution registered through both the `0.1.6-alpha.1` and the `0.1.6-alpha.2` `TypertRegistry`; bridge and `/phone` protocol tests |
|
|
11
11
|
| Host OS | macOS, Linux, Windows on packaged amd64/arm64 helper targets | helper checksums plus user-confirmed Windows/Linux Funnel launch and connection; local LAN validation remains part of alpha testing |
|
|
12
12
|
| Remote access | Tailscale Funnel, ports 443/8443/10000 | helper and supervisor tests |
|
|
13
13
|
| iOS | native DeepPilot client, protocol v2 | simulator build and v2 pairing/challenge evidence |
|
|
@@ -57,6 +57,24 @@ This file separates tested evidence from intended behavior. Passing unit tests d
|
|
|
57
57
|
The other `alpha.2` Typert change — a contributed schema's materialized
|
|
58
58
|
`schema` becoming a lazy `create()` factory — does not apply here: this
|
|
59
59
|
Remote contributes no schemas, which the same test asserts.
|
|
60
|
+
- DSH `0.1.7-alpha.1` reordered the Host `typertGateway.wireStream.open`
|
|
61
|
+
parameters from `(endpoint, payload, signal)` to
|
|
62
|
+
`(endpoint, payload, uplink, peer, signal)`. The reorder is not additive: a
|
|
63
|
+
3-argument call lands the `AbortSignal` in the `uplink` slot, leaves `signal`
|
|
64
|
+
undefined, and the Host fails every stream inside
|
|
65
|
+
`AbortSignal.any([signal, …])` with
|
|
66
|
+
`TypeError [ERR_INVALID_ARG_TYPE]: The "signals[0]" argument must be an
|
|
67
|
+
instance of AbortSignal`. The resident Client's Connection treats that dead
|
|
68
|
+
generation as a lost connection and prints an endless
|
|
69
|
+
`[connection] connection lost, retry #N` loop with exponential backoff while
|
|
70
|
+
the phone's approval and question round-trips stay broken.
|
|
71
|
+
`openHostStream()` in `src/dsh012-remote-interactions.ts` selects the
|
|
72
|
+
contract from the published arity (`open.length`) and passes `undefined` for
|
|
73
|
+
both `uplink` and `peer` on 0.1.7 — the documented "operator's in-process
|
|
74
|
+
carrier" case, since DeepPilot's carrier owns the Host in process and has no
|
|
75
|
+
Client-to-Host uplink. `tests/dsh012-wire-stream-contract.test.ts` pins the
|
|
76
|
+
argument binding for a 3-arity and a 5-arity Host, and asserts the signal
|
|
77
|
+
lands in each contract's declared slot.
|
|
60
78
|
- DSH `0.1.7-alpha.1` rewrote the settings subsystem: `installSection`,
|
|
61
79
|
`SettingsSectionHooks`, and the client `settingsScope` service are gone,
|
|
62
80
|
section values persist in this plugin own profile config entry, and the
|
|
@@ -91,6 +109,17 @@ This file separates tested evidence from intended behavior. Passing unit tests d
|
|
|
91
109
|
the volatile annotations on the four live fields (devDependency floor:
|
|
92
110
|
`@deepseek-ai/schemastery` 3.18.3, which is also what a profile install
|
|
93
111
|
resolves through the `^3.18.2` peer range).
|
|
112
|
+
- `icon.svg` is a vector recreation of the iOS app icon, built from the
|
|
113
|
+
private app's own Icon Composer sources (`ios/DeepPilot.icon/icon.json`
|
|
114
|
+
plus `Assets/deepseek.svg`) and the in-app composition its
|
|
115
|
+
`AppIconArtwork` applies: a white field, the DeepSeek brand glyph fitted
|
|
116
|
+
with 13% padding, and a `Color(white: 0.25)` → black vertical gradient.
|
|
117
|
+
The app's `.icon` bundle is not distributable through npm — the host
|
|
118
|
+
inlines a single relative SVG, PNG, JPEG, or WebP file under 256 KiB as a
|
|
119
|
+
`data:` URI — so the recreation is the only way to keep the two icons
|
|
120
|
+
visually identical. `tests/package-meta.test.ts` pins the host's reader
|
|
121
|
+
rules; regenerate the SVG from the app sources whenever the app icon
|
|
122
|
+
changes.
|
|
94
123
|
- DSH `0.1.6-alpha.2` made runtime plugin removal real, through both the
|
|
95
124
|
Plugin Manager and the client entry reconciler. Every long-lived resource is
|
|
96
125
|
registered through `ctx.effect`, and the settings-page stylesheet stamps
|
|
@@ -111,8 +140,11 @@ This file separates tested evidence from intended behavior. Passing unit tests d
|
|
|
111
140
|
- Intel macOS support for the embedded helper;
|
|
112
141
|
- signed/notarized helper distribution;
|
|
113
142
|
- validation against the `0.1.7-*` package line: the peer range admits
|
|
114
|
-
`0.1.7-alpha.1` and later `0.1.7` releases,
|
|
115
|
-
|
|
143
|
+
`0.1.7-alpha.1` and later `0.1.7` releases, and the `wireStream.open`
|
|
144
|
+
reorder that release introduced is adapted and pinned by
|
|
145
|
+
`tests/dsh012-wire-stream-contract.test.ts`, but the unit suite still runs
|
|
146
|
+
against the `0.1.5-rc.1`/`0.1.6-*` package families and no `0.1.7`
|
|
147
|
+
typecheck or full-suite evidence has been produced yet;
|
|
116
148
|
- repair or migration of persisted history rejected by the Host's own session
|
|
117
149
|
reader;
|
|
118
150
|
- every DSH developer-preview revision;
|
package/icon.svg
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" role="img" aria-label="DeepPilot">
|
|
2
2
|
<defs>
|
|
3
|
-
<linearGradient id="dp-
|
|
4
|
-
<stop offset="0" stop-color="#
|
|
5
|
-
<stop offset="1" stop-color="#
|
|
3
|
+
<linearGradient id="dp-glyph" x1="0" y1="-18.1112" x2="0" y2="52.2563" gradientUnits="userSpaceOnUse">
|
|
4
|
+
<stop offset="0" stop-color="#404040"/>
|
|
5
|
+
<stop offset="1" stop-color="#000000"/>
|
|
6
6
|
</linearGradient>
|
|
7
7
|
</defs>
|
|
8
|
-
<rect width="128" height="128"
|
|
9
|
-
<g transform="translate(
|
|
10
|
-
<path d="
|
|
11
|
-
<path d="M22 2 11 13"/>
|
|
8
|
+
<rect width="128" height="128" fill="#ffffff"/>
|
|
9
|
+
<g transform="translate(17.5525 17.0725) scale(3.950123)">
|
|
10
|
+
<path fill="url(#dp-glyph)" fill-rule="evenodd" d="M23.748 4.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434 1.202-.422 1.84.027 1.436.633 2.58 1.838 3.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526 5.526 0 01-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365 11.365 0 00-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055 3.055 0 01-.465.137 9.597 9.597 0 00-2.883-.102c-1.885.21-3.39 1.102-4.497 2.623C.082 8.606-.231 10.684.152 12.85c.403 2.284 1.569 4.175 3.36 5.653 1.858 1.533 3.997 2.284 6.438 2.14 1.482-.085 3.133-.284 4.994-1.86.47.234.962.327 1.78.397.63.059 1.236-.03 1.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926 1.096-1.296 2.746-2.642 3.392-7.003.05-.347.007-.565 0-.845-.004-.17.035-.237.23-.256a4.173 4.173 0 001.545-.475c1.396-.763 1.96-2.015 2.093-3.517.02-.23-.004-.467-.247-.588zM11.581 18c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696 4.696 0 011.529-.039c2.132.312 3.946 1.265 5.468 2.774.868.86 1.525 1.887 2.202 2.891.72 1.066 1.494 2.082 2.48 2.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306 0 01.415-.287.302.302 0 01.2.288.306.306 0 01-.31.307.303.303 0 01-.304-.308zm3.11 1.596c-.2.081-.399.151-.59.16a1.245 1.245 0 01-.798-.254c-.274-.23-.47-.358-.552-.758a1.73 1.73 0 01.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559 0 01-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136 1.146.016.352.144.618.408 1.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z"/>
|
|
12
11
|
</g>
|
|
13
12
|
</svg>
|
package/lib/index.js
CHANGED
|
@@ -3369,9 +3369,32 @@ function createAgentScope(ctx, identity) {
|
|
|
3369
3369
|
}
|
|
3370
3370
|
});
|
|
3371
3371
|
}
|
|
3372
|
+
/**
|
|
3373
|
+
* Arity of the Host's published `wireStream.open`. 0.1.7-alpha.1 declares
|
|
3374
|
+
* `(endpoint, payload, uplink, peer, signal)`; every earlier generation
|
|
3375
|
+
* declares `(endpoint, payload, signal)`. Both are plain arrow functions with
|
|
3376
|
+
* no default or rest parameters, so `length` is a reliable contract selector —
|
|
3377
|
+
* unlike a capability probe, it opens no trial stream. A future signature that
|
|
3378
|
+
* rest-parameterizes (reporting `0`) falls back to the 3-argument call, which
|
|
3379
|
+
* every generation through `0.1.6-*` accepts.
|
|
3380
|
+
*/
|
|
3381
|
+
function hostWireStreamArity(open) {
|
|
3382
|
+
return open.length;
|
|
3383
|
+
}
|
|
3384
|
+
/**
|
|
3385
|
+
* Open one Host logical stream on whichever `wireStream.open` contract the
|
|
3386
|
+
* running Host publishes. DeepPilot's carrier owns the Host in process and has
|
|
3387
|
+
* no Client-to-Host uplink, so the 5-argument form sends `undefined` for both
|
|
3388
|
+
* `uplink` and `peer` — the documented "operator's in-process carrier" case.
|
|
3389
|
+
*/
|
|
3390
|
+
function openHostStream(gateway, endpoint, payload, signal) {
|
|
3391
|
+
const open = gateway.wireStream.open;
|
|
3392
|
+
if (hostWireStreamArity(open) >= 5) return open(endpoint, payload, void 0, void 0, signal);
|
|
3393
|
+
return open(endpoint, payload, signal);
|
|
3394
|
+
}
|
|
3372
3395
|
function inProcessStream(gateway, endpoint, payload, signal) {
|
|
3373
3396
|
return (async function* () {
|
|
3374
|
-
yield* await gateway
|
|
3397
|
+
yield* await openHostStream(gateway, endpoint, payload, signal);
|
|
3375
3398
|
})();
|
|
3376
3399
|
}
|
|
3377
3400
|
/**
|