cdc19be933
refactor: move Android client to lofi-android
...
This repo keeps the Python streaming server, web frontend, and
docker deployment. The Android client moves to its own repository.
2026-08-21 18:35:50 +00:00
jarianc
ae822ea505
Merge pull request 'fix: fix docker build for CI' ( #50 ) from ci-fix into main
...
CI / lint (push) Waiting to run
CI / test (push) Waiting to run
CI / docker-build (push) Waiting to run
CI / security (push) Waiting to run
CI / build-result (push) Blocked by required conditions
Reviewed-on: https://git.home.ms/jarianc/lofi-app/pulls/50
2026-07-05 19:13:28 -05:00
opencode
3ba5e47884
fix: fix docker build for CI
2026-07-05 23:59:35 +00:00
jarianc
611e1b630f
Merge pull request 'fix: resolve 35 open issues' ( #49 ) from fix/all-open-issues into main
...
Reviewed-on: https://git.home.ms/jarianc/lofi-app/pulls/49
2026-07-05 07:39:44 -05:00
opencode
55244b5027
fix: resolve 35 open issues across backend, Android, frontend, Docker
...
Backend (src/main.py):
- Add shared httpx.Client singleton for connection reuse (#24 )
- Add cache eviction for expired entries (#23 )
- Expand CORS to allow POST and OPTIONS (#25 )
- Preserve HLS tags (EXT-X-TARGETDURATION, EXT-X-MAP, etc) in rewrite (#12 )
- Replace urllib with httpx.stream for direct streaming
Backend (src/modules/stream_extractor.py):
- Use extract_flat='in_playlist' for reduced latency (#35 )
Tests (tests/integration/test_api.py):
- Parameterize channel count assertion against CHANNELS (#20 )
Android (Channel.kt):
- Change mutable vars to immutable vals, use copy() pattern (#19 )
Android (ServerApi.kt):
- Fix JSON parsing for bare array response (#21 )
- Close response body on error path (#29 )
Android (YouTubeExtractor.kt):
- Add ConnectionPool config (10 idle, 30s keepalive) (#28 )
- Tighten findHlsUrl to require audio codec (#26 )
Android (AudioPlayer.kt):
- Remove false error on STATE_READY + !isPlaying (#33 )
Android (MainActivity.kt):
- Reuse fragments via findFragmentByTag + show/hide (#18 )
- Move AudioPlayer.release() to Activity.onDestroy (#17 )
Android (LofiViewModel.kt):
- Wrap YouTubeExtractor calls in withContext(Dispatchers.IO) (#16 )
- Use immutable channel copies in discoverAllChannels (#19 )
- Remove audioPlayer.release() from onCleared (#17 )
Android (ChannelListFragment.kt):
- Tie swipe refresh to isDiscovering LiveData (#32 )
Android (AndroidManifest.xml):
- Set allowBackup=false (#15 )
Android (Preferences.kt):
- Remove hardcoded IP, default to empty string (#14 )
Android (proguard-rules.pro):
- Add ExoPlayer media3 HLS ProGuard rules (#34 )
Frontend (useAudioPlayer.ts):
- Add retry limit (3) with exponential backoff for NETWORK_ERROR (#27 )
Docker (Dockerfile.backend):
- Add playwright install chromium step (#22 )
2026-07-05 12:33:26 +00:00
jarianc
3da545a430
Merge pull request 'fix: update CI docker-build to find Dockerfiles in correct paths' ( #47 ) from fix/docker-ci-paths into main
...
Reviewed-on: https://git.home.ms/jarianc/lofi-app/pulls/47
2026-07-05 00:09:38 -05:00
Jarian
2ddbfb296b
ci: make android docker build non-blocking\n\nwilliamkyo/android-sdk image unavailable on CI runner.\nBackend and frontend builds are blocking. Android marked as\nnon-blocking warning.\n\nCloses #45
2026-07-05 05:07:00 +00:00
Jarian
b9213a03c0
fix: CI clone must fetch PR SHA before checkout
...
Shallow clone (--depth 1) only gets default branch HEAD. PR SHA
checkout fails silently (|| true), so all jobs run against wrong
commit. Now fetches PR SHA explicitly before checkout.
Closes #45
2026-07-05 05:01:58 +00:00
Jarian
c46be99f53
fix: commit uv.lock for reproducible Docker builds
...
uv.lock was ignored but required by Dockerfile.backend (uv sync --frozen).
CI docker-build fails without it. Also remove from .gitignore - lock
files should be version-controlled for reproducible builds.
Closes #45
2026-07-05 05:00:15 +00:00
Jarian
2e86f6aa06
fix: update CI docker-build to find Dockerfiles in correct paths
...
The docker-build job checked for root-level Dockerfile, but project
Dockerfiles live in docker/Dockerfile.backend, frontend/Dockerfile,
and android/Dockerfile. CI always skipped. Now builds all three.
Closes #45
2026-07-05 04:57:32 +00:00
jarianc
3ce40744cd
Merge pull request 'fix: remove unused Deno from backend Dockerfile' ( #46 ) from fix/remove-deno into main
...
Reviewed-on: https://git.home.ms/jarianc/lofi-app/pulls/46
2026-07-04 23:56:43 -05:00
Jarian
b6c9702610
fix: remove unused Deno from backend Dockerfile ( #34 )
...
Deno installed in builder stage but never used. Removes ~75MB from
image and eliminates unused runtime ENV vars.
Closes #34
2026-07-05 04:53:13 +00:00
jarianc
9cd5eee49b
Merge pull request 'fix: Vite proxy port, remove unused asyncio, exclude node_modules from bandit' ( #44 ) from fix/vite-proxy-port into main
...
Reviewed-on: https://git.home.ms/jarianc/lofi-app/pulls/44
2026-07-04 23:46:48 -05:00
Jarian
759c639963
fix: Vite proxy port, remove unused asyncio, exclude node_modules from bandit
...
- Fix vite.config.ts proxy target to localhost:8010 (matches docker-compose)
- Remove unused asyncio import from main.py and discovery.py (ruff F401)
- Add node_modules to bandit exclude in CI workflow
Closes #13
2026-07-05 04:43:27 +00:00
jarianc
2d744af121
Merge pull request 'CI: remove --no-cache for docker layer caching' ( #43 ) from ci-fix-nocache into main
...
Reviewed-on: https://git.home.ms/jarianc/lofi-app/pulls/43
2026-07-04 22:23:00 -05:00
Jarian
4d4e1cbf7a
CI: remove --no-cache for docker layer caching
2026-07-05 03:12:42 +00:00
Jarian
69a20908ab
CI: add generalized workflow
2026-07-05 02:46:31 +00:00
8b5a42f2c7
adding android app
2026-05-12 16:06:28 -05:00
Jarian
c510943f61
Everythying fixed
2026-05-10 16:02:58 +00:00
ceed10aef4
Lofi app
2026-05-09 08:57:54 -05:00
037983ab34
first commit
2026-05-09 08:57:22 -05:00