Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a FOSSE-owned Bluesky provider that wraps the bundled Atmosphere plugin so Bluesky connection status and connect/disconnect flows live in FOSSE’s existing provider-based Setup and Status admin pages.
Changes:
- Introduce
Bluesky_Providerimplementing theConnection_Providerinterface, including OAuth connect/disconnect + callback handling. - Add PHPUnit + Playwright coverage for disconnected/connected UI states, plus an E2E REST helper to deterministically seed Atmosphere connection state.
- Update the onboarding SDD plan with a progress checklist and per-task status markers.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
fosse.php |
Boots the new provider alongside existing providers. |
src/Admin/class-bluesky-provider.php |
Implements Bluesky provider UI, status derivation, and OAuth connect/disconnect/callback handlers. |
tests/php/Admin/Bluesky_ProviderTest.php |
PHPUnit coverage for registration, status, rendering, redirect override, and handler behavior. |
tests/e2e/mu-plugins/fosse-bsky-capture.php |
Adds a test-only REST endpoint to seed/clear Atmosphere connection state for E2E runs. |
tests/e2e/bluesky-provider.spec.ts |
Playwright spec validating Setup/Status UI in disconnected and mocked-connected states. |
sdd/onboarding-setup-ux/plan.md |
Adds progress/status tracking metadata for the onboarding SDD plan. |
| - **Depends on**: Task 6 | ||
|
|
||
| ### Task 8: Write tests | ||
| - **Status**: In progress |
Comment on lines
+21
to
22
| - **Status**: ✅ Done | ||
| - **Files**: `src/Admin/Connection_Provider.php`, `src/Admin/Connection_Provider_Registry.php` |
Comment on lines
+252
to
+257
| $handle = sanitize_text_field( wp_unslash( $_POST['bluesky_handle'] ?? '' ) ); | ||
|
|
||
| if ( empty( $handle ) ) { | ||
| $this->redirect_with_notice( __( 'Enter a Bluesky handle to continue.', 'fosse' ), 'error' ); | ||
| return; // redirect_with_notice exits, but guard against future changes. | ||
| } |
Comment on lines
+62
to
+64
| public function is_available(): bool { | ||
| return class_exists( '\Atmosphere\Atmosphere' ); | ||
| } |
Comment on lines
+153
to
+158
| <?php if ( $status['token_error'] ) : ?> | ||
| <tr> | ||
| <th scope="row"><?php esc_html_e( 'Token Health', 'fosse' ); ?></th> | ||
| <td><?php echo esc_html( $status['token_error'] ); ?></td> | ||
| </tr> | ||
| <?php endif; ?> |
| - **Depends on**: none | ||
|
|
||
| ### Task 5: Create Bluesky_Provider | ||
| - **Status**: In progress |
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.
Summary
Adds the FOSSE-side
Bluesky_Providerthat plugs Bluesky connection management into the existing provider-based Setup and Status pages introduced in #27.Connection_Providerarchitecture and renders its own Setup section + Status cardadmin_posthandlers for connect/disconnect plus callback handling on the FOSSE Setup pageatmosphere_oauth_redirect_urifilter so FOSSE-initiated auth returns toadmin.php?page=fosseduring both authorize and callback/token exchange, without changing Atmosphere’s own settings page behavior## Progressand per-task status markers tosdd/onboarding-setup-ux/plan.mdTest coverage
atmosphere_connectionin Playground so E2E can exercise the connected state deterministicallyWhat's not in this PR
plan.mdstatus tracking only, not the rest of the onboarding SDD docsTest plan
composer run-script test-phppassescomposer run-script lint-phppassespnpm run format:checkpassespnpm run lintpassespnpm exec playwright test tests/e2e/bluesky-provider.spec.tspasseswp-admin/admin.php?page=fossewith no Atmosphere connection and confirm Bluesky shows the disconnected stateadmin.php?page=fosse