commits
Update package name and user agent strings to reflect the new project name
"Mass Block Reposts" (MBR).
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- replace hand-rolled if-else CLI parser with node:util parseArgs
- replace identity-resolver packages with inline slingshot actorResolver
- drop @atcute/identity-resolver and @atcute/identity-resolver-node
- remove unused SCOPE constant
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- fetch progress: spinners now show running record counts as constellation
pages accumulate
- fetchExistingBlocks: replaced listRecords pagination with a single
getRepo CAR download + inline dag-cbor fast-path scanner (~170x faster
parse, one http round-trip instead of N paginated requests)
- category selector: resolve target upfront and prefetch appview counts
so each option shows e.g. "their followers (12,847)" before committing
to a full fetch
- profile mode labels: "their followers" / "their following" instead of
ambiguous raw category names
- dry-run: --dry-run flag runs the full flow through summary then exits
without blocking
- target self-block: always prepend the target account (post author or
profile) to the block list
- user-agent: dynamic per-runner handle + author contact; CONSTELLATION_BASE
and SLINGSHOT_BASE configurable via env vars
- batch default raised to 200 (applyWrites ceiling)
- process.exit(0) after completion to avoid event-loop hang from undici
connection pools
- appview resilience: resolveProfiles failures now degrade gracefully
instead of crashing
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
spinners for data fetching and social graph now show a running record
count as constellation pages accumulate. adds USER_AGENT to all
constellation and slingshot requests per their api etiquette guidelines.
bumps version to 1.1.0.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- guard main() behind entry-point check to allow importing for tests
- add isProfileUrl() to detect profile URLs (rejecting post URLs)
- add resolveProfileTarget() to parse profile URLs and resolve handles to DIDs
- create test.js with comprehensive test coverage for isProfileUrl()
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
i mean this is all obviously vibecoded anyways lolol
- fetch progress: spinners now show running record counts as constellation
pages accumulate
- fetchExistingBlocks: replaced listRecords pagination with a single
getRepo CAR download + inline dag-cbor fast-path scanner (~170x faster
parse, one http round-trip instead of N paginated requests)
- category selector: resolve target upfront and prefetch appview counts
so each option shows e.g. "their followers (12,847)" before committing
to a full fetch
- profile mode labels: "their followers" / "their following" instead of
ambiguous raw category names
- dry-run: --dry-run flag runs the full flow through summary then exits
without blocking
- target self-block: always prepend the target account (post author or
profile) to the block list
- user-agent: dynamic per-runner handle + author contact; CONSTELLATION_BASE
and SLINGSHOT_BASE configurable via env vars
- batch default raised to 200 (applyWrites ceiling)
- process.exit(0) after completion to avoid event-loop hang from undici
connection pools
- appview resilience: resolveProfiles failures now degrade gracefully
instead of crashing
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- guard main() behind entry-point check to allow importing for tests
- add isProfileUrl() to detect profile URLs (rejecting post URLs)
- add resolveProfileTarget() to parse profile URLs and resolve handles to DIDs
- create test.js with comprehensive test coverage for isProfileUrl()
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>