@passioncode-ai/passioncode 0.1.21 → 0.1.22

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,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.22 - 2026-10-03
4
+
5
+ ### Changed
6
+
7
+ - **Observatory Log is pinned at `v0.13.0`** (plugin 0.14.0; it was `v0.10.0`, plugin 0.13.0),
8
+ the Project Observatory 0.13.0 hook and skills. The hook and the skills hand over the installed
9
+ engine's commands (`project-observatory full findings`, `full doctor`) instead of source-tree
10
+ paths, and the skills' own check runs under the interpreter `full agent install` records. In
11
+ `handling-secrets`, a vault `PROJECT` is the project's folder name and its registry id resolves to
12
+ the same folder. `use_secret.py run` takes `--env`, and `vault.py remove` deletes a slot or only
13
+ its retired archives.
14
+
3
15
  ## 0.1.21 - 2026-10-03
4
16
 
5
17
  ### Changed
package/family.json CHANGED
@@ -22,7 +22,7 @@
22
22
  "name": "observatory-log",
23
23
  "displayName": "Observatory Log",
24
24
  "repo": "passioncode-ai/project-observatory-dashboard",
25
- "ref": "v0.10.0",
25
+ "ref": "v0.13.0",
26
26
  "kind": "plugin",
27
27
  "path": "observatory/engine/skill/plugins/observatory-log",
28
28
  "legacyPluginIds": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@passioncode-ai/passioncode",
3
- "version": "0.1.21",
3
+ "version": "0.1.22",
4
4
  "description": "The PassionCode.ai agent skill set \u2014 Fabric Agent Adapter, Observatory Log and the organisation's working rules \u2014 for Claude Code and every other agent on the machine, updated as one set.",
