@mean-weasel/lineage 0.1.2 → 0.1.4

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.4
4
+
5
+ - Implement target-scoped agent claims for lineage and content-post agent writes, including claim lifecycle CLI/API commands, heartbeat/release/revoke/transfer controls, and token-redacted read APIs.
6
+ - Add claim-aware handoff packets, workspace/content occupancy badges, and a read-only Agents view so humans can see active, idle, stale, and closed claims without exposing raw tokens.
7
+ - Enforce matching claim tokens for claimed lineage/content mutations and document the `LINEAGE_CLAIM_TOKEN` operator flow, including rare `project_channel` ownership.
8
+
9
+ ## 0.1.3
10
+
11
+ - Add a managed Swissifier rich-demo media download flow that verifies the release archive and restored PNG checksums before loading the demo.
12
+ - Add durable local startup helpers and default Lineage CLI hosts for `lineage.localhost` and `lineage-dev.localhost`.
13
+ - Ship the lightweight Swissifier fixture manifest while keeping generated demo media outside git and package contents.
14
+
3
15
  ## 0.1.2
4
16
 
5
17
  - Fix packaged Lineage handoff commands so copied `next`, `inspect`, and `link-child` commands run through the published package.
package/README.md CHANGED
@@ -34,12 +34,60 @@ lineage start
34
34
  lineage-dev start
35
35
  ```
36
36
 
37
- By default, `lineage start` listens on `127.0.0.1:5197` and stores SQLite state in a stable Lineage runtime directory. `lineage-dev start` listens on `127.0.0.1:5198` and uses a separate development SQLite file. Override those defaults with `--port`, `--host`, `--db`, or `LINEAGE_HOME`:
37
+ By default, `lineage start` listens on `lineage.localhost:5197` and stores SQLite state in a stable Lineage runtime directory. `lineage-dev start` listens on `lineage-dev.localhost:5198` and uses a separate development SQLite file. Override those defaults with `--port`, `--host`, `--db`, or `LINEAGE_HOME`:
38
38
 
39
39
  ```bash
40
40
  lineage start --port 6123 --db ~/.lineage/lineage.sqlite
41
41
  ```
42
42
 
43
+ ## Agent Claims
44
+
45
+ Mutating agent writes use target-scoped claim tokens. Read-only inspection stays
46
+ available without a claim, but confirmed writes such as lineage `link-child` and
47
+ claimed content post attach/phase actions require a matching token when a target
48
+ is already claimed.
49
+
50
+ Create a claim and copy the raw token at creation time:
51
+
52
+ ```bash
53
+ lineage agent claim --project demo-project --scope lineage_workspace --target demo-project:lineage-workspace:<root-asset-id> --target-title "TikTok hook lineage" --agent-name "Codex thread 123" --ttl 20m --json
54
+ export LINEAGE_CLAIM_TOKEN='claim_abc.secret_xyz'
55
+ ```
56
+
57
+ Keep the claim fresh and pass it to mutating commands:
58
+
59
+ ```bash
60
+ lineage agent heartbeat --claim-token "$LINEAGE_CLAIM_TOKEN" --json
61
+ lineage link-child --project demo-project --root <root-asset-id> --child <child-asset-id> --claim-token "$LINEAGE_CLAIM_TOKEN" --confirm-write --json
62
+ lineage agent release --claim-token "$LINEAGE_CLAIM_TOKEN" --json
63
+ ```
64
+
65
+ The app-created claim-aware handoff packet includes the same token export,
66
+ heartbeat, inspect, and write commands. Raw claim tokens are not shown in the
67
+ read-only Agents view.
68
+
69
+ Use `project_channel` only for rare work that intentionally owns an entire
70
+ project/channel lane. Prefer `lineage_workspace` or `content_post` claims for
71
+ normal target-scoped agent work:
72
+
73
+ ```bash
74
+ lineage agent claim --project demo-project --scope project_channel --target demo-project:channel:tiktok --channel tiktok --agent-name "Channel owner" --ttl 20m --json
75
+ ```
76
+
77
+ ## Codex Plugin
78
+
79
+ The versioned Codex plugin lives in `plugins/lineage-codex-plugin`. Install the
80
+ plugin that matches the resolved `@mean-weasel/lineage` package version with:
81
+
82
+ ```bash
83
+ npx @mean-weasel/lineage-plugin-installer install --channel latest
84
+ ```
85
+
86
+ The installer verifies the plugin artifact checksum and rejects plugin manifests
87
+ whose version or `lineage.version` does not exactly match the resolved Lineage
88
+ package version. The plugin artifact and installer package are released from
89
+ this public repository.
90
+
43
91
  ## Local Development
44
92
 
45
93
  ```bash
@@ -50,6 +98,23 @@ npm run ci
50
98
 
51
99
  `npm run dev` starts the local development server from source. `npm run ci` runs the full local verification gate.
52
100
 
101
+ ## Command Shortcuts
102
+
103
+ The root `Makefile` provides memorable wrappers for common setup, startup, and
104
+ verification commands. Run `make` or `make help` to list the available targets.
105
+
106
+ ```bash
107
+ make install-prod
108
+ make install-plugin-prod
109
+ make start-prod
110
+ make check
111
+ make smoke
112
+ ```
113
+
114
+ The Makefile is only a convenience layer. npm scripts, the packaged CLIs, and
115
+ GitHub release workflows remain the source of truth for build, test, and release
116
+ behavior.
117
+
53
118
  ## Release Checks
54
119
 
55
120
  Use `next` for candidate builds and `latest` for the stable public channel. Check the current local, npm, and workflow state with:
@@ -83,6 +148,22 @@ Source checkouts and installed packages include a synthetic public demo catalog
83
148
 
84
149
  If you create a real `demo-project/assets/catalog.json`, that root project catalog overrides the packaged fixture. The fixture keeps S3-shaped metadata for realistic catalog structure, but default previews are generated local SVG data URLs and do not call storage.
85
150
 
151
+ Lineage also includes a lightweight Swissifier rich-demo manifest at `fixtures/demo-project/lineage/swissifier-rich-demo.json`. The manifest stores only synthetic metadata, checksums, graph edges, layout positions, and selected next-variation bases. It does not include generated PNG media or any local SQLite state.
152
+
153
+ To hydrate the Swissifier demo with real images, use the Demo seed menu's Swissifier `Download media` control. Lineage downloads `swissifier-rich-demo-v1.tar.gz` from the [v0.1.2 GitHub release](https://github.com/mean-weasel/lineage/releases/tag/v0.1.2), verifies the archive checksum, safely unpacks the PNGs into local scratch storage, and then verifies each PNG checksum before loading the rich demo.
154
+
155
+ Future rich-demo media packs should follow the same split: commit only the lightweight manifest changes, attach the generated media archive to the GitHub release for the app version that first references that archive, then pin the public release URL, archive size, and SHA-256 in the manifest. If a later app release reuses an unchanged media pack, keep the manifest pointed at the original release asset instead of duplicating the archive.
156
+
157
+ For manual verification or offline restore, the expected archive checksum is:
158
+
159
+ ```sh
160
+ shasum -a 256 swissifier-rich-demo-v1.tar.gz
161
+ ```
162
+
163
+ `24edc5307d0932ddc8a151c6a8c1001a08c45075e3ae198082038c44519be0de`
164
+
165
+ The previous manual path remains available: unpack the media pack yourself, set `LINEAGE_SWISSIFIER_MEDIA_DIR` to that folder, then use the Demo seed menu to restore media and load Swissifier.
166
+
86
167
  ## Data And Privacy
87
168
 
88
169
  Lineage stores local workspace state in a SQLite database on your machine. Public fixtures are synthetic and must not contain private names, credentials, presigned URLs, real customer content, private campaign data, or real media. Keep private catalogs and media outside public package fixtures.