Skip to content

vncode 0.1.1 - one small front door - #5

Merged
vecnode merged 5 commits into
mainfrom
release/0.1.1
Oct 18, 2026
Merged

vecnode merged 5 commits into
mainfrom
release/0.1.1

Conversation

@vecnode

@vecnode vecnode commented Oct 18, 2026

Copy link
Copy Markdown
Owner

vncode 0.1.1 - one small front door

The panel and its web view are gone. vncode is a ~0.5 MB console program that installs the pack, takes the key, and runs scripts/run-web.* - the same launcher a person double-clicks. The web half still runs on its own.

Measured

before after
vncode.exe (release) 15.51 MB 0.50 MB
crates 5 3
dependencies 10 (wry, eframe, egui, wgpu, winit, accesskit, ...) 2 (serde_json, rpassword)
release folder 336.7 MB none

Removing wry alone saved 0.3 MB: the weight was the window, not the engine - so both were removed.

Commits

  1. app - deletes vn-shell-pane (wry/WebView2/WKWebView/WebKitGTK), vn-shell-egui (eframe/egui/wgpu/winit) and vn-shell-paths, plus ten modules. -Mode embed fails by name. check-shell.mjs is rewritten to drive start against stub scripts, and it caught a real bug: run-web.bat -Help started a harness (only -h/--help/?/ were handled).
  2. ci - ci.yml (clippy -D warnings, tests, release build, 6 MB ceiling, smoke) and release.yml (gate -> draft -> three OSes -> checksums -> publish), with the node/JS half as a separate vncode-web artefact.
  3. docs - every page rewritten for the controller; the README's Run section carries the commands and the "harness drawn inside the window" section is gone.

Checks run

cargo clippy --workspace --all-targets --locked -- -D warnings   exit 0
cargo test --workspace --locked                                  136 pass
cargo build --release --locked -p vn-shell                       0.50 MB, vncode 0.1.1
node scripts/checks/check-shell.mjs                               OK
node scripts/checks/check-scripts.mjs                             OK
node scripts/checks/check-no-secrets.mjs                          OK
node scripts/checks/check-node-routes.mjs                         all passed

Release 0.1.1 will publish

  • vncode-0.1.1-windows-x86_64.zip - binary + README + LICENSE
  • vncode-0.1.1-linux-x86_64.tar.gz - ditto
  • vncode-0.1.1-macos-aarch64.tar.gz - ditto
  • vncode-web-0.1.1.tar.gz - the pack, the launchers, the pin and the docs (one file, all OSes)
  • SHA256SUMS.txt - recomputed from the uploaded assets

The panel and the pane were 15.1 MB of a 15.5 MB binary, and removing wry alone
saved 0.3 MB: the weight was the window, not the engine. Both are gone.

vncode is now a ~0.5 MB console program with five verbs (start, install,
uninstall, status, key). It decides the root and the harness home, writes the key,
runs scripts/setup/install.* when that profile lacks the pack, and then runs
scripts/run-web.* in the foreground - the same launcher a person double-clicks,
with a composed environment and -DshHome.

Deleted: crates vn-shell-pane (wry/WebView2/WKWebView/WebKitGTK), vn-shell-egui
(eframe/egui/wgpu/winit) and vn-shell-paths, plus core::{pane, windowstate,
firstrun, adopt, appprefs, browser, status, urlpolicy} and runtime::{view, adopt}.
-Mode embed now fails by name. Dependencies: serde_json and rpassword.

check-shell.mjs is rewritten: it drives start against stub scripts in a throwaway
tree, so the bridge is proved without starting node or opening a tab. It also
caught a real bug - run-web.bat documented -Help but only handled -h/--help/?/.
ci.yml: clippy with warnings denied, the workspace tests, a release build, a 6 MB
size ceiling and a smoke run - one OS on a push to main, all three on a pull
request, the schedule, and release.yml, which calls it as its gate.

release.yml: gate -> draft -> windows-latest / ubuntu-22.04 / macos-latest, each
packaging its own binary, plus ONE vncode-web artefact for the node/JS half (the
same bytes on every platform), SHA256SUMS recomputed from what was actually
uploaded, then the draft is published.

check-scripts.mjs asserted 'the CI must stay deleted'. Inverted: it now requires
both workflows, workflow_call, the three OS names and the separate web artefact.
AGENTS (rules 1, 4, 5, 8 and the layout), ARCHITECTURE, SECURITY ('there is no
embedded engine', with the measured History/Favicons finding kept as the reason),
and docs/{INSTALL,BUILD,DEPLOY,RELEASE,PATHS,COMPATIBILITY} now describe what
ships: one ~0.5 MB binary per OS, the web half on its own, one tag that publishes
both. PLAN-egui-shell.md is a superseded stub so existing links resolve;
PLAN-controller.md is the plan and its measurements.

README: the Run section names the app and the browser-only path and carries the
commands; the 'Testing the compiled release, with the harness drawn inside the
window' section is gone with the window.
Measured: the first pull request produced a startup_failure in 0 s. The repo's
Actions policy is allowed_actions=local_only, so actions/checkout and every
marketplace action are refused before a job starts.

Rather than ask for the policy to be relaxed, both workflows now do the work with
the tools the runner images carry: git init/fetch/checkout by sha (or the PR merge
ref), the preinstalled rustc/cargo/clippy, node, and gh for the release. The
workflow_call gate is a local reference, which the policy allows.

Also fixes a YAML error the parser caught - a step name with a colon in it.
…a failure

The first real run failed all three legs on the same line: vncode exits 1 to
refuse -Mode embed, and with 'set -o pipefail' the pipeline reports that 1 even
when grep -q matched. Captured first, then matched.
@vecnode
vecnode merged commit ee58ee0 into main Oct 18, 2026
5 checks passed
@vecnode
vecnode deleted the release/0.1.1 branch October 18, 2026 19:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant