Releases: mvanhorn/last30days-skill
Releases · mvanhorn/last30days-skill
Release list
v3.11.0
What's Changed
- fix(render): surface LinkedIn in emoji footer, stats engagement, and source label by @mvanhorn in #758
- fix(techmeme): window Techmeme results to real dates, drop useless sync by @mvanhorn in #752
- feat(doctor): unified doctor health command with fix prescriptions by @mvanhorn in #753
Full Changelog: v3.10.0...v3.11.0
v3.10.0
What's Changed
- fix(nux): embed the welcome pitch in the setup modal (the visible surface) by @mvanhorn in #750
- feat: Instagram comments + comments-by-default + rank-based comment diversity by @mvanhorn in #751
Full Changelog: v3.9.4...v3.10.0
v3.9.4
What's Changed
Full Changelog: v3.9.3...v3.9.4
v3.9.3
What's Changed
- fix(skill): first-run NUX gaps (welcome skipped, install list, device code, already-linked) by @mvanhorn in #746
- feat(engine): optional remote research API backend (env-driven) by @mvanhorn in #747
Full Changelog: v3.9.2...v3.9.3
v3.9.2
What's Changed
Full Changelog: v3.9.1...v3.9.2
v3.9.1
What's Changed
- fix(setup-wizard): repair the first-run NUX (Chrome-first cookies, working GitHub signup, honest copy) by @mvanhorn in #744
Full Changelog: v3.9.0...v3.9.1
v3.9.0
What's Changed
- ci: add pytest coverage gate at 60% floor (#254) by @gourab5139014 in #697
- fix: prune unsupported Codex auth provider path by @tmchow in #698
- Add LinkedIn source via ScrapeCreators by @ravstr in #702
- fix(diagnose): report X as available-pending when FROM_BROWSER will authenticate it by @mvanhorn in #729
- feat: Add arXiv + Techmeme (default-on) and Trustpilot (opt-in) sources by @mvanhorn in #709
- test: tighten Hermes skillignore regression coverage by @SyntaxSawdust in #739
- fix(setup-wizard): display pp_sources (arXiv/Techmeme) install status in setup summary by @23241a6749 in #741
- Preflight: auto-provision Python 3.12 via uv before failing the version gate by @buntysomroy in #738
- feat: add StockTwits as a source, gated to ticker/crypto topics by @wtiwana in #658
New Contributors
- @gourab5139014 made their first contribution in #697
- @ravstr made their first contribution in #702
- @SyntaxSawdust made their first contribution in #739
- @buntysomroy made their first contribution in #738
- @wtiwana made their first contribution in #658
Full Changelog: v3.8.3...v3.9.0
v3.8.3 - Free Reddit at ScrapeCreators parity
Added
- Free Reddit gets dedicated-subreddit lanes: entity-home subs (e.g. r/Kanye for "Kanye West", via the new
--dedicated-subredditsflag) are pulled in full from top+hot+new listings and exempt from the relevance floor, since the whole sub is the topic. Fixes the over-aggressive floor that dropped on-topic posts whose titles lacked the entity name. reddit_arcticresolves upvote counts for threads found only via RSS search (which carries no score) using the free, keyless arctic-shift archive — batched, paced, cached, and graceful-degrading. Reddit now gets headlines-with-points and best-comments-with-points entirely for free, at parity with ScrapeCreators.LAST30DAYS_REDDIT_SC_MIN_ITEMS(default 0 = unchanged empty-only behavior): set above 0 to let the ScrapeCreators backup backfill a thin free Reddit run instead of sitting idle. Backfilled items merge deduped by post id.
Removed
- The permanently-403
search.jsonTier 0 is gone from the keyless Reddit path; discovery is RSS breadth + shreddit listing partials (real scores) + the dedicated-sub lanes, with no wasted 403 calls.
v3.8.2 - Renderer-aware citations + security/CI hardening
Added
- Advisory Semgrep SAST scan runs on every push/PR as part of the Security workflow, catching source-level security bugs using Semgrep CE community rules (#563)
- Scheduled OSV-Scanner vulnerability-drift workflow scans repository lockfiles weekly and uploads SARIF results to GitHub code scanning, catching newly disclosed CVEs in the dependency tree even between PRs (#571)
LAST30DAYS_REDDIT_BACKEND=scrapecreatorsmakes ScrapeCreators the primary Reddit backend with the public path as fallback. Users with a ScrapeCreators key who were getting shallow public data will now get full nested comment trees by setting this flag (#589)- MCP Go tests (
mcp/) now run in CI on every push/PR alongside the Python test suite, so MCP server regressions are caught before merge (#621) - PR dependency review gate blocks merges that introduce new vulnerable dependencies (#551)
Changed
- Citations are now renderer-aware (LAW 8). On hidden-link hosts (Claude Code) every citation stays an inline
[name](url)link as before; on visible-URL hosts (Codex, Cursor, Gemini CLI, raw CLI) citations render as plain source labels so the narrative no longer turns intolabel (https://...)URL soup. The host is detected deterministically from theCLAUDECODEenvironment variable, and full URLs remain reachable through the engine footer and the saved raw file.
Fixed
- The query-plan invocation guidance now warns against wrapping the heredoc in
bash -lc '...'/zsh -lc '...', whose single quotes terminate at the first apostrophe in a ranking string and abort the engine run withunmatched "on Codex. The quoted<<'PLAN_EOF'heredoc is already apostrophe-safe; the-lcwrapper was the hazard. - Firefox profile detection on Linux now checks
$XDG_CONFIG_HOME/mozilla/firefox(or its default~/.config/mozilla/firefox) in addition to~/.mozilla/firefox, fixing cookie extraction on distros that honour the XDG Base Directory Specification (#667)
v3.8.1 - Restore the first-run NUX wizard
Restore the first-run NUX wizard
This release restores the original v3.0.0 guided onboarding wizard - the polished, modal-driven Claude Code first-run experience that had eroded over time - layered on top of the consent-driven foundation from #659/#660.
Added
- Restored the v3.0.0 first-run NUX wizard (Claude Code Modal Flow).
Step 0now runs the original guided onboarding on hosts withAskUserQuestion: a welcome message, an Auto/Manual/Skip setup modal, a cookie-consent modal, the ScrapeCreators signup offer, a TikTok/InstagramINCLUDE_SOURCESopt-in, and a first-topic picker. Hosts without modals (OpenClaw, Codex, Cursor, Gemini CLI) get an equivalent Non-Modal Prose Flow. Digg is threaded into the install messaging alongside yt-dlp, the ScrapeCreators credit count is10,000 free calls, the hard "Step 0 before research" gate is restored, and the flow is locked against re-erosion bytests/test_onboarding_contract.py. - Consent-driven first-run onboarding (#660): asks before reading browser cookies, surfaces the macOS Full Disk Access fix on permission-denied, offers the ScrapeCreators GitHub signup, and persists the key automatically (0600, masked).
Fixed
- First-run setup no longer silently skipped or run without consent (#659/#660). The first-run gate routes into the wizard on every new install.
Thanks to @henkyermontero for finding and fixing the first-run regression (#659, #660) that this builds on.
Install artifacts: last30days.skill (Claude Code / Codex / Cursor) and the .mcpb bundles (MCP, per-platform) are attached.