@passioncode-ai/passioncode 0.1.22 → 0.1.24

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,29 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.24 - 2026-10-03
4
+
5
+ ### Changed
6
+
7
+ - **`working-in-passioncode` carries the release-signing rule** (knowledge rules §11):
8
+ - a published build is signed only in CI, in the repository's `release` environment, through
9
+ `passioncode-ai/.github@v1`;
10
+ - it is approved by `release-approvers` but not by the tag's author;
11
+ - no release key lives on a laptop;
12
+ - an agent never approves a release it started;
13
+ - a published release is never rewritten.
14
+
15
+ The engine line now names its CI release.
16
+
17
+ ## 0.1.23 - 2026-10-03
18
+
19
+ ### Changed
20
+
21
+ - **Fabric Agent Adapter is pinned at `v0.6.2`** (it was `v0.6.1`). `building-fabric-services`
22
+ now says how a product behaves under a host lifecycle broker — the always-on per-user service
23
+ agents ask to start, stop and restart products: quit through both the platform's quit and
24
+ `SIGTERM`, stay in the background when opened non-activating, keep the designated requirement
25
+ stable, expose honest readiness.
26
+
3
27
  ## 0.1.22 - 2026-10-03
4
28
 
5
29
  ### Changed
package/family.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "name": "fabric-agent-adapter",
9
9
  "displayName": "Fabric Agent Adapter",
10
10
  "repo": "passioncode-ai/fabric-agent-adapter",
11
- "ref": "v0.6.1",
11
+ "ref": "v0.6.2",
12
12
  "kind": "plugin",
13
13
  "path": "plugins/fabric-agent-adapter",
14
14
  "legacyPluginIds": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@passioncode-ai/passioncode",
3
- "version": "0.1.22",
3
+ "version": "0.1.24",
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"
@@ -11,7 +11,7 @@
11
11
  "name": "fabric-agent-adapter",
12
12
  "displayName": "Fabric Agent Adapter",
13
13
  "source": "./plugins/fabric-agent-adapter",
14
- "version": "0.6.1",
14
+ "version": "0.6.2",
15
15
  "description": "Create new Fabric-compatible agents, build them as always-alive local services with dashboards (fabric-service/0.1), and adapt existing projects to the Fabric Agent Contract through evidence-backed MCP, A2A, or local-runner provider bundles.",
16
16
  "author": {
17
17
  "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.22",
38
+ "version": "0.1.24",
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,15 +1,15 @@
1
1
  {
2
2
  "family": "passioncode",
3
- "version": "0.1.22",
3
+ "version": "0.1.24",
4
4
  "release": true,
5
5
  "members": [
6
6
  {
7
7
  "name": "fabric-agent-adapter",
8
8
  "displayName": "Fabric Agent Adapter",
9
9
  "repo": "passioncode-ai/fabric-agent-adapter",
10
- "ref": "v0.6.1",
11
- "commit": "d3a4c67262e242b0a4422ecdcf99a7d892db6caa",
12
- "version": "0.6.1",
10
+ "ref": "v0.6.2",
11
+ "commit": "4b435baac85e343b530af86d56f8b75ac406bc43",
12
+ "version": "0.6.2",
13
13
  "via": "clone of https://***@github.com/passioncode-ai/fabric-agent-adapter.git",
14
14
  "skills": [
15
15
  "adapting-projects-to-fabric",
@@ -22,7 +22,7 @@
22
22
  "legacyMarketplaces": [
23
23
  "fabric-agent-adapter"
24
24
  ],
25
- "contentHash": "sha256:654511f4332892aa9a709e1946566d017179edc294e136fbe5c6466c5c32b5c8",
25
+ "contentHash": "sha256:95fab0fdf3ee1f9171fc7c07edd60313cf52ddb68bb2eb456caf1df8afde36cb",
26
26
  "description": "Create new Fabric-compatible agents, build them as always-alive local services with dashboards (fabric-service/0.1), and adapt existing projects to the Fabric Agent Contract through evidence-backed MCP, A2A, or local-runner provider bundles.",
27
27
  "author": {
28
28
  "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.22",
64
+ "ref": "v0.1.24",
65
65
  "commit": null,
66
- "version": "0.1.22",
66
+ "version": "0.1.24",
67
67
  "via": "this repository",
68
68
  "skills": [
69
69
  "working-in-passioncode"
70
70
  ],
71
71
  "legacyPluginIds": [],
72
72
  "legacyMarketplaces": [],
73
- "contentHash": "sha256:41d5e5549a6fb2ace8f68766c3fad8fc2c72197b2896a8ae934b1a2029eba0ec",
73
+ "contentHash": "sha256:e754ad6eab6581d2fba7c887b903c4676239a85ceed74010ccec87b631586816",
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": "fabric-agent-adapter",
4
4
  "displayName": "Fabric Agent Adapter",
5
5
  "description": "Create new Fabric-compatible agents, build them as always-alive local services with dashboards (fabric-service/0.1), and adapt existing projects to the Fabric Agent Contract through evidence-backed MCP, A2A, or local-runner provider bundles.",
6
- "version": "0.6.1",
6
+ "version": "0.6.2",
7
7
  "author": {
8
8
  "name": "PassionCode.ai",
9
9
  "url": "https://passioncode.ai/"
@@ -5,7 +5,7 @@ license: AGPL-3.0-only OR LicenseRef-PassionCode-Commercial
5
5
  compatibility: Requires filesystem access and Python 3.9+. Exact schema checks additionally need git, Node.js, pnpm, and the pinned fabric-agent-contract checkout (a public repository). Works without those tools in an explicitly degraded structural-check mode.
6
6
  metadata:
7
7
  author: PassionCode.ai
8
- version: "0.6.1"
8
+ version: "0.6.2"
9
9
  contract-version: "0.1.0"
10
10
  contract-commit: "2ce392291c6668598d12cd38327e24696b5ca15c"
11
11
  ---
@@ -15,7 +15,7 @@ license: AGPL-3.0-only OR LicenseRef-PassionCode-Commercial
15
15
  compatibility: Python 3.9+ or Node.js 20+ for the kits; the probe needs Python 3.9+. launchd steps are macOS-only (Linux services use lifecycle manager none until a systemd adapter exists). Dashboard handoff optionally uses Fabric Dashboards MCP link/host_status/open; without it, report unresolved host capability. The contract checkout is optional.
16
16
  metadata:
17
17
  author: PassionCode.ai
18
- version: "0.6.1"
18
+ version: "0.6.2"
19
19
  contract-version: "0.1.0"
20
20
  extension: "fabric-service/0.1"
21
21
  extension-commit: "2ce392291c6668598d12cd38327e24696b5ca15c"
@@ -176,7 +176,8 @@ The installer, not the service, owns the plist and the descriptor. Sequence:
176
176
 
177
177
  Code runs from an immutable release directory; an upgrade writes a new release,
178
178
  rewrites the plist and restarts. Read [the lifecycle reference](references/lifecycle.md)
179
- for the plist fields, the release layout, log rotation and the Linux case.
179
+ for the plist fields, the release layout, log rotation, behaving under a host lifecycle broker
180
+ and the Linux case.
180
181
 
181
182
  ## Step 5 — the dashboard and the events
182
183
 
@@ -56,6 +56,27 @@ On `SIGTERM`: stop accepting new work, append a `service.stopping` event, drain
56
56
  in-flight work until `ExitTimeOut` minus a margin, persist what was interrupted so the
57
57
  next start resumes it, release the lock, exit 0.
58
58
 
59
+ ## Being managed by a host lifecycle broker
60
+
61
+ A host may run a lifecycle broker: one always-on per-user service that agents ask to start,
62
+ stop and restart products, instead of launching or killing them themselves. A product it manages
63
+ has to survive being driven from outside:
64
+
65
+ - **Quit reaches exit through both doors.** A broker asks the platform's own quit first — on
66
+ macOS `NSRunningApplication.terminate()`, the path Cmd+Q and the Dock take — and `SIGTERM` a few
67
+ seconds later. Handle both and exit inside the deadline (fabric-workspace LC-01). A desktop app
68
+ that answers `SIGTERM` by closing its window and staying alive is stopped late or not at all.
69
+ - **A background launch stays in the background.** A broker opens the app non-activating
70
+ (`NSWorkspace.OpenConfiguration.activates = false`); do not call `app.focus()`, `show()` on a
71
+ focused window, or activate on `ready` when nobody asked for a window. Taking focus from the
72
+ person is the one side effect they always notice.
73
+ - **Identity is the designated requirement.** A broker pins the app by team + bundle id, so an
74
+ update signed by the same team keeps working and anything else is refused (LC-05). Never ship an
75
+ ad-hoc or differently signed build to a machine that pins you.
76
+ - **Starting is not ready.** Expose readiness the broker can probe without a person — the
77
+ well-known document for a service, a process-level answer for a plain app — and keep it honest
78
+ while the app is still starting.
79
+
59
80
  ## Linux
60
81
 
61
82
  Until a systemd adapter exists, declare `lifecycle.manager: "none"`. A `systemd --user`
@@ -5,7 +5,7 @@ license: AGPL-3.0-only OR LicenseRef-PassionCode-Commercial
5
5
  compatibility: Requires filesystem access and Python 3.9+. Exact schema checks additionally need git, Node.js, pnpm, and the pinned fabric-agent-contract checkout (a public repository). Works without those tools in an explicitly degraded structural-check mode. Ships in one plugin with adapting-projects-to-fabric, whose scripts it reuses.
6
6
  metadata:
7
7
  author: PassionCode.ai
8
- version: "0.6.1"
8
+ version: "0.6.2"
9
9
  contract-version: "0.1.0"
10
10
  contract-commit: "2ce392291c6668598d12cd38327e24696b5ca15c"
11
11
  ---
@@ -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.22",
5
+ "version": "0.1.24",
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",
@@ -208,9 +208,17 @@ to a public surface.
208
208
  `release.yml` publish when the repository variables `RELEASE_ENABLED` and
209
209
  `PUBLISH_NPMJS` are `true`. Check `gh variable list -R passioncode-ai/<repo>` before
210
210
  pushing a tag; publishing is a release decision, not a side effect.
211
- - **Engine** (`project-observatory-dashboard`): contributors send PRs; releases are cut
212
- with the maintainer's release tooling, which is maintainer-only. Machines then run
213
- `project-observatory full update --check` and `--apply`.
211
+ - **Signing (knowledge rules §11).** A published build is signed only in CI, in the
212
+ repository's protected `release` environment, through `passioncode-ai/.github@v1`
213
+ (`apple-signing`, `notarize`, `sign-sums`, `release-publish`). A member of
214
+ `release-approvers` who is not the tag's author approves it. No release key lives on a
215
+ laptop, and a locally signed build is a debug build: never attach it. You act as the person
216
+ whose account you use, so never approve a release you started; start it and say whose
217
+ approval is pending. A published release is never rewritten. Rehearse on `vX.Y.Z-rc.N` with
218
+ `publish=false`.
219
+ - **Engine** (`project-observatory-dashboard`): contributors send PRs. A `vX.Y.Z` tag on the
220
+ reviewed release commit runs its `release.yml`, which signs and publishes in CI. Machines then
221
+ run `project-observatory full update --check` and `--apply`.
214
222
  - **Launcher** (`passioncode`): members are tagged first, `family.json` refs point at
215
223
  those tags, the payload is vendored from tags only.
216
224
  - **Contract pins.** `fabric-agent-contract` consumers carry explicit commit pins;