Yusuf Suleman 58dd589d5a
All checks were successful
Security Checks / dependency-audit (push) Successful in 13s
Security Checks / secret-scanning (push) Successful in 4s
Security Checks / dockerfile-lint (push) Successful in 4s
fix: Reader loadMore failing — duplicate IDs + offset drift
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>
2026-04-04 23:20:49 -05:00

Gitea CI Workflows

security.yml

Runs on push/PR to master. Three jobs:

  1. dependency-auditnpm audit --audit-level=high for budget and frontend
  2. secret-scanning — checks for tracked .env/.db files and hardcoded secret patterns
  3. dockerfile-lint — verifies all Dockerfiles have USER (non-root) and HEALTHCHECK

Runner Setup

The runner is configured in the Gitea docker-compose at /media/yusiboyz/Media/Scripts/gitea/docker-compose.yml.

What was done:

  1. Added [actions] ENABLED = true to Gitea's app.ini
  2. Added runner service (gitea/act_runner) to Gitea's docker-compose
  3. Generated runner token via docker exec -u git gitea gitea actions generate-runner-token
  4. Token stored in /media/yusiboyz/Media/Scripts/gitea/.env as RUNNER_TOKEN
  5. Runner registered as platform-runner with 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
Second Brain Platform - Dashboard, Fitness, Budget, Inventory, Trips, Reader, Media
Readme 31 MiB
Languages
Svelte 51.2%
Python 24.2%
Swift 13.5%
JavaScript 5.4%
TypeScript 3.3%
Other 2.4%