Repository navigation
Conversation
a654879 to
52b7063
Compare
0.1.3 — verification (2026-11-04)Environment: ZCode CLI 0.17.1, macOS 27.0.1 arm64, Node 24.15.0. Installed from a local marketplace → Repo-side for the same tree:
What changed in this revision: only deletions — three internal phase reports under Not covered here: a live Electron capture run. That needs a GUI session and real screen content; it is exercised by |
|
✅ Internal validation passed. A ZCode maintainer will review the change next; after acceptance, release checks run separately and this PR is closed automatically. |
52b7063 to
67510ec
Compare
Third round — review & simplification (2026-11-05)No new features. The most important outcome is that the plugin description was selling the smaller half of the product: it described a demo recorder, while the daemon (port leases, isolated sessions, saved login profiles, 24 session tools) was not mentioned at all. The Codex manifest had it right; the ZCode one did not. Both now describe the runtime and the recorder.
Documentation consolidated (nothing user-facing was dropped):
One factual correction inside the compat doc: it claimed the app sets a Verification: 232 tests pass (I re-ran the suite myself), Payload: re-synced, 11 files, verified blob-by-blob against Not verified this round: headed window modes and a live Electron capture — the change touched documentation, two dead exports and two orphan fixtures only. |
|
✅ Internal validation passed. A ZCode maintainer will review the change next; after acceptance, release checks run separately and this PR is closed automatically. |
Real-Electron verification of
|
| Step | Result |
|---|---|
GET /v1/tools on the lease |
24 tools, including network_capture and responses |
POST …/tools/network_capture {"url_prefixes":["http://127.0.0.1:4799/api/"]} |
subscribed, captured: 0 |
POST …/tools/navigate to the fixture page |
page loaded, the fetched JSON rendered in the DOM |
POST …/tools/responses |
2 records: the HTML document with body_error: "not_subscribed", and the XHR with the full body {"ok": true, "path": "/api/data?tag=boot", "n": 42} |
The documented ordering constraint holds in practice. A second session navigated first and subscribed afterwards: responses returned [] — the page-load requests were never subscribed. Navigating again after the subscription produced the document (not_subscribed) plus the XHR with its body.
Failure path also holds. Recording against a page that cannot be reached wrote status: "failed" evidence (e2e.evidence.json) instead of leaving an empty directory — the 0.1.4 fix, re-confirmed on 0.1.5.
A real 8 s take was also produced: 1920×1080, 30 fps, 240 frames, H.264, 0 % black frames, overlay visible in the video, and the frame at 2.5 s is the actual fixture UI with the filtered row highlighted.
One environment note for anyone reproducing this: if ELECTRON_RUN_AS_NODE=1 is set in the shell, every Electron binary runs as plain Node and exits 0 with no output. Unset it (env -u ELECTRON_RUN_AS_NODE …) or nothing appears to happen.
Still not verified: headed/visible window modes (all runs above were headless and took no focus).
67510ec to
6a191cf
Compare
|
Payload refreshed to That file is part of the ZCode payload ( No change to the skill, |
6a191cf to
5dcf563
Compare
|
Resubmitted at 0.1.6 — head 0.1.6 is a full review pass: 33 fixes, each reproduced before it was fixed. Tests 232 → 254. The ones a reviewer can check without a browser:
Payload and text changes:
Kept from the earlier round: the skill is install/config/troubleshooting only (no source copy in the payload); Not covered: this payload round ran no Electron itself. The 0.1.6 fixes were verified in the main repo during the fix round — |
5dcf563 to
b34714a
Compare
|
Re-pushed this branch as 1. The PR now follows 2. The entry named the repo-root Re-verified against the branch itself (not a local checkout):
Request: the earlier 中文摘要:本轮只补元数据与载荷完整性 —— 恢复了模板要求的插件类型声明与自查清单、标题加上 |
b34714a to
e8217e7
Compare
|
Update: payload bumped to 0.1.11 (head |
Plugin type (required) / 插件类型(必填)
Affected plugin name(s) / 涉及的插件名称:
malo-browserWhat / 改动内容
EN — Adds
malo-browser, which is two things in one Electron app: a scripted browser runtime for agents, and a demo recorder.network_capture/responses).network_capturesubscribes a session to XHR/fetch responses matching URL prefixes and returns bodies by sequence number. Subscribe before navigating: requests sent earlier are missed, and response bodies never reach logs, evidence or run reports.The 0.1.6 review pass fixed 33 reproduced defects; the security-relevant ones are listed under testing below.
中文 — 新增
malo-browser:一个 Electron 应用同时充当 agent 浏览器运行时与演示录制器。守护进程按端口发放租约,支持多 agent 并发、隔离且可复用登录态的 session(24 个工具,含网络抓包);场景化舞台可无头录制 1920×1080@30 演示并产出证据 JSON。0.1.6 修掉 33 个已复现缺陷。Visible behavior and testing / 可见行为与测试
npx vitest run→ 254 passed / 22 files (Node 24.15.0).status: failedevidence record.${env:NAME}is limited toSCENE_*(a third-party scene could otherwise interpolate anyprocess.envvalue into a URL);demo://validates the scene id instead of using the URL segment as a containment root; the stage blocks server-side redirects as well as navigations; a password input is rejected as anasserttarget.Not covered by this round / 本轮未覆盖:
mac dir); Windows and Linux were not run. OOPIF / Service Worker capture is out of scope by design.Version and marketplace registration / 版本与市场注册
external_plugins/malo-browser/(15 files, 135 KiB), manifest andmarketplace.jsonentry both at 0.1.6.developer-tools; icon added at the repo-root path the entry uses (assets/malo-browser/icon.png, 512×512).description_i18ncarriesenandzh-CN, identical in both files; the description now covers the agent runtime, not only the recorder.Dependencies, network, permissions, side effects / 依赖、网络、权限与副作用
engines),git, and an Electron/Chromium runtime;ffmpeg/ffprobefor the recording checks.SCENE_*environment variables for scene interpolation and nothing else.Licensing / provenance / 许可与来源
LICENSEships in the plugin directory); code written for this submission.Self-check / 自查清单
external_plugins/malo-browser/; existing fixes retain ownership / 插件名唯一且 kebab-case,外部新增插件位于external_plugins/malo-browser/,已有插件修复保留原归属categoryis set independently of publisher ownership / 用途分类category已填写,与维护归属分开:developer-toolsversionbumped in BOTHplugin.jsonandmarketplace.json(artifacts are immutable) /plugin.json与marketplace.json两处版本号已同步升级:0.1.6README.md(EN) andREADME_CN.md(中文) both updated and equivalent / 中英文 README 均已更新且语义一致description_i18nhas bothenandzh-CN/description_i18n包含en与zh-CNpython3 scripts/validate.pypasses on this branch, and the plugin artifact was built through the samebuild_zip()code path CI uses (size and sha256 in the comment below). The fullpython3 scripts/build_dist.pyneeds the repo's UI-pluginpnpm buildand fails identically on upstreammain(excalidraw: incomplete build), so CI runs it here — see the note above. / 本地validate.py通过,本插件产物用 CI 同一条build_zip()路径打出(体积与 sha256 见下方评论);完整build_dist.py依赖仓库自带 UI 插件的pnpm build,在main上同样失败,交由 CI 执行