Yusuf Suleman 8ae1d48d68
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
perf: instant article open + non-blocking mark-read + static CSS
Changes:
1. Article opens INSTANTLY — articleContent initialized from entry's
   existing content in init(), not after API fetch. WebView renders
   immediately with whatever we have. Full content swaps in silently
   when getEntry returns (only if longer than current).

2. markAsRead is fire-and-forget — wrapped in detached Task inside
   .task, does not block the content display chain. Toolbar syncs
   from vm.entries immediately after.

3. CSS template pre-built as static string in ArticleHTMLBuilder.
   Avoids rebuilding ~2KB of CSS on every article open. HTML builder
   is a stateless enum with a single static method.

4. Removed isContentReady flag — no longer needed since content is
   available from init. Spinner only shows if entry truly has no
   content at all (rare edge case).

Flow is now:
  tap → ArticleView created with entry.articleHTML →
  WebView loads immediately → user can scroll →
  background: markAsRead fires, getEntry fetches full content →
  if full content is better, WebView updates silently

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 21:31:54 -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%