workbite 0.1.19 → 0.1.20

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,164 +1,183 @@
1
- # workbite
2
-
3
- WorkBite installs and opens **Work Stack** (organizes the work) and
4
- **StackBite** (gets it moving) as one native suite.
5
-
6
- Launcher 0.1.19 pins verified **Windows x64 and Linux x64** native bundles
7
- from the same immutable source. The archive sizes, SHA-256 and bundle digests
8
- are sealed in `release.json` and verified before execution. Install on either
9
- platform with `npm install -g workbite@0.1.19`; both `latest` and `windows`
10
- channels are intended for this paired release after registry publication.
11
- See the [release notes](https://github.com/Shinick-Han/WorkBite-releases/releases/tag/v0.1.19).
12
- It opens the familiar TypeScript Work Stack UI by default, which
13
- has one Tasks workbench: switch Focus/Table/Board without losing your selected
14
- Task, open its persistent Room's plain terminal, and control it beside or below
15
- the Tasks. A compact terminal action is the default Task workspace entry;
16
- advanced Run deployment, history and result review remain available. Horizontal
17
- Seat tabs and the vertical Seat list share selection, input state and one native
18
- terminal host; switching presentation does not launch or stop a Seat.
19
- Use F6 to move focus, Ctrl+B to hide the sidebar, Alt+Shift+L to switch layouts,
20
- Alt+Shift+arrows to resize, and Alt+Shift+Z to expand the active pane. Existing
21
- Runs and Seats remain available while navigating. Cursor and Grok remain raw
22
- native providers in opted-in Rooms (you approve their trust; native lifecycle,
23
- completion and resume remain unsupported/unqualified). The unified Rust UI stays
24
- an explicit alternative per open: `workbite open --frontend rust` (or bare
25
- `workbite --frontend rust`). Either frontend reuses the same owner and
26
- StackBite backend; the choice is not saved. Leaving the view or closing the UI
27
- keeps the agent running, and Task completion stays an explicit action.
28
-
29
- The Linux archive passed all 12 ELF gates with a glibc 2.28 floor and 29 packaged
30
- AlmaLinux 8 userspace probes. Real AI agent turns on Linux, a booted AlmaLinux 8
31
- kernel and SSH/VM use are not yet proven. Updating an existing native bundle
32
- requires an operator handover of existing backend processes; the launcher does not stop
33
- them or clear startup records automatically.
34
-
35
- ```sh
36
- npm install -g workbite@0.1.19 # Windows/Linux x64 after registry publication
37
- workbite install
38
- workbite open --workspace /abs/path/new-folder --init # first time, once
39
- workbite # afterwards (TypeScript UI)
40
- workbite --frontend rust # unified Rust UI with 9 Execution
41
- ```
42
-
43
- Node.js 20+ on Windows x64 or Linux x64 (glibc 2.28+).
44
-
45
- - `workbite install` downloads the pinned bundle for your platform from
46
- `github.com/Shinick-Han/WorkBite-releases`, verifies its size and SHA-256 and
47
- every file listed in its `bundle.json`, and installs it into an immutable
48
- per-user version folder. No auto-update, no install scripts, no dependencies.
49
- - `workbite check` re-verifies installed bundle integrity without downloading;
50
- it does not test backend health, workspace admission or UI behavior.
51
- - `workbite open --workspace ABS [--init] [--no-ui] [--frontend typescript|rust]`
52
- starts or reuses the workspace's Work Stack owner and a StackBite backend
53
- (only processes it can prove it started), then runs the TypeScript Work Stack
54
- UI, or the unified Rust UI with `--frontend rust` (0.1.4+ execution bundle
55
- only; an older bundle refuses it before starting anything). Backends keep
56
- running after the UI exits.
57
- - `workbite` (or `workbite open` without `--workspace`) reopens the last
58
- workspace that opened successfully; an explicit `--workspace` always wins.
59
- It refuses, starting nothing, if that workspace is missing, moved or its
60
- `workspace.json` id changed, and never picks another folder by itself.
61
- `--init` always needs an explicit `--workspace`.
62
- - Each backend's startup record (private token, launch id, port) is saved in
63
- the state folder *before* the process is started. A later `open` reuses
64
- that same attempt once it authenticates (also after a slow start), and
65
- otherwise refuses. Unreadable/invalid records remain untouched; an
66
- unreachable process is not assumed stopped. The unreleased source's narrow
67
- archival path requires trusted same-host previous-boot evidence for eligible
68
- owner/backend records. It does not resolve foreign hosts or native intents.
69
- Diagnose the exact host/boot, workspace, backend and native intent before
70
- operator handover. Age or a missing local PID cannot establish that a process
71
- on another NFS client has stopped; preserve uncertain records.
72
-
73
- WorkBite keeps its own state (`%LOCALAPPDATA%\WorkBite` on Windows,
74
- `~/.local/share/workbite` and `~/.local/state/workbite` on Linux; override
75
- with absolute `WORKBITE_HOME` / `WORKBITE_STATE_DIR`) and never touches
76
- separately installed Work Stack or StackBite apps, their state or ports. It
77
- never approves provider trust or starts paid agents by itself.
78
-
79
- Startup diagnostics include `workbite status [--json]`,
80
- `workbite doctor [--json]` and `workbite recover --dry-run [--json]`. They inspect evidence and plan
81
- only: no process starts/stops, record reset, native intent repair or migration.
82
- `open --no-ui` does start/reuse the backend stack (including native selection for
83
- v2) and prints JSON, but never launches or validates the foreground UI. Startup
84
- stage messages distinguish that UI launch from backend readiness; the launcher
85
- continues waiting while the UI runs. Full installed-file hashing still occurs
86
- on reuse, so these changes do not promise faster opens.
87
-
88
- For NFS shared homes, configure the existing absolute `WORKBITE_STATE_DIR`
89
- override to a distinct host-local runtime directory per host after coordinating
90
- any existing owners and active Seats. This does not move old state or permit
91
- parallel writers to one shared workspace. `WORKBITE_HOME` separately overrides
92
- the installation root (`app/` beneath it); changing it is not a universal tar
93
- fix. See the source repository's
94
- [startup troubleshooting guide](../../docs/STARTUP-TROUBLESHOOTING.md) for tcsh
95
- `setenv` examples, failure diagnosis, bounded tar stderr and safe handover
96
- requirements. Keep workspace locks and unknown native intents intact.
97
-
98
- Coding agents read and record Tasks of a workspace whose owner `workbite open`
99
- already runs; nothing is started for them:
100
-
101
- ```sh
102
- workbite agent status # bound workspace path + UUID
103
- workbite agent --workspace ABS --workspace-uid UUID context --task T-0001
104
- workbite agent --workspace ABS --workspace-uid UUID tasks create --intent-id ID --input-file FILE
105
- workbite mcp --workspace ABS --workspace-uid UUID # MCP stdio server
106
- ```
107
-
108
- Writes (`tasks create`, `tasks update`, `checkpoint`) always need the explicit
109
- `--workspace` + `--workspace-uid` pair. `workbite mcp` binds one workspace when
110
- it starts. The `workbite-native` agent skill shipped in this package
111
- (`skills/workbite-native/`) describes the commands, packets and recovery
112
- rules.
113
-
114
- The 0.1.19 release retains **Connect agent** in Task Execution (`a`),
115
- the global 9 Execution monitor and launch picker (`+`), clickable controls and
116
- scoped command palettes (`:`). Claude Code, Codex, Cursor and Grok Build use
117
- their official CLI login and credential storage. Missing CLIs offer install
118
- guides; nothing installs automatically. Connecting preserves the Task/draft,
119
- folder, instructions and watched Run/Seat, and never deploys or changes Task
120
- status. Selection rechecks current authentication and launch readiness; an old
121
- login receipt cannot establish current authentication.
122
-
123
- Codex discovers model IDs and supported effort choices with a bounded cache;
124
- CLI defaults remain selectable and unsupported saved choices stay visible.
125
- An official Grok login success marker can show
126
- `provider_login_completed_status_unverified`; it does not show a connected
127
- badge or prove current CLI authentication. Generic exit zero and refresh alone
128
- do not prove login. No authoritative local Grok auth-status probe is qualified;
129
- launch-ready CLI settings can be selected explicitly with that label.
130
- Automated login process ownership is qualified on Windows only;
131
- POSIX automated connection remains refused pending cleanup qualification.
132
- Source checks used disposable fixtures, with no live account login, browser
133
- completion, account-entitlement proof or paid provider turn acceptance. See the
134
- [source acceptance record](../../docs/WORKBITE-AGENT-CONNECTION-ACCEPTANCE-2026-10-16.md).
135
-
136
- The Windows 0.1.19 release retains the read-only phone companion pilot from 0.1.14.
137
- Linux Phone support remains unsupported; paired releases do not imply identical
138
- platform capabilities.
139
- Phone actions preserve their selected target during status reads, show pending
140
- work and reuse the managed Windows helper within actions. Pairing links retain
141
- their complete URL. New hosts supply a compact pairing URL and an inline TUI
142
- QR with an enlarged view; this path creates no PNG and opens no external
143
- viewer automatically. Small terminals show size guidance instead of a partial
144
- QR. Link opening and supported image actions remain explicit choices; older
145
- hosts retain their compatibility path. QR opening has an explicit Edge
146
- alternative. A successful system handoff does not establish that a browser
147
- or viewer rendered the target. Open Settings
148
- with `,`, select Phone, enable it, then pair using the expiring QR and compare
149
- the complete fingerprint before approving on the PC. Remembered browsers can
150
- reconnect; devices can be revoked. Initial PC enrollment requires an operator
151
- invitation through the supported embedding/bootstrap surface; this release
152
- does not include a public invitation-entry UI. The hosted relay needs no user
153
- domain or Cloudflare client. CurrentUser DPAPI on local NTFS is required.
154
- Mobile Task writes, deployment, terminal input, replies, notifications and
155
- background connectivity are not supported. The PC must remain online.
156
-
157
- This package is `UNLICENSED` (all rights reserved). Third-party licenses ship
158
- in each bundle's `licenses/` folder.
159
-
160
- The candidate retains the 0.1.16 Phone control-file sharing fix and existing
161
- protected-store and OS lease checks. Hosted mobile assets must accept both
162
- old object offers and compact tuples before the new PC emitter is installed.
163
- Source tests and rendered fixtures do not qualify physical phone cameras,
164
- actual terminal fonts, LTE or background behavior.
1
+ # workbite
2
+
3
+ WorkBite installs and opens **Work Stack** (organizes the work) and
4
+ **StackBite** (gets it moving) as one native suite.
5
+
6
+ Launcher 0.1.20 provides verified **Windows x64 and Linux x64 native bundles**
7
+ from one immutable build source. `release.json` binds both reviewed archives'
8
+ actual sizes, SHA-256 hashes and bundle digests; installation verifies the
9
+ selected platform's files. See the [release and platform assets](https://github.com/Shinick-Han/WorkBite-releases/releases/tag/v0.1.20).
10
+ It opens the familiar TypeScript Work Stack UI by default, which
11
+ has one Tasks workbench: switch Focus/Table/Board without losing your selected
12
+ Task, open its persistent Room's plain terminal, and control it beside or below
13
+ the Tasks. A compact terminal action is the default Task workspace entry;
14
+ advanced Run deployment, history and result review remain available. Horizontal
15
+ Seat tabs and the vertical Seat list share selection, input state and one native
16
+ terminal host; switching presentation does not launch or stop a Seat.
17
+ Use F6 to move focus, Ctrl+B to hide the sidebar, Alt+Shift+L to switch layouts,
18
+ Alt+Shift+arrows to resize, and Alt+Shift+Z to expand the active pane. Existing
19
+ Runs and Seats remain available while navigating. Cursor and Grok remain raw
20
+ native providers in opted-in Rooms (you approve their trust; native lifecycle,
21
+ completion and resume remain unsupported/unqualified). The unified Rust UI stays
22
+ an explicit alternative per open: `workbite open --frontend rust` (or bare
23
+ `workbite --frontend rust`). Either frontend reuses the same owner and
24
+ StackBite backend; the choice is not saved. Leaving the view or closing the UI
25
+ keeps the agent running, and Task completion stays an explicit action.
26
+
27
+ The 0.1.20 Linux archive passed 12 ELF gates and 29 packaged AlmaLinux 8
28
+ userspace probes, preserving the glibc 2.28 floor. Real AI agent turns on Linux, a booted AlmaLinux 8 kernel and
29
+ SSH/VM use are not proven by those checks. Updating an existing native bundle
30
+ requires an operator handover of existing backend processes; the launcher does not stop
31
+ them or clear startup records automatically.
32
+
33
+ `workbite update` explicitly updates a global npm launcher to official npm
34
+ `latest` and stages its verified native suite. Local/npx copies print manual
35
+ guidance instead. Current latest is a no-op. Running owners, Seats and Phone
36
+ stay on their existing runtime; complete operator handover before opening the
37
+ new one. A failure can leave the launcher installed without its suite: inspect
38
+ `workbite --version`, then resolve the error and run `workbite install` and
39
+ `workbite check`. Never replay an unknown npm install without inspecting it.
40
+
41
+ ```sh
42
+ npm install -g workbite@0.1.20 # only after paired qualification and registry publication
43
+ workbite install
44
+ workbite open --workspace /abs/path/new-folder --init # first time, once
45
+ workbite # afterwards (TypeScript UI)
46
+ workbite --frontend rust # unified Rust UI with 9 Execution
47
+ ```
48
+
49
+ Node.js 20+ on Windows x64 or Linux x64 (glibc 2.28+).
50
+
51
+ - `workbite install` downloads the pinned bundle for your platform from
52
+ `github.com/Shinick-Han/WorkBite-releases`, verifies its size and SHA-256 and
53
+ every file listed in its `bundle.json`, and installs it into an immutable
54
+ per-user version folder. No auto-update, no install scripts, no dependencies.
55
+ - `workbite check` re-verifies installed bundle integrity without downloading;
56
+ it does not test backend health, workspace admission or UI behavior.
57
+ - `workbite open --workspace ABS [--init] [--no-ui] [--frontend typescript|rust]`
58
+ starts or reuses the workspace's Work Stack owner and a StackBite backend
59
+ (only processes it can prove it started), then runs the TypeScript Work Stack
60
+ UI, or the unified Rust UI with `--frontend rust` (0.1.4+ execution bundle
61
+ only; an older bundle refuses it before starting anything). Backends keep
62
+ running after the UI exits.
63
+ - `workbite` (or `workbite open` without `--workspace`) reopens the last
64
+ workspace that opened successfully; an explicit `--workspace` always wins.
65
+ It refuses, starting nothing, if that workspace is missing, moved or its
66
+ `workspace.json` id changed, and never picks another folder by itself.
67
+ `--init` always needs an explicit `--workspace`.
68
+ - Each backend's startup record (private token, launch id, port) is saved in
69
+ the state folder *before* the process is started. A later `open` reuses
70
+ that same attempt once it authenticates (also after a slow start), and
71
+ otherwise refuses. Unreadable/invalid records remain untouched; an
72
+ unreachable process is not assumed stopped. The unreleased source's narrow
73
+ archival path requires trusted same-host previous-boot evidence for eligible
74
+ owner/backend records. It does not resolve foreign hosts or native intents.
75
+ Diagnose the exact host/boot, workspace, backend and native intent before
76
+ operator handover. Age or a missing local PID cannot establish that a process
77
+ on another NFS client has stopped; preserve uncertain records.
78
+
79
+ WorkBite keeps its own state (`%LOCALAPPDATA%\WorkBite` on Windows,
80
+ `~/.local/share/workbite` and `~/.local/state/workbite` on Linux; override
81
+ with absolute `WORKBITE_HOME` / `WORKBITE_STATE_DIR`) and never touches
82
+ separately installed Work Stack or StackBite apps, their state or ports. It
83
+ never approves provider trust or starts paid agents by itself.
84
+
85
+ Startup diagnostics include `workbite status [--json]`,
86
+ `workbite doctor [--json]` and `workbite recover --dry-run [--json]`. They inspect evidence and plan
87
+ only: no process starts/stops, record reset, native intent repair or migration.
88
+ `open --no-ui` does start/reuse the backend stack (including native selection for
89
+ v2) and prints JSON, but never launches or validates the foreground UI. Startup
90
+ stage messages distinguish that UI launch from backend readiness; the launcher
91
+ continues waiting while the UI runs. Full installed-file hashing still occurs
92
+ on reuse, so these changes do not promise faster opens.
93
+
94
+ For NFS shared homes, configure the existing absolute `WORKBITE_STATE_DIR`
95
+ override to a distinct host-local runtime directory per host after coordinating
96
+ any existing owners and active Seats. This does not move old state or permit
97
+ parallel writers to one shared workspace. `WORKBITE_HOME` separately overrides
98
+ the installation root (`app/` beneath it); changing it is not a universal tar
99
+ fix. See the source repository's
100
+ [startup troubleshooting guide](../../docs/STARTUP-TROUBLESHOOTING.md) for tcsh
101
+ `setenv` examples, failure diagnosis, bounded tar stderr and safe handover
102
+ requirements. Keep workspace locks and unknown native intents intact.
103
+
104
+ Coding agents read and record Tasks of a workspace whose owner `workbite open`
105
+ already runs; nothing is started for them:
106
+
107
+ ```sh
108
+ workbite agent status # bound workspace path + UUID
109
+ workbite agent --workspace ABS --workspace-uid UUID context --task T-0001
110
+ workbite agent --workspace ABS --workspace-uid UUID tasks create --intent-id ID --input-file FILE
111
+ workbite mcp --workspace ABS --workspace-uid UUID # MCP stdio server
112
+ ```
113
+
114
+ Writes (`tasks create`, `tasks update`, `checkpoint`) always need the explicit
115
+ `--workspace` + `--workspace-uid` pair. `workbite mcp` binds one workspace when
116
+ it starts. The `workbite-native` agent skill shipped in this package
117
+ (`skills/workbite-native/`) describes the commands, packets and recovery
118
+ rules.
119
+
120
+ In a Task-bound plain terminal, manually started CLIs can discover their
121
+ assigned Task through an already enabled WorkBite MCP server. The inherited
122
+ binding verifies workspace and Task identity, snapshot digest, Room, Seat and
123
+ the current live generation before exposing context. A changed or unverifiable
124
+ assignment refuses discovery. Standalone/unbound terminals retain the explicit
125
+ workspace/context path. WorkBite does not enable MCP or configure providers
126
+ automatically; source fixture checks do not prove an actual provider turn.
127
+
128
+ The 0.1.20 candidate also repairs initial Task Room capability discovery and
129
+ recovery notices after overlapping reads. Task Room inventory is filtered to
130
+ the requested Task's Rooms before runtime inventory is read. Selecting a Task
131
+ continues to create no Room, Seat or provider.
132
+
133
+ The 0.1.20 candidate retains **Connect agent** in Task Execution (`a`),
134
+ the global 9 Execution monitor and launch picker (`+`), clickable controls and
135
+ scoped command palettes (`:`). Claude Code, Codex, Cursor and Grok Build use
136
+ their official CLI login and credential storage. Missing CLIs offer install
137
+ guides; nothing installs automatically. Connecting preserves the Task/draft,
138
+ folder, instructions and watched Run/Seat, and never deploys or changes Task
139
+ status. Selection rechecks current authentication and launch readiness; an old
140
+ login receipt cannot establish current authentication.
141
+
142
+ Codex discovers model IDs and supported effort choices with a bounded cache;
143
+ CLI defaults remain selectable and unsupported saved choices stay visible.
144
+ An official Grok login success marker can show
145
+ `provider_login_completed_status_unverified`; it does not show a connected
146
+ badge or prove current CLI authentication. Generic exit zero and refresh alone
147
+ do not prove login. No authoritative local Grok auth-status probe is qualified;
148
+ launch-ready CLI settings can be selected explicitly with that label.
149
+ Automated login process ownership is qualified on Windows only;
150
+ POSIX automated connection remains refused pending cleanup qualification.
151
+ Source checks used disposable fixtures, with no live account login, browser
152
+ completion, account-entitlement proof or paid provider turn acceptance. See the
153
+ [source acceptance record](../../docs/WORKBITE-AGENT-CONNECTION-ACCEPTANCE-2026-10-16.md).
154
+
155
+ The Windows 0.1.20 candidate retains the read-only phone companion pilot from 0.1.14.
156
+ Linux Phone support remains unsupported; paired releases do not imply identical
157
+ platform capabilities.
158
+ Phone actions preserve their selected target during status reads, show pending
159
+ work and reuse the managed Windows helper within actions. Pairing links retain
160
+ their complete URL. New hosts supply a compact pairing URL and an inline TUI
161
+ QR with an enlarged view; this path creates no PNG and opens no external
162
+ viewer automatically. Small terminals show size guidance instead of a partial
163
+ QR. Link opening and supported image actions remain explicit choices; older
164
+ hosts retain their compatibility path. QR opening has an explicit Edge
165
+ alternative. A successful system handoff does not establish that a browser
166
+ or viewer rendered the target. Open Settings
167
+ with `,`, select Phone, enable it, then pair using the expiring QR and compare
168
+ the complete fingerprint before approving on the PC. Remembered browsers can
169
+ reconnect; devices can be revoked. Initial PC enrollment requires an operator
170
+ invitation through the supported embedding/bootstrap surface; this release
171
+ does not include a public invitation-entry UI. The hosted relay needs no user
172
+ domain or Cloudflare client. CurrentUser DPAPI on local NTFS is required.
173
+ Mobile Task writes, deployment, terminal input, replies, notifications and
174
+ background connectivity are not supported. The PC must remain online.
175
+
176
+ This package is `UNLICENSED` (all rights reserved). Third-party licenses ship
177
+ in each bundle's `licenses/` folder.
178
+
179
+ The candidate retains the 0.1.16 Phone control-file sharing fix and existing
180
+ protected-store and OS lease checks. Hosted mobile assets must accept both
181
+ old object offers and compact tuples before the new PC emitter is installed.
182
+ Source tests and rendered fixtures do not qualify physical phone cameras,
183
+ actual terminal fonts, LTE or background behavior.
package/bin/workbite.js CHANGED
@@ -1,13 +1,13 @@
1
- #!/usr/bin/env node
2
- 'use strict';
3
- const { main } = require('../lib/cli');
4
- main().then(({ code, signal }) => {
5
- if (signal && process.platform !== 'win32') {
6
- process.kill(process.pid, signal);
7
- } else {
8
- process.exitCode = code === null ? 1 : code;
9
- }
10
- }).catch(error => {
11
- console.error(`WorkBite: ${error.message}`);
12
- process.exitCode = 1;
13
- });
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+ const { main } = require('../lib/cli');
4
+ main().then(({ code, signal }) => {
5
+ if (signal && process.platform !== 'win32') {
6
+ process.kill(process.pid, signal);
7
+ } else {
8
+ process.exitCode = code === null ? 1 : code;
9
+ }
10
+ }).catch(error => {
11
+ console.error(`WorkBite: ${error.message}`);
12
+ process.exitCode = 1;
13
+ });