Skip to content

Import X archives into Cued - #75

Open
snbafana wants to merge 10 commits into
mainfrom
codex/x-dm-integration
Open

Import X archives into Cued#75
snbafana wants to merge 10 commits into
mainfrom
codex/x-dm-integration

Conversation

@snbafana

@snbafana snbafana commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Summary

  • port the necessary X archive parsing behavior from MIT-licensed Birdclaw into Cued's bundled Go helper
  • reuse the small MIT-licensed Clawdex Go-adapter shape without depending on Clawdex or Birdclaw infrastructure
  • stream X archive records directly from zip, page DMs and relationship edges, and normalize them through Cued raw events
  • project deterministic X identities, DMs, group participants, and generation-scoped follower/following mutual metadata into Cued
  • keep X archive sync manual and keep ~/.cued/local.db as the only runtime database

Reuse decision

Cued takes only Birdclaw's archive format knowledge and Clawdex's small adapter boundary. It does not install or invoke either project, read Birdclaw SQLite, use their web/MCP/scheduler infrastructure, or create another credential/database owner.

Verification

  • pnpm test (516 tests)
  • pnpm typecheck
  • pnpm check:biome
  • GOWORK=off go test ./... in native/helpers/birdclaw-go
  • swift build --package-path native/macos/CuedNative -c release
  • end to end: X archive zip -> compiled Go helper -> paged X bundles -> Cued raw events/projector -> updated contact, DM, and mutual state across two archive generations

Live-data caveat

This machine has no exported user X archive, so the end-to-end test generates a representative archive zip with the real window.YTD.* shapes. Put an export in ~/Downloads or set CUED_X_ARCHIVE_PATH, then run cued sync run x.

@snbafana snbafana changed the title Import X contacts and DMs through Birdclaw Import X archives into Cued Aug 3, 2026
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