@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
package/agent-meta/manifest.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 2,
|
|
3
3
|
"package": "@owlmeans/planning",
|
|
4
|
-
"version": "0.1.18-rc.
|
|
5
|
-
"generatedAt": "2026-10-
|
|
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.
|
|
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
|
-
- **
|
|
80
|
-
|
|
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.
|
|
89
|
-
|
|
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.
|
|
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",
|