Skip to content

feat(board): add event history and scoped invitation notifications - #95

Closed
wefio wants to merge 1 commit into
mainfrom
feat/board-event-space-integrated
Closed

wefio wants to merge 1 commit into
mainfrom
feat/board-event-space-integrated

Conversation

@wefio

@wefio wefio commented Oct 20, 2026

Copy link
Copy Markdown
Owner

变更描述

What(改了什么):在保留普通世界频道通信的前提下,新增跨频道事件记录(快照 + 版本化历史 + 父子/依赖 + 独立结果与持续影响)、由任务 owner 派生的 Agent 公开状态,以及显式通知:点名、频道订阅、事件订阅是三类独立受众,重叠收件人只送一次。

Why(为什么改 / 解决什么问题):跨频道协作只有聊天时,关键变化、结束与影响散落在各处无法回收;同时"事件关联"曾被误当成群发,造成定向更新不唤醒或整事件重复唤醒。用户要求邀请首条直接送达并自动订阅目标频道(可退出)、ACK 静默、且不引入任何唤醒链/轮数上限。

Changes(关键改动点,按文件或模块列出):

  • src/core/coordination-events.ts、src/core/store/coordination*.ts:事件快照、CAS 修订、粗历史、订阅与历史关联、独立 outcome/effects、频道状态;通知去重与合并、退订永久作废旧提醒、稳定邀请身份与 TTL 墓碑;withCoordination 复用原 TransactionPort,无嵌套 BEGIN。
  • src/core/board-notifications.ts、src/core/store/board-notifications.ts:notification={key,scopes:[direct|channel|event],recipients?,invite?},源消息与邀请订阅登记、outbox 同事务提交。
  • src/cli/{protocol,service,commands,daemon-client}.ts:put(notification)、--notification-json、board-events capability 门禁、订阅列表走共享 membership owner。
  • src/integration/{state,coordination-state,board-wake,board-delivery,agent-surface,information-output,tool-contract}.ts:共享 typed 视图、静默普通事件 note、有界来源标注唤醒预览、delivery 与 eligibility 分离。
  • .pi/extensions/nmg/index.ts、opencode-plugin/、claude-plugins/nmg-memory/agents/memory-copilot.ts、dsh/dsh-nmg/src/plugin/index.ts:薄宿主透传;DSH 先 await agent.send 再记 delivery。
  • 文档:docs/design/board-event-records.md、双语 ADR、能力矩阵 EN/ZH、skills/nmg-memory/references/board.md、hidden-features 注册表、completion 台账;测试覆盖独立受众、邀请即订阅、退订/再邀请、回滚、TTL 重放、静默 ACK、合并与宿主入队失败。

未验证项

Not verified(没验证什么):

  • 未部署、未重启共享 daemon;运行中的 Pi 加载版本未核实,真实 idle 宿主上的唤醒未验收。
  • 没有自然协作收益证据(模型理解、实际协作效率)。
  • advisory 套件 verify:research / verify:chaos 未运行。
  • DSH 包存在与改动无关的既有类型提示基线;未逐条清理。
  • 一条早期失败收据保留未删:初次产品套件有 1 个 default 世界频道出现在显式订阅列表的回归,已按既有断言修复代码;旧失败记录不作为通过证据。

完成检查项

本地质量检查

  • npm run verify:static 全绿(含 build / package:check / check / check:tests / check:lock / lint / format:check / docs:check / agent:context:check / complexity:gate / verify:packages / glossary / policy-words / rtm)
  • npm run test:product 通过,并由 npm run agent:verify 完整门禁复核:a2f6ac84-01c5-4a86-b2be-7a46dffc58a2(16 项阻断 exit 0)
  • 提交后 clean 门禁:26353dbd-f96e-4ed2-aac8-8f8cad8676d1(--full --require-clean,exit 0)
  • 未改依赖或 lockfile
  • DSH 子包经 verify:packages frozen-lockfile install + build 通过
  • 文档改动跑过 docs:check(383 files / 0 errors / 0 warnings);非平凡改动携带双语决策记录
  • npm run complexity:gate 通过(新代码方法 ≤ 15)
  • 未提交可再生产物(dist/、dsh/dsh-nmg/lib/、src/prompts/nmg-prompts.generated.ts)

RCP(Repository Control Plane)

  • in-flight goal 已登记:repo-development#1792240237659_000608;按其自身 TTL 到期后再 resolve 时黑板报 entry not found,因此没有成功关闭记录(如实保留,不补造)
  • 改动路由确认:npm run agent:verify 完整门禁即证据;证据目录 .nmg/verification/board-event-integration-20261018/(full2.json、clean.json)
  • CI 全绿尚未观察:本 PR 以 draft 建立,待 nmg-rcp forge-status --pr <PR号> 读取
  • 只提交本改动拥有的 56 个路径;未吞并行 Agent 改动(git status --short 核对)

CI 完成确认

  • nmg-rcp forge-status 的 All checks passed 为 SUCCESS
  • CodeFactor 通过
  • Static job 通过(含 Dependency audit)

Persist event revisions, independent subscriptions and task-derived Agent status. Commit invitation enrollment, stable retry identity and notification outbox atomically; keep opt-out, quiet acknowledgements and audience scopes independent without collaboration-round limits.

Route shared state and wake delivery through CLI, Pi, OpenCode, MCP and DSH. Verify all 16 blocking checks on the integrated source (a2f6ac84-01c5-4a86-b2be-7a46dffc58a2); isolated fixtures do not claim live-host deployment or natural collaboration benefit.
Base automatically changed from integr/timing-rebase to main October 20, 2026 05:57
@wefio

wefio commented Oct 20, 2026

Copy link
Copy Markdown
Owner Author

Superseded by #98, which carries the same commit rebased onto main after #94 (its docs now follow the split structure from #93). #95 targeted integr/timing-rebase, so GitHub never ran CI for it.

@wefio wefio closed this Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant