@mean-weasel/lineage 0.1.3 → 0.1.5

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,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.5
4
+
5
+ - Add graph orientation controls for lineage views and CLI flows, including browser coverage for orientation behavior.
6
+ - Improve agent claim visibility with workspace/content occupancy badges, claim lifecycle controls, and release claim smoke coverage.
7
+ - Harden lineage claim enforcement for explicit child workspaces and `project_channel` claims so scoped claims cannot authorize broader writes.
8
+ - Make local startup helpers durable with tmux-backed Makefile commands.
9
+
10
+ ## 0.1.4
11
+
12
+ - 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.
13
+ - 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.
14
+ - Enforce matching claim tokens for claimed lineage/content mutations and document the `LINEAGE_CLAIM_TOKEN` operator flow, including rare `project_channel` ownership.
15
+
3
16
  ## 0.1.3
4
17
 
5
18
  - Add a managed Swissifier rich-demo media download flow that verifies the release archive and restored PNG checksums before loading the demo.
package/README.md CHANGED
@@ -40,6 +40,46 @@ By default, `lineage start` listens on `lineage.localhost:5197` and stores SQLit
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
+ Agents can inspect the current lineage graph without a claim:
58
+
59
+ ```bash
60
+ lineage agent graph --project demo-project --root <root-asset-id> --json
61
+ ```
62
+
63
+ Keep the claim fresh and pass it to mutating commands:
64
+
65
+ ```bash
66
+ lineage agent heartbeat --claim-token "$LINEAGE_CLAIM_TOKEN" --json
67
+ lineage link-child --project demo-project --root <root-asset-id> --child <child-asset-id> --claim-token "$LINEAGE_CLAIM_TOKEN" --confirm-write --json
68
+ lineage agent release --claim-token "$LINEAGE_CLAIM_TOKEN" --json
69
+ ```
70
+
71
+ The app-created claim-aware handoff packet includes the same token export,
72
+ heartbeat, inspect, and write commands. Raw claim tokens are not shown in the
73
+ read-only Agents view.
74
+
75
+ Use `project_channel` only for rare work that intentionally owns an entire
76
+ project/channel lane. Prefer `lineage_workspace` or `content_post` claims for
77
+ normal target-scoped agent work:
78
+
79
+ ```bash
80
+ lineage agent claim --project demo-project --scope project_channel --target demo-project:channel:tiktok --channel tiktok --agent-name "Channel owner" --ttl 20m --json
81
+ ```
82
+
43
83
  ## Codex Plugin
44
84
 
45
85
  The versioned Codex plugin lives in `plugins/lineage-codex-plugin`. Install the
@@ -93,12 +133,13 @@ For local release validation:
93
133
 
94
134
  ```bash
95
135
  npm run release:dry-run -- --tag next
136
+ npm run release:claim-smoke -- --package @mean-weasel/lineage@next
96
137
  npm run release:next
97
138
  npm run release:dry-run -- --tag latest
98
139
  npm run release:latest
99
140
  ```
100
141
 
101
- The release script verifies package metadata, changelog version coverage, public-readiness scans, install smoke, browser smoke, audit, and package contents before publishing. GitHub Actions runs CI on pull requests and `main`; publishing is manual through the Release workflow.
142
+ The release script verifies package metadata, changelog version coverage, public-readiness scans, install smoke, browser smoke, audit, and package contents before publishing. Promotion also installs the candidate package and runs a claim lifecycle smoke that creates a target claim, proves missing-token writes fail, proves matching-token writes succeed, verifies read surfaces do not expose the raw token, and proves release invalidates the token. GitHub Actions runs CI on pull requests and `main`; publishing is manual through the Release workflow.
102
143
 
103
144
  Use the Release workflow operations this way:
104
145
 
@@ -118,6 +159,8 @@ Lineage also includes a lightweight Swissifier rich-demo manifest at `fixtures/d
118
159
 
119
160
  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.
120
161
 
162
+ 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.
163
+
121
164
  For manual verification or offline restore, the expected archive checksum is:
122
165
 
123
166
  ```sh