@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.
Files changed (30) hide show
  1. package/CHANGELOG.md +79 -1
  2. package/dist/harness.bundle +359 -175
  3. package/dist/prebuilds-manifest.json +8 -0
  4. package/dist-lib/lib/capabilities/completion.d.ts +2 -1
  5. package/dist-lib/lib/capabilities/completion.js +5 -6
  6. package/dist-lib/lib/tools/exec/adapters/adapter.d.ts +3 -1
  7. package/dist-lib/lib/tools/exec/adapters/python/guarded-fetch.d.ts +5 -0
  8. package/dist-lib/lib/tools/exec/adapters/python/guarded-fetch.js +28 -2
  9. package/dist-lib/lib/tools/exec/adapters/python/interrupt-timer.d.ts +5 -0
  10. package/dist-lib/lib/tools/exec/adapters/python/interrupt-timer.js +29 -0
  11. package/dist-lib/lib/tools/exec/adapters/python/named-hosts.d.ts +2 -0
  12. package/dist-lib/lib/tools/exec/adapters/python/named-hosts.js +15 -0
  13. package/dist-lib/lib/tools/exec/adapters/python/pyodide.d.ts +3 -1
  14. package/dist-lib/lib/tools/exec/adapters/python/pyodide.js +41 -7
  15. package/dist-lib/lib/tools/exec/adapters/python/python-adapter.js +9 -3
  16. package/dist-lib/lib/tools/exec/adapters/python/run-session.d.ts +2 -0
  17. package/dist-lib/lib/tools/exec/adapters/python/run-session.js +19 -11
  18. package/dist-lib/lib/tools/exec/adapters/python/worker/client.d.ts +2 -1
  19. package/dist-lib/lib/tools/exec/adapters/python/worker/client.js +16 -3
  20. package/dist-lib/lib/tools/exec/adapters/python/worker/entry.js +15 -2
  21. package/dist-lib/lib/tools/exec/adapters/python/worker/protocol.d.ts +6 -0
  22. package/dist-lib/lib/tools/exec/adapters/python/worker/protocol.js +6 -2
  23. package/dist-lib/lib/tools/exec/adapters/python/worker/spawn-bare.d.ts +1 -0
  24. package/dist-lib/lib/tools/exec/adapters/python/worker/spawn-bare.js +8 -0
  25. package/dist-lib/lib/tools/exec/adapters/python/worker/spawn-node.d.ts +1 -0
  26. package/dist-lib/lib/tools/exec/adapters/python/worker/spawn-node.js +8 -0
  27. package/dist-lib/lib/tools/exec.js +36 -3
  28. package/package.json +16 -7
  29. package/dist-lib/lib/capabilities/vision-history.d.ts +0 -3
  30. 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.0...HEAD
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