Ask for shareWith on mailboxes too #110

Closed
opened 2026-08-27 20:33:02 +00:00 by jcoffey-dev · 0 comments
Owner

The third store fetching everything by asking for nothing. Same cause as #109: Stalwart doesn't return shareWith unless a client names it, so mail folders never looked shared either.

Why this one matters on its own

Sharing a mail folder is withdrawn (#97) because Stalwart stores the share and never delivers it. The only way left to clear one already made is the Stop sharing entry — which appears only when a folder looks shared.

Without the property it never did. The escape hatch built for exactly that situation could not be reached from the situation it was built for.

Found by looking, not by waiting

I grepped for ids: null with no properties across the app rather than waiting for the next report. The others it turned up — Sieve scripts, identities, the vacation response, quotas, participant identities, push subscriptions — have no shareWith to lose. Mailboxes were the last.

The mock hides it here too now, so all three collection types are honest about it.

333 web and 77 server tests pass. npm run typecheck clean. KNOWN-ISSUES updated to name mail folders and say why they were the sharpest case.

🤖 Generated with Claude Code

Merged 2026-08-27 as coffey-labs/ihasmail@06b89111df

Rebuilt from: git history, session transcript.

The third store fetching everything by asking for nothing. Same cause as #109: Stalwart doesn't return `shareWith` unless a client names it, so mail folders never looked shared either. ### Why this one matters on its own Sharing a mail folder is **withdrawn** (#97) because Stalwart stores the share and never delivers it. The only way left to clear one already made is the **Stop sharing** entry — which appears only when a folder *looks* shared. Without the property it never did. The escape hatch built for exactly that situation could not be reached from the situation it was built for. ### Found by looking, not by waiting I grepped for `ids: null` with no `properties` across the app rather than waiting for the next report. The others it turned up — Sieve scripts, identities, the vacation response, quotas, participant identities, push subscriptions — have no `shareWith` to lose. Mailboxes were the last. The mock hides it here too now, so all three collection types are honest about it. 333 web and 77 server tests pass. `npm run typecheck` clean. KNOWN-ISSUES updated to name mail folders and say why they were the sharpest case. 🤖 Generated with [Claude Code](https://claude.com/claude-code) **Merged** 2026-08-27 as coffey-labs/ihasmail@06b89111df9f <sub>Rebuilt from: git history, session transcript.</sub>
This repo is archived. You cannot comment on issues.