@agfpd/iapeer-memory-core 0.1.11 → 0.1.12

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/memoryd.ts +17 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agfpd/iapeer-memory-core",
3
- "version": "0.1.11",
3
+ "version": "0.1.12",
4
4
  "description": "iapeer-memory core — host-neutral TypeScript memory primitive: vault schema/taxonomy config, search engine, memoryd, context renderer, role contracts. Consumed by the @agfpd/iapeer-memory facade; version kept in lockstep by its release flow (docs/10-distribution.md).",
5
5
  "license": "MIT",
6
6
  "type": "module",
package/src/memoryd.ts CHANGED
@@ -680,10 +680,26 @@ export async function startMemoryd(opts: MemorydOptions): Promise<MemorydHandle>
680
680
  // over the WHOLE inbox folder; no dependency on fs.watch filenames).
681
681
  const inboxNext = snapshotInbox(config.vaultPath, taxonomy);
682
682
  for (const name of diffSnapshots(inboxSnapshot, inboxNext)) {
683
+ const abs = path.join(config.vaultPath, taxonomy.folders.inbox, name);
684
+ // Source-фильтр кураторов — ПАРИТЕТ с PERMANENT_BATCH (живое эхо
685
+ // 10.06: стилистическая правка Scriber'а ВО ВРЕМЯ вычитки породила
686
+ // повторный INBOX_NEW по тому же черновику — вычитывающая сессия и
687
+ // есть конвейер). Правки автора (reject→fix→re-review) проходят:
688
+ // last_edited_by остаётся автором. Цена документирована: черновик,
689
+ // чья ПОСЛЕДНЯЯ правка до первого анонса — кураторская, не
690
+ // анонсируется; в конвейере не возникает (кураторы трогают черновики
691
+ // только по событиям, т.е. после анонса). Baseline обновляется ниже
692
+ // безусловно — подавленное НЕ реплеится, авторская правка поверх
693
+ // кураторской диффится от свежего снапшота и проходит.
694
+ const leb = lastEditedByOf(abs);
695
+ if (leb && config.curatorSet.includes(leb)) {
696
+ logger.info(`inbox event suppressed (curator ${leb}): ${name}`);
697
+ continue;
698
+ }
683
699
  logger.info(`inbox event: ${name}`);
684
700
  // ABSOLUTE path (B-приёмка 10.06): a consumer must never guess the
685
701
  // vault root — a role peer once `find`-guessed a stale copy.
686
- emit(`INBOX_NEW: ${path.join(config.vaultPath, taxonomy.folders.inbox, name)}`);
702
+ emit(`INBOX_NEW: ${abs}`);
687
703
  }
688
704
  if (inboxNext.size > 0 || inboxSnapshot.size === 0) {
689
705
  inboxSnapshot = inboxNext;