fix: restore PRs #31/#32 that never rolled up into main - #35
Merged
Conversation
Replaces the scattered Share / Invite by email / Collaborators / Watchers sheets with one SharingView mirroring the web "Access & Permissions" page, for both documents (collaborators) and lists (watchers). - Access & Permissions: search + "Role for new users" + an "Email this person" toggle (the notify flag, default on) + members list with role menu, per-user "Get link", and Remove. - Invite by email (pending + revoke) and Share links (Viewer/Editor/Admin labels, Never/7d/30d expiry presets) + a Make-public toggle with a copyable public link. - Foundations: WatcherRole.accessLabel/linkLabel, ShareExpiryPreset, ILWebURL.publicResource/resource, and notify on addWatcher/setWatcherRole (documents already had it). - DocumentsView and ListsView now open the single SharingView. - Tests: role labels, expiry presets, watcher notify body, ILWebURL builders. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V16mvNBWyYLncSQL8isDNF
…ssue `setGitHubState` patched only the single row optimistically. It now also calls `loadData()` after a successful state flip so the whole issues list reflects the new state (and any GitHub-side changes), not just the one row. The optimistic row update stays for instant feedback; the refresh is silent (items are already present). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V16mvNBWyYLncSQL8isDNF
…-close fix(lists): refresh the issue list after closing/reopening a GitHub issue
PRs #31 (unified sharing screen) and #32 (GitHub issue refresh on close) were merged into their stacked bases rather than main. #30 landed in main at 19:12:59; #31 merged into feat/shared-list-inbound-viewer 4s later and #32 into feat/unified-sharing-parity 4s after that. Both bases had already been merged, so neither was rolled up and the work never reached main. GitHub reports all three as MERGED because each merged into its own base. Restores SharingView.swift, ShareLink, ListWatcher, and the associated ILWebURL/APIClient/DocumentsView/ListsView changes plus tests. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K42aNvtDc3mSRceuTLohj9
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.
Problem
PRs #31 (unified sharing screen) and #32 (GitHub issue refresh on close) show as MERGED on GitHub, but their code is not in
main.Cause: a stacked-PR race
All three PRs in the stack merged within 8 seconds of each other:
main?mainfeat/shared-list-inbound-viewerfeat/unified-sharing-parity#30 landed in
mainfirst. #31 then merged intofeat/shared-list-inbound-viewerand #32 intofeat/unified-sharing-parity— but both of those bases had already been merged intomain, so neither was rolled up afterward. GitHub correctly reports all three as MERGED, because each one did merge into its own base. The stack simply never propagated tomain.origin/fix/github-issue-refresh-on-closewas auto-deleted on merge, leavingorigin/feat/unified-sharing-parityas the only surviving copy of this work.What this restores
778 insertions across 11 files:
InterlinedList/Views/SharingView.swift(574 lines, new)InterlinedList/Models/ShareLink.swift,InterlinedList/Models/ListWatcher.swiftInterlinedList/Services/APIClient.swift,InterlinedList/Services/ILWebURL.swiftInterlinedList/Views/DocumentsView.swift,InterlinedList/Views/ListsView.swiftAPIClientGapPhasesTests,ILWebURLTests,ListModelTestsproject.pbxprojregistrations for the three new filesVerification
mainis conflict-free.relativePathfix and the docs: trim CLAUDE.md; refresh agents & skills; add worktree workflow #33 trimmedCLAUDE.mdare both intact..swiftfiles are correctly registered inproject.pbxproj.BUILD SUCCEEDED(iPhone 16 sim, pinned UDID), no warnings in the restored files.823 tests, 0 failures, serialized, E2E class skipped for determinism.🤖 Generated with Claude Code
https://claude.ai/code/session_01K42aNvtDc3mSRceuTLohj9