5
5
  "bin": {
6
6
  "passioncode": "bin/passioncode.js"
@@ -23,7 +23,7 @@
23
23
  "name": "observatory-log",
24
24
  "displayName": "Observatory Log",
25
25
  "source": "./plugins/observatory-log",
26
- "version": "0.13.0",
26
+ "version": "0.14.0",
27
27
  "description": "Records what changed in a watched project at the end of every turn, and asks for the one thing a diff cannot contain: why.",
28
28
  "author": {
29
29
  "name": "PassionCode.ai",
@@ -35,7 +35,7 @@
35
35
  "name": "passioncode",
36
36
  "displayName": "PassionCode.ai",
37
37
  "source": "./plugins/passioncode",
38
- "version": "0.1.21",
38
+ "version": "0.1.22",
39
39
  "description": "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",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "family": "passioncode",
3
- "version": "0.1.21",
3
+ "version": "0.1.22",
4
4
  "release": true,
5
5
  "members": [
6
6
  {
@@ -34,9 +34,9 @@
34
34
  "name": "observatory-log",
35
35
  "displayName": "Observatory Log",
36
36
  "repo": "passioncode-ai/project-observatory-dashboard",
37
- "ref": "v0.10.0",
38
- "commit": "e1e0110f6618b9541f3e204a548c283005cb6fa9",
39
- "version": "0.13.0",
37
+ "ref": "v0.13.0",
38
+ "commit": "c7a89125edcd5ee1a8141feb55d4aca2c828e834",
39
+ "version": "0.14.0",
40
40
  "via": "clone of https://***@github.com/passioncode-ai/project-observatory-dashboard.git",
41
41
  "skills": [
42
42
  "explaining-changes",
@@ -49,7 +49,7 @@
49
49
  "legacyMarketplaces": [
50
50
  "observatory-log"
51
51
  ],
52
- "contentHash": "sha256:1514d04e995ecd71df0e0518787d76c9320b02f8174824d08c958846b860fd42",
52
+ "contentHash": "sha256:3e1218586122889649881d94fdf892f6a51782dc748c26127a9969376ecdf1eb",
53
53
  "description": "Records what changed in a watched project at the end of every turn, and asks for the one thing a diff cannot contain: why.",
54
54
  "author": {
55
55
  "name": "PassionCode.ai",
@@ -61,16 +61,16 @@
61
61
  "name": "passioncode",
62
62
  "displayName": "PassionCode.ai",
63
63
  "repo": "passioncode-ai/passioncode",
64
- "ref": "v0.1.21",
64
+ "ref": "v0.1.22",
65
65
  "commit": null,
66
- "version": "0.1.21",
66
+ "version": "0.1.22",
67
67
  "via": "this repository",
68
68
  "skills": [
69
69
  "working-in-passioncode"
70
70
  ],
71
71
  "legacyPluginIds": [],
72
72
  "legacyMarketplaces": [],
73
- "contentHash": "sha256:63c4bc3c353c3e7b3762c4ab20a50e4684504c142a378c988c73d86049892a50",
73
+ "contentHash": "sha256:41d5e5549a6fb2ace8f68766c3fad8fc2c72197b2896a8ae934b1a2029eba0ec",
74
74
  "description": "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.",
75
75
  "author": {
76
76
  "name": "PassionCode.ai",
@@ -3,7 +3,7 @@
3
3
  "name": "observatory-log",
4
4
  "displayName": "Observatory Log",
5
5
  "description": "Records what changed in a watched project at the end of every turn, and asks for the one thing a diff cannot contain: why.",
6
- "version": "0.13.0",
6
+ "version": "0.14.0",
7
7
  "license": "AGPL-3.0-only OR LicenseRef-PassionCode-Commercial",
8
8
  "author": {
9
9
  "name": "PassionCode.ai",
@@ -40,7 +40,7 @@ def main() -> int:
40
40
  "Observatory could NOT record this turn: " + reason +
41
41
  "\n\nThe facts of this turn are not in the ledger. "
42
42
  "`store/raw/record-turn.json` holds the same reason, and "
43
- "`./observatory.py findings` raises it.",
43
+ "`project-observatory full findings` raises it.",
44
44
  "suppressOutput": True}))
45
45
  return 0
46
46
  if r.get("hasWhy"):
@@ -15,7 +15,7 @@ description: >-
15
15
  decision with different evidence.
16
16
  license: AGPL-3.0-only OR LicenseRef-PassionCode-Commercial
17
17
  metadata:
18
- version: "0.13.0"
18
+ version: "0.14.0"
19
19
  compatibility: >-
20
20
  Requires an initialized full Project Observatory installation to persist
21
21
  records. Uses its MCP server when available in the current host; the bundled
@@ -9,7 +9,7 @@ description: >-
9
9
  provider permissions or choosing a project's authentication architecture.
10
10
  license: AGPL-3.0-only OR LicenseRef-PassionCode-Commercial
11
11
  metadata:
12
- version: "0.13.0"
12
+ version: "0.14.0"
13
13
  compatibility: >-
14
14
  Requires an initialized full Project Observatory installation, Python 3.11+
15
15
  and local shell access on macOS or Linux. Provider operations additionally
@@ -27,9 +27,10 @@ names. Never ask the user to paste a credential into the conversation.
27
27
  `OBSERVATORY_ROOT`, or obtain its path with `project-observatory full-path`.
28
28
  Do not guess a checkout location or inspect another account's files.
29
29
  2. Select the user's initialized `OBSERVATORY_HOME`. Run
30
- `python3 "$OBSERVATORY_ROOT/observatory.py" doctor`. A missing workspace
30
+ `project-observatory full doctor`. A missing workspace
31
31
  needs the documented onboarding before secret operations.
32
- 3. Run `python3 "$OBSERVATORY_ROOT/tools/skill_check.py" handling-secrets 0.13.0`.
32
+ 3. Run `"$OBSERVATORY_PYTHON" "$OBSERVATORY_ROOT/tools/skill_check.py" handling-secrets 0.14.0`
33
+ (`full agent install` records that interpreter; the stock macOS `python3` is too old).
33
34
  If stale, read the installed skill once and follow its compatible commands.
34
35
  Do not turn an unavailable version check into a retry loop.
35
36
  4. Inspect names using `tools/use_secret.py names PROJECT` or `tools/vault.py
@@ -37,8 +38,11 @@ names. Never ask the user to paste a credential into the conversation.
37
38
  Never read a value file to discover whether it exists.
38
39
 
39
40
  All commands below are Python scripts under `OBSERVATORY_ROOT/tools`. `PROJECT`,
40
- `ENV` and `NAME` are placeholders for existing user-selected names. `ENV` is
41
- `local`, `stage` or `prod`; choose production only when the task calls for it.
41
+ `ENV` and `NAME` are placeholders for existing user-selected names. `PROJECT` is
42
+ the project's folder name; its registry id (`project:<slug>` or the bare slug) is
43
+ accepted and normalised to that folder, and a name two projects claim is refused.
44
+ `ENV` is `local`, `stage` or `prod`; choose production only when the task calls
45
+ for it. A name or note shaped like a credential is refused, never stored.
42
46
 
43
47
  ## Use the named door
44
48
 
@@ -46,13 +50,14 @@ All commands below are Python scripts under `OBSERVATORY_ROOT/tools`. `PROJECT`,
46
50
  |---|---|
47
51
  | Store a credential supplied locally | `vault.py put PROJECT ENV NAME`, value on stdin |
48
52
  | List slots | `vault.py list PROJECT ENV` |
49
- | Run a command using a slot | `use_secret.py run PROJECT NAME -- COMMAND ARGUMENTS` |
53
+ | Run a command using a slot | `use_secret.py run [--env ENV] PROJECT NAME -- COMMAND ARGUMENTS` (flags before PROJECT) |
50
54
  | Receive a value from another local command | `use_secret.py pipe NAME -- COMMAND ARGUMENTS` |
51
55
  | Populate a project's ignored environment file | `vault.py inject PROJECT ENV DIRECTORY` |
52
56
  | Record an exposure | `vault.py leak PROJECT ENV NAME --where "location and evidence, no value"` |
53
57
  | Replace a stored value | `vault.py rotate PROJECT ENV NAME`, replacement on stdin |
54
58
  | Close an exposure after revocation and consumer checks | `vault.py settle PROJECT ENV NAME --how "action" --revocation-evidence "receipt" --consumer-evidence "receipt"` |
55
59
  | Record an external movement | `vault.py moved PROJECT ENV NAME --at PROVIDER --how "action and evidence"`; add `--settle` with both evidence flags to also close its exposure |
60
+ | Delete a slot, or only the archives a rotation left | `vault.py remove PROJECT ENV NAME` (refused while its exposure is open unless `--force`), or `vault.py remove PROJECT ENV NAME --retired`; both are journalled |
56
61
  | Review unresolved exposures or movements | `vault.py leaks` or `vault.py movements PROJECT` |
57
62
 
58
63
  Use the installed command's `--help` for optional flags. Avoid placing a value
@@ -135,7 +140,8 @@ By default, slots live under the private workspace's `secrets/projects/`.
135
140
  An explicitly configured `sources.secret_store` or `OBSERVATORY_VAULT_DIR`
136
141
  can select a separate private store. Such external stores are excluded from
137
142
  workspace backups and need their own backup procedure. `vault.py backup`
138
- requires a configured gateway backup script; do not promise encryption,
143
+ requires a configured gateway backup script (`backup-secrets.sh` at
144
+ `sources.gateway_root` or in its `bin/`); do not promise encryption,
139
145
  keychain storage or scheduled backups when that integration is absent.
140
146
 
141
147
  ## When something is unavailable
@@ -15,7 +15,7 @@ description: >-
15
15
  the repository.
16
16
  license: AGPL-3.0-only OR LicenseRef-PassionCode-Commercial
17
17
  metadata:
18
- version: "0.13.0"
18
+ version: "0.14.0"
19
19
  compatibility: >-
20
20
  Requires a full Project Observatory installation with organizations.json
21
21
  configured; the observatory MCP server or its local CLI. Creating the resource
@@ -58,7 +58,7 @@ Report each resource with `observatory_propose`:
58
58
  "targetId": "project:<slug>",
59
59
  "patch": {"resources": [{"kind": "ga4-property",
60
60
  "identifier": "properties/123456789",
61
- "account": "accounts/162941847",
61
+ "account": "accounts/123456789",
62
62
  "url": "https://analytics.google.com/…",
63
63
  "note": "web stream for example.com",
64
64
  "added_on": "2026-09-27",
@@ -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.1.21",
5
+ "version": "0.1.22",
6
6
  "description": "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",