Skip to content

feat: deliver governed material notifications#91

Merged
jmcte merged 1 commit into
codex/issue-58-conformance-fixturefrom
codex/issue-55-material-notifications
Jul 16, 2026
Merged

feat: deliver governed material notifications#91
jmcte merged 1 commit into
codex/issue-58-conformance-fixturefrom
codex/issue-55-material-notifications

Conversation

@jmcte

@jmcte jmcte commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add plan-first material notification planning and delivery for governed GitHub issues and configured HTTPS webhooks.
  • Require replay-resistant, maintainer-verified GitHub approvals before hard-stop actions can be delivered.
  • Convert expiring policy exceptions into redacted notification actions while keeping blocking exceptions fail-closed.

Governing Issue

Closes #55

Validation

  • Relevant local checks passed
  • Agent-authored changes passed autoreview against the intended PR diff with no accepted/actionable findings
  • Autoreview command and result: /Users/johnteneyckjr./.codex/skills/autoreview/scripts/autoreview --mode local — clean; no accepted/actionable findings; overall patch-correct confidence 0.91
  • Required PR checks are expected to satisfy CI Gate
  • Skipped checks are explained below

Local validation:

  • npm run check — 20 test files, 113 tests passed
  • npm run build — passed
  • git diff --check — passed before commit
  • No local checks were skipped.

Bootstrap Governance

  • Changes are scoped to the linked issue
  • Contributor or PR guidance changes are reflected in CONTRIBUTING.md, .github/PULL_REQUEST_TEMPLATE.md, and docs/bootstrap/onboarding.md when applicable
  • PR author enabled auto-merge where GitHub allows it, or GitHub plan-limit evidence/unavailable reason is recorded and the fallback merge-readiness policy applies
  • No real secrets, runtime auth, or machine-local env files are committed

Material change: no
ADR: not required; this implements the already adopted material-notification policy contract.

Merge Automation

  • PR author enabled auto-merge with gh pr merge --auto --squash, or the reason it is unavailable/unsafe is noted below

Auto-merge is intentionally withheld while this PR targets the unprotected intermediate stack branch. PR #90 auto-merged into that branch without an independent review gate. After PR #89 lands on protected main, this PR can be rebased/retargeted and auto-merge can be enabled safely.

Notes

Add plan-first GitHub and webhook delivery, verified maintainer approvals for hard stops, and expiring-exception notification execution. Closes #55.

Signed-off-by: Your Name <you@example.com>
@jmcte
jmcte force-pushed the codex/issue-55-material-notifications branch from 7601f6d to 8c62a1e Compare July 16, 2026 12:30
@jmcte
jmcte marked this pull request as ready for review July 16, 2026 12:32
@athena-omt athena-omt added status:needs-review PR is ready for Athena review. review:athena Athena review governance requested. state:waiting-checks Waiting for CI/check status to settle. labels Jul 16, 2026
@jmcte
jmcte merged commit 23787fa into codex/issue-58-conformance-fixture Jul 16, 2026
20 of 23 checks passed
@jmcte
jmcte deleted the codex/issue-55-material-notifications branch July 16, 2026 12:39
@athena-omt athena-omt removed status:needs-review PR is ready for Athena review. review:athena Athena review governance requested. state:waiting-checks Waiting for CI/check status to settle. labels Jul 16, 2026
jmcte added a commit that referenced this pull request Jul 16, 2026
* test: restore conformance warning fixture

Keep the canonical conformance fixture aligned with ownership-sidecar enforcement while preserving distinct warning exit semantics. Refs #58.

Signed-off-by: Your Name <you@example.com>

* feat: resolve publisher and class deviations (#90)

Add publisher-neutral spending thresholds and require valid scoped exceptions when a repository cannot yet declare a canonical class. Closes #56.

Signed-off-by: Your Name <you@example.com>
Co-authored-by: Your Name <you@example.com>

* feat: deliver governed material notifications (#91)

Add plan-first GitHub and webhook delivery, verified maintainer approvals for hard stops, and expiring-exception notification execution. Closes #55.

Signed-off-by: Your Name <you@example.com>
Co-authored-by: Your Name <you@example.com>

* fix: restrict notification webhook destinations

Require an executor-owned exact-host allowlist, reject non-public literal and DNS-resolved addresses, and pin validated addresses with bounded failover under one delivery deadline. Addresses the security review on #89.

Signed-off-by: Your Name <you@example.com>

* refactor: split secure webhook transport

Keep notification planning, governing-record delivery, and hard-stop verification in this review lane while failing the configured webhook destination closed. The secure network transport moves to a smaller stacked follow-up so both pull requests satisfy the review-size policy.

Signed-off-by: Your Name <you@example.com>

* feat: add secure webhook delivery transport (#92)

Require an executor-owned exact-host allowlist, reject non-public literal and DNS-resolved destinations, and pin validated addresses during HTTPS delivery. Bound resolution and address failover under one deadline and fail closed on transport errors.

Signed-off-by: Your Name <you@example.com>
Co-authored-by: Your Name <you@example.com>

* Revert "feat: add secure webhook delivery transport (#92)"

This reverts commit 77a486e.

Signed-off-by: Your Name <you@example.com>

* fix: clarify disabled webhook delivery in CLI help

Signed-off-by: daedalus-omt <268206840+daedalus-omt@users.noreply.github.com>

---------

Signed-off-by: Your Name <you@example.com>
Signed-off-by: daedalus-omt <268206840+daedalus-omt@users.noreply.github.com>
Co-authored-by: Your Name <you@example.com>
Co-authored-by: daedalus-omt <268206840+daedalus-omt@users.noreply.github.com>
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.

2 participants