<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>https://sixdegreesapp.com/releases/</id>
  <title>Six Degrees releases</title>
  <subtitle>What each version added, changed and fixed.</subtitle>
  <link rel="self" href="https://sixdegreesapp.com/releases/feed.xml"/>
  <link rel="alternate" type="text/html" href="https://sixdegreesapp.com/releases/"/>
  <updated>2026-09-29T00:00:00Z</updated>
  <author><name>Blake Burford</name><uri>https://blakeburford.com/</uri></author>
  <icon>https://sixdegreesapp.com/img/icon.svg</icon>
  <entry>
    <id>https://sixdegreesapp.com/releases/#v0.4.8</id>
    <title>Six Degrees 0.4.8: A new icon</title>
    <link rel="alternate" type="text/html" href="https://sixdegreesapp.com/releases/#v0.4.8"/>
    <published>2026-09-29T00:00:00Z</published>
    <updated>2026-09-29T00:00:00Z</updated>
    <summary>2 changed, 2 fixed</summary>
    <content type="html">&lt;h3&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A new icon.&lt;/strong&gt; A 6 drawn in one gold line around you, a glowing core, ending in a degree ring, with your tier rings fading behind it. It&apos;s the app&apos;s icon, the favicon and the website&apos;s.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The website is a proper site now, and the README matches.&lt;/strong&gt; The home page tells one story, feature by feature, each with a real screenshot of the invented sample network: see your network, find your way in, know your network, watch it grow, and scan carefully, then privacy, a fair comparison with LinkedIn&apos;s own search, spreadsheets and CRMs, and SocNetV and Gephi, and a strip of true, checkable numbers. It has one download button, for your computer: the Mac download on a Mac, and on Linux and Windows a dimmed &lt;em&gt;Coming soon&lt;/em&gt; button, never a link, with &lt;code&gt;npx six-degrees&lt;/code&gt; offered on Linux. New pages: &lt;strong&gt;/download/&lt;/strong&gt; (every platform, install steps, checksums, requirements, troubleshooting), &lt;strong&gt;/docs/&lt;/strong&gt; (getting started, your data, privacy, questions), &lt;strong&gt;/releases/&lt;/strong&gt; (every version in this changelog), &lt;strong&gt;/blog/&lt;/strong&gt; with four posts on how it works, &lt;strong&gt;/roadmap/&lt;/strong&gt; and &lt;strong&gt;/about/&lt;/strong&gt;, with Atom feeds for the blog and releases and every page in the sitemap. &lt;code&gt;scripts/build-site.mjs&lt;/code&gt; builds it all from &lt;code&gt;site/&lt;/code&gt;, and the website&apos;s deploy runs it, so the news and numbers never go stale (&lt;code&gt;site/README.md&lt;/code&gt; says how to add a post or a page). The README has badges, a download table for all three platforms, features, latest news and why Six Degrees.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Paths opens about 9× faster on a large network&lt;/strong&gt; (Map 19.8 s → 2.2 s, Industries 25.8 s → 1.7 s, at 1,500 connections and 25,000 people in their circles). Each headline and company name is now read once, not once per pass: Paths read everyone&apos;s headline five or more times, and each read tries the whole company list. The same fix makes Scores open in under a second (was 11 s), and setting a company&apos;s score rescores everyone in a third of a second (was 6 s). Scores themselves are unchanged.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Opening a company&apos;s path to the top in Paths no longer hangs.&lt;/strong&gt; Every row compared itself with everyone at the company each time the page drew: at a company of 1,900 people that took minutes. It now opens in a fifth of a second, and a row works out what adding them would do only when you open it.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://sixdegreesapp.com/releases/#v0.4.7</id>
    <title>Six Degrees 0.4.7: Hide the Chrome window while scanning</title>
    <link rel="alternate" type="text/html" href="https://sixdegreesapp.com/releases/#v0.4.7"/>
    <published>2026-09-29T00:00:00Z</published>
    <updated>2026-09-29T00:00:00Z</updated>
    <summary>1 added</summary>
    <content type="html">&lt;h3&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hide the Chrome window while scanning&lt;/strong&gt; (Scan page). Scans run with no window popping up; the status bar and Stop work as before, and signing in always opens the window. The Scan page says the risks: a hidden Chrome is easier for LinkedIn to tell from a person, and a check LinkedIn asks for (a code, a puzzle, signing in again) can&apos;t be seen, so the scan stops instead of waiting. Off by default.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://sixdegreesapp.com/releases/#v0.4.6</id>
    <title>Six Degrees 0.4.6: The window&apos;s frame matches the app</title>
    <link rel="alternate" type="text/html" href="https://sixdegreesapp.com/releases/#v0.4.6"/>
    <published>2026-09-29T00:00:00Z</published>
    <updated>2026-09-29T00:00:00Z</updated>
    <summary>1 changed</summary>
    <content type="html">&lt;h3&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The window&apos;s frame matches the app.&lt;/strong&gt; The title bar, menus and dialogs are dark by default, even when your Mac is set to Light, so the frame no longer shows as a pale bar above the dark app.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://sixdegreesapp.com/releases/#v0.4.5</id>
    <title>Six Degrees 0.4.5: Physics lab for the Galaxy (experimental)</title>
    <link rel="alternate" type="text/html" href="https://sixdegreesapp.com/releases/#v0.4.5"/>
    <published>2026-09-29T00:00:00Z</published>
    <updated>2026-09-29T00:00:00Z</updated>
    <summary>3 added</summary>
    <content type="html">&lt;h3&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Physics lab for the Galaxy (experimental, in Filters).&lt;/strong&gt; Sliders for the forces that lay the Galaxy out, in the spirit of Obsidian&apos;s graph: &lt;em&gt;Gravity&lt;/em&gt; (a pull in towards you), &lt;em&gt;Rings&lt;/em&gt; (how hard each tier holds its ring; at 0 the Galaxy finds its own shape), &lt;em&gt;Push&lt;/em&gt;, &lt;em&gt;Pull&lt;/em&gt; (how hard each person pulls the people who came through them) and &lt;em&gt;Distance&lt;/em&gt;, plus dot size, line thickness, names, and dots sized by power score or by how many hang off them. &lt;em&gt;Clusters&lt;/em&gt; sets it up so each connection bunches their circle round them. Hovering a dot lights up its branch, everyone behind it and the chain back to you. &lt;strong&gt;Replay&lt;/strong&gt; plays your network growing by the date you connected, with a time slider; each circle arrives with its connection. Everything moves the Galaxy in place, and &lt;em&gt;Reset&lt;/em&gt; puts today&apos;s layout back. The replay needs &amp;quot;connected on&amp;quot; dates, so the sample network has nothing to replay.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;More in the physics lab.&lt;/strong&gt; &lt;em&gt;Colour by&lt;/em&gt; tier, degree, company (the eight most common) or warmth (from the Social tab), with a legend to match. &lt;em&gt;Find&lt;/em&gt; lights up everyone whose name, company or role matches and dims the rest; Enter flies to the best one and opens their card. The replay has a length (5 s to 1 min), &lt;em&gt;Loop&lt;/em&gt;, your job starts and posts from the Social tab marked on its timeline, and the job you were at in its date. &lt;em&gt;Saved layouts&lt;/em&gt; keep slider settings under a name. &lt;em&gt;Save a picture&lt;/em&gt; makes a PNG of the Galaxy at twice the size, and &lt;em&gt;Record the replay&lt;/em&gt; saves it as a video.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Names on or off&lt;/strong&gt; for the Galaxy, in Filters.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://sixdegreesapp.com/releases/#v0.4.4</id>
    <title>Six Degrees 0.4.4: Social (experimental): a tab for your relationships</title>
    <link rel="alternate" type="text/html" href="https://sixdegreesapp.com/releases/#v0.4.4"/>
    <published>2026-09-29T00:00:00Z</published>
    <updated>2026-09-29T00:00:00Z</updated>
    <summary>4 added</summary>
    <content type="html">&lt;h3&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Social (experimental): a tab for your relationships.&lt;/strong&gt; It works from your own LinkedIn data:&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Your export:&lt;/strong&gt; the folder LinkedIn emails you from &lt;em&gt;Settings → Data privacy → Get a copy of your data&lt;/em&gt;, read in the app window with no traffic to LinkedIn.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A live messages sync:&lt;/strong&gt; reads your messages list once in your own Chrome, by hand or once a day in the daytime, using no search budget.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;It shows:&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;how many of your connections are warm, cool, dormant or never messaged;&lt;/li&gt;
&lt;li&gt;who&apos;s waiting on a reply (S and A tier first), or has unread messages;&lt;/li&gt;
&lt;li&gt;your career chapters, with the connections made in each and how many you&apos;re still in touch with;&lt;/li&gt;
&lt;li&gt;whether posting works (new connections the week after a post against a usual week);&lt;/li&gt;
&lt;li&gt;how many connection requests came to you and how many you sent.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Only dates, who wrote last and counts are kept, one file per profile in the data folder, and &lt;em&gt;Forget it&lt;/em&gt; removes it. Message text is never kept. Email addresses are kept only if you tick the box. The live sync hasn&apos;t been tried on a live account yet.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Auto scan.&lt;/strong&gt; With the Scan page&apos;s experimental all-day box ticked, an &lt;em&gt;Auto scan&lt;/em&gt; button sits beside Scan and starts the all-day Auto-Bridge with your Scan page choices. The status bar sits under the tabs, dimmed while it&apos;s ready, and lights up once it runs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Insights on a connection&apos;s card.&lt;/strong&gt; A collapsible panel with their circle&apos;s size (&lt;em&gt;Explore →&lt;/em&gt; opens it in Bridge Chains), how many only they reach, whose circle overlaps theirs most (&lt;em&gt;Open →&lt;/em&gt;), the tier mix of their circle, where most of it works, how much is scanned (&lt;em&gt;Scan →&lt;/em&gt; or &lt;em&gt;Finish →&lt;/em&gt;), when you connected and how many requests you have out through them, and their rank by who only they reach. &lt;em&gt;Show them →&lt;/em&gt; opens Separation filtered to the people only they reach, and &lt;em&gt;S only →&lt;/em&gt; to the S-tier people in their circle. All from what the app already keeps. It replaces the &lt;em&gt;Only through …&lt;/em&gt; box.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Network health on the Scores tab.&lt;/strong&gt; How much of your 2nd degree you reach two or more ways, the effective reach of your own network (Burt&apos;s effective size, from the ties between your connections that circle scans keep), and your five connections who reach the most people no one else does, each with &lt;em&gt;Explore →&lt;/em&gt;. With fewer than five circles scanned it says it&apos;s an early estimate. Only your own numbers: never a percentile against other people.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://sixdegreesapp.com/releases/#v0.4.3</id>
    <title>Six Degrees 0.4.3: Experimental Auto-Bridge</title>
    <link rel="alternate" type="text/html" href="https://sixdegreesapp.com/releases/#v0.4.3"/>
    <published>2026-09-29T00:00:00Z</published>
    <updated>2026-09-29T00:00:00Z</updated>
    <summary>2 added, 2 changed</summary>
    <content type="html">&lt;h3&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Experimental Auto-Bridge (a switch on the Scan page).&lt;/strong&gt; All-day pacing that stays openly slow: up to 10 pages in a sitting, then a 45-minute rest; searches only from 09:00 to 19:00 on this computer&apos;s clock; at the daily budget it waits for it to free up instead of stopping; and every page is saved as it&apos;s read. It also reads the data LinkedIn already sends for each page of results (no extra requests) beside the page text. That fills in headlines, photos and mutual counts the page text missed, and gives each list&apos;s real length for the scan bars. Each page logs how the two compare, and a few raw responses are kept in the data folder (&lt;code&gt;wire-samples/&lt;/code&gt;) to tune it. People only LinkedIn&apos;s data shows are logged, not added. The timing is never randomised to look like a person. Not yet tried on a live account.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A status bar while a scan runs, on every page.&lt;/strong&gt; It shows what&apos;s running and for whom, how far it&apos;s got, today&apos;s LinkedIn searches against your daily budget (green, then amber past 60%, red past 90%), what the scanner is doing right now (for example the wait before the next profile), a link to the Scan page and Stop. Stop saves what was read, and Resume carries on from the same page. It sits just under the header&apos;s tabs, on every page, the Scan page too.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Network Circle&apos;s tiers switch on and off.&lt;/strong&gt; In the Filter panel, click a tier to hide it or show it again, so C and D can go while S, A and B stay. &lt;em&gt;All&lt;/em&gt; shows everyone. Degrees still picks one bridge tier at a time.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Orbit: the circles behind added people sit behind their bridge.&lt;/strong&gt; They&apos;re centred on the bridge&apos;s slice, side by side, with a line back to whoever they came through, wherever that person sits. Before, each was centred on that person and could spill into the next bridge&apos;s space.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://sixdegreesapp.com/releases/#v0.4.2</id>
    <title>Six Degrees 0.4.2: Orbit goes past 2nd degree</title>
    <link rel="alternate" type="text/html" href="https://sixdegreesapp.com/releases/#v0.4.2"/>
    <published>2026-09-29T00:00:00Z</published>
    <updated>2026-09-29T00:00:00Z</updated>
    <summary>2 added, 1 changed, 1 removed</summary>
    <content type="html">&lt;h3&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Orbit goes past 2nd degree.&lt;/strong&gt; Someone you added through a circle, whose own circle is scanned, now sits in the fan of the circle they came from, green-ringed, and their people fan out behind them a band further out, fainter, with a faint line to each. Their added people&apos;s circles go further out again, to 6th degree. Before, they sat on the ring as one more bridge, and Orbit showed only 2nd degree.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A ring round each connection&apos;s dot.&lt;/strong&gt; Five thin bars show how much of their circle is scanned: all five once their list is read to the end, and part-way the pages read against LinkedIn&apos;s own count of the list, which scans now keep (no extra traffic). Lists read before scans kept a count show two. A small badge counts the people in their circle ready to scan, and a catalyst is the green outline on the dot. It&apos;s on the Galaxy and on Bridge Chains&apos; bridges.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The Galaxy in bands when more than your connections are drawn.&lt;/strong&gt; With 2nd (or 3rd) degree on, your connections sit on a tighter inner ring, their circles in a band outside it, and past someone you added through a circle, their people further out again. Each band is sorted by tier, S nearest, and has a faint label. Lines follow the chain: from you to your connections, from each connection to their circle, and from someone you added to theirs. Your connections alone keep the roomier tier rings.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Removed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The &amp;quot;N only here&amp;quot; line under each bridge in Bridge Chains.&lt;/strong&gt; Their card still says who is reached only through them.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://sixdegreesapp.com/releases/#v0.4.1</id>
    <title>Six Degrees 0.4.1: Which connections open the same doors</title>
    <link rel="alternate" type="text/html" href="https://sixdegreesapp.com/releases/#v0.4.1"/>
    <published>2026-09-29T00:00:00Z</published>
    <updated>2026-09-29T00:00:00Z</updated>
    <summary>4 added, 5 changed, 6 fixed</summary>
    <content type="html">&lt;h3&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Which connections open the same doors.&lt;/strong&gt; A card says whose circle overlaps theirs most, when it&apos;s real (15% or more, and at least 3 people): &amp;quot;Opens the same doors as Tom: 62% of the people either reaches, both do&amp;quot;. Bridge Chains&apos; Degrees box adds how much of your 2nd degree you reach two or more ways.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Circle scans keep who among your connections knows whom.&lt;/strong&gt; Your own connections turn up in other people&apos;s lists, and were set aside there and forgotten. Each is now kept as a tie between the two, in a new table, with no extra LinkedIn traffic, since the scan read them anyway. Nothing shows them yet: they&apos;re what clusters and communities will be built from. Deleting someone deletes their ties too.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Who only one connection reaches.&lt;/strong&gt; In Bridge Chains, each connection with a scanned circle shows how many of its people none of your other connections reach (&amp;quot;746 only here&amp;quot;), and their card says it in a line: those people are reached through them alone. It&apos;s their exclusive reach, counted across every circle you&apos;ve scanned (&lt;code&gt;lib/brokerage.js&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Network Circle&apos;s Filter picks degrees.&lt;/strong&gt; &lt;em&gt;1st&lt;/em&gt;, &lt;em&gt;2nd&lt;/em&gt; and &lt;em&gt;3rd&lt;/em&gt; chips choose who the Galaxy draws: your connections, anyone in a scanned circle, and anyone only a company scan found. Any mix works, and 2nd without 1st shows who&apos;s valuable outside your own connections. Each person counts once, at the nearest degree. Further out is drawn a little smaller and fainter, gathered near the connection whose circle they&apos;re in, and the tier counts follow what&apos;s drawn. It opens on your connections alone, as before.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The Galaxy marks its tier bands.&lt;/strong&gt; A faint dashed ring, labelled S to D, sits where each tier&apos;s dots settle, so the bands read at a glance, most of all with a filter on. Not on a phone, whose layout has no rings.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Degrees opens on Bridge Chains,&lt;/strong&gt; then Separation, then Orbit, in the menu too. Orbit used to come first.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Orbit is in Degrees only.&lt;/strong&gt; Network Circle&apos;s Orbit was slow on a big network and showed nothing the Galaxy doesn&apos;t; a Network Circle left on it opens the Galaxy.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A new app icon: Orbits.&lt;/strong&gt; Your tier rings round you, with one bridge reaching out through them. It&apos;s the Mac app&apos;s icon, the website&apos;s tab icon and its home-screen icon.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Scan page asks before a risky search budget.&lt;/strong&gt; Picking more than 100 searches a day, or no monthly cap, now asks first, because a real account was restricted after 373 searches in 24 hours, run back to back (it had opened only 7 profiles that day). While the budget stays that high, a note under it says so, with a button back to 50 a day and 250 a month. Lowering a budget, or anything up to 100 a day, is never asked about.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A card&apos;s circle map never draws a degree as a solid line.&lt;/strong&gt; A big circle, or the people behind someone you added packed into their slice, used to run together into one line or band. When a slice holds more than fit, its dots now take a few rows, neighbours alternating between them, each still behind whoever they hang off, and the dots are sized for the most crowded slice.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bridge Chains: a hover preview no longer draws over the bridges.&lt;/strong&gt; With many bridges the overview grows extra rings, and a bridge&apos;s circle, previewed on hover, landed on top of them. It now starts beyond the outermost ring of bridges.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stop during a re-map&apos;s wait keeps the circle.&lt;/strong&gt; Re-mapping someone deleted their circle first and then waited out the minute between profile views, so a Stop in that minute left it deleted and unread. It now waits first and deletes only once the read can start.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A profile-view cap typed into &lt;code&gt;scan-limits.json&lt;/code&gt; by hand stays within the choices.&lt;/strong&gt; It counts as the largest offered choice under it (10, 25, 50 or 100), in the scanner and on the Scan page alike; before, 1,000 was honoured and the picker showed a different number.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Filter menu highlights the view that&apos;s showing.&lt;/strong&gt; After &lt;em&gt;View Bridge →&lt;/em&gt; from the Galaxy, Orbit showed but no view was highlighted.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No &lt;em&gt;Scan Full Company&lt;/em&gt; on the sample or a CSV import.&lt;/strong&gt; Paths offered it there, and it searched LinkedIn for a network that isn&apos;t saved. A line says scanning needs your own network.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://sixdegreesapp.com/releases/#v0.4.0</id>
    <title>Six Degrees 0.4.0: A cap on profile views</title>
    <link rel="alternate" type="text/html" href="https://sixdegreesapp.com/releases/#v0.4.0"/>
    <published>2026-09-28T00:00:00Z</published>
    <updated>2026-09-28T00:00:00Z</updated>
    <summary>13 added, 16 changed, 17 fixed, 2 removed</summary>
    <content type="html">&lt;h3&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A cap on profile views.&lt;/strong&gt; A circle scan opens the person&apos;s profile once, and profile views are what LinkedIn restricted an account for. They now have a cap of their own: 50 in any 24 hours by default. The Scan page offers 10, 25, 50 or 100, and there is no &amp;quot;no limit&amp;quot;.&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A minute apart:&lt;/strong&gt; at least 60 seconds pass between any two profile opens. It&apos;s timed from the last one written down, so scans started back to back can&apos;t open profiles back to back. The log counts down while it waits, and Stop ends the wait.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Checked before the profile opens:&lt;/strong&gt; at the cap, a scan opens nothing and records nothing about that person. Auto-Bridge stops, as it does at the search budget, and the next run starts with the same person.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;On the Scan page:&lt;/strong&gt; &amp;quot;3 of 50 profile views today&amp;quot;, with a bar and the picker.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Re-mapping someone&lt;/strong&gt; checks it before deleting their circle. A damaged record counts the day&apos;s views as used. An import brings the other computer&apos;s setting only when this one has none, like the search budget.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Scan page asks what field you&apos;re in, before your first scan.&lt;/strong&gt; One optional step, with the same picks as &lt;em&gt;Scores → Your sector&lt;/em&gt;: tech, government and defense, dental, and the rest. Companies in your field count for more, so your first scores already use it. &lt;em&gt;Skip for now&lt;/em&gt; carries on without one. Both stay at the bottom of the window while you look through the list. It&apos;s asked once, and never if you already have a network or picked a sector. Change it anytime on the Scores tab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bridge Chains opens any circle, as far as your scans reach.&lt;/strong&gt; Click someone in a bridge&apos;s circle and their own circle opens in place: the people found in it once you connected and scanned it (3rd degree, counted along the chain), and on from there. A trail at the top, and Esc, go back. An empty circle says why and what gets it: connect, then scan their circle. While one is being scanned, it fills in as the scan saves. Someone ready for a scan goes to the Scan page with them picked instead, since their circle is empty until then.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A soft glow on people ready for a scan.&lt;/strong&gt; In Bridge Chains, someone you added through a circle whose own circle isn&apos;t scanned yet has a soft breathing halo, and their bridge says how many are &amp;quot;ready&amp;quot;. A hidden list is greyed with a lock instead. The halo stays still with Reduce Motion on. The old rainbow glow is gone: it looked for them inside the circle they came from, which accepting takes them out of, so it never showed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ready to scan (N), in the Degrees panel.&lt;/strong&gt; It replaces &lt;em&gt;Auto-Bridge Next&lt;/em&gt;, which started a scan in one click, by name, with no cost shown, and offered hidden lists again and again. The list is everyone you added through a circle whose circle can be scanned, strongest first, with the circle you found them in and what a scan costs. Hidden lists stay in view, greyed with a lock.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scan one circle, on the Scan page.&lt;/strong&gt; A ready person, from the list or Bridge Chains, opens the Scan page with them picked: the cost (a profile view, then a search a page, up to 100), what&apos;s left of the day&apos;s budget, how deep to read, and a button. Nothing starts until it&apos;s pressed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A release checks the website&apos;s version lines.&lt;/strong&gt; Before building anything, the release workflow runs &lt;code&gt;scripts/check-site-version.mjs&lt;/code&gt;: the site&apos;s &lt;code&gt;softwareVersion&lt;/code&gt; and &lt;code&gt;llms.txt&lt;/code&gt; must name the version, and its &lt;code&gt;dateModified&lt;/code&gt; and sitemap &lt;code&gt;lastmod&lt;/code&gt; can&apos;t be older than the release&apos;s date in the changelog. A stale site stops the release with a line for each thing to change. A pre-release skips it. Anyone can run it before tagging.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A big circle spreads out.&lt;/strong&gt; A bridge&apos;s circle used to sit on one ring, so a few hundred people were almost a solid line. It now fills rings from the inside out, as many as it needs, with the highest tiers nearest the middle; drag to move, scroll or +/− to zoom. Lots of bridges spread the same way, and so does the preview on hover.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The map picks up a finished scan by itself.&lt;/strong&gt; No refresh needed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;One rule for &amp;quot;ready&amp;quot;.&lt;/strong&gt; Bridge Chains, the Degrees panel, Outlink&apos;s new doors and the profile page&apos;s mapping bar now agree on who can be scanned next, and all leave hidden lists out.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Photos stay on your Mac.&lt;/strong&gt; The app shows a profile photo only from the copy saved on your computer, so looking at your network never contacts LinkedIn. It used to load a photo from LinkedIn until a scan had saved it, and a rescan could put LinkedIn&apos;s link back in place of a saved photo. Every page now also tells the browser to load pictures from the app alone, and the scanner fetches photos from LinkedIn&apos;s image servers only.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Photos an older version kept as links are saved once.&lt;/strong&gt; Until then those people show initials. The next scan saves them at its end, or &lt;em&gt;Save photos&lt;/em&gt; on the Scan page does it now, without opening a browser. A link more than a few weeks old has expired: that person&apos;s photo comes back when they&apos;re next scanned. Offline, or with LinkedIn&apos;s image server busy, nothing is forgotten, and &lt;em&gt;Save photos&lt;/em&gt; stops and says why.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Government and military titles are read.&lt;/strong&gt; A senator, a governor, a mayor and a cabinet secretary score like a C-suite; their deputies, state legislators, commissioners, ambassadors and judges like a VP; a city councilmember or a sheriff like a director. Officers by rank: a 3–4 star general or admiral 10, a 1–2 star 9, a colonel 7.5, a lieutenant colonel 6.5, a major 5, and a commander by their unit. &amp;quot;(Ret.)&amp;quot; and &amp;quot;Retired&amp;quot; make a role former. They count only where a title is written, and only where their own organization is a government&apos;s or a service&apos;s: a staffer in an Office of the Secretary, a veteran&apos;s civilian job, a city manager at Uber, a Rotary district governor, a team captain or a Kentucky colonel isn&apos;t one. A title that doesn&apos;t say whose it is (&amp;quot;Mayor&amp;quot;, &amp;quot;Police Chief&amp;quot;, &amp;quot;Ambassador&amp;quot;) needs its government named, or stays &amp;quot;Title unclear&amp;quot;: a missed official is a neutral 4, a realtor read as a mayor would be an A. Until now all of them were &amp;quot;Title unclear&amp;quot; (a U.S. senator scored 2.9, C).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;One name: Six Degrees.&lt;/strong&gt; The header, the welcome screen, the loading and launch pages, the side panel and the Terminal installer said &amp;quot;6 Degrees&amp;quot;. They now say Six Degrees, as the window title and the app in Applications already did.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Contributor docs and &lt;code&gt;.gitignore&lt;/code&gt;.&lt;/strong&gt; CONTRIBUTING says npm releases go out through trusted publishing, with no token to set, and that &lt;code&gt;npm run build:desktop&lt;/code&gt; builds the app releases ship (&lt;code&gt;build:app&lt;/code&gt; is the old launcher). &lt;code&gt;.gitignore&lt;/code&gt; keeps a LinkedIn export, a database, a saved copy of a network and the scanner&apos;s signed-in browser profile out of a commit, wherever they sit in the tree. A local build keeps them out of the app too, and its list of uncommitted files inside the app now names ignored ones as well.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;0.4.0-beta.1, promoted: this is now the Mac app and npm package everyone gets.&lt;/strong&gt; It adds:&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Their circle, on every card,&lt;/strong&gt; with rarity beside the tier and LinkedIn&apos;s own mutual count.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;One scan at a time,&lt;/strong&gt; and &lt;em&gt;Resume&lt;/em&gt; beside &lt;em&gt;Rescan&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tiers on your own network&apos;s curve,&lt;/strong&gt; with unknown companies at a neutral 5.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;631 public organizations&lt;/strong&gt; the built-in list leaves off, and &lt;strong&gt;scoring 6.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scores, a tab of its own.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;The details are under 0.4.0-beta.1 below.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The download page&lt;/strong&gt; says what&apos;s new in 0.4.0.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Degrees&apos; corner toggle says Orbit, which is what it shows.&lt;/strong&gt; It said &amp;quot;Galaxy&amp;quot;, but the Galaxy is a Network Circle view, so Degrees fell back to Orbit. It switches between Orbit and Bridge Chains, and it&apos;s on whenever Orbit is showing.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Removed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;About 630 lines of Galaxy code that never ran:&lt;/strong&gt; a Degrees drawing from before Orbit and Bridge Chains. Nothing could open it. The Galaxy draws Network Circle only.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A one-person scan notes a hidden list.&lt;/strong&gt; A card&apos;s Scan or Rescan that found someone&apos;s list hidden said so and noted nothing, so they stayed &amp;quot;not scanned yet&amp;quot; and were offered again forever. Only a batch noted it. Now every read from page 1 does.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A scan reads the list of the person you picked.&lt;/strong&gt; A card&apos;s Scan and Rescan went by name, so with two connections of the same name the scanner could read the other one&apos;s list. Every Scan button now goes by that person&apos;s profile, as Resume already did.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A company&apos;s name after &amp;quot;at&amp;quot; is no longer read as a title.&lt;/strong&gt; &amp;quot;Server at President Hotel&amp;quot; scored as a C-suite (7.3, A), and so did an IT specialist in an &amp;quot;Office of the Chief Information Officer&amp;quot;. &amp;quot;Executive Assistant to the General Manager&amp;quot; scored as a VP.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;↻ asks before it scans.&lt;/strong&gt; The round button in the header started &lt;em&gt;Check for new&lt;/em&gt; the moment it was clicked. It now says what it will do (open Chrome on your connections list and read it until it reaches people already saved) and what it costs (no search budget, but it is LinkedIn traffic from your account), and waits for OK.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No Scan buttons on the sample or a CSV import.&lt;/strong&gt; Every card there offered a scan of that person&apos;s circle, and Degrees offered &lt;em&gt;Auto-Bridge Next&lt;/em&gt;, but both networks live only in the window, so the scan could only fail (&amp;quot;Bridge &apos;…&apos; not found in database&amp;quot;). In their place a line says scanning needs your own network.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A CSV import&apos;s dates are the day LinkedIn says.&lt;/strong&gt; Anywhere east of London, each &amp;quot;Connected On&amp;quot; date landed a day early (28 Sep 2026 became 27 Sep). The import now reads it as the calendar date it is, the way a scan already did, and a date it can&apos;t read is left blank rather than guessed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Opening a panel no longer rebuilds the Galaxy.&lt;/strong&gt; Opening or closing the side panel or the Filter panel used to draw the Galaxy again from scratch: the layout started over, the selection ring vanished, and a big network stalled the page. Now the view slides over at the same zoom, so what was in the middle stays in the middle.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The selection ring stays on the person you picked.&lt;/strong&gt; It is tied to their dot, and it comes back after a tier filter that still shows them. It used to follow the first dot it found near its old spot, which could be someone else, even You. &lt;em&gt;Back to list&lt;/em&gt; clears it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The selection ring pulses gently, as it was always meant to.&lt;/strong&gt; Its animation had only ever been written in code that never ran. With Reduce Motion on, it holds still.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hovering a dot eases it up to 1.5 times its size,&lt;/strong&gt; instead of jumping. With Reduce Motion on, it still changes at once.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Galaxy draws faster on a big network.&lt;/strong&gt; Colouring its lines searched every person for every line: about 1.4 s at 30,000 people, on every draw. It now takes under a millisecond.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The main screen no longer stalls when nothing is selected on a big network.&lt;/strong&gt; The side panel&apos;s Power Rankings counted every tier again for each person in the list, even with the panel closed. At 30,000 people that took about 20 s each time the screen redrew, opening the Filter panel included.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;On a laptop, the Galaxy keeps its usual layout with a panel open.&lt;/strong&gt; Its fixed phone layout used to switch on whenever the graph was under 768 pixels wide, which a tier filter picked with a panel open could do. It now follows the window, as the page does.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://sixdegreesapp.com/releases/#v0.3.0</id>
    <title>Six Degrees 0.3.0: The Mac app scans with nothing to install</title>
    <link rel="alternate" type="text/html" href="https://sixdegreesapp.com/releases/#v0.3.0"/>
    <published>2026-09-26T00:00:00Z</published>
    <updated>2026-09-26T00:00:00Z</updated>
    <summary>7 added, 11 changed, 10 fixed, 1 removed, 3 security</summary>
    <content type="html">&lt;h3&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;0.3.0-beta.1, promoted: this is now the Mac app and npm package everyone gets.&lt;/strong&gt; It adds:&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Settings&lt;/strong&gt;, with &lt;strong&gt;Updates&lt;/strong&gt; there too. The Mac app now updates itself: &lt;em&gt;Install and restart&lt;/em&gt;, with no Terminal.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Your sector&lt;/strong&gt;, a directory of 49 sectors suggested from your own network. Everyone starts from the same neutral company scores.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Your data:&lt;/strong&gt; see where your network lives, save a copy, and move it to another computer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The scanner&apos;s Python inside the Mac app,&lt;/strong&gt; so scanning needs nothing installed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Two security fixes.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;The details are under 0.3.0-beta.1 below.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The download page&lt;/strong&gt; says the scanner&apos;s Python comes with the Mac app, offers &lt;em&gt;Set up the scanner&lt;/em&gt; for &lt;code&gt;npx&lt;/code&gt;, and gives the new size (about 195–210 MB).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Updating from 0.2.1 or older:&lt;/strong&gt; use the Terminal line or the download page one last time. From 0.3.0 on, it&apos;s &lt;em&gt;Install and restart&lt;/em&gt; in Settings.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://sixdegreesapp.com/releases/#v0.2.1</id>
    <title>Six Degrees 0.2.1: Tutorial videos on the download website</title>
    <link rel="alternate" type="text/html" href="https://sixdegreesapp.com/releases/#v0.2.1"/>
    <published>2026-09-25T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <summary>2 added, 4 changed, 10 fixed</summary>
    <content type="html">&lt;h3&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tutorial videos on the download website:&lt;/strong&gt; installing on a Mac, running it on Linux, and how scanning works. They&apos;re short and silent, with the steps as captions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;npx six-degrees&lt;/code&gt; on Linux.&lt;/strong&gt; The npm package is published (0.2.0 was the first). The README, the website and the installer&apos;s message now point Linux users to it, with how to update it and where it keeps your data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Check for updates says what it found.&lt;/strong&gt; An up-to-date copy showed only a faint line, so the button seemed to do nothing. The answer is now a clear status (&amp;quot;You&apos;re up to date: 0.2.1 is the newest version&amp;quot;, with the time). The Mac app&apos;s &lt;strong&gt;Check for Updates…&lt;/strong&gt; menu item opens the Updates panel and runs the check, instead of just opening the top of the Scan page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The profile page no longer starts scans.&lt;/strong&gt; Its &amp;quot;Set Up Account — Full Scan&amp;quot; and &amp;quot;Auto-Bridge All Connections&amp;quot; cards are gone. The second mapped every connection in one go, with none of the batch size, budget or warnings of the Scan page, where scanning lives.&lt;/li&gt;
&lt;li&gt;The window title is &lt;strong&gt;Six Degrees&lt;/strong&gt; (it was &amp;quot;6 Degrees of Separation — LinkedIn Network Research&amp;quot;), and the page description no longer claims to be a research project.&lt;/li&gt;
&lt;li&gt;The import page&apos;s &amp;quot;close the tab&amp;quot; note is true in the Mac app too.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Big LinkedIn exports import.&lt;/strong&gt; An export over about 9,000 connections was refused (&amp;quot;too large to hold in this browser tab&amp;quot;). The tab now keeps only what the export says about each person and scores it again on load, so exports up to LinkedIn&apos;s 30,000 maximum fit. Checked in a browser: 10,000 connections import and draw in about 4 seconds, 30,000 in about 25. It still never touches the database.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;npx six-degrees&lt;/code&gt; downloads about 22 MB instead of about 235 MB.&lt;/strong&gt; The package already carries its built server; Next, React and d3 are now build-time only.&lt;/li&gt;
&lt;li&gt;On Windows, npm now refuses the package with a clear &amp;quot;not supported&amp;quot; message instead of installing it and crashing at start.&lt;/li&gt;
&lt;li&gt;On Linux without a desktop, &lt;code&gt;npx six-degrees&lt;/code&gt; prints the address to open instead of a crash when there&apos;s no browser to launch.&lt;/li&gt;
&lt;li&gt;The Scan page checks for Google Chrome on Linux too (where Playwright looks for it).&lt;/li&gt;
&lt;li&gt;Updating an npx copy says to stop it first, and keeps &lt;code&gt;--data-dir&lt;/code&gt; if it was started with one, so the new version finds your network.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The app says &lt;strong&gt;scanner&lt;/strong&gt; and &lt;strong&gt;scan&lt;/strong&gt; everywhere you read it (the Scan page, the side panel, the profile page, the import page); the code names are unchanged.&lt;/li&gt;
&lt;li&gt;Releases publish to npm through npm&apos;s trusted publishing: GitHub vouches for the release workflow, so no npm token is stored anywhere. Each release builds the package on Linux, installs it, checks it serves the app, and publishes that exact file.&lt;/li&gt;
&lt;li&gt;The README: macOS 15&apos;s second button is &lt;strong&gt;Open Anyway&lt;/strong&gt;; the LinkedIn warning&apos;s link no longer shows a file name; the release notes link the changelog.&lt;/li&gt;
&lt;li&gt;SECURITY.md lists all six gated routes (it said four).&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://sixdegreesapp.com/releases/#v0.2.0</id>
    <title>Six Degrees 0.2.0: Six Degrees as a real Mac app</title>
    <link rel="alternate" type="text/html" href="https://sixdegreesapp.com/releases/#v0.2.0"/>
    <published>2026-09-24T00:00:00Z</published>
    <updated>2026-09-24T00:00:00Z</updated>
    <summary>3 added, 3 changed, 4 fixed</summary>
    <content type="html">&lt;h3&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Six Degrees is now a Mac app (Electron) for everyone&lt;/strong&gt;: the 0.2.0-beta.1 app, promoted. It has its own window, Dock icon and menu, and the same server, data and scanner inside as 0.1.11. Needs &lt;strong&gt;macOS 13.5 or later&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The README starts with the Mac app&lt;/strong&gt;: two download buttons (Apple Silicon, Intel), the exact first-open steps, and the Terminal install as the alternative. Each release now carries &lt;code&gt;Six-Degrees-Mac-Apple-Silicon.dmg&lt;/code&gt; and &lt;code&gt;Six-Degrees-Mac-Intel.dmg&lt;/code&gt;, whose names never change, so the buttons always fetch the newest version.&lt;/li&gt;
&lt;li&gt;The sample network is scored with the app&apos;s real model; it was still using the retired formula. It&apos;s regenerated, and so are the screenshots, from the new app.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The README, installer and release notes no longer point Windows and Linux users at &lt;code&gt;npx six-degrees&lt;/code&gt;, which was never published and so failed. Linux gets real from-source steps; Windows is honestly &amp;quot;not yet&amp;quot;.&lt;/li&gt;
&lt;li&gt;The installer refuses a Mac older than macOS 13.5 with a plain message. Every version bundles Node 24, which needs 13.5; on an older Mac the app used to install fine and then fail with a generic alert. Both apps now declare the true minimum, so macOS says so too.&lt;/li&gt;
&lt;li&gt;The README&apos;s scoring section, view names (Degrees, not Bridges), feature list, privacy list (PyPI, update checks) and data-folder layout match the app again. The LinkedIn risk warning comes before the first scan, with both incidents.&lt;/li&gt;
&lt;li&gt;Paths → Map: an industry label near the bottom no longer lands on the legend.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://sixdegreesapp.com/releases/#v0.1.11</id>
    <title>Six Degrees 0.1.11: A copy of your data before every new version touches it</title>
    <link rel="alternate" type="text/html" href="https://sixdegreesapp.com/releases/#v0.1.11"/>
    <published>2026-09-24T00:00:00Z</published>
    <updated>2026-09-24T00:00:00Z</updated>
    <summary>2 added, 1 fixed, 1 security</summary>
    <content type="html">&lt;h3&gt;Security&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Next.js 16.2.9 → 16.3.6.&lt;/strong&gt; It fixes two critical remote-code-execution advisories (GHSA-2xp9-vwfh-vxw4 in image optimization, GHSA-p293-qw3h-jr36 on Windows), a middleware bypass under Turbopack (GHSA-6gpp-xcg3-4w24; this app&apos;s cross-site guard &lt;em&gt;is&lt;/em&gt; middleware), and several denial-of-service, request-forgery and cache issues. Listening only on this computer doesn&apos;t make these safe: any website you visit can make your browser send requests to &lt;code&gt;127.0.0.1&lt;/code&gt;, and the cross-site guard blocks writes, not reads. &lt;code&gt;npm audit&lt;/code&gt; now reports 0.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A copy of your data before every new version touches it.&lt;/strong&gt; The first time a new version opens your database, it copies it into &lt;code&gt;~/.six-degrees/backups/&lt;/code&gt; first (the newest five are kept; copies you made yourself are left alone). If the copy fails, for instance on a full disk, it tries again at the next start.&lt;/li&gt;
&lt;li&gt;Tags like &lt;code&gt;v0.2.0-beta.1&lt;/code&gt; publish as &lt;strong&gt;pre-releases&lt;/strong&gt;. The one-line install and the Updates panel never pick them up, so a beta only reaches someone who asks for it.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The installer&apos;s documented options go &lt;em&gt;after&lt;/em&gt; the pipe (&lt;code&gt;curl … | SIX_DEGREES_VERSION=… bash&lt;/code&gt;). Before it, they reach &lt;code&gt;curl&lt;/code&gt;, not the installer.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://sixdegreesapp.com/releases/#v0.1.10</id>
    <title>Six Degrees 0.1.10: Paths → Scores</title>
    <link rel="alternate" type="text/html" href="https://sixdegreesapp.com/releases/#v0.1.10"/>
    <published>2026-09-24T00:00:00Z</published>
    <updated>2026-09-24T00:00:00Z</updated>
    <summary>2 added, 2 changed</summary>
    <content type="html">&lt;h3&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Power scores rebuilt from an audit against your own network.&lt;/strong&gt; One model now scores everyone (lib/scoring.js), where there were three that disagreed:&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Seniority × company, not seniority + company.&lt;/strong&gt; power = title × company weight + bonus. A title is worth more at a bigger company, so a VP at Google (9.0) outranks a founder of an unknown startup (6.7), and an intern at Google (2.0) no longer scores like a director.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Titles are read properly.&lt;/strong&gt; The current role counts, former roles at 70%, and a person scores as their strongest role. Fixed: &amp;quot;Vice President&amp;quot; read as President (73 people), &amp;quot;Product Owner&amp;quot; as an owner, &amp;quot;International&amp;quot; as intern, club and fraternity chairs as chairmen, and &amp;quot;CFO&amp;quot; missed entirely. Current students are capped.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Companies are found and named consistently.&lt;/strong&gt; Meta, Snap, Amazon/AWS and UCF variants merge; plain &amp;quot;Meta&amp;quot; was missed before. Headline phrases like &amp;quot;at scale&amp;quot; are no longer companies. About 130 well-known companies are scored, up from about 80.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bonuses need whole words and real signals.&lt;/strong&gt; &amp;quot;psYChology&amp;quot;, &amp;quot;comMITted&amp;quot; and &amp;quot;adVENTURE&amp;quot; no longer earn +2. Self-reported claims from someone at an unknown company count half.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The circle boost is capped at +1 and recomputed each time.&lt;/strong&gt; It used to add up to +3 and only ever go up, and 23 of 33 S-tier 1st-degree people were S only because of it.&lt;/li&gt;
&lt;li&gt;The recency bonus is gone: connecting recently doesn&apos;t make someone more powerful.&lt;/li&gt;
&lt;li&gt;Checked against mapped circles: a person&apos;s title now tracks how senior their own circle is (correlation 0.30, up from 0.10).&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Everyone is rescored after every import, and once automatically on the first load after updating.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Paths → Scores:&lt;/strong&gt; every company in your network with its score, where the score comes from (known list, estimated from how many of your people work there, or yours) and a control to set your own. Setting one rescores everyone. The company panel on the map has the same control.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Why this score:&lt;/strong&gt; the person panel explains the number, e.g. &amp;quot;VP / Partner / GM (9) · Snap (9/10) · +0.7 strong circle&amp;quot;.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://sixdegreesapp.com/releases/#v0.1.9</id>
    <title>Six Degrees 0.1.9: Paths is a company and industry analyzer</title>
    <link rel="alternate" type="text/html" href="https://sixdegreesapp.com/releases/#v0.1.9"/>
    <published>2026-09-24T00:00:00Z</published>
    <updated>2026-09-24T00:00:00Z</updated>
    <summary>3 added</summary>
    <content type="html">&lt;h3&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Paths is a company and industry analyzer&lt;/strong&gt;, in the spirit of LinkedIn&apos;s InMaps (2011–2014), the network map LinkedIn used to give people and then retired.&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Map:&lt;/strong&gt; every company is a bubble, coloured by industry and sized by your people there, with the share you already know as a white centre and a gold ring when an S-tier person is inside. A line joins two companies when one of your connections at the first knows people at the second.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Industries:&lt;/strong&gt; a card per industry with who you know, who you can reach, director-level people, the top companies and the best way in.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Filters:&lt;/strong&gt; degree, level (director+, C-suite), tier, industry, and search.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Analyzer panel:&lt;/strong&gt; click a company or an industry for the breakdown by level, the ways in (people who work there first, then connections who know the most people there), the most powerful people, and connected companies. &amp;quot;Path to the top&amp;quot; still opens the level-by-level view.&lt;/li&gt;
&lt;li&gt;Industry is inferred from company names and headlines and says so; unclear stays unclear.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Outlink is a game: Circles.&lt;/strong&gt; Each mapped connection&apos;s circle offers its best people five at a time. Mark an invite sent and the ring fills; clear a stage and the next five appear. &lt;strong&gt;Next best moves&lt;/strong&gt; picks the three people most worth an invite, nudged toward circles you&apos;ve started. Level and points come only from invites sent and people who joined your network. People you added whose circle isn&apos;t mapped yet show as &lt;strong&gt;new doors&lt;/strong&gt;, the next degree to map. The list and Pending are still there.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Orbit in Degrees.&lt;/strong&gt; The Network Circle&apos;s Orbit, for your mapped circles: each person you&apos;ve mapped on one ring, with everyone they know fanned out behind them, the most powerful closest, and more room for bigger circles.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://sixdegreesapp.com/releases/#v0.1.8</id>
    <title>Six Degrees 0.1.8: A search budget</title>
    <link rel="alternate" type="text/html" href="https://sixdegreesapp.com/releases/#v0.1.8"/>
    <published>2026-09-24T00:00:00Z</published>
    <updated>2026-09-24T00:00:00Z</updated>
    <summary>4 added, 2 fixed</summary>
    <content type="html">&lt;h3&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A search budget.&lt;/strong&gt; Every people search and profile view is written down (&lt;code&gt;~/.six-degrees/linkedin-activity.json&lt;/code&gt;), and scans stop at a daily budget (the last 24 hours, 50 by default) and a monthly one (LinkedIn&apos;s month, which starts at midnight Pacific on the 1st; 250 by default), both set on the Scan page. A read that reaches either saves what it read and stops, never marking a list finished, and carries on from the same page next time. The budget belongs to the LinkedIn account, not to a profile in the app, and a damaged record counts as the day used up. It applies to company scans too.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A cooldown lock.&lt;/strong&gt; When LinkedIn pushes back, nothing that searches runs for a day (until LinkedIn&apos;s month turns, for its monthly limit; six hours after two unclear reads in a row). The Scan page shows it in red with the time it lifts, the scan buttons wait, and &lt;strong&gt;Lift it early&lt;/strong&gt; is there for when search works normally again.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A Paused list with Resume.&lt;/strong&gt; The Scan page lists everyone whose list was only partly read, with the page each one carries on from, newest connections first. &lt;strong&gt;Resume&lt;/strong&gt; carries on with one person (found by their profile URL, so two people with the same name can&apos;t be mixed up) and &lt;strong&gt;Resume all&lt;/strong&gt; with every paused list and nobody new, always to the end of the list. The list and the scanner&apos;s queue follow the same rules (&lt;code&gt;lib/paused.js&lt;/code&gt;, tested against the scanner).&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Scan my whole network&lt;/strong&gt; and &lt;strong&gt;Check for new&lt;/strong&gt; also wait out a cooldown. They aren&apos;t searches, so they don&apos;t count against the budget, but they still open LinkedIn with automation.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Re-mapping someone deleted their circle before checking anything; it now checks the cooldown and the budget first.&lt;/li&gt;
&lt;li&gt;Windows: the scanner uses no Unix-only file lock or date format, and installs &lt;code&gt;tzdata&lt;/code&gt; so it knows when LinkedIn&apos;s month starts.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://sixdegreesapp.com/releases/#v0.1.7</id>
    <title>Six Degrees 0.1.7: Separation</title>
    <link rel="alternate" type="text/html" href="https://sixdegreesapp.com/releases/#v0.1.7"/>
    <published>2026-09-24T00:00:00Z</published>
    <updated>2026-09-24T00:00:00Z</updated>
    <summary>2 added, 3 changed, 7 fixed</summary>
    <content type="html">&lt;p&gt;A stopgap after 0.1.6 read 27 pages of results in about three and a half minutes and LinkedIn blocked the account&apos;s search, plus the Separation view. Budgets and an easy resume come next. TRAPS §35.&lt;/p&gt;
&lt;h3&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Separation&lt;/strong&gt;, a new Degrees view and the one the Degrees tab now opens on. Everyone you can reach in two steps is ranked on one list, one row per person, however many of your connections know them. Each row shows every way in. A small map above the list draws You → each connection → the top ten, with every route. Search also matches who knows someone, so typing a connection&apos;s name shows their circle.&lt;/li&gt;
&lt;li&gt;The Sidebar&apos;s &lt;strong&gt;Path to this person&lt;/strong&gt; box lists every route to a 2nd-degree person, not just the one on the row you clicked. A route whose connection can&apos;t be found is still shown, as unnamed. It used to make the box disappear.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Slower reading.&lt;/strong&gt; 20 seconds before each page of results and another minute after every 10. A whole list now takes about 55 minutes, not 10.&lt;/li&gt;
&lt;li&gt;The pause after someone who came back with nothing is the full two minutes. It was 15 seconds, so the scan went faster exactly when LinkedIn was pushing back.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;Bridges&lt;/strong&gt; tab is now called &lt;strong&gt;Degrees&lt;/strong&gt;. The Filters panel&apos;s tier chips there read &amp;quot;Filter by bridge tier&amp;quot;, so they aren&apos;t confused with a person&apos;s own tier.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A scan stops at the first sign of LinkedIn pushing back&lt;/strong&gt; instead of carrying on to the next person. That covers a page of results that won&apos;t open, a search that won&apos;t open for someone whose connections are visible, LinkedIn&apos;s own warnings (&amp;quot;unusual activity from your account&amp;quot;, profile viewing restricted, the account restricted, the monthly search limit coming up or reached), and a security check or sign-in wall appearing while you were signed in. What the page showed is kept in &lt;code&gt;~/.six-degrees/pushback/&lt;/code&gt; so the wording can be recognised, and the message says what to do for that case.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Someone is only marked hidden when LinkedIn clearly showed their profile&lt;/strong&gt; (their name in the page heading or title, as a whole word) with no connections link, or said the profile is unavailable. A profile that didn&apos;t render is &amp;quot;unclear&amp;quot;: nothing is recorded, two unclear people in a row stop the batch, and someone unclear twice moves to the back of the queue so they can&apos;t hold it up. A block used to mark everyone after it as hidden, for good. LinkedIn&apos;s own &amp;quot;No results found&amp;quot; is taken as a real answer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A security check no longer counts as signed in.&lt;/strong&gt; The session cookie survives one, so a scan used to carry on past it. It now stops, and &lt;strong&gt;Open LinkedIn&lt;/strong&gt; on the Scan page (shown even when signed in now) opens a window to finish it by hand. Signing in from scratch still waits through LinkedIn&apos;s own two-factor steps.&lt;/li&gt;
&lt;li&gt;Closing the browser window during a read stops it, and never marks the list finished.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Carrying on into a blank page no longer marks a list finished.&lt;/strong&gt; Only LinkedIn&apos;s &amp;quot;No results found&amp;quot; does. A search it is limiting can come back blank, and a wrong &amp;quot;finished&amp;quot; dropped the rest of that list for good.&lt;/li&gt;
&lt;li&gt;The Scan page&apos;s note on how long a whole list takes read &amp;quot;15 minutesa person&amp;quot;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A full scan could cut a mapped circle loose.&lt;/strong&gt; If one of your connections had also been saved inside someone else&apos;s circle (before 0.1.5 kept your own connections out), a full scan &amp;quot;promoted&amp;quot; that copy and deleted their real row. Everyone in their own circle was then left pointing at a row that no longer existed, and they vanished from every Degrees view. The same step gave long-standing connections a &amp;quot;you met them through…&amp;quot; they never had. Their own row is now kept, with no origin added. TRAPS §36.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://sixdegreesapp.com/releases/#v0.1.6</id>
    <title>Six Degrees 0.1.6: Carrying on where a read stopped</title>
    <link rel="alternate" type="text/html" href="https://sixdegreesapp.com/releases/#v0.1.6"/>
    <published>2026-09-24T00:00:00Z</published>
    <updated>2026-09-24T00:00:00Z</updated>
    <summary>3 added, 2 changed, 2 fixed</summary>
    <content type="html">&lt;h3&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;2nd-degree scans read each person&apos;s whole list.&lt;/strong&gt; Every read used to stop at page 10 (about 100 people) unless you changed a setting, and nothing in the log said so, so a list of 50 pages looked finished at 10. The default is now every page. It keeps clicking Next until the list ends, and looks for another page three times, scrolling down and waiting longer each time, before deciding a list is over. LinkedIn&apos;s own search stops at page 100 (about 1,000 people). The log always states the page limit, and says so when it stops at one with more to read.&lt;/li&gt;
&lt;li&gt;The log no longer calls the search of someone&apos;s connections a &amp;quot;3rd+ filter&amp;quot;. It never was one: it covers everyone they know, and the app drops your own connections when it saves.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Carrying on where a read stopped.&lt;/strong&gt; How far each person&apos;s list has been read is noted in &lt;code&gt;~/.six-degrees/bridge-progress.json&lt;/code&gt;. With &lt;strong&gt;Also finish people already mapped&lt;/strong&gt; (on by default; &lt;code&gt;--deeper&lt;/code&gt; from a terminal), a scan picks up everyone read only partly, including everyone mapped before this version at 10 pages, from the next page. Their profile isn&apos;t opened again once the id their connections are searched by is known.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Long reads save as they go&lt;/strong&gt;, every 10 pages. Stopping a scan, a crash, or LinkedIn&apos;s monthly search limit for free accounts now costs at most the last few pages, and the next run carries on from the same page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LinkedIn&apos;s monthly search limit is recognised.&lt;/strong&gt; The scan saves what it read, stops the batch, and says why, instead of reading empty pages.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;A click on Next that didn&apos;t move to the next page used to end that person&apos;s read as if their list had ended. It is now retried three times, and if the page still won&apos;t move, the person is left for the next run to finish.&lt;/li&gt;
&lt;li&gt;Release builds could still fail at the eject: &amp;quot;Resource busy&amp;quot; sometimes arrives after the volume has already unmounted, when only ejecting the disk device failed, and the retry kept aiming at a mount point that no longer existed. It now finishes on the device and stops as soon as nothing is left attached. Build process only.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://sixdegreesapp.com/releases/#v0.1.5</id>
    <title>Six Degrees 0.1.5: Start with your newest connections</title>
    <link rel="alternate" type="text/html" href="https://sixdegreesapp.com/releases/#v0.1.5"/>
    <published>2026-09-24T00:00:00Z</published>
    <updated>2026-09-24T00:00:00Z</updated>
    <summary>4 added, 7 fixed</summary>
    <content type="html">&lt;h3&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A 2nd-degree scan could read someone&apos;s connections and save none of them&lt;/strong&gt;: &amp;quot;UNIQUE constraint failed&amp;quot;, then &amp;quot;Done! 0 new&amp;quot;. A person&apos;s results can name the same profile twice — the same result on two pages, or the same mutual connection under many results — and the database refused the whole batch. The scanner and the app now each keep every profile once.&lt;/li&gt;
&lt;li&gt;Your own connections were saved into other people&apos;s circles. They arrive as the &amp;quot;mutual connections&amp;quot; links under each result; they are not people you have not met, and they inflated every circle. They are now left out (and counted in the log).&lt;/li&gt;
&lt;li&gt;A failed save printed one line and carried on to the next person, spending LinkedIn views on people who could not be saved either. It now stops the batch and says why.&lt;/li&gt;
&lt;li&gt;After a push the log said &amp;quot;N processed&amp;quot;, counting everything sent. It now says how many were new, and how many were already on file or already your connections.&lt;/li&gt;
&lt;li&gt;Company scans saved their rows without your profile, so nothing they found could appear. (Company scans are still experimental.)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LinkedIn&apos;s &amp;quot;Connected on&amp;quot; date is captured again.&lt;/strong&gt; The 1st-degree reader rewritten on 2026-09-09 stopped saving it, so the app had no idea when you connected with anyone — and the scoring bonus for connections made in the last 30 days never applied. It is read from each person&apos;s card again, and a full scan fills it in for everyone already saved.&lt;/li&gt;
&lt;li&gt;A full scan&apos;s summary said &amp;quot;814 new&amp;quot; and then &amp;quot;Sent 814 → 0 new&amp;quot;. It no longer claims a count it cannot know; the app&apos;s line says what was new.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Start with your newest connections.&lt;/strong&gt; The 2nd-degree step now works through the people you connected with most recently, by LinkedIn&apos;s &amp;quot;Connected on&amp;quot; date and across every tier; &amp;quot;highest tier first&amp;quot;, with the tier choice, is still there.&lt;/li&gt;
&lt;li&gt;The progress bar says &amp;quot;Saving to your network and fetching photos&amp;quot; once reading is done, instead of sitting at 99% looking stuck.&lt;/li&gt;
&lt;li&gt;The Scan page remembers the order and depth you last chose.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How deep to read each person:&lt;/strong&gt; 10 pages (the default, about 100 people), 25, 50 or 100, LinkedIn&apos;s limit. Deeper reads take longer and use your account&apos;s search allowance.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://sixdegreesapp.com/releases/#v0.1.4</id>
    <title>Six Degrees 0.1.4: 2nd-degree scans failed on the first page of every person</title>
    <link rel="alternate" type="text/html" href="https://sixdegreesapp.com/releases/#v0.1.4"/>
    <published>2026-09-24T00:00:00Z</published>
    <updated>2026-09-24T00:00:00Z</updated>
    <summary>3 fixed</summary>
    <content type="html">&lt;h3&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;2nd-degree scans failed on the first page of every person&lt;/strong&gt; with &amp;quot;Page.evaluate: SyntaxError: Invalid or unexpected token&amp;quot;, then moved on to the next — so no connections were ever read and no pagination happened. The JavaScript that reads each results page sat in a plain Python string, which turns the &lt;code&gt;\n&lt;/code&gt; in &lt;code&gt;split(&apos;\n&apos;)&lt;/code&gt; into a real line break before the browser sees it. It is now a raw string, and a new test parses every snippet the scanner injects on every pull request. Broken since 2026-09-09.&lt;/li&gt;
&lt;li&gt;That same page reader, run against a mock results page for the first time, saved LinkedIn&apos;s screen-reader line (&amp;quot;View … profile&amp;quot;) as everyone&apos;s headline. It now takes the first real line after the name.&lt;/li&gt;
&lt;li&gt;After a scan, &amp;quot;N of them were 2nd-degree contacts you have now connected with&amp;quot; read as N people added. It now says what happened: N were already in a bridge&apos;s circle and have been merged into your connections, keeping who introduced you.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
</feed>
