Skip to content

obbpr#103

Draft
mmattbtw wants to merge 129 commits into
mainfrom
feature/teal-firehose-clone
Draft

obbpr#103
mmattbtw wants to merge 129 commits into
mainfrom
feature/teal-firehose-clone

Conversation

@mmattbtw

@mmattbtw mmattbtw commented Jun 4, 2026

Copy link
Copy Markdown
Member

No description provided.

mmattbtw added 30 commits June 9, 2025 09:44
- lexicon stolen from place.stream.richtext.facet lol
Build the Teal-branded Amethyst feed UI, expose matching Aqua XRPC fields, and make Cadet the durable Jetstream ingestion path. Add Compose services, same-origin XRPC proxying, OAuth tunnel notes, and a working project handoff checklist.
Capture checkpoint commit discipline, todo handoff updates, OrbStack preview startup, same-origin XRPC proxying, and Cloudflare OAuth callback verification for future sessions.
Remove Amethyst demo fallback data, replace blocking discriminant lookups with normal async awaits, and read canonical extended artist joins from Aqua so live Jetstream records reach the public feed with artist metadata.
# Conflicts:
#	packages/lexicons/lex-gen.sh
Publish Teal profile records through a polished onboarding wizard, prefill setup from the signed-in Bluesky identity, and render public Bluesky profile data with a clear disclaimer when a listener has not created a Teal profile yet.
Decode blob-backed Teal profiles without the Jacquard owned-value CID link failure, refresh handles on updates, preserve the same decoder for CAR backfills, and cover create, update, and tombstone delete behavior with a Postgres integration test.
mmattbtw added 28 commits June 10, 2026 23:47
Added migration to remove 6,816 duplicate plays (same CID, different rkeys) and a unique constraint on (did, cid) to prevent future duplicates. Updated feed_play ingestor to check for existing plays before inserting, gracefully skipping duplicates.
Previously rocketman::handler only advances the cursor when its
Mutex<Option<u64>> is already Some(_); cadet initialised it from
load_cursor() which returns None on a fresh start (or after a Garnet
restart). The cursor then stayed None forever, the 60s store loop never
fired, and every subsequent restart resumed jetstream from "live",
silently dropping anything published during the disconnect window.

Replace load_cursor() with resolve_startup_cursor() which falls back to
the current wall-clock microseconds so the handler can keep advancing,
clamps stored cursors older than the 12h replay window so we don't
chase history jetstream no longer retains, and resets future-dated
cursors. Mirror every store_cursor() write to the local file so the
cursor survives Redis wipes, and bind cadet to a persistent named
volume at /var/lib/cadet for the file mirror.

Adds unit tests for the resume, fresh-start, and stale-cursor paths and
serialises the cursor tests with a tokio Mutex so cargo's parallel
runner can't race on the shared env vars.
Add Cadet account lifecycle ingestion, inactive-DID purging, and commit suppression so Jetstream account events affect indexed data correctly.

Show profile top albums around the avatar in Amethyst and update the todo handoff with completed backfill, public preview verification, and remaining blockers.
Add shared play-record helpers for loading, updating, and deleting Teal play records through the authenticated PDS agent.

Expose owner-only single-listen editing and self-profile bulk edit/delete controls, then update todo.md with completed scrobble items and remaining blockers.
Type playlist metadata fallback so cover access is valid under tsc.

Point profileStatus refs at the record main def and normalize lex-cli output so generated ProfileView uses profileStatus.Record.
Make the root typecheck script run the actual TypeScript projects instead of Rust pnpm workspaces without tsc.

Add the now-passing typecheck command to the todo verification checklist.
Strengthen the stable preview verifier to validate OAuth client metadata values, DPoP settings, and latest-play JSON shape.

Document the stricter verifier and update todo.md with the current OAuth preflight evidence.
Document that the stable preview can resolve a handle and reach the account provider authorization page with the sigilyph client metadata. The remaining OAuth QA now explicitly requires credentialed callback and session-restore verification.
Persist the resolved OAuth issuer and rebuild callback/restore clients from the callback issuer so non-bsky PDS sign-ins do not reuse the initial client after redirect.
Move Popfeed work to feature/popfeed-sync and remove the Popfeed tracker entry from the active feature branch handoff.
@mmattbtw mmattbtw force-pushed the feature/teal-firehose-clone branch from a0892ef to 5c0ddcc Compare June 15, 2026 20:48
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