@owlmeans/planning 0.1.18-rc.24 → 0.1.18-rc.25

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/README.md CHANGED
@@ -9,7 +9,7 @@ the executor with `@owlmeans/server-planning` and reads remotely with `@owlmeans
9
9
  ## Installation
10
10
 
11
11
  ```sh
12
- bun add @owlmeans/planning@^0.1.18-rc.23 ajv ajv-formats
12
+ bun add @owlmeans/planning@^0.1.18-rc.25 ajv ajv-formats
13
13
  ```
14
14
 
15
15
  ## Concepts
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
3
  "package": "@owlmeans/planning",
4
- "version": "0.1.18-rc.24",
5
- "generatedAt": "2026-10-09T13:40:06.950Z",
4
+ "version": "0.1.18-rc.25",
5
+ "generatedAt": "2026-10-09T17:24:50.733Z",
6
6
  "canonicalRepo": "https://github.com/owlmeans/common",
7
7
  "entries": [
8
8
  {
@@ -8,7 +8,7 @@ user-invocable: false
8
8
  # @owlmeans/planning
9
9
 
10
10
  **Layer:** Cross-cutting domain
11
- **Install:** `"@owlmeans/planning": "^0.1.18-rc.24"` in `dependencies` (`ajv` and `ajv-formats` are peers)
11
+ **Install:** `"@owlmeans/planning": "^0.1.18-rc.25"` in `dependencies` (`ajv` and `ajv-formats` are peers)
12
12
 
13
13
  The contracts of project planning: record shapes, schemas, refusals, the protocol tree, the pure
14
14
  fold and the models. No database, no fastify, no React. The executor, the plugin registry, the
@@ -76,8 +76,9 @@ forms generated code keeps writing are `server-planning` → Creating and readin
76
76
  - **`entityId` is the organization's stable record id** — never the wire `entitySlug`, never a body
77
77
  value. Every read is scoped by it; where a request's comes from is `server-planning` → Scope and
78
78
  security.
79
- - **Membership is `parent` + `parents`, never a relationship.** `parents` always contains `parent`
80
- (first), so many-to-many membership needs no junction row. `within` queries `parents`.
79
+ - **Card containment is `parent` + `parents`.** `parents` always contains `parent` (first), so
80
+ multiple direct parents need no junction row. `within` queries those direct parents. Team
81
+ membership and project-team assignment use canonical typed relationships instead.
81
82
  - **Specification is a workcard** (`kind: specification`) with `category`, `format`, `body`, `ref`,
82
83
  `revision`, `version`, `bodyChars`. The SLOT — category, format, `multiple`, `revisioned`,
83
84
  `keepRevisions`, a JSON body `schema` — is declared on the PARENT's type. One record per
@@ -85,8 +86,10 @@ forms generated code keeps writing are `server-planning` → Creating and readin
85
86
  same record, and earlier bodies come back from the transition log.
86
87
  - **`createdBy` is written once, from a create's draft, and never moves.** Named in `changes` or
87
88
  `unset` it is refused on every action (`planning:immutable:createdBy`), so an ownership check
88
- (`card.createdBy === profileId`) can trust it. A card that changes hands keeps that in a field of
89
- its own type (`fields.assignee`); who made each later write is the transition's `actor`.
89
+ (`card.createdBy === profileId`) can trust it. Responsibility uses the optional top-level
90
+ `assignee` planning ID; additional participant fields belong in the type's `fields` schema.
91
+ The optional `reporter` also references an assignee ID. Who made each later write is the
92
+ transition's `actor`.
90
93
  - **`seq` is the last folded transition, `head` the highest allocated.** `head > seq` means a write
91
94
  is in flight (`cardHelper.isPending`); optimistic concurrency (`expectSeq`) compares against the
92
95
  head.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@owlmeans/planning",
3
- "version": "0.1.18-rc.24",
3
+ "version": "0.1.18-rc.25",
4
4
  "license": "MIT",
5
5
  "description": "Runtime-free project-planning contracts — the workcard super type, projects, specifications, typed relationships, status flows with three intrinsic states, the transition event and its pure fold, the schema registry, the models and the protocol tree.",
6
6
  "type": "module",