subconscious-cli 5.0.2 → 6.0.0

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
@@ -78,7 +78,7 @@ subc dsh
78
78
 
79
79
  ## Native Windows support
80
80
 
81
- Windows has its own implementation in `cli/bin/windows/`, selected only when
81
+ Windows has its own implementation in `bin/windows/`, selected only when
82
82
  Node runs on Windows. macOS/Linux continue to use the existing, unchanged shell
83
83
  runbooks. WSL continues to use the Linux implementation.
84
84
 
@@ -142,13 +142,13 @@ The installer requires the selected release's Windows asset and SHA-256
142
142
  checksum; it reports a clear error if unavailable and never downloads a Unix
143
143
  binary as a fallback. Windows ARM64 binaries are not currently published.
144
144
 
145
- Run `npm run test:windows` from `cli/` for the separate Windows suite. The
145
+ Run `npm run test:windows` from the repository root for the separate Windows suite. The
146
146
  Windows CI job also builds/tests the Go TUI. Existing Unix tests and runbooks
147
147
  remain separate and unchanged.
148
148
 
149
149
  ## Supported agents
150
150
 
151
- The packaged integrations live in `cli/bin/runbook`.
151
+ The packaged integrations live in `bin/runbook`.
152
152
 
153
153
  | Command | Behavior |
154
154
  | --- | --- |
@@ -442,3 +442,7 @@ logging out of `default` also clears the backwards-compatible saved key.
442
442
  Existing credentials and profiles under `~/.subcon` are copied into
443
443
  `~/.subconscious` automatically on first use. The legacy files are left in
444
444
  place so migration is recoverable.
445
+
446
+ ## Contributing
447
+
448
+ Setup, commit message rules, and local checks are in [CONTRIBUTING.md](CONTRIBUTING.md). `npm install` installs the commit-message hook. Version bumps and the changelog are created by Release Please when a release pull request merges to `main`.
package/bin/agents.js CHANGED
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * There is NO hardcoded agent data here: everything is read from
9
9
  * `registry.generated.json` (shipped under `bin/`), which is generated from the
10
- * single source of truth `agents/registry.json`. Run `pnpm generate` to update.
10
+ * single source of truth `agents/registry.json`. Run `node scripts/generate-agents.js` to update.
11
11
  */
12
12
 
13
13
  import { spawn, execFileSync } from 'node:child_process';
Binary file
Binary file
Binary file
Binary file
@@ -203,6 +203,7 @@
203
203
  "mode": "launch",
204
204
  "script": "opencode/run.sh",
205
205
  "setupScript": "opencode/install.sh",
206
+ "installDir": ".opencode/bin",
206
207
  "setupActions": [
207
208
  "status",
208
209
  "uninstall"
@@ -6,7 +6,7 @@ Subconscious gateway.
6
6
 
7
7
  `subc` reads `~/.subconscious/profiles/<name>.env` and injects those values into
8
8
  the scripts, so users do not need a sibling `.env` file. When a script is run
9
- directly, `SUBC_ENV_FILE` (or `cli/bin/runbook/.env`) can supply the same keys.
9
+ directly, `SUBC_ENV_FILE` (or `bin/runbook/.env`) can supply the same keys.
10
10
 
11
11
  Included integrations:
12
12
 
package/bin/tui.js CHANGED
@@ -257,6 +257,18 @@ async function raceAbort(signal, promise) {
257
257
  export async function loadRemoteTuiUpdates(state, options = {}) {
258
258
  const signal = options.signal;
259
259
  const writePatch = options.writePatch || (async () => {});
260
+ // Catalog and session writes finish together. A later patch must not start
261
+ // until the earlier file replace has finished, or the slower write lands
262
+ // last and drops the other fields. Windows CI hits that race.
263
+ let writeQueue = Promise.resolve();
264
+ const enqueuePatch = (partial) => {
265
+ const run = writeQueue.then(() => writePatch(partial));
266
+ writeQueue = run.then(
267
+ () => {},
268
+ () => {},
269
+ );
270
+ return run;
271
+ };
260
272
  const resolveCatalog = options.resolveCatalog || resolveModelCatalog;
261
273
  const discover = options.discoverSessions || discoverSessions;
262
274
  const fetchLatest = options.fetchLatestVersion || fetchLatestVersion;
@@ -280,7 +292,7 @@ export async function loadRemoteTuiUpdates(state, options = {}) {
280
292
  signal,
281
293
  });
282
294
  if (signal?.aborted) return;
283
- await writePatch({
295
+ await enqueuePatch({
284
296
  models: catalog.models,
285
297
  modelError: catalog.error?.message || '',
286
298
  modelSource: catalog.source,
@@ -300,7 +312,7 @@ export async function loadRemoteTuiUpdates(state, options = {}) {
300
312
  }),
301
313
  );
302
314
  if (signal?.aborted) return;
303
- await writePatch({
315
+ await enqueuePatch({
304
316
  sessions: serializeSessions(sessions),
305
317
  sessionsLoading: false,
306
318
  });
@@ -318,7 +330,7 @@ export async function loadRemoteTuiUpdates(state, options = {}) {
318
330
  });
319
331
  if (signal?.aborted || !latest) return;
320
332
  if (compareVersions(latest, state.version) > 0) {
321
- await writePatch({ updateAvailable: true, latestVersion: latest });
333
+ await enqueuePatch({ updateAvailable: true, latestVersion: latest });
322
334
  }
323
335
  } catch (error) {
324
336
  if (isAbortError(error) || signal?.aborted) return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "subconscious-cli",
3
- "version": "5.0.2",
3
+ "version": "6.0.0",
4
4
  "description": "CLI for Subconscious — run Subconscious Code, Claude Code, Codex, OpenCode, DeepSeek Harness, Cursor, Copilot, and Pi",
5
5
  "bin": {
6
6
  "subc": "bin/cli.js"
@@ -11,6 +11,8 @@
11
11
  "test": "node --test",
12
12
  "test:windows": "node --test test/windows.test.js test/models.test.js test/model-capabilities.test.js test/auth.test.js test/tui.test.js test/update-check.test.js test/sessions.test.js test/branding.test.js test/claude-version.test.js test/usage.test.js test/feedback.test.js test/release.test.js",
13
13
  "test:tui": "go -C tui test ./...",
14
+ "generate": "node scripts/generate-agents.js",
15
+ "prepare": "node scripts/install-git-hooks.js",
14
16
  "prepack": "npm run build:tui",
15
17
  "prepublishOnly": "node scripts/require-publish-script.js"
16
18
  },
@@ -23,8 +25,7 @@
23
25
  },
24
26
  "repository": {
25
27
  "type": "git",
26
- "url": "git+https://github.com/subconscious-systems/subconscious.git",
27
- "directory": "cli"
28
+ "url": "git+https://github.com/subconscious-systems/subconscious.git"
28
29
  },
29
30
  "keywords": [
30
31
  "subconscious",
@@ -45,5 +46,13 @@
45
46
  "launcher"
46
47
  ],
47
48
  "author": "Subconscious Systems",
48
- "license": "MIT"
49
- }
49
+ "license": "MIT",
50
+ "simple-git-hooks": {
51
+ "commit-msg": "npx --no-install commitlint --edit $1"
52
+ },
53
+ "devDependencies": {
54
+ "@commitlint/cli": "^21.2.3",
55
+ "@commitlint/config-conventional": "^21.2.3",
56
+ "simple-git-hooks": "^2.14.0"
57
+ }
58
+ }