58dd589d5ac6cd68751b5c50aa52d9e0c5414577
ROOT CAUSE (from instrumented logs): 1. Duplicate entry IDs in LazyVStack — loadMore appended entries that already existed. IDs 37603/37613 appeared twice, causing "undefined results" from SwiftUI. 2. Offset drift — marking entries as read shifted the unread filter results. offset=30 no longer pointed to page 2; entries moved. 3. loadMore returned +0 entries because offset was past the shifted end of the filtered dataset. FIXES: 1. Deduplication: loadMore filters out entries whose IDs already exist in the array before appending. 2. Use entries.count as offset instead of a separate counter. This naturally accounts for deduplication and status changes. 3. hasMore based on whether new (deduped) entries were actually added, not just API page size. Removed all debug logging. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Gitea CI Workflows
security.yml
Runs on push/PR to master. Three jobs:
- dependency-audit —
npm audit --audit-level=highfor budget and frontend - secret-scanning — checks for tracked .env/.db files and hardcoded secret patterns
- dockerfile-lint — verifies all Dockerfiles have
USER(non-root) andHEALTHCHECK
Runner Setup
The runner is configured in the Gitea docker-compose at /media/yusiboyz/Media/Scripts/gitea/docker-compose.yml.
What was done:
- Added
[actions] ENABLED = trueto Gitea'sapp.ini - Added
runnerservice (gitea/act_runner) to Gitea's docker-compose - Generated runner token via
docker exec -u git gitea gitea actions generate-runner-token - Token stored in
/media/yusiboyz/Media/Scripts/gitea/.envasRUNNER_TOKEN - Runner registered as
platform-runnerwith labels: ubuntu-latest, ubuntu-24.04, ubuntu-22.04
To regenerate token (if needed):
cd /media/yusiboyz/Media/Scripts/gitea
docker exec -u git gitea gitea actions generate-runner-token
# Update .env with new RUNNER_TOKEN value
docker compose up -d runner
To check runner status:
docker logs gitea-runner
Description
Languages
Svelte
51.2%
Python
24.2%
Swift
13.5%
JavaScript
5.4%
TypeScript
3.3%
Other
2.4%