@passioncode-ai/passioncode 0.2.56 → 0.2.58
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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.58 - 2026-11-03
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- `help` says that exit code 0 also means only a plan was shown, and `docs/reference/cli.md` says
|
|
8
|
+
when a run without a terminal and without `--yes` is a plan: only when it would change something;
|
|
9
|
+
otherwise it exits by its checks (PC-100). The setup and doctor variant of "unsupported
|
|
10
|
+
arguments" is in the string registry. The help test now reads the flags setup parses by pattern
|
|
11
|
+
and the command aliases from the parser itself, and the string registry test requires each
|
|
12
|
+
location to hold the longest literal run of its text.
|
|
13
|
+
|
|
14
|
+
## 0.2.57 - 2026-11-03
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- A terminal `setup` that declined every offer (PC-91) exits by its checks, 1 when a check still
|
|
19
|
+
fails, whether or not it named a release train (PC-93). Before, naming a train other than the
|
|
20
|
+
saved one made it exit 0 as a plan does, and otherwise it exited by its checks, though in both
|
|
21
|
+
the person changed nothing. A run that only returns a plan (`--dry-run`, or no terminal and no
|
|
22
|
+
`--yes` when it would change something) still exits 0.
|
|
23
|
+
|
|
3
24
|
## 0.2.56 - 2026-11-03
|
|
4
25
|
|
|
5
26
|
### Fixed
|
package/README.md
CHANGED
|
@@ -108,8 +108,8 @@ does not answer is started through launchd (`launchctl kickstart`, never a kill)
|
|
|
108
108
|
|
|
109
109
|
`doctor` changes nothing. It reads prerequisites, the skill set, each app's version, signature
|
|
110
110
|
and team, each agent's MCP entries with one proving call per server, and the Fabric services of
|
|
111
|
-
the family; each line names its state and its fix. Exit codes: **0** no check failed
|
|
112
|
-
check (or a setup step) failed, **2** bad arguments. `doctor --fix` runs setup's repairs without
|
|
111
|
+
the family; each line names its state and its fix. Exit codes: **0** no check failed (or `setup`
|
|
112
|
+
only showed its plan), **1** a check (or a setup step) failed, **2** bad arguments. `doctor --fix` runs setup's repairs without
|
|
113
113
|
installing new apps. Details: the [CLI contract](docs/reference/cli.md#setup-and-doctor).
|
|
114
114
|
|
|
115
115
|
**Release trains.** An organization's machines install one set of pinned app versions instead of
|
package/bin/passioncode.js
CHANGED
|
@@ -30,9 +30,10 @@ const HELP = `passioncode sets up and checks PassionCode.ai on this machine: the
|
|
|
30
30
|
|
|
31
31
|
onboard is another name for setup, install for update. --offline skips the check for newer app
|
|
32
32
|
releases; --quiet prints nothing when an update succeeds. App ids: switchboard, dashboards,
|
|
33
|
-
observatory, inbox, fabric. Exit codes: 0 nothing failed
|
|
34
|
-
arguments. Claude Code gets plugins from the local "passioncode"
|
|
35
|
-
the same skills through ~/.agents/skills. Restart your agent after
|
|
33
|
+
observatory, inbox, fabric. Exit codes: 0 nothing failed (or only a plan was shown), 1 a check
|
|
34
|
+
or a step failed, 2 bad arguments. Claude Code gets plugins from the local "passioncode"
|
|
35
|
+
marketplace; other agents get the same skills through ~/.agents/skills. Restart your agent after
|
|
36
|
+
a change.`;
|
|
36
37
|
|
|
37
38
|
const IDS = ['switchboard', 'dashboards', 'observatory', 'inbox', 'fabric'];
|
|
38
39
|
|
|
@@ -93,7 +94,7 @@ async function setupOrDoctor(cmd, rest) {
|
|
|
93
94
|
noOpen: o.flags.has('--no-open'), dryRun: o.flags.has('--dry-run'), repairOnly, online, ask: json ? null : asker(), log, train: o.train,
|
|
94
95
|
});
|
|
95
96
|
process.stdout.write(json ? JSON.stringify(r, null, 2) + '\n' : S.render(r, { repairOnly }) + '\n');
|
|
96
|
-
return
|
|
97
|
+
return S.exitCode(r);
|
|
97
98
|
}
|
|
98
99
|
|
|
99
100
|
async function main(argv) {
|
package/lib/setup.js
CHANGED
|
@@ -283,6 +283,11 @@ function finish(result, home, checks) {
|
|
|
283
283
|
return result;
|
|
284
284
|
}
|
|
285
285
|
|
|
286
|
+
// The exit code of a setup or doctor --fix run. A plan exits 0 (nothing was agreed, nothing ran);
|
|
287
|
+
// a declined run (PC-91) is not a plan but the person's answer, so it exits by its checks like any
|
|
288
|
+
// run that changed nothing (PC-93): 1 when a check still fails, with or without a named train.
|
|
289
|
+
const exitCode = (r) => (r.planOnly && !r.declined ? 0 : r.ok ? 0 : 1);
|
|
290
|
+
|
|
286
291
|
const DECLINED = 'You declined every offer; nothing was changed. The checks below still stand.';
|
|
287
292
|
const notTaken = (names) => `Nothing was changed: ${names.join(' and ')} ${names.length > 1 ? 'were' : 'was'} offered and not installed. The checks below still stand.`;
|
|
288
293
|
|
|
@@ -331,4 +336,4 @@ function render(result, { repairOnly = false } = {}) {
|
|
|
331
336
|
return lines.join('\n');
|
|
332
337
|
}
|
|
333
338
|
|
|
334
|
-
module.exports = { setup, plan, render };
|
|
339
|
+
module.exports = { setup, plan, render, exitCode };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@passioncode-ai/passioncode",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.58",
|
|
4
4
|
"description": "Set up PassionCode.ai on a computer with one command: the apps from their verified releases, their MCP servers for every coding agent and the PassionCode.ai skills. Check and repair it with the same command or `doctor`.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"passioncode": "bin/passioncode.js"
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"name": "passioncode",
|
|
36
36
|
"displayName": "PassionCode.ai",
|
|
37
37
|
"source": "./plugins/passioncode",
|
|
38
|
-
"version": "0.2.
|
|
38
|
+
"version": "0.2.58",
|
|
39
39
|
"description": "Set up and check PassionCode.ai on a computer with one command (setting-up-passioncode), the organisation's working rules for every contributor's agent (working-in-passioncode), and a once-a-day check that keeps the PassionCode.ai set current.",
|
|
40
40
|
"author": {
|
|
41
41
|
"name": "PassionCode.ai",
|
package/payload/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"family": "passioncode",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.58",
|
|
4
4
|
"release": true,
|
|
5
5
|
"members": [
|
|
6
6
|
{
|
|
@@ -62,9 +62,9 @@
|
|
|
62
62
|
"name": "passioncode",
|
|
63
63
|
"displayName": "PassionCode.ai",
|
|
64
64
|
"repo": "passioncode-ai/passioncode",
|
|
65
|
-
"ref": "v0.2.
|
|
65
|
+
"ref": "v0.2.58",
|
|
66
66
|
"commit": null,
|
|
67
|
-
"version": "0.2.
|
|
67
|
+
"version": "0.2.58",
|
|
68
68
|
"via": "this repository",
|
|
69
69
|
"skills": [
|
|
70
70
|
"setting-up-passioncode",
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
],
|
|
73
73
|
"legacyPluginIds": [],
|
|
74
74
|
"legacyMarketplaces": [],
|
|
75
|
-
"contentHash": "sha256:
|
|
75
|
+
"contentHash": "sha256:91ec6c72329e954bd6857f6759dd5fdaf062d686dcd7e5ef6571155589be3d22",
|
|
76
76
|
"description": "Set up and check PassionCode.ai on a computer with one command (setting-up-passioncode), the organisation's working rules for every contributor's agent (working-in-passioncode), and a once-a-day check that keeps the PassionCode.ai set current.",
|
|
77
77
|
"author": {
|
|
78
78
|
"name": "PassionCode.ai",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
|
|
3
3
|
"name": "passioncode",
|
|
4
4
|
"displayName": "PassionCode.ai",
|
|
5
|
-
"version": "0.2.
|
|
5
|
+
"version": "0.2.58",
|
|
6
6
|
"description": "Set up and check PassionCode.ai on a computer with one command (setting-up-passioncode), the organisation's working rules for every contributor's agent (working-in-passioncode), and a once-a-day check at session start that keeps the PassionCode.ai skill set current.",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "PassionCode.ai",
|