@qvac/harness 0.3.1 → 0.3.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 +79 -1
- package/dist/harness.bundle +359 -175
- package/dist/prebuilds-manifest.json +8 -0
- package/dist-lib/lib/capabilities/completion.d.ts +2 -1
- package/dist-lib/lib/capabilities/completion.js +5 -6
- package/dist-lib/lib/tools/exec/adapters/adapter.d.ts +3 -1
- package/dist-lib/lib/tools/exec/adapters/python/guarded-fetch.d.ts +5 -0
- package/dist-lib/lib/tools/exec/adapters/python/guarded-fetch.js +28 -2
- package/dist-lib/lib/tools/exec/adapters/python/interrupt-timer.d.ts +5 -0
- package/dist-lib/lib/tools/exec/adapters/python/interrupt-timer.js +29 -0
- package/dist-lib/lib/tools/exec/adapters/python/named-hosts.d.ts +2 -0
- package/dist-lib/lib/tools/exec/adapters/python/named-hosts.js +15 -0
- package/dist-lib/lib/tools/exec/adapters/python/pyodide.d.ts +3 -1
- package/dist-lib/lib/tools/exec/adapters/python/pyodide.js +41 -7
- package/dist-lib/lib/tools/exec/adapters/python/python-adapter.js +9 -3
- package/dist-lib/lib/tools/exec/adapters/python/run-session.d.ts +2 -0
- package/dist-lib/lib/tools/exec/adapters/python/run-session.js +19 -11
- package/dist-lib/lib/tools/exec/adapters/python/worker/client.d.ts +2 -1
- package/dist-lib/lib/tools/exec/adapters/python/worker/client.js +16 -3
- package/dist-lib/lib/tools/exec/adapters/python/worker/entry.js +15 -2
- package/dist-lib/lib/tools/exec/adapters/python/worker/protocol.d.ts +6 -0
- package/dist-lib/lib/tools/exec/adapters/python/worker/protocol.js +6 -2
- package/dist-lib/lib/tools/exec/adapters/python/worker/spawn-bare.d.ts +1 -0
- package/dist-lib/lib/tools/exec/adapters/python/worker/spawn-bare.js +8 -0
- package/dist-lib/lib/tools/exec/adapters/python/worker/spawn-node.d.ts +1 -0
- package/dist-lib/lib/tools/exec/adapters/python/worker/spawn-node.js +8 -0
- package/dist-lib/lib/tools/exec.js +36 -3
- package/package.json +16 -7
- package/dist-lib/lib/capabilities/vision-history.d.ts +0 -3
- package/dist-lib/lib/capabilities/vision-history.js +0 -21
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,82 @@ While the major version is `0`, a breaking change bumps the minor version.
|
|
|
8
8
|
|
|
9
9
|
## [Unreleased]
|
|
10
10
|
|
|
11
|
+
## [0.3.3] - 2026-09-24
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- `@qvac/sdk` 0.20.0. Some addons now ship their prebuilds as per-platform
|
|
16
|
+
packages (`@qvac/<addon>-<os>-<cpu>`, e.g. `audiogen-ggml` 0.4, `tts-ggml`
|
|
17
|
+
0.9), and `@qvac/model-fit` and `@qvac/fabric` join the native graph. A host
|
|
18
|
+
that bundles the harness resolves prebuilds through each addon's
|
|
19
|
+
`#host-addon` map, defers the new addons, and exempts the platform packages
|
|
20
|
+
from any install age gate. (#85)
|
|
21
|
+
- `@qvac/skills` 0.1.8: the diagrams skill carries every recipe inline, so a
|
|
22
|
+
2B no longer loops on a second `skill` load for a reference file it cannot
|
|
23
|
+
name (QVAC-24436, QVAC-24502); the excel skill routes a chat image to create,
|
|
24
|
+
not edit; the Google OAuth routes drop the loopback port. (#115)
|
|
25
|
+
- A user message with several images reaches the SDK as one turn again. The
|
|
26
|
+
per-image split added for QVAC-24156 is gone: SDK 0.20 carries the upstream
|
|
27
|
+
mtmd fix (llama.cpp #27348), so equal-size still images no longer merge as
|
|
28
|
+
video frames and abort the encode. `<key>-vision-history-v1` cache
|
|
29
|
+
directories left by the split are no longer read; clearing all caches
|
|
30
|
+
removes them. (#116)
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- Retrying or regenerating in a chat that held a multi-image message could
|
|
35
|
+
reuse a stale cached prefix, because the split kept that chat's cache under a
|
|
36
|
+
key the host never deletes. (#116)
|
|
37
|
+
- `@qvac/skills` 0.1.9: the Asana skill's first setup step names the Asana MCP
|
|
38
|
+
app to connect. (#118)
|
|
39
|
+
|
|
40
|
+
## [0.3.2] - 2026-09-23
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
|
|
44
|
+
- A networked python run's approval prompt lists every host its source names in
|
|
45
|
+
a URL, or says it names none. On an approved run those hosts (and their `www.`
|
|
46
|
+
form) are reached without asking. Any other host is asked about through
|
|
47
|
+
`askUser` before it is resolved, and silence past a minute counts as a no. A
|
|
48
|
+
host that does not wire `askUser` refuses every unnamed host. (#109)
|
|
49
|
+
|
|
50
|
+
### Fixed
|
|
51
|
+
|
|
52
|
+
- A python call reached the network whenever the runtime allowed it, so an
|
|
53
|
+
auto-run read call, such as a document build that loads an image from a URL,
|
|
54
|
+
could reach the web without anyone approving it. The network now opens only to
|
|
55
|
+
a call a person approved or that skip-all allowed. (#108)
|
|
56
|
+
- A timed-out python run on a host with no worker thread spun forever. It is now
|
|
57
|
+
interrupted at the deadline. (#104)
|
|
58
|
+
- A timed-out python run on the worker could miss its SIGINT, which killed the
|
|
59
|
+
worker along with the interpreter's state. The interrupt is resent until the
|
|
60
|
+
run settles. (#112)
|
|
61
|
+
- A python run that failed partway through a save attached the half-written
|
|
62
|
+
file. A non-zero exit now attaches nothing and reports every declared output in
|
|
63
|
+
`missingOutputs`. (#110)
|
|
64
|
+
|
|
65
|
+
## [0.3.1] - 2026-09-23
|
|
66
|
+
|
|
67
|
+
### Added
|
|
68
|
+
|
|
69
|
+
- Python in `exec` reaches the network on Bare: `urllib`, `http.client` and
|
|
70
|
+
`requests` go through the host's guarded fetch. (#94)
|
|
71
|
+
- `SkillOAuthConfig.verify`: an optional probe a skill manifest declares, so a
|
|
72
|
+
host can check a fresh token before saving it. It is carried over the wire.
|
|
73
|
+
(#105)
|
|
74
|
+
- A skill operation may name `response.decode` to turn a provider response into
|
|
75
|
+
a compact shape, starting with `gmail-message`. (#69)
|
|
76
|
+
|
|
77
|
+
### Fixed
|
|
78
|
+
|
|
79
|
+
- A malformed `<tool_call>` left its JSON arguments in the reply. The whole span
|
|
80
|
+
is now stripped. (#100)
|
|
81
|
+
- A misspelt, placeholder or repeated `skill` load returned an error the model
|
|
82
|
+
retried. It now resolves to the file that was meant, or to the already-loaded
|
|
83
|
+
body. (#101)
|
|
84
|
+
- When the model reached for `pip` or a video tool on the shell path, the
|
|
85
|
+
redirect it got now names the call that works. (#71)
|
|
86
|
+
|
|
11
87
|
## [0.3.0] - 2026-09-23
|
|
12
88
|
|
|
13
89
|
### Added
|
|
@@ -193,7 +269,9 @@ Tagged but never published to npm; these changes first shipped in 0.2.12.
|
|
|
193
269
|
and the hash-pinned Python wheels), and `prebuilds-manifest.json` naming the
|
|
194
270
|
native addons it defers (#13, #15)
|
|
195
271
|
|
|
196
|
-
[Unreleased]: https://github.com/tetherto/qvac-harness/compare/v0.3.
|
|
272
|
+
[Unreleased]: https://github.com/tetherto/qvac-harness/compare/v0.3.2...HEAD
|
|
273
|
+
[0.3.2]: https://github.com/tetherto/qvac-harness/compare/v0.3.1...v0.3.2
|
|
274
|
+
[0.3.1]: https://github.com/tetherto/qvac-harness/compare/v0.3.0...v0.3.1
|
|
197
275
|
[0.3.0]: https://github.com/tetherto/qvac-harness/compare/v0.2.12...v0.3.0
|
|
198
276
|
[0.2.12]: https://github.com/tetherto/qvac-harness/compare/v0.2.11...v0.2.12
|
|
199
277
|
[0.2.11]: https://github.com/tetherto/qvac-harness/compare/v0.2.10...v0.2.11
|