mirror of
https://github.com/PerpetualSoftware/pad.git
synced 2026-10-25 14:00:40 +00:00
e87ace01e0
* feat(apps): app webhook events name the install that wrote them (TASK-3411, SPEC-6 U10d) The app-projection block (v2) gains actor_via_app: the install whose fenced write caused the event. The emitters get AsInstall variants that take it; the existing signatures pass "", so every human and agent path is unchanged and writes none. The five fenced emit sites (item create and update, comment create, update and delete) pass FencedTx's install. The app DTO's envelope via_app is now the actor on every event, so an app can suppress the echo of its own writes (the support portal patches public_status and receives item.updated for it) while a person's edit to the same item carries none. A v1 block, written before v2 and still pending, keeps U10b's rule: via_app on create events only, from the creator. Census: human writes carry no actor_via_app (TestTask3389), fenced writes carry their install across every retained type (TestTask3411). Claude-Session: https://claude.ai/code/session_01Q9WssCjFuHjSfLABoW4tmS * test(apps): appstore boundary allow-list for the AsInstall emitters (TASK-3411) Claude-Session: https://claude.ai/code/session_01Q9WssCjFuHjSfLABoW4tmS