Skip to content

Fix LinkedIn first-page GraphQL variable replay#84

Open
Chkhikvadze wants to merge 1 commit into
mainfrom
darius/linkedin-first-page-graphql-fix
Open

Fix LinkedIn first-page GraphQL variable replay#84
Chkhikvadze wants to merge 1 commit into
mainfrom
darius/linkedin-first-page-graphql-fix

Conversation

@Chkhikvadze
Copy link
Copy Markdown
Contributor

Problem

LinkedIn Sync Now kept failing on newer first-page messaging GraphQL contracts because the extension replayed captured pagination/window values as if they were reusable.

Root cause

The contract capture treated cursor, countBefore/countAfter, and timestamp-like fields as static captured values. For first-page replay this can resend stale pagination cursors or stale message windows, causing LinkedIn HTTP 400s even after the live request contract is captured.

Fix

  • Normalize captured count/countBefore/countAfter to first-page defaults.
  • Treat cursor-like variables as optional runtime cursor metadata and omit them for first-page sync.
  • Treat created/delivered timestamp variants as runtime timestamps.
  • Redact cursor-like values from operator diagnostics.
  • Add Attempt Auth: cookie import guidance + /auth/check endpoint #11 coverage for stale cursor omission and safe diagnostics.

Validation

  • uv run pytest -q → 425 passed
  • node chrome-extension/test_background.mjs → 221 passed, 0 failed

Known gaps/blockers

This does not bypass LinkedIn auth/session expiry. If /voyager/api/me is redirected/rejected or the browser is logged out/challenged, the operator still needs to refresh the live browser session.

Production expectation

Safe to review/land as a focused extension replay hardening fix. It changes only reusable GraphQL contract rendering/diagnostics and does not replay or store cookies, authorization headers, CSRF values, or raw cursor values.

…les after #1252 Attemp

Task: a3e0c926-c041-4cf7-9b2f-1e5feadff8cb
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant