Skip to content

fix: prevent system notifications from breaking the inbox - #231

Merged
LIghtJUNction merged 3 commits into
mainfrom
fix/mailbox-client-issues-20261001
Oct 1, 2026
Merged

LIghtJUNction merged 3 commits into
mainfrom
fix/mailbox-client-issues-20261001

Conversation

@LIghtJUNction

@LIghtJUNction LIghtJUNction commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Problem

Todo reminders and bounty settlement notifications deliberately store sender=None. Mailbox contact projection passes that value into resource authorization, which returns not_found and makes the entire inbox fail, including browser requests.

Changes

  • Render a missing sender as System notification, without inventing an account or looking up a resource.
  • Retain current ACL checks and name/path redaction for real contacts.
  • Assert both Todo and bounty delivery identities, add a real authenticated browser regression, and verify private inbox/outbox contact redaction plus zero-effect reads against PostgreSQL snapshots.
  • Add a focused PostgreSQL workflow.
  • Fix the private-agent isolation test's unbounded-in-practice single-page enumeration: read 20 files per request, follow every cursor, reject repeated cursors/duplicate items, and require a newly created public control file in both anonymous and authenticated results. Private message exclusion remains checked on every page. Server budgets and permissions are unchanged.

Verification

Before the fix, run 36886410271 reproduced the browser 404 and both existing notification failures. The new contact privacy fixtures initially used a one-line body that the preview contract treats as a title; they now supply an explicit heading and a separate excerpt. No privacy assertion was removed.

At head 7cb34aa, focused run 36887249063 passed all mailbox regressions: 37 passed, with the sole remaining failure precisely identified as private-agent discovery returning query_cost_exceeded. This was intermittent in the old limit-200 query. The follow-up pagination change addresses that failure while checking the entire result set and a positive public control.

At that previous head, quality (702 files, zero Ruff diagnostics), installed client/server rehearsal, recovery, architecture, storage, hosting, credentials, aliases and chunk-size checks passed on merge d18279e / tree 255ecd24a568dd7ce3d241cfdd30b715048a18b7. Final-head CI is rerunning; previous-head results are not presented as final-head evidence.

Refs #81, #82, #85. This is a code-level regression fix, not closure of those broader acceptance issues. No production deployment, account archival, Root operation, or external notification delivery.

Copilot AI balanced review requested due to automatic review settings October 1, 2026 15:49
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for security reviews. Please try again later.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@LIghtJUNction
LIghtJUNction merged commit 9e42938 into main Oct 1, 2026
20 of 24 checks passed
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