feat: implement connection system #65

Closed
exe-dev-bot wants to merge 7 commits from (deleted):feat/connections-system into main
Contributor

Summary

Implements the connection request system (spec 002) that allows users to establish trust relationships.

Changes

Database

  • Rename user_a/user_b columns to initiator_id/receiver_id for clarity
  • Add can_create_connection_request() function for rate limiting (5/day)
  • Add get_connection_status() RPC for checking connection state
  • Update RLS policies for role-based delete permissions

API Endpoints

  • POST /api/connections - Create connection request (with rate limiting)
  • PATCH /api/connections/[id] - Accept/decline request (receiver only)
  • DELETE /api/connections/[id] - Withdraw pending or delete declined

UI Components

  • ConnectButton - Connect button with confirmation dialog and trust checkboxes
  • ConnectionActions - Accept/Decline/Withdraw buttons
  • ProfileShare - QR code and Web Share API for profile sharing

Pages

  • Profile page: Added Connect button with status display
  • Connections page: Separated incoming/outgoing pending requests
  • Dashboard: Added profile sharing card with QR code

Testing

  • All unit tests pass
  • All lint and type checks pass
  • Manual testing pending (spec tasks marked incomplete)
  • Closes: spec 002-connections
## Summary Implements the connection request system (spec 002) that allows users to establish trust relationships. ## Changes ### Database - Rename `user_a`/`user_b` columns to `initiator_id`/`receiver_id` for clarity - Add `can_create_connection_request()` function for rate limiting (5/day) - Add `get_connection_status()` RPC for checking connection state - Update RLS policies for role-based delete permissions ### API Endpoints - `POST /api/connections` - Create connection request (with rate limiting) - `PATCH /api/connections/[id]` - Accept/decline request (receiver only) - `DELETE /api/connections/[id]` - Withdraw pending or delete declined ### UI Components - `ConnectButton` - Connect button with confirmation dialog and trust checkboxes - `ConnectionActions` - Accept/Decline/Withdraw buttons - `ProfileShare` - QR code and Web Share API for profile sharing ### Pages - **Profile page**: Added Connect button with status display - **Connections page**: Separated incoming/outgoing pending requests - **Dashboard**: Added profile sharing card with QR code ## Testing - All unit tests pass - All lint and type checks pass - Manual testing pending (spec tasks marked incomplete) ## Related - Closes: spec 002-connections
feat: implement connection system
Some checks failed
ci.yml / feat: implement connection system (pull_request) Failing after 0s
076f80e442
- Rename connection columns user_a/user_b to initiator_id/receiver_id
- Add rate limiting function can_create_connection_request()
- Add get_connection_status() RPC for checking connection state
- Update RLS policies for role-based delete permissions
- Create API endpoints for connections (POST, PATCH, DELETE)
- Add ConnectButton component with confirmation dialog
- Add ConnectionActions for accept/decline/withdraw
- Add ProfileShare with QR code and Web Share API
- Update connections page with incoming/outgoing sections
- Add connection status display on profile pages
- Update all queries to use new column names

Co-authored-by: Shelley <shelley@exe.dev>
chore: re-enable CI workflow
Some checks failed
CI / E2E Tests (pull_request) Failing after 10m34s
CI / Lint (pull_request) Successful in 12m9s
CI / Unit Tests (pull_request) Successful in 12m7s
CI / Type Check (pull_request) Successful in 12m15s
CI / Format Check (pull_request) Successful in 12m46s
bc52e58845
fix(ci): use npx astro dev instead of just for E2E tests
Some checks failed
CI / Lint (pull_request) Has been cancelled
CI / Format Check (pull_request) Has been cancelled
CI / E2E Tests (pull_request) Has been cancelled
CI / Unit Tests (pull_request) Has been cancelled
CI / Type Check (pull_request) Has been cancelled
1ad62e5e29
The CI environment doesn't have 'just' installed, causing E2E tests
to fail with exit code 127 (command not found).

Co-authored-by: Shelley <shelley@exe.dev>
perf(ci): use container images with Node.js pre-installed
Some checks failed
CI / Lint (pull_request) Successful in 57s
CI / Type Check (pull_request) Successful in 53s
CI / E2E Tests (pull_request) Has been cancelled
CI / Unit Tests (pull_request) Has been cancelled
CI / Format Check (pull_request) Has been cancelled
453929d5cf
- Use node:20-bookworm for lint, type-check, format-check, unit-tests
- Use mcr.microsoft.com/playwright:v1.52.0-noble for E2E tests
- Remove setup-node steps and Playwright browser install steps
- This eliminates Node.js download/setup time in each job

Co-authored-by: Shelley <shelley@exe.dev>
revert(ci): remove container images, keep original workflow
Some checks failed
CI / E2E Tests (pull_request) Has been cancelled
CI / Type Check (pull_request) Has been cancelled
CI / Lint (pull_request) Has been cancelled
CI / Unit Tests (pull_request) Has been cancelled
CI / Format Check (pull_request) Has been cancelled
338d197aef
Container syntax may not work with Forgejo act runner.

Co-authored-by: Shelley <shelley@exe.dev>
Revert "revert(ci): remove container images, keep original workflow"
Some checks failed
CI / Unit Tests (pull_request) Successful in 1m59s
CI / Format Check (pull_request) Successful in 2m15s
CI / Lint (pull_request) Successful in 2m22s
CI / Type Check (pull_request) Successful in 2m42s
CI / E2E Tests (pull_request) Failing after 12m47s
dc26fe3e00
This reverts commit 338d197aef.
fix(ci): update Playwright image to v1.56.1-noble
Some checks failed
CI / Type Check (pull_request) Successful in 1m35s
CI / Format Check (pull_request) Successful in 2m46s
CI / Lint (pull_request) Successful in 3m8s
CI / Unit Tests (pull_request) Successful in 3m4s
CI / E2E Tests (pull_request) Failing after 5m44s
40224ff75c
Playwright was updated to 1.56.1 but the CI was using v1.52.0-noble
Docker image, causing browser executable not found errors.

Co-authored-by: Shelley <shelley@exe.dev>
addison closed this pull request 2026-01-16 21:02:28 -05:00
Some checks failed
CI / Type Check (pull_request) Successful in 1m35s
Required
Details
CI / Format Check (pull_request) Successful in 2m46s
Required
Details
CI / Lint (pull_request) Successful in 3m8s
Required
Details
CI / Unit Tests (pull_request) Successful in 3m4s
Required
Details
CI / E2E Tests (pull_request) Failing after 5m44s
Required
Details

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
kwila/market!65
No description provided.