daca71f89e
Release / build-and-release (push) Has been cancelled
~75 PRs merged since v3.2.0 plus 7 community fixes salvaged via PR triage. Highlights: - Install everywhere: npx skills add is canonical for Claude Code, Codex, Cursor, Gemini CLI, Copilot, Windsurf, and 50+ Agent Skills hosts. - New emit mode: --emit=html for shareable HTML briefs. - New source: Digg (auto-enabled when digg-pp-cli on PATH). - New env vars: EXCLUDE_SOURCES, LAST30DAYS_YOUTUBE_SSH_HOST. - New credential source: macOS Keychain. - Reliability sweep: Reddit (4xx + URL prefix + multi-key auth), xAI error surfacing, Windows compatibility, YouTube/HN unblock, HTTP retries, planner gating, render fixes. - Multi-harness reframe: AGENTS.md becomes canonical, CLAUDE.md points at it. SKILL_ROOT → SKILL_DIR substitution. Breaking: - .codex-plugin/plugin.json removed. Codex installs via npx skills add.
91 lines
5.0 KiB
Markdown
91 lines
5.0 KiB
Markdown
## v3.3.0 — install everywhere, ship the reliability sweep
|
|
|
|
The AI world reinvents itself every month. This skill keeps you current.
|
|
|
|
`/last30days` researches your topic across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, GitHub, Digg, and 5+ more sources from the last 30 days, finds what the community is actually upvoting, sharing, betting on, and saying on camera, and writes you a grounded narrative with real citations.
|
|
|
|
## What's new in v3.3.0
|
|
|
|
### Install everywhere with one command
|
|
|
|
`npx skills add mvanhorn/last30days-skill -g -y` is now the canonical install path for **every harness** — Claude Code, OpenAI Codex CLI, Cursor, Gemini CLI, GitHub Copilot, Windsurf, and 50+ other Agent Skills hosts. The skill auto-detects each harness's skills directory and symlinks in place, so edits propagate live. No more per-harness manual paths in the README.
|
|
|
|
### New emit mode: `--emit=html`
|
|
|
|
Shareable, print-friendly HTML briefs. Drop the file in Slack, mail it to a stakeholder, or print it for the meeting. Same data as compact mode, structured for human reading.
|
|
|
|
### New source: Digg
|
|
|
|
Digg surfaces curated story clusters from the AI 1000 leaderboard and pulls attributable X-post quotes directly into the brief. Auto-enabled when `digg-pp-cli` is on PATH. Footer line: `⛏️ Digg: N clusters │ K posts │ M authors`. No X auth required for the inline quotes.
|
|
|
|
### YouTube residential-IP routing (`LAST30DAYS_YOUTUBE_SSH_HOST`)
|
|
|
|
Running on a datacenter VPS (Hetzner, DigitalOcean, AWS, etc.)? YouTube's bot-wall fingerprints datacenter IP ranges before any cookie check. Set `LAST30DAYS_YOUTUBE_SSH_HOST=<ssh-alias>` and yt-dlp runs over SSH against a residential-IP host instead. One env var, no proxy service required.
|
|
|
|
### macOS Keychain credential source
|
|
|
|
When env vars and config files aren't set, the engine now reads credentials from the macOS Keychain. Stores secrets where macOS expects them; nothing on disk in plaintext.
|
|
|
|
### `EXCLUDE_SOURCES` env var
|
|
|
|
The inverse of `INCLUDE_SOURCES`. Useful for "everything except TikTok" or "everything except the slow ones."
|
|
|
|
## Reliability sweep
|
|
|
|
This release closes a long tail of platform-specific issues that have been accumulating:
|
|
|
|
- **Reddit**: subreddits starting with `r` no longer get mangled by `lstrip("r/")`. Browser-like headers + gzip handling fix urllib 403s on the public JSON endpoint. HTTP 402 now triggers the OpenAI/public-JSON fallback chain when ScrapeCreators credits are exhausted.
|
|
- **xAI**: empty or malformed responses now surface in `errors_by_source` instead of silently returning zero results.
|
|
- **Windows**: process cleanup no longer crashes on `os.killpg`. POSIX-style secret-permission warnings skipped. Save-path footer uses forward slashes.
|
|
- **Auth**: comma-separated `SCRAPECREATORS_API_KEY=key1,key2` rotation restored (accidentally dropped in v3.0.6).
|
|
- **YouTube + HN**: SC YouTube + multi-token HN searches unblocked. Transcript-fetch ratio surfaced.
|
|
- **HTTP**: retry budget expanded with exponential backoff on DNS failure. Parallel AI search aligned with current API schema.
|
|
- **OpenClaw**: now works without a ScrapeCreators key. Poll-timing initialized once.
|
|
|
|
## Multi-harness reframe
|
|
|
|
`AGENTS.md` is now the canonical project doc; `CLAUDE.md` points at it. The skill is positioned as a multi-harness Agent Skills package, not a Claude-Code-specific tool. SKILL.md's path resolution rewrote `SKILL_ROOT` → `SKILL_DIR`, removing ~80 lines of bash and fixing a real spec-vs-engine divergence bug.
|
|
|
|
## Breaking change
|
|
|
|
**`.codex-plugin/plugin.json` removed.** Codex native-plugin users should install via `npx skills add mvanhorn/last30days-skill` or copy the skill to `~/.codex/skills/last30days/`. The `npx skills add` path now reaches every harness uniformly.
|
|
|
|
## Install
|
|
|
|
Any harness (recommended):
|
|
|
|
```
|
|
npx skills add mvanhorn/last30days-skill -g -y
|
|
```
|
|
|
|
Claude Code marketplace:
|
|
|
|
```
|
|
/plugin marketplace add mvanhorn/last30days-skill
|
|
```
|
|
|
|
OpenClaw:
|
|
|
|
```
|
|
clawhub install last30days-official
|
|
```
|
|
|
|
Zero config. Reddit, Hacker News, Polymarket, and GitHub work immediately. Run it once and the setup wizard unlocks X, YouTube, TikTok, and more in 30 seconds.
|
|
|
|
## Contributors
|
|
|
|
First-time contributors whose fixes shipped in v3.3.0 (most via PR triage salvage — the fix re-applied directly to main with co-author credit when path migration made the original branch un-rebaseable):
|
|
|
|
- Dave Morin — portable test-harness paths
|
|
- Alex Key — `removeprefix("r/")` for subreddit names
|
|
- Eric Oberhofer — multi-key rotation restored
|
|
- gujishh — Windows process cleanup
|
|
- Franco Carballar — Reddit browser-like headers
|
|
- Jonathan Oppenheim — Reddit 402 fallback chain
|
|
- Kaustav Mishra — xAI error surfacing
|
|
- [@thinkun](https://github.com/thinkun) — OpenClaw ScrapeCreators-key-optional fix
|
|
|
|
Plus every contributor who shipped one of the ~75 PRs merged this cycle. See [CHANGELOG.md](CHANGELOG.md) under `[3.3.0]` for the full PR list and `git log v3.2.0..v3.3.0` for the complete commit graph.
|
|
|
|
30 days of research. 30 seconds of work. Thirteen sources. Zero stale prompts.
|