@owlmeans/client-planning 0.1.18-rc.30 → 0.1.18-rc.32

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 @@ planning service runs in-process.
9
9
  ## Installation
10
10
 
11
11
  ```bash
12
- bun add @owlmeans/client-planning@^0.1.18-rc.29
12
+ bun add @owlmeans/client-planning@^0.1.18-rc.32
13
13
  ```
14
14
 
15
15
  ## Concepts
@@ -202,7 +202,7 @@ This package ships embedded agent skills under `agent-meta/`. After installing y
202
202
  your project's skill store (`.agents/skills/`):
203
203
 
204
204
  ```sh
205
- npx @owlmeans/agent-skills@^0.1.18-rc.53
205
+ npx @owlmeans/agent-skills@^0.1.18-rc.54
206
206
  ```
207
207
 
208
208
  The embedded files are version-matched to this package release. Do not edit them
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
3
  "package": "@owlmeans/client-planning",
4
- "version": "0.1.18-rc.30",
5
- "generatedAt": "2026-10-10T00:34:44.458Z",
4
+ "version": "0.1.18-rc.32",
5
+ "generatedAt": "2026-10-15T10:20:01.301Z",
6
6
  "canonicalRepo": "https://github.com/owlmeans/common",
7
7
  "entries": [
8
8
  {
@@ -8,7 +8,7 @@ user-invocable: false
8
8
  # @owlmeans/client-planning
9
9
 
10
10
  **Layer:** Client
11
- **Install:** `"@owlmeans/client-planning": "^0.1.18-rc.30"` in `dependencies`
11
+ **Install:** `"@owlmeans/client-planning": "^0.1.18-rc.32"` in `dependencies`
12
12
 
13
13
  The client half of OwlMeans planning. It answers the `PlanningFacade` interface of
14
14
  `@owlmeans/planning` over the protocol tree a server mounted with `@owlmeans/server-planning`, keeps
@@ -268,6 +268,10 @@ assignee/team/comment/mention API, including versioned writes, team membership a
268
268
  attachment. `appendPlanningStores` registers separate stock typed mirrors for all four resources.
269
269
  `makePlanningResourceFeed` seeds and polls selected resource queries; use it with the stock stores
270
270
  and `useStoreList` / `useStoreModel`. Auxiliary writes update the mirror only after success.
271
+ An active-assignee query (`retired: false`) includes an absent or null retirement flag. Local
272
+ mirror queries and feed reconciliation use `{ retired: { $ne: true } }`, matching the native
273
+ facade rather than strict equality to false. A filtered poll removes only its unchanged matching
274
+ snapshot rows, preserving unrelated retired identities needed by existing references.
271
275
  Comments use trusted server authors; mentions are read-only derived cache commands.
272
276
 
273
277
  Supply `PlanningClientOptions.scopeKey` from authenticated organization entity slug, profile/user
@@ -1 +1 @@
1
- {"version":3,"file":"resource-feed.d.ts","sourceRoot":"","sources":["../src/resource-feed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAIlE,OAAO,KAAK,EAAyB,YAAY,EAAqB,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAErH,sGAAsG;AACtG,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,WAC9E,CAAC,SAAQ,2BAA2B,KAC5C,YAoEF,CAAA"}
1
+ {"version":3,"file":"resource-feed.d.ts","sourceRoot":"","sources":["../src/resource-feed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAIlE,OAAO,KAAK,EAAyB,YAAY,EAAqB,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAErH,sGAAsG;AACtG,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,WAC9E,CAAC,SAAQ,2BAA2B,KAC5C,YAqEF,CAAA"}
@@ -28,6 +28,7 @@ export const makePlanningResourceFeed = (context, opts = {}) => {
28
28
  const store = stores[name];
29
29
  const { page: _page, size: _size, sort: _sort, ids, nickname, authentication, ...where } = query;
30
30
  const matches = { ...where, ...(ids != null ? { id: { $in: ids } } : {}),
31
+ ...(name === 'assignees' && where.retired === false ? { retired: { $ne: true } } : {}),
31
32
  ...(nickname != null ? { nicknameKey: mentionHelper.nicknameKey(nickname) } : {}),
32
33
  ...(authentication != null ? { 'authentication.provider': authentication.provider, 'authentication.externalId': authentication.externalId } : {}),
33
34
  ...(opts.scope?.entityId != null ? { entityId: opts.scope.entityId } : {}) };
@@ -1 +1 @@
1
- {"version":3,"file":"resource-feed.js","sourceRoot":"","sources":["../src/resource-feed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-feed.js","sourceRoot":"","sources":["../src/resource-feed.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@owlmeans/client-planning",
3
- "version": "0.1.18-rc.30",
3
+ "version": "0.1.18-rc.32",
4
4
  "license": "MIT",
5
5
  "description": "The client half of OwlMeans planning — the remote planning facade, the state mirror and its commit fold, and the subscribe-then-poll commit wait. React-free: it runs in a browser and in a Node client alike.",
6
6
  "type": "module",
@@ -25,16 +25,16 @@
25
25
  "dependencies": {
26
26
  "@cfworker/json-schema": "^4.1.1",
27
27
  "@owlmeans/auth": "^0.1.18-rc.41",
28
- "@owlmeans/client-context": "^0.1.18-rc.50",
29
- "@owlmeans/client-entrypoint": "^0.1.18-rc.49",
28
+ "@owlmeans/client-context": "^0.1.18-rc.51",
29
+ "@owlmeans/client-entrypoint": "^0.1.18-rc.50",
30
30
  "@owlmeans/context": "^0.1.18-rc.34",
31
31
  "@owlmeans/entrypoint": "^0.1.18-rc.41",
32
32
  "@owlmeans/error": "^0.1.18-rc.38",
33
- "@owlmeans/planning": "^0.1.18-rc.26",
33
+ "@owlmeans/planning": "^0.1.18-rc.27",
34
34
  "@owlmeans/resource": "^0.1.18-rc.40",
35
35
  "@owlmeans/log": "^0.1.18-rc.3",
36
36
  "@owlmeans/route": "^0.1.18-rc.35",
37
- "@owlmeans/socket": "^0.1.18-rc.43",
37
+ "@owlmeans/socket": "^0.1.18-rc.44",
38
38
  "@owlmeans/state": "^0.1.18-rc.39"
39
39
  },
40
40
  "peerDependencies": {
@@ -43,7 +43,7 @@
43
43
  },
44
44
  "devDependencies": {
45
45
  "@owlmeans/dep-config": "workspace:*",
46
- "@owlmeans/server-planning": "^0.1.18-rc.30",
46
+ "@owlmeans/server-planning": "^0.1.18-rc.32",
47
47
  "@owlmeans/test": "^0.1.18-rc.36",
48
48
  "@types/bun": "^1.4.2",
49
49
  "ajv": "^8.20.0",
@@ -30,6 +30,7 @@ export const makePlanningResourceFeed = <C extends BasicConfig, T extends BasicC
30
30
  const store = stores[name]
31
31
  const { page: _page, size: _size, sort: _sort, ids, nickname, authentication, ...where } = query as Record<string, any>
32
32
  const matches = { ...where, ...(ids != null ? { id: { $in: ids } } : {}),
33
+ ...(name === 'assignees' && where.retired === false ? { retired: { $ne: true } } : {}),
33
34
  ...(nickname != null ? { nicknameKey: mentionHelper.nicknameKey(nickname) } : {}),
34
35
  ...(authentication != null ? { 'authentication.provider': authentication.provider, 'authentication.externalId': authentication.externalId } : {}),
35
36
  ...(opts.scope?.entityId != null ? { entityId: opts.scope.entityId } : {}) }
@@ -16,4 +16,3 @@ export interface PlanningFieldValidator {
16
16
  /** Validate without coercion, defaults, removal, code generation or network reference loading. */
17
17
  validateFields: (fields: Record<string, unknown>) => PlanningFieldValidation
18
18
  }
19
-
@@ -4,6 +4,32 @@ import { makePlanningResourceFeed } from '../src/index.js'
4
4
  import { ENTITY_ID, makeSuite } from './context.js'
5
5
 
6
6
  describe('@owlmeans/client-planning — separate resources over real protocol handlers', () => {
7
+ test('active assignee feeds include unset flags and reconcile removal without dropping retired history', async () => {
8
+ const suite = await makeSuite({ resources: true })
9
+ const draft = (nickname: string) => ({ nickname, kind: AssigneeKind.Human, type: 'test:participant', authentication: { provider: 'external', externalId: nickname } })
10
+ const active = await suite.local.assignees.create(draft('active'))
11
+ const removed = await suite.local.assignees.create(draft('removed'))
12
+ const retired = await suite.local.assignees.create(draft('retired'))
13
+ await suite.local.assignees.retire(retired.id!, { version: 1 })
14
+ await suite.planning.assignees.get(retired.id!)
15
+ const stores = suite.client.planningStores!()
16
+ const ids = [active.id!, removed.id!, retired.id!]
17
+ const feed = makePlanningResourceFeed(suite.client, { assignees: { ids, retired: false, size: 0 }, refresh: 0 })
18
+ await feed.ready
19
+ expect(feed.error).toBeNull()
20
+ expect((await suite.planning.assignees.list({ ids, retired: false })).items.map(row => row.id).sort()).toEqual([active.id!, removed.id!].sort())
21
+ expect(await stores.assignees.load(active.id!)).not.toBeNull()
22
+ expect(await stores.assignees.load(removed.id!)).not.toBeNull()
23
+ // A remote retirement removes the formerly-active snapshot, but unrelated historical
24
+ // identities already in the shared mirror remain available for existing references.
25
+ await suite.local.assignees.retire(removed.id!, { version: 1 })
26
+ await feed.refresh()
27
+ expect(await stores.assignees.load(removed.id!)).toBeNull()
28
+ expect((await stores.assignees.get(retired.id!)).retired).toBe(true)
29
+ expect(await stores.assignees.load(active.id!)).not.toBeNull()
30
+ await feed.stop(); await suite.client.planning().close()
31
+ })
32
+
7
33
  test('assignees, teams, comments and mentions roundtrip and mirror versioned writes', async () => {
8
34
  const suite = await makeSuite({ resources: true })
9
35
  const p = suite.planning, project = await suite.project(), card = await suite.story(project.id!)