stackbite 0.5.27 → 0.5.29

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 CHANGED
@@ -1,146 +1,146 @@
1
- # Stackbite through npm and npx
2
-
3
- Work Stack organizes the work. Stackbite gets it moving.
4
-
5
- Node.js 20 or newer is required. The portable runtime is available for Windows x64
6
- and Linux x64 with glibc 2.39 or newer; macOS, ARM and musl/Alpine builds are not supplied yet.
7
- Python installation and compilation are unnecessary. Archive extraction requires
8
- `tar` (included in current Windows and common Linux distributions).
9
-
10
- ## Install without an account
11
-
12
- Choose one method. For a single run, use the public npm package:
13
-
14
- ```sh
15
- npx --yes stackbite
16
- ```
17
-
18
- For a persistent command, install it globally, prepare the runtime, then launch:
19
-
20
- ```sh
21
- npm install --global stackbite
22
- stackbite setup
23
- stackbite
24
- ```
25
-
26
- Global installation installs the small launcher without a postinstall download.
27
- `stackbite setup` downloads and fully validates its pinned runtime without starting
28
- the app or backend. It prints short stages to stderr. If setup is omitted, the
29
- first launch prepares the runtime with the same stages. Cached launches remain
30
- quiet and fully validate the runtime every time. Running both installation methods
31
- is unnecessary.
32
-
33
- The same preparation command works through npx:
34
-
35
- ```sh
36
- npx --yes stackbite setup
37
- ```
38
-
39
- Check a prepared runtime offline with `stackbite setup --check`. The launcher
40
- checks all pinned file hashes, identity, inventory and link boundaries, without
41
- downloading, extracting, writing cache files, or starting the app/backend. It exits
42
- with status 0 when valid and status 1 when absent or invalid; an absent cache needs
43
- `stackbite setup`. Only `setup` and `setup --check` are accepted setup forms.
44
- The launcher check is read-only; npx itself may install its npm package before
45
- invoking it, so use the installed command for an entirely offline check.
46
-
47
- Binary caches use `%LOCALAPPDATA%\Stackbite\cache` on Windows and
48
- `${XDG_CACHE_HOME:-~/.cache}/stackbite` on Linux. `LOCALAPPDATA`, `XDG_CACHE_HOME`
49
- and `HOME` overrides retain their normal behavior. These caches are separate from
50
- application state. Interrupted preparation removes only its own temporary staging
51
- directory and can be retried. An invalid existing runtime is reported and left in
52
- place; setup does not delete or overwrite it.
53
-
54
- Update a registry installation with `npm install --global stackbite@latest`.
55
-
56
- ## Direct GitHub package
57
-
58
- Run the package attached to the verified GitHub release:
59
-
60
- ```sh
61
- npx --yes https://github.com/Shinick-Han/stackbite/releases/download/v0.5.27/stackbite-0.5.27.tgz
62
- ```
63
-
64
- Arguments go after the package URL, for example `--version` or `--status`. For a
65
- persistent command, install that same package globally:
66
-
67
- ```sh
68
- npm install --global https://github.com/Shinick-Han/stackbite/releases/download/v0.5.27/stackbite-0.5.27.tgz
69
- stackbite setup
70
- stackbite
71
- ```
72
-
73
- The core source repository remains private at `shinick-dev/stackbite`. The separate
74
- public `Shinick-Han/stackbite` repository distributes only this thin launcher and
75
- verified compiled runtime releases; installers need no GitHub or npm login.
76
- Registry-free distribution does not require publishing rights on npm.
77
- The small JavaScript package downloads the
78
- exact pinned native release on first execution, verifies its archive and file
79
- checksums and product identity, then reuses a persistent binary cache. There is no
80
- postinstall download or provider installation. An offline cached launch is possible;
81
- the first launch needs access to GitHub release downloads.
82
-
83
- For a GitHub URL installation, install the package URL from the newer release.
84
- Each npm package pins one native release; the portable app's own `stackbite update`
85
- does not change the npm package version.
86
-
87
- ## Existing data and processes
88
-
89
- `STACKBITE_STATE_DIR` is the explicit state override. The bundled native runtime
90
- owns state discovery and migration for both npm and direct launches. It reuses
91
- existing configured state and keeps live databases, authentication and records
92
- in place. New state uses `%LOCALAPPDATA%\Stackbite\state` or
93
- `${XDG_STATE_HOME:-~/.local/state}/stackbite`.
94
- Rooms, Seats, authentication, provider configuration, journals and Work Stack
95
- contracts are not renamed or migrated. Binary cache data is separate from this
96
- state. Installing or launching the npm package does not stop an existing backend.
97
- Check the connected server's capabilities before using newly added runtime features.
98
-
99
- For app commands, the launcher inherits terminal input/output and passes CLI
100
- arguments directly to the native app. Its `setup` command only prepares/checks the
101
- runtime. It does not insert a second screen renderer or an agent provider.
102
- Global npm installation creates only the `stackbite` command; it does not claim an
103
- external `helm` command or replace independent Kubernetes tooling.
104
-
105
- ## Maintainer release steps
106
-
107
- Measure bounded fake runtime preparation and warm verification without network or
108
- app processes:
109
-
110
- ```sh
111
- node packaging/npm/test/measure-setup.js
112
- ```
113
-
114
- The measurement reports fixture sizes and each preparation stage plus warm check
115
- and launch validation costs. It uses disposable cache data and an inert child
116
- stub; its timings are not measurements of released native bundles or providers.
117
-
118
- Build and verify both native platform archives first. Prepare the pinned manifest
119
- from their exact extracted bundles and archive bytes:
120
-
121
- ```sh
122
- python scripts/prepare_npm_release.py --version 0.5.27
123
- npm test
124
- npm pack
125
- ```
126
-
127
- Keep `package.json` and `packaging/npm/release.json` versions equal. Inspect `npm
128
- pack --dry-run` before publishing; the package must include the launcher and pinned
129
- manifest, and exclude native runtimes, installed state, credentials, tests and
130
- development worktrees. Test the packed package with `npx` on both platforms.
131
-
132
- Attach `stackbite-<version>.tgz` and its SHA-256 sidecar to the corresponding GitHub
133
- release in the public distribution repository. Copy only the npm file allowlist to
134
- that repository; never push the private core history, state, personal notes or
135
- credentials. Native archives must retain dependency license notices. Publishing
136
- the short name requires an authenticated owner account:
137
-
138
- ```sh
139
- npm login --registry=https://registry.npmjs.org
140
- npm publish --access public --registry=https://registry.npmjs.org
141
- ```
142
-
143
- Complete any registry-required authentication interactively; do not put credentials
144
- in this repository, prompts or package files. The repository currently specifies
145
- `UNLICENSED` for the JavaScript wrapper instead of inventing a license for the app;
146
- native runtime dependency notices remain in each platform archive.
1
+ # Stackbite through npm and npx
2
+
3
+ Work Stack organizes the work. Stackbite gets it moving.
4
+
5
+ Node.js 20 or newer is required. The portable runtime is available for Windows x64
6
+ and Linux x64 with glibc 2.39 or newer; macOS, ARM and musl/Alpine builds are not supplied yet.
7
+ Python installation and compilation are unnecessary. Archive extraction requires
8
+ `tar` (included in current Windows and common Linux distributions).
9
+
10
+ ## Install without an account
11
+
12
+ Choose one method. For a single run, use the public npm package:
13
+
14
+ ```sh
15
+ npx --yes stackbite
16
+ ```
17
+
18
+ For a persistent command, install it globally, prepare the runtime, then launch:
19
+
20
+ ```sh
21
+ npm install --global stackbite
22
+ stackbite setup
23
+ stackbite
24
+ ```
25
+
26
+ Global installation installs the small launcher without a postinstall download.
27
+ `stackbite setup` downloads and fully validates its pinned runtime without starting
28
+ the app or backend. It prints short stages to stderr. If setup is omitted, the
29
+ first launch prepares the runtime with the same stages. Cached launches remain
30
+ quiet and fully validate the runtime every time. Running both installation methods
31
+ is unnecessary.
32
+
33
+ The same preparation command works through npx:
34
+
35
+ ```sh
36
+ npx --yes stackbite setup
37
+ ```
38
+
39
+ Check a prepared runtime offline with `stackbite setup --check`. The launcher
40
+ checks all pinned file hashes, identity, inventory and link boundaries, without
41
+ downloading, extracting, writing cache files, or starting the app/backend. It exits
42
+ with status 0 when valid and status 1 when absent or invalid; an absent cache needs
43
+ `stackbite setup`. Only `setup` and `setup --check` are accepted setup forms.
44
+ The launcher check is read-only; npx itself may install its npm package before
45
+ invoking it, so use the installed command for an entirely offline check.
46
+
47
+ Binary caches use `%LOCALAPPDATA%\Stackbite\cache` on Windows and
48
+ `${XDG_CACHE_HOME:-~/.cache}/stackbite` on Linux. `LOCALAPPDATA`, `XDG_CACHE_HOME`
49
+ and `HOME` overrides retain their normal behavior. These caches are separate from
50
+ application state. Interrupted preparation removes only its own temporary staging
51
+ directory and can be retried. An invalid existing runtime is reported and left in
52
+ place; setup does not delete or overwrite it.
53
+
54
+ Update a registry installation with `npm install --global stackbite@latest`.
55
+
56
+ ## Direct GitHub package
57
+
58
+ Run the package attached to the verified GitHub release:
59
+
60
+ ```sh
61
+ npx --yes https://github.com/Shinick-Han/stackbite/releases/download/v0.5.29/stackbite-0.5.29.tgz
62
+ ```
63
+
64
+ Arguments go after the package URL, for example `--version` or `--status`. For a
65
+ persistent command, install that same package globally:
66
+
67
+ ```sh
68
+ npm install --global https://github.com/Shinick-Han/stackbite/releases/download/v0.5.29/stackbite-0.5.29.tgz
69
+ stackbite setup
70
+ stackbite
71
+ ```
72
+
73
+ The core source repository remains private at `shinick-dev/stackbite`. The separate
74
+ public `Shinick-Han/stackbite` repository distributes only this thin launcher and
75
+ verified compiled runtime releases; installers need no GitHub or npm login.
76
+ Registry-free distribution does not require publishing rights on npm.
77
+ The small JavaScript package downloads the
78
+ exact pinned native release on first execution, verifies its archive and file
79
+ checksums and product identity, then reuses a persistent binary cache. There is no
80
+ postinstall download or provider installation. An offline cached launch is possible;
81
+ the first launch needs access to GitHub release downloads.
82
+
83
+ For a GitHub URL installation, install the package URL from the newer release.
84
+ Each npm package pins one native release; the portable app's own `stackbite update`
85
+ does not change the npm package version.
86
+
87
+ ## Existing data and processes
88
+
89
+ `STACKBITE_STATE_DIR` is the explicit state override. The bundled native runtime
90
+ owns state discovery and migration for both npm and direct launches. It reuses
91
+ existing configured state and keeps live databases, authentication and records
92
+ in place. New state uses `%LOCALAPPDATA%\Stackbite\state` or
93
+ `${XDG_STATE_HOME:-~/.local/state}/stackbite`.
94
+ Rooms, Seats, authentication, provider configuration, journals and Work Stack
95
+ contracts are not renamed or migrated. Binary cache data is separate from this
96
+ state. Installing or launching the npm package does not stop an existing backend.
97
+ Check the connected server's capabilities before using newly added runtime features.
98
+
99
+ For app commands, the launcher inherits terminal input/output and passes CLI
100
+ arguments directly to the native app. Its `setup` command only prepares/checks the
101
+ runtime. It does not insert a second screen renderer or an agent provider.
102
+ Global npm installation creates only the `stackbite` command; it does not claim an
103
+ external `helm` command or replace independent Kubernetes tooling.
104
+
105
+ ## Maintainer release steps
106
+
107
+ Measure bounded fake runtime preparation and warm verification without network or
108
+ app processes:
109
+
110
+ ```sh
111
+ node packaging/npm/test/measure-setup.js
112
+ ```
113
+
114
+ The measurement reports fixture sizes and each preparation stage plus warm check
115
+ and launch validation costs. It uses disposable cache data and an inert child
116
+ stub; its timings are not measurements of released native bundles or providers.
117
+
118
+ Build and verify both native platform archives first. Prepare the pinned manifest
119
+ from their exact extracted bundles and archive bytes:
120
+
121
+ ```sh
122
+ python scripts/prepare_npm_release.py --version 0.5.27
123
+ npm test
124
+ npm pack
125
+ ```
126
+
127
+ Keep `package.json` and `packaging/npm/release.json` versions equal. Inspect `npm
128
+ pack --dry-run` before publishing; the package must include the launcher and pinned
129
+ manifest, and exclude native runtimes, installed state, credentials, tests and
130
+ development worktrees. Test the packed package with `npx` on both platforms.
131
+
132
+ Attach `stackbite-<version>.tgz` and its SHA-256 sidecar to the corresponding GitHub
133
+ release in the public distribution repository. Copy only the npm file allowlist to
134
+ that repository; never push the private core history, state, personal notes or
135
+ credentials. Native archives must retain dependency license notices. Publishing
136
+ the short name requires an authenticated owner account:
137
+
138
+ ```sh
139
+ npm login --registry=https://registry.npmjs.org
140
+ npm publish --access public --registry=https://registry.npmjs.org
141
+ ```
142
+
143
+ Complete any registry-required authentication interactively; do not put credentials
144
+ in this repository, prompts or package files. The repository currently specifies
145
+ `UNLICENSED` for the JavaScript wrapper instead of inventing a license for the app;
146
+ native runtime dependency notices remain in each platform archive.
package/package.json CHANGED
@@ -1,25 +1,25 @@
1
- {
2
- "name": "stackbite",
3
- "version": "0.5.27",
4
- "description": "Verified native Stackbite CLI bootstrapper",
5
- "license": "UNLICENSED",
6
- "engines": {
7
- "node": ">=20"
8
- },
9
- "bin": {
10
- "stackbite": "packaging/npm/bin/stackbite.js"
11
- },
12
- "files": [
13
- "packaging/npm/bin/",
14
- "packaging/npm/lib/",
15
- "packaging/npm/release.json"
16
- ],
17
- "scripts": {
18
- "test": "node --test packaging/npm/test/*.test.js"
19
- },
20
- "repository": {
21
- "type": "git",
22
- "url": "https://github.com/Shinick-Han/stackbite.git"
23
- },
24
- "homepage": "https://github.com/Shinick-Han/stackbite"
25
- }
1
+ {
2
+ "name": "stackbite",
3
+ "version": "0.5.29",
4
+ "description": "Verified native Stackbite CLI bootstrapper",
5
+ "license": "UNLICENSED",
6
+ "engines": {
7
+ "node": ">=20"
8
+ },
9
+ "bin": {
10
+ "stackbite": "packaging/npm/bin/stackbite.js"
11
+ },
12
+ "files": [
13
+ "packaging/npm/bin/",
14
+ "packaging/npm/lib/",
15
+ "packaging/npm/release.json"
16
+ ],
17
+ "scripts": {
18
+ "test": "node --test packaging/npm/test/*.test.js"
19
+ },
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "https://github.com/Shinick-Han/stackbite.git"
23
+ },
24
+ "homepage": "https://github.com/Shinick-Han/stackbite"
25
+ }
@@ -1,26 +1,26 @@
1
- {
2
- "schema": 1,
3
- "version": "0.5.27",
4
- "commit": "dfaa65f36a25da971458083d8a7ed49fe50b9fe2",
5
- "repository": "Shinick-Han/stackbite",
6
- "platforms": {
7
- "win32-x64": {
8
- "asset": "stackbite-0.5.27-windows-x64-dfaa65f36a25.zip",
9
- "url": "https://github.com/Shinick-Han/stackbite/releases/download/v0.5.27/stackbite-0.5.27-windows-x64-dfaa65f36a25.zip",
10
- "sha256": "c5b1c22afe21303a3b4a9736694b45488b7387fb1f91aedd48f972396f5175e7",
11
- "size": 43942506,
12
- "root": "stackbite-0.5.27-windows-x64-dfaa65f36a25",
13
- "manifestSha256": "27389aaa5c8f45938e3b309d6859b2ccbb36f4032932a42ccc6372b436442e56",
14
- "metadataSha256": "fae14dfcb279451c543a2447f9ec53958df72d3141ffedf01f7752237db11ecc"
15
- },
16
- "linux-x64": {
17
- "asset": "stackbite-0.5.27-linux-x86_64-dfaa65f36a25.tar.gz",
18
- "url": "https://github.com/Shinick-Han/stackbite/releases/download/v0.5.27/stackbite-0.5.27-linux-x86_64-dfaa65f36a25.tar.gz",
19
- "sha256": "d244fe614d88c47137a8c126d1a4089cdc5ae656f34981f4c3c5603789918478",
20
- "size": 30900428,
21
- "root": "stackbite-0.5.27-linux-x86_64-dfaa65f36a25",
22
- "manifestSha256": "460eac22d703b2aee95666936767c405b7175b7e7d6cbe10ce107c232096a741",
23
- "metadataSha256": "88d2f12b6991a1083c46c9e53d6e6d45ca6b7ad534717ccf41553d233a2c71fc"
24
- }
25
- }
26
- }
1
+ {
2
+ "schema": 1,
3
+ "version": "0.5.29",
4
+ "commit": "701935da3dbcc4c9131a862db3c4b15ade31df0a",
5
+ "repository": "Shinick-Han/stackbite",
6
+ "platforms": {
7
+ "win32-x64": {
8
+ "asset": "stackbite-0.5.29-windows-x64-701935da3dbc.zip",
9
+ "url": "https://github.com/Shinick-Han/stackbite/releases/download/v0.5.29/stackbite-0.5.29-windows-x64-701935da3dbc.zip",
10
+ "sha256": "bacb7d459d14eeee6b0e890cffed5d86737d20a7091400f8a7289fb473747870",
11
+ "size": 44017122,
12
+ "root": "stackbite-0.5.29-windows-x64-701935da3dbc",
13
+ "manifestSha256": "edbe2741cb6b853d1d43a05d8376e2a1ab6feb369d7a231c8147b392f2f4fc1c",
14
+ "metadataSha256": "15c625debcd7b935265ce9c0748acda0cee3a4fc2d4475fe233b2286e6a11be5"
15
+ },
16
+ "linux-x64": {
17
+ "asset": "stackbite-0.5.29-linux-x86_64-701935da3dbc.tar.gz",
18
+ "url": "https://github.com/Shinick-Han/stackbite/releases/download/v0.5.29/stackbite-0.5.29-linux-x86_64-701935da3dbc.tar.gz",
19
+ "sha256": "9e2a89ecba005ce4f9e505188111348ea91a680b8ee96df391df049cadafdc96",
20
+ "size": 30965688,
21
+ "root": "stackbite-0.5.29-linux-x86_64-701935da3dbc",
22
+ "manifestSha256": "9f112f41850c449d3dcc92be5b71c946d1ee83d2617468a0368a6be128934135",
23
+ "metadataSha256": "334e1031b5b9544a4134335382ab6228fd53b864f58444b20ec88bc0b4d45ad9"
24
+ }
25
+ }
26
+ }