verify connect flow before returning success & use custom invite deeplink#366
Open
yashkhare0 wants to merge 828 commits intostickerdaniel:mainfrom
Open
verify connect flow before returning success & use custom invite deeplink#366yashkhare0 wants to merge 828 commits intostickerdaniel:mainfrom
yashkhare0 wants to merge 828 commits intostickerdaniel:mainfrom
Conversation
…raping_add_compact_references feat(scraping): add compact references
…r-all-major-dependencies chore(deps): update all major dependencies (major)
…ependencies chore(deps): update ci dependencies
Updated the prerequisites section to include a link for installing uv.
…-patch-1 docs(README): installation link for uv in README
…raping_add_skills_and_projects_sections_to_get_person_profile feat(scraping): Add skills and projects sections to get_person_profile
…ump_version_to_4.9.0 chore: Bump version to 4.9.0
…i_simplify_release_download_link style(ci): Simplify release download link
- Match on field name instead of Pydantic error code for stability
Detail pages (experience, certifications, skills, etc.) paginate with a "Show more" button inside <main>, not scroll-to-bottom. Click it in a loop (bounded by max_scrolls) until the button disappears. Resolves: stickerdaniel#360
- Configure mock_locator.filter in fixture so Show more loop exits cleanly without hitting the exception handler in detail-page tests
…raping_add_max_scrolls_parameter_to_get_person_profile feat(scraping): Add max_scrolls parameter to get_person_profile
…ump_version_to_4.9.1 chore: Bump version to 4.9.1
- Drop Spanish-only aria-label from compose focus selector; generic contenteditable fallback already covers all locales - Patch asyncio.sleep in TestSendMessageComposerInteraction helper so tests no longer burn 1.4s of real wall time per run - Set wait_for mocks before the call in test_returns_locator_when_count_positive and assert_not_called() after, so the early-return invariant is actually verified
…-compose-box-actionability Fix/344 bypass patchright compose box actionability in send_message
chore: Bump version to 4.9.2
6 tasks
…readability - Consolidated button text retrieval for 'incoming_request' state. - Streamlined the unpacking of verified state and profile connection state. - Enhanced formatting for better readability in the extractor logic.
Owner
|
Thanks for the PR. The verify-after-action layer is exactly what #365 needs and I'd like to land it. I'm on board with the deeplink approach. Looking at how LinkedIn actually emits Before we merge:
Happy to re-review after the rebase. |
Contributor
|
Too many files changed for review. ( |
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
This fixes
connect_with_personfalse positives by making the tool verify the final LinkedIn relationship state before returning success.What changed
preload/custom-invitedeeplinkSend without noteaction when no note is providedconnectedwhen the page verifiesPendingacceptedwhen the page verifies a1stconnection/.serenaworkspace artifacts in gitWhy
The previous flow inferred the pre-click state from profile text, clicked the UI, and could return success without proving that LinkedIn had actually transitioned to the expected final state. That made the connect tool flaky and could produce false-positive success responses.
Validation
uv run pytest tests/test_scraping.py -k TestConnectWithPersonuv run ruff check linkedin_mcp_server/scraping/extractor.py tests/test_scraping.pydrowsyreturnedpendingwithout sending a new invitestanimirovicurossent an invite and verified the profile transitioned toPendingCloses #365.
Synthetic prompt
Generated with Codex (GPT-5)