gsxdsm
9c43736794
FN-8870: add structural approval and report mail
Add typed report and approval metadata to the mailbox contract.
- Define and validate structural mail kinds, report sections, and approval references.
- Let agents send validated reports while reserving approval mail for engine emission.
- Emit idempotent, fail-soft approval notifications and document the contract.
Files changed:
.changeset/fn-8870-structural-mail-contract.md | 7 ++
docs/agents.md | 2 +
docs/architecture.md | 4 +
.../message-metadata-structural-mail.test.ts | 25 ++++
packages/core/src/index.gate.ts | 2 +-
packages/core/src/index.ts | 2 +-
packages/core/src/types.ts | 30 +++++
packages/core/src/types/messaging/messages.ts | 21 ++++
...gent-tools-send-message-structural-mail.test.ts | 34 +++++
.../src/__tests__/approval-mail-emission.test.ts | 137 +++++++++++++++++++++
packages/engine/src/agent-heartbeat.ts | 3 +
packages/engine/src/agent-tools.ts | 28 ++++-
packages/engine/src/agents/approval-mail.ts | 40 ++++++
packages/engine/src/executor.ts | 3 +
14 files changed, 334 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-8870
Fusion-Task-Lineage: 7d30b2f9-c004-4975-86b1-9600e2c8d76f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-08-09 00:41:18 -07:00
..
2026-08-09 00:41:18 -07:00
2026-08-09 00:41:18 -07:00
2026-08-03 10:58:19 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-07 21:43:28 -07:00
2026-08-04 22:17:06 -07:00
2026-08-03 00:20:53 -07:00
2026-08-08 19:58:43 -07:00
2026-08-03 00:20:53 -07:00
2026-07-13 19:07:58 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-08 22:35:59 -07:00
2026-08-07 20:56:52 -07:00
2026-08-09 00:01:44 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-07-20 10:13:57 -07:00
2026-08-07 21:43:28 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-07 00:26:15 -07:00
2026-08-07 20:27:04 -07:00
2026-08-08 21:04:10 -07:00
2026-08-07 21:18:24 -07:00
2026-08-03 00:20:53 -07:00
2026-08-09 00:41:18 -07:00
2026-08-09 00:41:18 -07:00
2026-07-30 21:50:37 -07:00
2026-08-01 08:20:29 -07:00
2026-08-04 10:52:12 -07:00
2026-08-02 17:06:38 -07:00
2026-08-09 00:41:18 -07:00
2026-08-07 01:36:34 -07:00
2026-07-23 10:31:22 -07:00
2026-08-07 01:36:34 -07:00
2026-08-07 01:36:34 -07:00
2026-07-25 20:46:07 -07:00
2026-08-04 19:31:06 -07:00
2026-08-04 00:20:08 -07:00
2026-07-30 00:00:46 -07:00
2026-08-04 00:20:08 -07:00
2026-08-04 08:57:30 -07:00
2026-08-08 22:43:45 -07:00
2026-07-27 17:37:20 -07:00
2026-07-24 23:57:49 -07:00
2026-08-08 19:58:43 -07:00
2026-08-03 00:20:53 -07:00
2026-08-08 19:58:43 -07:00
2026-07-30 23:13:34 -07:00
2026-08-08 19:58:43 -07:00
2026-08-03 00:20:53 -07:00
2026-07-27 13:30:13 -07:00
2026-08-03 00:20:53 -07:00