Skip to content

Add actor-aware Content hooks and notifications#2210

Draft
3mdistal wants to merge 7 commits into
mainfrom
codex/content-hooks-notifications
Draft

Add actor-aware Content hooks and notifications#2210
3mdistal wants to merge 7 commits into
mainfrom
codex/content-hooks-notifications

Conversation

@3mdistal

Copy link
Copy Markdown
Contributor

Summary

  • add one durable, actor-aware workflow spine for Content Rules and framework Automations
  • add owner-managed rules, required-field/status validation, form submission semantics, recipient preferences, delivery routing, and execution/incident UI
  • add durable scheduling, effect and delivery ledgers, retry fencing, wake-only event hints, portable drain authorization, Netlify scheduled drains, and Postgres integration coverage

Architecture

Every committed change produces one durable event. Deterministic Content Rules, the default Person policy, and agentic Automations subscribe through the same versioned subscriptions, execution claims, scheduled work, effects, runtime controls, and delivery-attempt ledger. Notifications are one effect family; personal routing remains separate from shared Slack/webhook destinations.

Verification

  • independent Fable architecture review: pass with non-blocking notes; no duplicate runtime
  • independent final safety review: pass after retry, portability, and cache-ordering fixes
  • independent browser QA: H1-H7 pass; H6 mute/receive/restore passed with zero console errors
  • focused workflow/effect suites: 125 passing
  • Content full suite: 1,791 passing; the sole Node 26 localStorage-environment failure reran green with explicit localStorage configuration
  • core and Content typechecks/builds: passing
  • repository formatting, oxlint, i18n guard, credential guard, and diff check: passing
  • real Postgres 16 claim/fencing/order/materialization proof runs in the dedicated CI job

Notes

Tier 3 collaborative body/block triggers and uncertified source/import cohorts remain explicitly unavailable through the mutation certification manifest. This PR is intentionally draft and must not be merged from this task.

@gitguardian

gitguardian Bot commented Jul 17, 2026

Copy link
Copy Markdown

⚠️ GitGuardian has uncovered 1 secret following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

🔎 Detected hardcoded secret in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
34907530 Triggered Generic Password 1e8f0cf .github/workflows/ci.yml View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secret safely. Learn here the best practices.
  3. Revoke and rotate this secret.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

@github-actions

github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Visual recap — skipped

The visual recap job did not run for this pull request. This is informational only and does not block the PR.

Recap skipped for 258a061: draft PR.

@3mdistal

Copy link
Copy Markdown
Contributor Author

Fixed the GitGuardian finding in 5db0903 by removing the credential-shaped Postgres password entirely. The isolated CI service now uses trust authentication and passwordless loopback URLs; no real secret was present or requires rotation.

  • Codex AI

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

@netlify

This comment has been minimized.

…otifications

# Conflicts:
#	templates/content/parity/matrix.md
@netlify

This comment has been minimized.

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