-
Notifications
You must be signed in to change notification settings - Fork 88
refactor: remove remaining IPC handler feature-flag checks (G-03) #8287
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -12,7 +12,6 @@ import * as externalConversationStore from '../../memory/external-conversation-s | |
| import { getPendingConfirmationsByConversation } from '../../memory/runs-store.js'; | ||
| import { checkIngressForSecrets } from '../../security/secret-ingress.js'; | ||
| import { IngressBlockedError } from '../../util/errors.js'; | ||
| import { getConfig } from '../../config/loader.js'; | ||
| import { getLogger } from '../../util/logger.js'; | ||
| import { findMember, updateLastSeen } from '../../memory/ingress-member-store.js'; | ||
| import { | ||
|
|
@@ -186,12 +185,11 @@ export async function handleChannelInbound( | |
| } | ||
|
|
||
| // ── Ingress ACL enforcement ── | ||
| const inboxConfig = getConfig().assistantInbox; | ||
| // Track the resolved member so the escalate branch can reference it after | ||
| // recordInbound (where we have a conversationId). | ||
| let resolvedMember: ReturnType<typeof findMember> = null; | ||
|
|
||
| if (inboxConfig.enabled && inboxConfig.memberAclEnabled && body.senderExternalUserId) { | ||
| if (body.senderExternalUserId) { | ||
| resolvedMember = findMember({ | ||
| sourceChannel, | ||
| externalUserId: body.senderExternalUserId, | ||
|
Comment on lines
+192
to
195
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔴 Removing feature-flag guard causes unconditional ACL denial for all channel messages when no member records exist Removing the When if (!resolvedMember) {
return Response.json({ accepted: true, denied: true, reason: 'not_a_member' });
}Root Cause and ImpactThe feature flag ( The denial response ( Actual: Every inbound message with a Expected: Messages should be processed normally for deployments that haven't opted into ACL enforcement. The previous behavior allowed messages through when the inbox feature was disabled. (Refers to lines 192-216) Prompt for agentsWas this helpful? React with 👍 or 👎 to provide feedback. |
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The new unconditional
if (body.senderExternalUserId)gate applies ingress member ACL checks before any guardian-specific handling, so senders who are valid guardians but not ingress members are now rejected asnot_a_memberbefore/guardian_verifyand approval callback paths can run. Guardian identity is tracked inchannel_guardian_bindings(notassistant_ingress_members), so this blocks common setup/approval flows where the owner has not been added as a member.Useful? React with 👍 / 👎.