Skip to content
Closed

obbpr #113

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
183 commits
Select commit Hold shift + click to select a range
36a8ebb
start post lexicon
mmattbtw Jun 9, 2025
dcfff8a
like, playlist+item, and repost lexicons
mmattbtw Jun 9, 2025
f820089
fix playlistItem desc.
mmattbtw Jul 10, 2025
0537cd7
add richtext facet
mmattbtw Jul 10, 2025
4496ce6
Merge branch 'main' into social-lexicons
mmattbtw Sep 16, 2025
bd4858d
move social lexicons to new folder
mmattbtw Sep 16, 2025
040926a
#trackView def in feed.social
mmattbtw Sep 22, 2025
8e27c31
add ordering to playlistItem lexicon
mmattbtw Sep 22, 2025
e14ab82
fix description for playlist lexicon
mmattbtw Sep 22, 2025
cb419bc
feat(teal): add songish-style appview and jetstream ingestion
mmattbtw May 31, 2026
a9127fd
docs(agent): add teal clone working workflow
mmattbtw May 31, 2026
975cc51
fix(cadet): unblock live jetstream play ingestion
mmattbtw May 31, 2026
6d7987d
Merge branch 'main' into feature/songish-teal-firehose-clone
mmattbtw May 31, 2026
23adda8
feat(amethyst): add teal profile onboarding fallback
mmattbtw May 31, 2026
11a8f37
fix(cadet): ingest profile lifecycle events
mmattbtw May 31, 2026
295f6db
feat(feed): show listener profile identity
mmattbtw May 31, 2026
45f494c
feat(search): add live explore discovery
mmattbtw May 31, 2026
41130e3
feat(feed): add infinite scroll pagination
mmattbtw May 31, 2026
258385f
feat(music): add artist and album pages
mmattbtw Jun 1, 2026
6f895c6
style(amethyst): refresh Teal interface
mmattbtw Jun 1, 2026
fad9cb7
style(amethyst): remove preview icons and serif type
mmattbtw Jun 1, 2026
5e6abca
refactor(amethyst): remove legacy project naming
mmattbtw Jun 2, 2026
13bd676
feat(feed): paginate actor plays
mmattbtw Jun 3, 2026
ab07741
fix(satellite): avoid sqlx offline cache gap
mmattbtw Jun 3, 2026
885491c
test(cadet): cover play ingestion lifecycle
mmattbtw Jun 3, 2026
eb265ca
fix(amethyst): render teal profile blobs
mmattbtw Jun 3, 2026
380b015
fix(amethyst): resolve recording cover art
mmattbtw Jun 3, 2026
a7d14ed
fix(amethyst): clamp feed card text
mmattbtw Jun 3, 2026
b887a5c
docs(amethyst): add stable oauth tunnel setup
mmattbtw Jun 3, 2026
b24b59a
docs: update teal todo progress
mmattbtw Jun 3, 2026
e2c55be
fix(rust): run sqlx checks offline in package scripts
mmattbtw Jun 3, 2026
143530f
feat(aqua): order album tracks from musicbrainz
mmattbtw Jun 3, 2026
fdb032a
refactor(satellite): read artists from extended join
mmattbtw Jun 3, 2026
109e5b7
docs: decide legacy artist join removal
mmattbtw Jun 3, 2026
b879f46
feat(amethyst): use wikidata artist images
mmattbtw Jun 3, 2026
139f3ec
docs: mark spa fallback verified
mmattbtw Jun 3, 2026
0d1fa3e
docs(amethyst): record feed state qa
mmattbtw Jun 3, 2026
9557129
docs(cadet): defer subscriberepos adapter
mmattbtw Jun 3, 2026
1f5e9d3
docs(cadet): verify jetstream play filter
mmattbtw Jun 3, 2026
9263545
docs(amethyst): defer audio preview controls
mmattbtw Jun 3, 2026
14cf405
docs(amethyst): capture live data screenshots
mmattbtw Jun 3, 2026
0a8d260
docs: add llm writing plan
mmattbtw Jun 3, 2026
77bc2ce
Merge branch 'feature/teal-firehose-clone' into social-lexicons
mmattbtw Jun 3, 2026
191eed6
feat(lexicons): finalize social badge records
mmattbtw Jun 3, 2026
a78d226
fix(lexicons): require mbid uri values
mmattbtw Jun 3, 2026
1be014b
fix(lexicons): preserve deprecated artist mbids
mmattbtw Jun 4, 2026
2514634
Merge pull request #63 from teal-fm/social-lexicons
mmattbtw Jun 4, 2026
62d72af
docs: add social lexicon implementation todos
mmattbtw Jun 4, 2026
0119ddb
docs: merge agent instructions
mmattbtw Jun 4, 2026
f335a5f
feat(cadet): index new Teal social lexicons
mmattbtw Jun 4, 2026
9b7255e
feat(aqua): complete user stats pagination
mmattbtw Jun 4, 2026
54c57a1
feat(aqua): add social read xrpc routes
mmattbtw Jun 4, 2026
8080d57
feat(amethyst): show social notifications
mmattbtw Jun 4, 2026
8dc6e98
feat(amethyst): render social post actions
mmattbtw Jun 4, 2026
5a14279
feat(amethyst): compose social posts
mmattbtw Jun 4, 2026
06f05c0
feat(amethyst): show profile badges
mmattbtw Jun 4, 2026
ffe4c74
feat(amethyst): publish social replies
mmattbtw Jun 4, 2026
2c726bf
feat(amethyst): add playlist views
mmattbtw Jun 4, 2026
491bab8
feat(amethyst): manage playlist metadata
mmattbtw Jun 4, 2026
1c031e9
feat(amethyst): manage profile badges
mmattbtw Jun 4, 2026
125090e
feat(amethyst): complete rich status surfaces
mmattbtw Jun 4, 2026
11395ad
chore(lexicons): commit generated bindings
mmattbtw Jun 4, 2026
be8eae6
test(social): verify new lexicon flows
mmattbtw Jun 4, 2026
bd84867
style(cadet): apply rustfmt
mmattbtw Jun 4, 2026
6ab03c9
docs(deploy): record cloudflare preview
mmattbtw Jun 4, 2026
23fa464
feat(amethyst): add social post creation modal
mmattbtw Jun 4, 2026
0d12a56
docs(todo): note social composer flow
mmattbtw Jun 4, 2026
948232f
feat(amethyst): add profile editing and actor resolution
mmattbtw Jun 4, 2026
782e360
fix(amethyst): resolve music track slugs deterministically
mmattbtw Jun 4, 2026
de84ebf
feat(cadet): add tap backfill command
mmattbtw Jun 4, 2026
bc3ac5c
fix(cadet): use tap signal collection for backfill
mmattbtw Jun 4, 2026
659f221
fix(cadet): default tap backfill to full network
mmattbtw Jun 4, 2026
edfbc8c
chore: symlink claude instructions to agents
mmattbtw Jun 4, 2026
4e4176c
fix(cadet): default tap backfill to teal signal
mmattbtw Jun 4, 2026
98dcc36
fix(cadet): normalize legacy play mbids during backfill
mmattbtw Jun 4, 2026
241e3f1
fix(amethyst): simplify profile listening status
mmattbtw Jun 4, 2026
0c46eac
docs: require pushing checkpoint commits
mmattbtw Jun 4, 2026
f260f80
fix(amethyst): simplify social composer flow
mmattbtw Jun 4, 2026
61d16a0
fix(cadet): index identity handle changes
mmattbtw Jun 5, 2026
a422dbc
fix(amethyst): hide profile protocol internals
mmattbtw Jun 5, 2026
7133be3
docs: update public preview handoff
mmattbtw Jun 5, 2026
82a20ad
docs: note docker preview data source
mmattbtw Jun 5, 2026
848dece
chore(dev): add stable cloudflare tunnel workflow
mmattbtw Jun 5, 2026
fc9010f
chore(deps): update pnpm to 11.5.2
mmattbtw Jun 5, 2026
b032007
feat(amethyst): merge posts into home feed
mmattbtw Jun 5, 2026
c321116
fix(aqua): order latest plays by play time
mmattbtw Jun 5, 2026
634c8ae
feat(amethyst): split home feed tabs
mmattbtw Jun 5, 2026
60a2427
style(amethyst): align app with teal landing brand
mmattbtw Jun 5, 2026
7c71ed2
chore(amethyst): update preview disclaimer copy
mmattbtw Jun 5, 2026
d494293
fix(profile): show statuses for bluesky fallbacks
mmattbtw Jun 5, 2026
41688d5
feat(amethyst): add listen permalink pages
mmattbtw Jun 6, 2026
913eb19
feat(graph): index teal follows
mmattbtw Jun 6, 2026
c760da4
feat(amethyst): add profile follow controls
mmattbtw Jun 6, 2026
647b248
docs(todo): track current social fixes
mmattbtw Jun 6, 2026
3da2dd4
feat(social): add post permalinks and viewer state
mmattbtw Jun 6, 2026
237cc61
feat(amethyst): resolve at-uri routes
mmattbtw Jun 6, 2026
3bb7995
fix(amethyst): recover encoded at-uri links
mmattbtw Jun 6, 2026
729b8d7
chore(preview): record restored cloudflare preview
mmattbtw Jun 11, 2026
6835cf7
feat(music): add artist listener leaderboard
mmattbtw Jun 11, 2026
1f3a17f
docs(todo): mark artist leaderboard preview verified
mmattbtw Jun 11, 2026
d34f133
feat(profile): add listening stats
mmattbtw Jun 11, 2026
21da4bc
fix(cadet): deduplicate plays and prevent future duplicates
mmattbtw Jun 11, 2026
4936430
fix(cadet): persist jetstream cursor so restarts resume ingestion
mmattbtw Jun 11, 2026
836e299
fix(cadet): keep name-only artists synthetic
mmattbtw Jun 11, 2026
4b284f2
fix(cadet): add lightrail backfill
mmattbtw Jun 11, 2026
1303fc0
Merge pull request #104 from teal-fm/fix/cadet-cursor-recovery
mmattbtw Jun 11, 2026
eacb094
chore: ignore lightrail backfill state
mmattbtw Jun 11, 2026
d229085
fix(ci): restore generated graph module
mmattbtw Jun 12, 2026
501d18d
fix(ci): skip lexicon postinstall in actions
mmattbtw Jun 12, 2026
b112b36
fix(ci): approve pnpm build scripts
mmattbtw Jun 12, 2026
58cd074
fix(ci): use pnpm allowBuilds config
mmattbtw Jun 12, 2026
dba0d8a
fix(ci): stabilize rust lexicon generation
mmattbtw Jun 12, 2026
946085a
fix(amethyst): resolve jest from package bin
mmattbtw Jun 12, 2026
aa790aa
fix(cadet): support did web lightrail retries
mmattbtw Jun 12, 2026
ea4379e
fix(aqua): speed up latest feed pagination
mmattbtw Jun 13, 2026
9a8d6c5
feat(amethyst): show posts on profiles
mmattbtw Jun 13, 2026
b126740
fix(amethyst): avoid native prebuild on install
mmattbtw Jun 13, 2026
95be24b
docs: record profile posts preview deploy
mmattbtw Jun 13, 2026
6b4ba1a
docs(todo): sync open work from GitHub issues
mmattbtw Jun 14, 2026
78b0246
docs(todo): add Linear issue links
mmattbtw Jun 14, 2026
0b0d73d
feat(teal): complete account lifecycle and profile album todos
mmattbtw Jun 15, 2026
4ed318b
feat(amethyst): add scrobble editing flows
mmattbtw Jun 15, 2026
3ab526c
fix(amethyst): restore typecheck verification
mmattbtw Jun 15, 2026
ed0efa8
chore: scope typecheck to typescript workspaces
mmattbtw Jun 15, 2026
fdc5c11
chore: verify oauth tunnel metadata
mmattbtw Jun 15, 2026
37f7696
docs: record oauth preflight qa
mmattbtw Jun 15, 2026
952dc36
fix(amethyst): restore oauth clients from issuer
mmattbtw Jun 15, 2026
5c0ddcc
docs(todo): remove popfeed from active branch
mmattbtw Jun 15, 2026
db86627
docs(preview): publish stable preview workflow
mmattbtw Jun 15, 2026
bf90eae
fix(services): harden resolver and query paths
mmattbtw Jul 10, 2026
d3bfda0
fix(amethyst): harden feed loading and linting
mmattbtw Jul 10, 2026
192f55f
chore(deps): refresh workspace dependencies
mmattbtw Jul 10, 2026
eb4aa61
Merge pull request #106 from teal-fm/feature/code-audit-optimizations
mmattbtw Jul 10, 2026
5908291
fix(cadet): defer live materialized view refreshes
mmattbtw Jul 11, 2026
d95e244
fix(amethyst): link social posts to matching tracks
mmattbtw Jul 11, 2026
a85b7c9
Revert "feat(amethyst): manage profile badges"
mmattbtw Jul 16, 2026
3f4c97e
Revert "feat(amethyst): show profile badges"
mmattbtw Jul 16, 2026
4fea3cf
Revert "feat(lexicons): finalize social badge records"
mmattbtw Jul 16, 2026
d814465
feat(amethyst): remove badge notifications
mmattbtw Jul 16, 2026
6f31316
Merge pull request #107 from teal-fm/agent/remove-profile-badges
mmattbtw Jul 16, 2026
1a19bea
chore(vendor): update atproto submodule
mmattbtw Jul 16, 2026
0b854ba
fix(aqua): deduplicate album tracks
mmattbtw Jul 16, 2026
c74a000
fix(aqua): merge duplicate artist albums
mmattbtw Jul 16, 2026
ef09bde
feat(music): automate catalog normalization
mmattbtw Jul 16, 2026
76328bd
fix(amethyst): link notifications to posts
mmattbtw Jul 16, 2026
9a582a1
refactor(lexicons): adopt atproto lex validation
mmattbtw Jul 16, 2026
912a40e
fix(amethyst): include lex validation reference
mmattbtw Jul 16, 2026
37e44a8
docs(todo): record restored preview
mmattbtw Jul 16, 2026
1670ed7
feat(amethyst): add notification context
mmattbtw Jul 16, 2026
8a19ad8
fix(music): classify complete artist discographies
mmattbtw Jul 16, 2026
2c3455a
fix(amethyst): support slug-only artist links
mmattbtw Jul 16, 2026
b056089
feat(amethyst): add manual album listens
mmattbtw Jul 18, 2026
ee559cf
fix(amethyst): resolve logged-out auth state
mmattbtw Jul 18, 2026
0ed85b7
docs(todo): record manual listening preview
mmattbtw Jul 18, 2026
2ee9132
fix(amethyst): refine manual listening typography
mmattbtw Jul 18, 2026
e2c3526
fix(amethyst): present sign-in as a modal
mmattbtw Jul 19, 2026
37e5604
fix(amethyst): simplify manual listens hero
mmattbtw Jul 19, 2026
88e9173
fix(amethyst): clarify manual listen timing
mmattbtw Jul 19, 2026
0664da8
feat(cadet): durably retry failed play ingestion
mmattbtw Jul 19, 2026
7660133
feat(amethyst): show running build metadata
mmattbtw Aug 11, 2026
dfce527
feat(amethyst): add cohesive dark mode
mmattbtw Aug 11, 2026
07e4af5
feat(amethyst): add cohesive dark mode
mmattbtw Aug 11, 2026
6bb729d
docs(todo): record dark mode preview
mmattbtw Aug 11, 2026
ce14097
feat(amethyst): add manual theme toggle
mmattbtw Aug 11, 2026
7791701
fix(cadet): harden failed play retries
mmattbtw Aug 11, 2026
0d5a01b
fix(amethyst): persist theme preference
mmattbtw Aug 11, 2026
7ce62d5
fix(cadet): reset attempts for newer retry revisions
mmattbtw Aug 11, 2026
77a4937
Merge branch 'feature/teal-firehose-clone' into codex/manual-listens
espeon Aug 11, 2026
5c1ffc9
fix(cadet): serialize account state with play replay
mmattbtw Aug 11, 2026
57abbc3
fix(cadet): serialize retry replay with live commits
mmattbtw Aug 11, 2026
e24a340
docs(todo): record retry replay coordination
mmattbtw Aug 11, 2026
156c118
Merge pull request #109 from teal-fm/codex/manual-listens
mmattbtw Aug 11, 2026
b770133
fix(amethyst): use teal identity in sidebar
mmattbtw Aug 12, 2026
3e3a77f
fix(amethyst): keep new posts on teal identity
mmattbtw Aug 12, 2026
680489b
fix(core): harden search and ingestion paths
mmattbtw Aug 12, 2026
e7ee181
docs(amethyst): add sidebar brand and QA notes
mmattbtw Aug 12, 2026
1b3ac66
Merge branch 'main' into obbpr
mmattbtw Aug 13, 2026
4c1e864
update type
mmattbtw Aug 13, 2026
142248f
fix: address review findings
mmattbtw Aug 13, 2026
a24a2ed
fix(core): resolve PR 114 merge conflicts
mmattbtw Aug 13, 2026
9c6414e
Merge pull request #114 from teal-fm/codex/fix/comprehensive-code-health
mmattbtw Aug 13, 2026
d990971
fix(ci): generate Rust lexicons in service images
mmattbtw Aug 13, 2026
d3cf209
fix(ci): stabilize lexicon image builds
mmattbtw Aug 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ dist/
.next/

