Skip to content

chore(newsletter): mark issue-406 articles used and sync backlinks through 406 - #166

Merged
axsaucedo merged 4 commits into
masterfrom
chore/newsletter-406-post-publish
Sep 27, 2026
Merged

axsaucedo merged 4 commits into
masterfrom
chore/newsletter-406-post-publish

Conversation

@axsaucedo

@axsaucedo axsaucedo commented Sep 27, 2026 •

Copy link
Copy Markdown
Collaborator

Post-publication housekeeping for issue 406: the five articles are marked as used in the candidate pool, and the syndication backlinks are synced now that the issue is live on Substack, LinkedIn and Brevo.

The backlinks sync ran with --all rather than --recent 4, because --recent always leaves out the newest issue (it's normally the one still being drafted), and 406 was the one that needed links. It added links only, with no conflicts, and also filled some older gaps: 14 issues gain links, 350-356 and 400-406.

--all also turned up a bug in the sync script. For campaigns that were never sent, Brevo puts an error sentence in the share-link field instead of a URL, and the sync wrote it into issues 258 and 295:

url: Share link not available for classic campaigns which are not sent

The schema rejects that, so npm run check failed on the first push of this branch. The last two commits revert those two entries and make the script skip any share link that isn't http(s). A dry run of sync --all now changes nothing, and npm run check passes.

One gap remains: issue 402 still has no LinkedIn link. The script couldn't find a LinkedIn article for it, so that one needs a manual lookup if it matters.

…te pool

Issue 406 is published, so its five articles (Part 1, Uber, Harness-Zero, the
China framework PDF and the Jev talk) move from pool to used and stop
resurfacing in future sourcing runs.
…h issue 406

Ran backlinks.mjs sync --all rather than --recent, because --recent always
skips the newest issue and 406 has now been republished everywhere. Additive
only, with no conflicts: 11 issues gain links (9 Substack, 2 LinkedIn, 4 Brevo),
including the older 350-356 gaps. Issue 402 still has no LinkedIn article to
match.
… 295 as URLs

For unsent classic campaigns Brevo returns the sentence "Share link not
available for classic campaigns which are not sent" in shareLink, and the
--all sync wrote it into the syndication block, which the schema rejects as an
invalid URL.
Skip a campaign whose shareLink is not a URL, so an unsent campaign's error
sentence can no longer reach the frontmatter. A dry run of sync --all now
changes nothing.
@github-actions

Copy link
Copy Markdown

Visual parity — dark theme 🌙

Every captured route is pixel-identical to the merge base across 1440x1000 (40 routes) and 420x900 (40 routes).

Informational: label the PR visual-change to state that pixels are meant to move, or dependencies to require zero.

@github-actions

Copy link
Copy Markdown

Visual parity — light theme ☀️

Every captured route is pixel-identical to the merge base across 1440x1000 (40 routes) and 420x900 (40 routes).

Informational: label the PR visual-change to state that pixels are meant to move, or dependencies to require zero.

@axsaucedo
axsaucedo merged commit c61be24 into master Sep 27, 2026
7 checks passed
@axsaucedo
axsaucedo deleted the chore/newsletter-406-post-publish branch September 27, 2026 16:40
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