@ycheung5/pi-computer-use 0.1.0 → 0.1.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/README.md +5 -5
- package/assets/input-timing.cs +42 -0
- package/assets/pointer.cs +16 -4
- package/assets/text.cs +47 -17
- package/dist/browser-actions.d.ts +1 -0
- package/dist/browser-actions.js +34 -1
- package/dist/client.d.ts +1 -0
- package/dist/client.js +70 -17
- package/dist/extension.js +3 -3
- package/dist/input-timing.d.ts +24 -0
- package/dist/input-timing.js +70 -0
- package/dist/native.js +1 -0
- package/dist/pointer.d.ts +20 -0
- package/dist/pointer.js +24 -0
- package/dist/text.d.ts +20 -0
- package/dist/text.js +33 -4
- package/dist/worker.js +14 -1
- package/docs/README.md +4 -3
- package/docs/implementation-plan.md +15 -1
- package/docs/pointer.md +12 -0
- package/docs/runtime.md +1 -1
- package/docs/spec.md +71 -2
- package/docs/text.md +22 -2
- package/docs/tickets.md +8 -7
- package/docs/validation.md +55 -7
- package/package.json +1 -1
package/docs/validation.md
CHANGED
|
@@ -1,6 +1,54 @@
|
|
|
1
1
|
# Release validation
|
|
2
2
|
|
|
3
|
-
Release status: **
|
|
3
|
+
Release status: **0.1.0 published on npm, 2026-11-09; 0.1.1 preparation below**. The user published the prepared package after accepting its first-release scope. Public version/latest, maintainer identity and the downloaded registry archive checksum are independently verified. #21 and product parent #1 are complete; accepted test limitations remain in force. Automated and passive fixture results are evidence for their stated paths, not proof that all applications, physical input, displays or user acceptance work. The [spec](spec.md) defines requirements; this page maps them to runnable checks and pending evidence.
|
|
4
|
+
|
|
5
|
+
## 0.1.1 release preparation
|
|
6
|
+
|
|
7
|
+
Prepared version: **`@ycheung5/pi-computer-use@0.1.1`**, 2026-11-10. [PR #44](https://github.com/ycheung5/pi-computer-use/pull/44) is merged as `f9a64b4`; the merged integration branch is removed locally and remotely. Package and lockfile versions are updated together. npm 0.1.0 remains the published baseline until a separate successful publication; no release tag has been created by this preparation.
|
|
8
|
+
|
|
9
|
+
Release notes:
|
|
10
|
+
|
|
11
|
+
- Tap standalone Ctrl/Control, Alt/Option and Shift.
|
|
12
|
+
- Set optional `holdMs` for a keypress/chord or single mouse click, with release before the call settles.
|
|
13
|
+
- Set optional `inputDelayMs` for explicitly selected native SendInput text; omission keeps the 50 ms default and zero removes intentional inter-unit delay.
|
|
14
|
+
- Set optional `timeoutMs` on these input calls: positive overrides the execution deadline, zero disables it. When omitted, explicit hold/pacing gets a duration-aware execution budget across both request layers.
|
|
15
|
+
- Retain cancellation, emergency stop, target guards, cleanup acknowledgement and non-replay. Unsupported routes and unrepresentable durations refuse before input.
|
|
16
|
+
|
|
17
|
+
The [input acceptance receipt](#input-timing-and-modifier-tap-acceptance) owns Windows behavior evidence and its fixture limitations; it is reused without repeating physical tests. This release does not add broader keyboard/device coverage or promise that lower text delays work in every application. Existing first-release platform and Windows protection limits remain in force.
|
|
18
|
+
|
|
19
|
+
Preparation checks passed: `npm run check` reported **214 passed, one historical-reference skip** (`/tmp/pi-cu-011-check.log`); `npm run test:package` verified the **95-entry 0.1.1 archive**, package/lock/packed-version coherence, license notices, development-file exclusion and local documentation links (`/tmp/pi-cu-011-package.log`). No runtime behavior was changed during release preparation, and no desktop or model tests were repeated.
|
|
20
|
+
|
|
21
|
+
## Input timing and modifier-tap acceptance
|
|
22
|
+
|
|
23
|
+
Accepted implementation scope, 2026-11-10: specification #40 and children #41/#42/#43 on `integration/input-timing-40`. Baseline `201e845`; production corrections are in `87e1f1b`, final owned-fixture corrections in `4b63389`. This is post-release source work: npm **0.1.0 remains unchanged**, with no version bump, main-branch merge or registry publication in this run. The [spec](spec.md#input-timing-and-modifier-taps) owns the behavior; [delivery](implementation-plan.md#input-timing-delivery) and [queue](tickets.md#execution-queue) own execution/status.
|
|
24
|
+
|
|
25
|
+
Implemented: standalone generic Ctrl/Control, Alt/Option and Shift; per-call keypress/click holdMs; explicit native SendInput inputDelayMs with the 50 ms default retained; timeoutMs positive override/zero-disabled execution deadline and duration-aware omitted defaults across the input request layers. Safe whole milliseconds have no arbitrary product ceiling; invalid/derived-overflow values refuse before input. Long waits use representable cancellable intervals rather than overflowing platform timers. Unsupported methods/routes refuse before input. Per-call release, target/protection checks, independent stopping, cleanup uncertainty and non-replay remain binding. Broader input coverage and whole-task performance diagnosis remain outside this slice.
|
|
26
|
+
|
|
27
|
+
| Evidence | Observed result and scope |
|
|
28
|
+
| --- | --- |
|
|
29
|
+
| TDD and portable requests | Implementers retained red/green logs under `/tmp/keypress41-*`, `/tmp/pi-cu-text42-*` and `/tmp/mouse43-*`. Existing public Pi tool/worker peers cover advertised fields, validation/route refusal, large intervals, both request layers, explicit/disabled/derived deadlines, cancellation/EOF and uncertain cleanup. The final configured check/package results are recorded below. |
|
|
30
|
+
| Windows prerequisites and compilation | Private Windows Node 22.23.4 resolved dependencies from the exact WSL UNC integration checkout; no symlink staging. The final native timing/input helper and disposable controls fixture compiled using the installed Framework compiler. Compilation alone did not count as physical input acceptance. |
|
|
31
|
+
| Text pacing | Registered tool definitions under Windows Node entered 21 dispatched UTF-16 units with Chinese, an emoji, normalized CRLF and a literal tab. Independent owned-editor reads matched at default 50, explicit0 and 25 ms. In the c1-scoped run the observed call times were 1255.6,70.5 and661.7 ms respectively. These are single-fixture observations including call overhead, not an end-to-end/model benchmark or universal lower-delay correctness claim. |
|
|
32
|
+
| Text interruption | A 3000 ms interval with 1000 ms explicit deadline interrupted after one unit, preserved cleanup confirmation and did not replay. Deliberate owned-field focus loss stopped further text. A MAX_SAFE_INTEGER interval with timeout0 was explicitly cancelled after its first unit; settlement and OS held-state observation confirmed release before a fresh operation. |
|
|
33
|
+
| Keyboard | Final `--timing --phase=keyboard` run passed generic modifier aliases; omitted/zero holds; Tab focus changes; timed ordinary/chord keys; foreground-loss release; shorter deadline; and cancelled MAX_SAFE_INTEGER hold with timeout0. Independent fixture messages measured requested 200 ms Tab/F23/Ctrl+F24 holds at 203 ms in this run. The 1000 ms deadline interrupted a 3000 ms F24 hold at 1016 ms. Every observed released state had held0, and final health asserted exclusive control released/no held keys. |
|
|
34
|
+
| Mouse | `--case=timing` passed default click/restoration, zero hold, left/right/middle 200 ms holds, target-loss release, short deadline and cancellation with timeout0. Independent messages measured the timed buttons at 219/204/204 ms; the1000 ms deadline interrupted a 3000 ms hold at 984 ms. OS observation confirmed supported buttons released, cursor/foreground restoration was checked after normal release, and final control handback was asserted. |
|
|
35
|
+
| Reviews | Standards found duplicated browser capability refusal; spec found out-of-scope ignored timing fields on set_value. Both were fixed in 87e1f1b, with public rejection regressions. Both reviews then cleared production changes and the subsequent fixture-only corrections. No remaining findings were reported. |
|
|
36
|
+
|
|
37
|
+
Final configured verification on the integrated source passed: `npm run check` reported **214 passed, one historical-reference skip** (`/tmp/pi-cu-input-final-check.log`). This includes the corrected phase-selector CLI tests; production and fixture reviews have no remaining findings. `npm run test:package` also passed the local 95-entry archive, scoped metadata, licenses/version, development-file exclusion and documentation links (`/tmp/pi-cu-input-final-package.log`). This was package validation only; the published npm 0.1.0 archive was not replaced.
|
|
38
|
+
|
|
39
|
+
Live logs are owned-fixture evidence: `/tmp/pi-cu-input-live-text.log` (first partial run at 87e1f1b), `/tmp/pi-cu-input-live-text-rerun.log` (partial run at c1f5ad3), `/tmp/pi-cu-input-live-mouse.log` (successful mouse run, same production code), and `/tmp/pi-cu-input-live-keyboard.log` (successful keyboard-only run at 4b63389). Raw logs are temporary local artifacts; this sanitized receipt records their lasting conclusions.
|
|
40
|
+
|
|
41
|
+
Review cleanup on 2026-11-10 removed two P3 duplication findings against main: native text/key requests now share one early NUL rejection, and the worker timing tests share a private relay factory while retaining their separate assertions and fresh clients. No input policy or timing default changed. `npm run check` passed 214 tests with one historical-reference skip (`/tmp/pi-cu-input-cleanup-check.log`); the native helper compiled on Windows without desktop input. `npm run test:package` passed the 95-entry archive (`/tmp/pi-cu-input-cleanup-package.log`). Existing scoped desktop evidence was reused; no desktop tests or publication were repeated.
|
|
42
|
+
|
|
43
|
+
Two fixture failures remain recorded. First, after text cancellation retired the worker, the runner reused an observed element ID; production correctly returned STALE_ELEMENT with no new input. The fixture now observes editors afresh at explicit new-operation boundaries. Second, after an Alt tap, the WinForms message filter missed a subsequent alias key-down in native menu handling, despite confirmed release. The owned timing/text form now suppresses SC_KEYMENU solely for its event oracle; production menu handling is unchanged. The final keyboard phase observed both down/up for Alt and Option. A phase selector allowed rerunning only remaining keyboard cases. No single successful all-phase run or general Alt-menu compatibility is inferred from these composed receipts.
|
|
44
|
+
|
|
45
|
+
All desktop activity was serialized by the existing shared flock. No clipboard contents, personal documents/profiles, paid model, DSH comparison, display changes or new physical Esc demonstration were used. Existing actual Pi host/stop/display/profile evidence is reused; these live fixtures execute the Pi-registered tool definitions through their established host adapter, not a new real-model or real-Pi-CLI workflow. The acceptance concerns the changed input contract and recorded platform, not every keyboard/device/application or indefinite-duration physical endurance.
|
|
46
|
+
|
|
47
|
+
## npm publication receipt
|
|
48
|
+
|
|
49
|
+
On 2026-11-09 the user completed interactive npm publishing authentication and received `+ @ycheung5/pi-computer-use@0.1.0`, with npm stating the package was processing. The submitted archive has 92 entries and SHA-1 `3018e74362be8f5b25739b717d9b455fface1496`, matching the local archive built from source `73616b5`. The user's publication of the prepared package supplies final first-release approval; earlier accepted limitations remain in force.
|
|
50
|
+
|
|
51
|
+
Initial independent public registry checks returned no 0.1.0 version. An uncached package metadata read confirmed maintainer `ycheung5 <yatfei9@gmail.com>`, with `latest` temporarily pointing to `0.0.0-stage` and 0.1.0 absent. After the processing interval, a fresh registry read confirmed public version 0.1.0 and `latest: 0.1.0`, with maintainer `ycheung5 <yatfei9@gmail.com>`. The public tarball was downloaded independently: 347,809 bytes, SHA-1 `3018e74362be8f5b25739b717d9b455fface1496`, matching the submitted local archive. Registry integrity is `sha512-abMjRQzquBAzEzWGYu9Xac3ZQTw0tpje0hkzBekZs/jGHGk4frmoDjVIcYoZtGCbR6ZlHsI1L73NUxVvKU5m2A==`. [Published package](https://www.npmjs.com/package/@ycheung5/pi-computer-use). The transient staging state resolved without republishing, changing tags or bumping versions. All first-release delivery owners, including #21/#1, are complete with their recorded scopes. This is metadata/download verification, not a fresh registry-installed Windows workflow; existing host/functional receipts and accepted limitations remain unchanged. No runtime changes, desktop/model tests, second publication, GitHub release or Git tag were performed.
|
|
4
52
|
|
|
5
53
|
## Final release audit
|
|
6
54
|
|
|
@@ -17,11 +65,11 @@ Audit date: 2026-11-06. Baseline `89bdea3`; this audit reuses the closed capabil
|
|
|
17
65
|
| Repaired packaging gap | The manifest declared MIT but the root LICENSE was absent. The actual tarball regression first failed (`/tmp/pi-release-license-red.log`); an intermediate link check also rejected the README audit anchor before this section existed (`/tmp/pi-release-license-green.log`). The final check passed after both fixes. This audit adds the standard MIT license and repository/support metadata. No runtime code or license-policy change. |
|
|
18
66
|
| Installation instructions | Built checkout instructions retained. Prebuilt archive extraction + runtime-only dependency install + `pi install .` is documented. Installed Pi 1.4.0 source treats local files as extension resources and local directories as packages; a raw .tgz must be extracted first. Git clones run dependency installation but this package has no prepare build, so raw unbuilt GitHub-source installation remains unsupported. These are source-checked instructions, not a fresh clean-machine pass. |
|
|
19
67
|
| Known limits/failure disposition | Preserve hook-removal limits, explicit Windows activation refusals, retained text pacing, experimental installed Firefox, accepted unverified #28 cases, #6 available-scale scope and #20 recorder/capture-route scope. Earlier failures stay with their repair/collector/environment dispositions; closed owners are not reopened by old wording. |
|
|
20
|
-
| Remaining release gates | #2 is complete on the user-reported second-computer WSL success and explicit acceptance of remaining clean-environment test limitations on 2026-11-09. #
|
|
68
|
+
| Remaining release gates | #2 is complete on the user-reported second-computer WSL success and explicit acceptance of remaining clean-environment test limitations on 2026-11-09. The subsequent interactive confirmation, accepted #2 disposition and user-approved npm publication are recorded below. The first-release gates are complete with explicit limits; untested cases are not inferred passes. |
|
|
21
69
|
|
|
22
70
|
The README's stale #30/cancellation-pending statements and this page's current capability table are reconciled during the audit. Historical dated receipts remain historical. Final packaging/review receipts are recorded here. Responsiveness review reuses prior scoped evidence: warm native reads had roughly 74 ms medians at the dated lifetime-checkpoint candidate, not a current whole-agent benchmark. Explicit SendInput retains the documented 50 ms per-unit gap plus scheduling overhead; no minimum-delay or universal-latency claim is made. No new observed performance defect justifies a fresh benchmark/model programme in this audit. Clean-install provisioning responsiveness remains with #2.
|
|
23
71
|
|
|
24
|
-
Final local verification passed after the fixes: 187 tests with one historical-reference skip (`/tmp/pi-release-audit-final-check.log`), and a built 91-entry 0.1.0 archive with MIT/license notices, version coherence, development/environment-file exclusion and documentation links verified (`/tmp/pi-release-audit-final-package.log`). Both standards/spec reviews reported no unresolved findings. Root license text follows the already-declared MIT license; runtime code and dependency versions are unchanged. No Windows desktop, physical input, clipboard, personal profile, model call, tag or package publication was used for this audit. The agent-owned audit checkpoint is complete. Subsequent #2 disposition
|
|
72
|
+
Final local verification passed after the fixes: 187 tests with one historical-reference skip (`/tmp/pi-release-audit-final-check.log`), and a built 91-entry 0.1.0 archive with MIT/license notices, version coherence, development/environment-file exclusion and documentation links verified (`/tmp/pi-release-audit-final-package.log`). Both standards/spec reviews reported no unresolved findings. Root license text follows the already-declared MIT license; runtime code and dependency versions are unchanged. No Windows desktop, physical input, clipboard, personal profile, model call, tag or package publication was used for this audit. The agent-owned audit checkpoint is complete. Subsequent #2 disposition, interactive acceptance and verified npm publication are recorded in this page; #21/#1 are now complete.
|
|
25
73
|
|
|
26
74
|
Current scope, 2026-11-02: [ADR 0004](adr/0004-pi-first-acceptance.md) makes Pi functionality the release criterion. DSH manual/host/model runs, credentials and parity benchmarks are removed. Dated DSH/paired reports and earlier “remaining comparison” statements below are historical evidence, not current instructions or blockers; the [Pi-first queue](tickets.md#execution-queue) owns unfinished work. Reference-backed scripts are optional historical developer utilities, not required checks. Do not run manual DSH comparisons unless the user explicitly restores that scope.
|
|
27
75
|
|
|
@@ -29,11 +77,11 @@ The next validation cycle follows the [current implementation phases](implementa
|
|
|
29
77
|
|
|
30
78
|
## First-release preparation
|
|
31
79
|
|
|
32
|
-
|
|
80
|
+
Prepared version: **`@ycheung5/pi-computer-use@0.1.0`**. This section records pre-publication preparation; the subsequent submission/availability state is in the [publication receipt](#npm-publication-receipt). No release tag was created by that preparation. All 25 tools are implemented, with named Windows/WSL2, native/browser, control/handback and agent-workflow receipts in the [capability matrix](#capability-coverage). Installation #2 is complete for its accepted scope and the user confirmed interactive settings/editor/reload. This preparation changes documentation only; prior audit code checks retain their source scope.
|
|
33
81
|
|
|
34
82
|
The user selected the personal npm scope after discovering the unscoped name belongs to another maintainer. Package/lock names are updated together, public scoped publishing is explicit, and author metadata is `ycheung5 <yatfei9@gmail.com>`. npm sets registry maintainer ownership from the publisher account, independently of the author field. No account email/ownership change or registry publication is performed by this preparation. The scoped tarball name is `ycheung5-pi-computer-use-0.1.0.tgz`; earlier unscoped artifact receipts remain historical. The packaged Pi-host runner now resolves the installed package by its manifest name, including the scope. Scoped-package verification passed: `npm run lint` completed with existing warnings/information, `npm run test:package` built and verified all 91 entries including scoped source/lock/packed-name coherence, author metadata and public access; `npm publish ./ycheung5-pi-computer-use-0.1.0.tgz --dry-run` succeeded for the public registry. No registry publication occurred, and the live Pi-host runner was not rerun for this metadata/path adjustment.
|
|
35
83
|
|
|
36
|
-
The release README now introduces capabilities, example tasks, setup, control and tested limits, with an original static SVG banner and CI/license/platform badges. The configured artifact check passed with 92 entries, including the banner and resolved local documentation links. SVG XML parsed successfully; no runtime behavior, desktop test or model call changed.
|
|
84
|
+
The release README now introduces capabilities, example tasks, setup, control and tested limits, with an original static SVG banner and CI/license/platform badges. The configured artifact check passed with 92 entries, including the banner and resolved local documentation links. SVG XML parsed successfully; no runtime behavior, desktop test or model call changed. The first publish attempt was blocked by account publishing authentication; the subsequent accepted submission is recorded in the [publication receipt](#npm-publication-receipt).
|
|
37
85
|
|
|
38
86
|
Proposed release notes:
|
|
39
87
|
|
|
@@ -46,7 +94,7 @@ Carry these limits into the public release notes: Windows can silently remove lo
|
|
|
46
94
|
|
|
47
95
|
Preparation validation on 2026-11-09: `npm run test:package` passed the 91-entry 0.1.0 archive, license/notices, version, development-file exclusion and documentation links. The sandboxed npm pack child first exited without diagnostics (code 226); the same configured check passed with permitted execution outside that sandbox. No source repair was needed. Prior runtime/portable tests were reused because this preparation changes documentation only.
|
|
48
96
|
|
|
49
|
-
|
|
97
|
+
At the preparation checkpoint, final aggregate approval and publication remained under #21 and no registry or GitHub release had been created. The subsequent user-approved npm submission is recorded above; #21/#1 close after registry availability is verified.
|
|
50
98
|
|
|
51
99
|
## Second-computer installation report
|
|
52
100
|
|
|
@@ -58,7 +106,7 @@ This report supplies WSL installation/use evidence for #2. A fresh disposable na
|
|
|
58
106
|
|
|
59
107
|
On 2026-11-09 the user confirmed all four requested checks passed in their Pi session: `/computer-settings show` displayed settings without errors; `/computer-settings edit` opened and cancelled with Esc; reopening and saving unchanged with Enter succeeded; `/reload` followed by `show` retained the settings without extension errors. This is human-reported acceptance of the terminal settings display/editor/reload path, not an independently captured transcript or a separate tool-result renderer test. The session version and host were not separately collected in this confirmation.
|
|
60
108
|
|
|
61
|
-
No runtime changes, desktop input, paid-model runs or repeated capability tests were performed by the coding agent for this receipt. Reuse the accepted #35/#36 supported workflows.
|
|
109
|
+
No runtime changes, desktop input, paid-model runs or repeated capability tests were performed by the coding agent for this receipt. Reuse the accepted #35/#36 supported workflows. The subsequent user-approved publication and remaining registry availability check are recorded above; #2 is subsequently closed with the accepted limitations in the second-computer receipt.
|
|
62
110
|
|
|
63
111
|
## Design cleanup checkpoint
|
|
64
112
|
|