@mrciphersmith/keryx 0.3.43 → 0.3.46

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrciphersmith/keryx",
3
- "version": "0.3.43",
3
+ "version": "0.3.46",
4
4
  "description": "Version-controlled project context for AI coding agents: code graph, architecture wiki, project memory, relevant tests, quality signals, and task flows.",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -211,11 +211,21 @@ if (executor?.id !== this.executorId) {
211
211
 
212
212
  ## Lifecycle Initialization
213
213
 
214
- - `init()` / `onMount()` is called by the **parent store**, not from component `useEffect`.
215
- - Components should **not** trigger store data loading via `useEffect`. Parent store orchestrates child store lifecycle.
214
+ - A component tells its own store that it mounted and unmounted through the lifecycle bridge below. Calling `store.onMount()` / `store.onUnmount()` from that `useEffect` is correct: the component reports an event, the store decides what it means.
215
+ - A **child** store's `init()` / `onMount()` is called by the **parent store**, not from a component `useEffect`. Parent store orchestrates child store lifecycle.
216
+ - Components should **not** trigger data loading or run business logic in a `useEffect` (`store.loadX()`, a child store's `init()`). That work belongs inside the store's `onMount()`.
216
217
  - `dispose()` is called by the parent store in its `onUnmount()` to prevent stale-state updates.
217
218
 
218
219
  ```typescript
220
+ // Component — the lifecycle bridge
221
+ useEffect(() => {
222
+ store.onMount();
223
+ return () => store.onUnmount();
224
+ }, [store]);
225
+ ```
226
+
227
+ ```typescript
228
+ // Store — what mounting means
219
229
  @action.bound
220
230
  onMount() {
221
231
  void this.variablesStore.init();
@@ -56,8 +56,11 @@ keryx rules sync
56
56
  ```
57
57
 
58
58
  This imports the root `AGENTS.md`/`CLAUDE.md` into `.metaproject/rules/` and
59
- refreshes the routing index. It is also project-local and writes no
60
- home-directory (`~`) path.
59
+ refreshes the routing index. It also rewrites the managed `keryx:index` block
60
+ where `agentEntrypoints.root` puts it — `CLAUDE.local.md` and
61
+ `AGENTS.override.md` by default — and regenerates `AGENTS.override.md` from the
62
+ edited `AGENTS.md`, which Codex otherwise keeps reading in its old form. It is
63
+ also project-local and writes no home-directory (`~`) path.
61
64
 
62
65
  ## Rule File Standard
63
66
  Every core rule MUST include: