Change requests #2
expand 2 commits
hide 2 commits
Without this patch, change requests were handled as simple "proposals"
without structured reason collection or proper record management. The
system lacked clear separation between the proposed changes and the
change request metadata.
This is a problem because project owners need context about why changes
are being suggested, and the system needs better organization of change
request records for future review workflows.
This patch solves the problem by:
- Replacing ImpactIndexerProposal with ImpactIndexerChangeRequest schema
- Adding mandatory reason field for all change requests
- Implementing dual record system: proposed status + change request metadata
- Adding reason collection modal in frontend with 200-char limit
- Fetching original record URI for proper change tracking
- Improving error handling and user feedback messages
Key changes:
- Updated API route to create both proposed status and change request records
- Added frontend modal for reason collection before submission
- Renamed "proposals" to "change requests" throughout the UI
- Added proper validation requiring reasons for all change requests
๐ค Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Without this patch, project owners had no way to be notified when
someone submitted a change request for their project, requiring them
to manually check for proposals.
This is a problem because it creates friction in the change request
workflow and may result in proposals being overlooked or delayed.
This patch solves the problem by implementing a complete Bluesky chat
notification system that:
- Adds chat.bsky scope to OAuth authentication flow
- Implements proper ATProto chat API integration using withProxy method
- Sends DM notifications to project owners when change requests are created
- Provides fallback UI messaging when chat notifications fail
- Includes comprehensive change request viewer with diff comparison
- Documents all implementation attempts and solutions in CHAT_API_ATTEMPTS_LOG.md
Key technical breakthrough: Using agent.withProxy('bsky_chat', 'did:web:api.bsky.chat')
for proper service routing to Bluesky's chat infrastructure.
The system gracefully handles privacy settings where users only accept
messages from followers, providing appropriate error messaging.
๐ค Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>