# Development and cache files
.git/
.gitignore
**/.DS_Store
*.log
Expand Down
13 changes: 12 additions & 1 deletion .env.template
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ DB_USER=postgres
DB_PASSWORD=supersecurepassword123987
DB_NAME=teal
DATABASE_URL="postgresql://${DB_USER}:${DB_PASSWORD}@localhost:5432/${DB_NAME}"
DOCKER_DB_URL="postgresql://${DB_USER}:${DB_PASSWORD}@host.docker.internal:5432/${DB_NAME}"
DOCKER_DB_URL="postgresql://${DB_USER}:${DB_PASSWORD}@postgres:5432/${DB_NAME}"
REDIS_URL="redis://garnet:6379"
# `cargo run --bin teal gen-key` to generate a new pubkey
DID_WEB_PUBKEY=zQ3sheEnMKhEK87PSu4P2mjAevViqHcjKmgxBWsDQPjLRM9wP
CLIENT_ADDRESS= # A publicly accessible host for amethyst like amethyst.teal.fm
Expand All @@ -16,10 +17,20 @@ PUBLIC_DID_WEB= # did:web:{aqua's PUBLIC_URL goes here after did:web:}
# amethyst
EXPO_PUBLIC_DID_WEB= # same as PUBLIC_DID_WEB
EXPO_PUBLIC_BASE_URL= # same as CLIENT_ADDRESS but with http scheme like https://amethyst.teal.fm
EXPO_PUBLIC_AQUA_URL= # public Aqua URL, e.g. https://aqua.teal.fm

