Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
c40add7
feat(database): Initial database POC implementation
FoxxMD Apr 3, 2026
83f501d
add FK For parent play
FoxxMD Apr 23, 2026
fec39b2
test(database): Craete pending migration and no-db test cases
FoxxMD Apr 23, 2026
2df8bfe
test(database): More migration tests
FoxxMD Apr 23, 2026
40234e6
refactor(database): Use integer for primary key and make string id as…
FoxxMD Apr 23, 2026
3c51149
feat(database): More database implementation
FoxxMD Apr 23, 2026
d59cb26
feat(database): Add basic repository and transaction support
FoxxMD Apr 23, 2026
e9d1c81
chore: Add ts pretty errors to devcontainer extensions
FoxxMD Apr 23, 2026
5771fbf
feat(database): Implement repository querying
FoxxMD Apr 23, 2026
dda73cd
feat(database): Implement query plays by date range
FoxxMD Apr 23, 2026
cda33ba
test(database): Add component query test
FoxxMD Apr 23, 2026
99ebb53
chore: Remove unusued patch for kysely
FoxxMD Apr 23, 2026
84b43d7
feat(database): Implement play deletes
FoxxMD Apr 24, 2026
b388ca6
feat(database): Cascade parent id to null on play deletes
FoxxMD Apr 24, 2026
92e027b
feat(database): Implement finding purgable play ids
FoxxMD Apr 24, 2026
60a6ddb
feat(database): Implement drizzle logger
FoxxMD Apr 24, 2026
c7361a8
feat(database): Add full backup-and-migrate logic
FoxxMD Apr 24, 2026
3b54684
feat(database): Use asyncstorage for query logging
FoxxMD Apr 24, 2026
cb1ff7d
feat(database): Init and migrate database on startup
FoxxMD Apr 24, 2026
6e66cb0
refactor: Remove duplicated regex functions
FoxxMD Apr 24, 2026
c038431
feat(database): Implement retention options and configuration parsing
FoxxMD Apr 24, 2026
46389fd
feat(database): Add compacting config
FoxxMD Apr 25, 2026
7aa5595
feat(database): Implement component hydration as component init stage
FoxxMD Apr 25, 2026
f38f10d
feat(database): Implement retention cleanup
FoxxMD Apr 25, 2026
561c62b
fix(database): Unique constraint on uid + mode + type, not just uid
FoxxMD Apr 26, 2026
59d1050
feat(database): Implement retention cleanup scheduled task
FoxxMD Apr 26, 2026
adf6b9e
feat(database): Implement basic repository
FoxxMD Apr 26, 2026
8f049a0
feat(database): Implement discovered/scrobble count tracking
FoxxMD Apr 26, 2026
2a52d1e
fix(spotify): Fix device id default should be only device constant, n…
FoxxMD Apr 27, 2026
047de49
feat(database): Initial Souce database usage implementation
FoxxMD Apr 27, 2026
3ef4854
feat(database): Add id awareness to plays and implement basic api GET…
FoxxMD Apr 27, 2026
e9b2990
partial scrobble queue database implementation
FoxxMD Apr 27, 2026
f94538e
first pass on client database implementation
FoxxMD Apr 28, 2026
3c3faf2
more implementation for clients
FoxxMD Apr 28, 2026
47caf8d
more scrobble db implementation
FoxxMD Apr 28, 2026
765b13f
test: Comment out scrobble caching tests
FoxxMD Apr 28, 2026
952ddbd
more client db impl
FoxxMD Apr 28, 2026
439f0e0
fixes based on testing for client db impl
FoxxMD Apr 28, 2026
0f6aa56
add repository api endpoint POC
FoxxMD Apr 28, 2026
4bc460f
feat(database): Add relational model inferred type
FoxxMD Apr 29, 2026
5774be1
Implement api response transform to old structure
FoxxMD Apr 29, 2026
f9f9230
the implementation continues
FoxxMD Apr 29, 2026
b849498
chore: Add sqlite browser vscode extension to devcontainer
FoxxMD Apr 29, 2026
cfb4131
remove scrobbledPlays and prepare queue next query
FoxxMD Apr 30, 2026
54da8b0
remove unused queue package
FoxxMD May 1, 2026
272c3cc
feat(database): Add migration path for cached queued scrobbles
FoxxMD May 1, 2026
8fd870b
Fix failed queueu updates
FoxxMD May 1, 2026
cbe996d
feat(database): Add query params for finding plays by queue
FoxxMD May 1, 2026
22c0916
Fix counts for scrobbles/dead
FoxxMD May 1, 2026
691db92
remove unused variable
FoxxMD May 1, 2026
8de382f
feat(database): Optimize queries for scrobble range ops
FoxxMD May 1, 2026
8882e7a
chore: Update to drizzle rc1
FoxxMD May 1, 2026
12ba994
fix: Add discovered plays with platform based on multiplatform source…
FoxxMD May 4, 2026
524afb6
refactor: Remove platform-awareness for play discovery and database
FoxxMD May 5, 2026
077c3d3
fix(database): regenerate migrations with platformId removed
FoxxMD May 5, 2026
f679995
fix: Fix parsing duration value from string
FoxxMD May 5, 2026
d9a5aa1
fix: Improved retention behavior
FoxxMD May 5, 2026
8be5645
remove debugging statement
FoxxMD May 5, 2026
48b6b55
feat(source): Replace discovered function with existingPlay function
FoxxMD May 5, 2026
d772c8c
test(database): Implement db size stats
FoxxMD May 6, 2026
7a7d7bb
feat(database): Stub out jobs for later use
FoxxMD May 6, 2026
102f979
chore: Bump ts-essentials version
FoxxMD May 6, 2026
0bf9d5e
refactor(database): Replace relation select type with simpler built type
FoxxMD May 6, 2026
5eb967f
test(database): Fix play fixture assignment of updatedAt
FoxxMD May 6, 2026
d0379e1
fix: Simplify and fix getting next dead scrobble
FoxxMD May 6, 2026
f788894
fix(source): Remove superfluous interval logging
FoxxMD May 6, 2026
562b388
feat(now playing): Reduce logging noise
FoxxMD May 6, 2026
092cf90
refactor(client): Move heartbeat responsibility into client class
FoxxMD May 6, 2026
630edd7
feat(client): Make playing now scheduling part of heartbeat
FoxxMD May 6, 2026
75c0230
refactor(source): Move heartbeat responsibility into source class
FoxxMD May 6, 2026
1b53d22
feat: Refactor artists as an object
FoxxMD May 7, 2026
d95f323
feat: Enrich listenbrainz and jellyfin source plays with artist mbids
FoxxMD May 7, 2026
a5926d7
chore: Bump drizzle to lastest beta
FoxxMD May 7, 2026
4d7162a
docs: Add admonition 'important' type
FoxxMD May 7, 2026
f211a4a
refactor(cache)!: Simplify cache config
FoxxMD May 7, 2026
e814cf5
docs: Add upgrade path for 0.14.0
FoxxMD May 7, 2026
0cb20b8
feat: Add ID and name envs for all sources/clients
FoxxMD May 7, 2026
dcc53d1
docs: Fix links and paths
FoxxMD May 7, 2026
d922f37
fix(client): Implement artistcredit conversion during cached scrobble…
FoxxMD May 7, 2026
b8a9623
fix: Add neotraverse as production dependency
FoxxMD May 7, 2026
8cffd0d
fix: Fix resolving config globally
FoxxMD May 8, 2026
c7fce06
fix(listenbrainz): Maybe fix null artist_name
FoxxMD May 8, 2026
640d944
test: Add listenbrainz submit listens example requests for reference
FoxxMD May 8, 2026
90f0bdb
fix(client): Fix dead to queued queueName constraint in the wrong par…
FoxxMD May 8, 2026
957db35
fix(ui): Gaurd against undefined Source in on failed scrobbled page
FoxxMD May 8, 2026
80474a9
feat: Add dead scrobble delay configurable through debug env
FoxxMD May 8, 2026
3cdbfc3
feat: Implement generic play identifier repo method
FoxxMD May 8, 2026
fa1051b
feat(client): Allow processing any dead scrobble that is not complete…
FoxxMD May 8, 2026
28ade6a
fix: More improvements to dead scrobbler handling and rendering
FoxxMD May 8, 2026
f36fd16
chore: Bump with-local-tmp-dir version
FoxxMD May 8, 2026
a1ad250
feat: Improve cache testing and cleanup cache serialization
FoxxMD May 8, 2026
871882c
POC: pglite db implementation
FoxxMD May 9, 2026
63233dc
all tests passing and migrate/backup works
FoxxMD May 9, 2026
419eecd
chore: ignore pglite folder
FoxxMD May 9, 2026
54a0c74
chore: make vite ignore changes in pglite and config folder for hot r…
FoxxMD May 9, 2026
5f0b626
feat(database): Implement restore from backup
FoxxMD May 11, 2026
479dca6
feat(database): Implement pglite socket server
FoxxMD May 11, 2026
303cb4b
test: Stub deezer source to avoid connection steps
FoxxMD May 11, 2026
019133d
test: Improve ytm test suite speed
FoxxMD May 11, 2026
97a01b6
test: increase global timeout
FoxxMD May 11, 2026
57f8922
feat(database): Simplify loading db for tests
FoxxMD May 11, 2026
b9db03f
chore: Bump drizzle version
FoxxMD May 11, 2026
f3a8791
test(db): More db test improvements
FoxxMD May 11, 2026
739ad85
trying to determine why gh actions times out...
FoxxMD May 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
// "features": {},

