Fix #364: org audit log #377

Merged
crueber merged 1 commit from fix/issue-364 into main 2026-09-12 14:18:17 +00:00
Owner

Org activity surface (API paging + UI) over the #363 org-event substrate: member/team/repo/invite events plus the missing org-object transitions (org_created/org_updated/org_deleted/team_updated/repo_created). Reads are head-GET + exact-key probes (never a LIST); live tail reuses the repo frame bus (org_activity frames); retention compacts on notify-retention with the repo floor contract; owner-gated API + owner-only Activity tab. Decision + §5.5/§9 in docs/features/06_notifications.md. No new deps. Verification: go short tier green, -race green (notify/identity/wal/cmd), cover notify 95.3/identity 95.9/wal 95.4, node 745/747 (2 pre-existing smoke failures against the stray :8080 server, identical on main), vite+esbuild green, sim budgets green. Fixes #364.

Org activity surface (API paging + UI) over the #363 org-event substrate: member/team/repo/invite events plus the missing org-object transitions (org_created/org_updated/org_deleted/team_updated/repo_created). Reads are head-GET + exact-key probes (never a LIST); live tail reuses the repo frame bus (org_activity frames); retention compacts on notify-retention with the repo floor contract; owner-gated API + owner-only Activity tab. Decision + §5.5/§9 in docs/features/06_notifications.md. No new deps. Verification: go short tier green, -race green (notify/identity/wal/cmd), cover notify 95.3/identity 95.9/wal 95.4, node 745/747 (2 pre-existing smoke failures against the stray :8080 server, identical on main), vite+esbuild green, sim budgets green. Fixes #364.
Org activity surface (API paging + UI) over the #363 org-event log:
member/team/repo/invite events plus the missing org-object transitions.
New actions org_created (fresh CreateOrg only), org_updated (PutOrg),
org_deleted (pre-delete), team_updated (PutTeam), repo_created (every
birth through the wal registry manifest commit — the single seam #363
missed — via a nil-safe OnCreate hook injected by composition; user
births stay silent; warm pushes never birth). Reads are head-GET +
exact-key probes (never a LIST; n default 50/max 200; n+64 probe cap).
Live tail reuses the repo frame bus verbatim (org_activity frames keyed
by bare org) — no new bus, no new task kind, no new bucket families.
Retention compacts the log on notify-retention with the repo floor
contract (min active org cursor + 7 days, same per-pass caps). Owner-
gated API (401/403) + owner-only org-settings Activity tab (live
prepend deduped by seq). Push-budget test sanctions exactly the birth
GET shape (<=1, cold births only).

Decision appended in docs/features/06_notifications.md (amends the #363
'no single seam' clause). No new Go or npm dependencies.
Sign in to join this conversation.
No description provided.