Hardened Escalation Path for ACP-attached Mayor#2700
Open
roder wants to merge 7 commits intosteveyegge:mainfrom
Open
Hardened Escalation Path for ACP-attached Mayor#2700roder wants to merge 7 commits intosteveyegge:mainfrom
roder wants to merge 7 commits intosteveyegge:mainfrom
Conversation
Replace Signal(0)-based process probing with platform-specific liveness checks, using OpenProcess on Windows and a shared helper in mayor cleanup logic.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR hardens the ACP-attached Mayor escalation path from end to end, per the request for item 6.
It makes escalation delivery metadata-driven instead of text-driven, preserves escalation urgency through the mail-to-nudge pipeline, prevents ACP from silently losing escalation notifications during startup/degraded states, surfaces delivery failures in structured output, and adds targeted end-to-end coverage for the attached Mayor path.
Why
Before this series, escalation handling had several reliability gaps:
This change set closes those gaps for the ACP delivery mechanics path.
Included changes
1. Preserve structured escalation metadata on Mayor mail copies
Commit: 1be2098 —
feat: preserve escalation metadata in mayor mail copiesThis establishes a durable structured contract for escalation mail copies.
Changes include:
TypeEscalationrather than generic task mailgt:escalationmsg-type:escalationImpact:
2. Preserve escalation urgency in mail nudges
Commit: 1a77fd5 —
feat: preserve escalation urgency in mail nudgesThis ensures escalation urgency survives the mail notification fallback path.
Changes include:
gt mail read <id>gt escalate ack <id>Impact:
3. Requeue undeliverable ACP escalation nudges
Commit: 33b4e42 —
fix: requeue undeliverable ACP escalation nudgesThis removes a loss mode in ACP Propeller.
Before:
sessionIDor delivery failed, those nudges could be consumed without presentationAfter:
Impact:
4. Add metadata-driven ACP escalation handling
Commit: 008b74f —
feat: add metadata-driven ACP escalation handlingThis makes ACP escalation handling explicitly metadata-driven.
Changes include:
KindThreadIDSeverity_metainto ACP UI notifications, including:gt/escalationgt/threadIDgt/severitygt/kindsession/updateImpact:
5. Report escalation delivery failures structurally
Commit: 71e6147 —
fix: report escalation delivery failuresThis improves observability for high/critical escalation routing and notification outcomes.
Changes include:
gt escalatedeliverydetails to JSON outputokvspartial_failureImpact:
6. Add ACP escalation delivery path coverage
Commit: cf208a4 —
test: cover ACP escalation delivery pathThis adds targeted regression coverage across the attached-Mayor delivery path.
Coverage includes:
Impact:
Resulting behavior
After this series:
Scope note
This PR focuses specifically on ACP delivery mechanics for the attached Mayor path.
It does not include adjacent policy work such as:
Testing
Targeted verification performed across the affected packages includes:
internal/mailinternal/acp_metainjectioninternal/cmdRepresentative targeted test coverage now verifies:
Testing
go test ./...)Checklist