// Use 'forwardPorts' to make a list of ports inside the container available locally.
"forwardPorts": [9078,3000],
"forwardPorts": [9078,3000,5433],

// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": ".devcontainer/postCreate.sh",
Expand All @@ -30,7 +30,9 @@
"dbaeumer.vscode-eslint",
"unifiedjs.vscode-mdx",
"bradlc.vscode-tailwindcss",
"TakumiI.markdowntable"
"TakumiI.markdowntable",
"YoavBls.pretty-ts-errors",
"bowlerr.sqlite-intelliview-vscode"
]
}
},
Expand All @@ -40,6 +42,9 @@
},
"9078": {
"label": "App"
},
"5433": {
"label": "PGLite Server"
}
}

Expand Down
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ config/*.json
config/mscache
config/yti-*
config/*.cache
config/msDb
*.txt
!robots.txt
.idea/
Expand All @@ -138,6 +139,7 @@ docsite/static/schemas/*.json


*.bak
*.bak.used
*.p8
.flatpak-builder
flatpak/generated-sources.json
Expand All @@ -151,7 +153,10 @@ tmp-*

*storybook.log
storybook-static
lib

*.db
*.db.*
*.db-*lib
*.db
*.db.*
*.db-*lib
3 changes: 2 additions & 1 deletion .mocharc.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@
"file": [
"./src/backend/tests/setup.ts"
],
"exit": true
"exit": true,
"timeout": 2500
}
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,6 @@
"files.associations": {
"*.css": "tailwindcss"
},
"tailwindCSS.experimental.configFile": "src/client/index.css"
"tailwindCSS.experimental.configFile": "src/client/index.css",
"pgliteExplorer.databasePaths": []
}
Loading
Loading