SQLX_OFFLINE=true
SQLX_OFFLINE_DIR="./.sqlx"

# Cadet ATProto stream ingestion
CADET_STREAM_MODE=jetstream
JETSTREAM_URL=wss://jetstream1.us-east.bsky.network/subscribe
CADET_CURSOR_REDIS_KEY=cadet:jetstream:cursor

# Optional dev tunnel:
# docker compose -f compose.dev.yml --profile tunnel up
# Set EXPO_PUBLIC_BASE_URL to the Cloudflare URL for ATProto OAuth callback testing.

# Last.fm eval (scripts/eval/evaluate.ts)
# Get your API key at https://www.last.fm/api/account/create
LASTFM_API_KEY=
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ inputs:
node-version:
description: "Node.js version to use"
required: false
default: "20"
default: "22"
lexicons-only-rust:
description: "Generate only Rust lexicons"
required: false
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/aqua.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive

- name: Log in to Container Registry
if: github.event_name != 'pull_request'
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/cadet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive

- name: Log in to Container Registry
if: github.event_name != 'pull_request'
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ yarn-error.log*
# vercel
.vercel
.turbo
.teal-tap/
.teal-lightrail-backfill-*.txt
.codex-run/

**/*.trace
**/*.zip
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

This file was deleted.

Loading
Loading