Skip to content

SourceCapsule v1.2: quick save, thread capture, Share with AI#1

Merged
wolfgang-aura merged 13 commits into
mainfrom
codex/sourcecapsule-v1.2
Jul 3, 2026
Merged

SourceCapsule v1.2: quick save, thread capture, Share with AI#1
wolfgang-aura merged 13 commits into
mainfrom
codex/sourcecapsule-v1.2

Conversation

@wolfgang-aura

Copy link
Copy Markdown
Owner

What's in v1.2

  • One-click quick save — the main button saves straight to the library; "this post only" moved under ....
  • Full-thread capture by default on status pages: progressive scroll from the top with detached node clones so X virtualization cannot erase earlier posts. Best-effort, labelled as such in the manifest.
  • Share with AI — explicit-confirmation upload to the share Worker; expiring links (1/7/30 days, default 7), 25 MB cap, no raw video. Plus a combined "Save locally + share" flow where the local copy completes first.
  • Copy clean Markdown, save notes/tags, per-root _sourcecapsule-index.md library index.
  • Experimental MV3 extension built from the same engine (npm run build:extension).
  • Share Worker hardening: per-IP rate limit on link creation (Cloudflare rate-limiting binding).

Merge gate — do not merge until

  • Production share Worker deployed (R2 buckets, custom domain or grant-covered host) and the real upload/read/delete/expiry test passes
  • Userscript default share endpoint switched from 127.0.0.1:8787 to the production URL
  • Manual live-X checks pass in Chrome (userscript + extension): quick save, this-post-only, copy Markdown, share
  • Maintainer approval — merging to main immediately ships to installed users via @updateURL

Automated checks (npm test, lint, format, extension build) are green at HEAD.

🤖 Generated with Claude Code

wolfgang-aura and others added 13 commits July 2, 2026 14:28
Cloudflare rate limiting binding on POST /api/capsules (5/min per IP).
Skipped gracefully when the binding is absent (local dev, tests).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Default share endpoint is now the deployed workers.dev service; localhost
stays available through the manager menu for dev. Adds the matching
@connect grant and extension host permission, and updates both READMEs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Documents the three capture rules the 2026-07-02 feasibility probe proved
necessary: root-anchored replied_to traversal, batch Article embed
hydration, and bounded quoted-ancestor walks with truncation metadata.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Thread capture clones posts while scrolling, so a post cloned before its
image loaded has no media in the model at all - invisible even to the
missing-media accounting (a real 36-post thread silently lost 7 of 27
photos). After quote enrichment, fetch each captured thread post from the
syndication endpoint and append any media the DOM missed, matched by
canonical pbs.twimg.com media key to prevent duplicates. Runs before
inlineMedia so recovered blocks download and are counted like any other
media; per-post syndication failures keep the DOM capture as-is.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Three fixes from real-thread testing:
- Link-preview cards (the payload of a link post) are now captured from the
  DOM and recovered/upgraded from syndication entities.urls, rendered as a
  card in HTML and a [Link card] line in Markdown.
- Long-form (note) posts in threads get an explicit truncation notice, from
  the DOM Show-more signal or the syndication note_tweet flag, instead of
  passing preview text off as complete. Manifest records truncatedPosts.
- Export menu drops the redundant full-thread item and the single-format
  downloads (9 items -> 6 + grouped dividers).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Lead the README with the "X thread -> clean Markdown for LLMs" value
proposition, a 30-second install, and a slot for the 20-second demo GIF.
Retitle the userscript @name/@description with searchable keywords so the
Greasy Fork listing (which derives its title from @name) surfaces for
"save twitter thread markdown LLM" style queries.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@wolfgang-aura wolfgang-aura marked this pull request as ready for review July 3, 2026 19:09
@wolfgang-aura wolfgang-aura merged commit b20faca into main Jul 3, 2026
1 check passed
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