ilml-plugin-linkedin 1.17.1 → 1.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/README.md +14 -1
- package/dist/connect.mjs +73 -73
- package/dist/enrichProfile.mjs +15 -15
- package/dist/enrichProfiles.mjs +47 -49
- package/dist/funnelRunner.mjs +50 -52
- package/dist/messageBot.mjs +72 -74
- package/dist/readPost.mjs +10 -10
- package/dist/run.mjs +62 -62
- package/dist/scout.mjs +34 -36
- package/dist/src/saveLoginState.mjs +4 -3
- package/dist/syncAll.mjs +77 -79
- package/dist/syncConnections.mjs +38 -40
- package/dist/verifyAbout.mjs +18 -20
- package/dist/version.mjs +1 -1
- package/dist/viewers.mjs +44 -46
- package/dist/visit.mjs +48 -50
- package/ilml-plugin.json +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.18.0
|
|
4
|
+
- **The automation now runs as one consistent browser "device", so LinkedIn stops treating every run as a brand-new sign-in.** Previously each command opened a throwaway browser profile — which looked like a new device to LinkedIn every time, triggering "new device" emails, early session drops, and repeated login/password prompts. The plugin now keeps a persistent Chrome profile per account (stored next to your saved session), so LinkedIn sees the same trusted device across runs: fewer security emails, fewer forced re-logins, lower ban-risk. Your existing session carries over automatically on the first run after updating — no re-login needed.
|
|
5
|
+
- **`ilml linkedin login` is clearer about what to do.** It opens the browser and, if that profile is already signed in, tells you so and just asks you to press Enter to re-save. Otherwise you sign in manually, then **press Enter in the terminal** to save your session — don't close the window yourself; it closes automatically once saved. (The old docs said "close the window", which could actually lose the login — now fixed.)
|
|
6
|
+
- **`apply` no longer silently runs on a logged-out page.** If your session has expired, it now detects LinkedIn's login wall and stops with a clear "Run: ilml linkedin login" instead of scraping an empty page and reporting "no jobs".
|
|
7
|
+
- **Clearer session messages across commands.** "Cookies expired" is now "not logged in, or session expired" (accurate on a first-ever run too), and a command warns up front when no saved session is found.
|
|
8
|
+
- **Cleaner recovery when the browser crashes mid-run.** A hung browser is now fully shut down before restarting into the same profile, avoiding a rare profile-lock clash on restart.
|
|
9
|
+
- **If the browser profile ever gets stuck** (e.g. Chrome crashed mid-run): delete the `chrome-profile/` folder in your plugin state and run `ilml linkedin login`. The README's "First-time LinkedIn login" section documents this, plus `LINKEDIN_CHROME_PROFILE_DIR` to store the profile elsewhere. No schema change — your contacts, conversations, jobs, and quota data are untouched.
|
|
10
|
+
|
|
11
|
+
## 1.17.2
|
|
12
|
+
- **Sending a message is now reliable, and never falsely reports "sent".** Two fixes to `messages --send` (and the draft push): (1) it opens the conversation **directly from the person's profile URL** instead of searching for them by name — the name search was failing on accented names (e.g. "Marc-André"), refusing to send to a valid contact; (2) it now **verifies the message actually went through** before reporting success — it only says "sent" (and marks the contact messaged) once the composer has cleared and no LinkedIn error appeared. Previously it declared "sent" the instant it clicked Send, so a send that LinkedIn rejected with a "try again" error still got recorded as sent. No schema change.
|
|
13
|
+
|
|
3
14
|
## 1.17.1
|
|
4
15
|
- **Fixed: `sync-connections` was saving a contact's name with their headline glued onto it** (e.g. "Bijan SaniiSoftware Industry Executive" instead of "Bijan Sanii"). On the connections page LinkedIn puts the name and headline inside one link, and the scan read them concatenated with no separator. It now reads the name from the rendered first line only, so new scans store clean names. (Contacts already saved with a glued name still work — the name is display-only — and are tidied separately.) No schema change.
|
|
5
16
|
|
package/README.md
CHANGED
|
@@ -152,7 +152,7 @@ LinkedIn requires an authenticated browser session, so a one-time login is neede
|
|
|
152
152
|
ilml linkedin login
|
|
153
153
|
```
|
|
154
154
|
|
|
155
|
-
A real browser window opens. Sign in to LinkedIn (manually solve any captcha or 2FA). When you see your feed,
|
|
155
|
+
A real browser window opens. Sign in to LinkedIn (manually solve any captcha or 2FA). When you see your feed, **come back to this terminal and press Enter** to save your session — don't close the browser window yourself, cookies are captured on Enter and the window then closes automatically. (If the profile is already signed in, the command detects it and just asks you to press Enter to re-save.)
|
|
156
156
|
|
|
157
157
|
Sessions live in your active ilml scope (`<scope>/.ilivemylife/plugins-state/linkedin/cookies.json`), so:
|
|
158
158
|
|
|
@@ -160,6 +160,19 @@ Sessions live in your active ilml scope (`<scope>/.ilivemylife/plugins-state/lin
|
|
|
160
160
|
- Plugin updates do **not** wipe your session — you don't need to re-login after `ilml plugin update linkedin`.
|
|
161
161
|
- `ilml logout` does wipe the session in that scope (alongside other user-tied data) — clean handoff between users on a shared machine.
|
|
162
162
|
|
|
163
|
+
### The browser profile (one trusted device)
|
|
164
|
+
|
|
165
|
+
To keep LinkedIn treating the automation as **one consistent device** — instead of a fresh "new device" every run (which triggers "new device" emails, early session drops, and higher ban-risk) — the plugin keeps a **persistent Chrome profile** per account, next to your session:
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
<scope>/.ilivemylife/plugins-state/linkedin/chrome-profile/<account>/
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
You normally never touch it. Two things worth knowing:
|
|
172
|
+
|
|
173
|
+
- **Resetting it:** if the profile ever gets stuck or corrupted (e.g. Chrome crashed mid-run), delete that `chrome-profile/` folder. The next command rebuilds a clean profile and seeds it from your saved session automatically — no re-login needed. Only if the saved session has also expired do you run `ilml linkedin login` to sign in again.
|
|
174
|
+
- **Pointing it elsewhere:** set `LINKEDIN_CHROME_PROFILE_DIR` to an absolute path to store the profile somewhere specific (e.g. a faster disk). Optional — leave it unset to use the default location above.
|
|
175
|
+
|
|
163
176
|
## Daily commands
|
|
164
177
|
|
|
165
178
|
| Command | What it does |
|