f10c356199b2f078e52d6ee281c31fa30b3464d8
1. Explicit WKProcessPool — static shared instance assigned to WKWebViewConfiguration. Prevents any future divergence even though iOS 15+ shares by default. 2. Scroll-preserving content upgrade — when articleContent updates (partial → full), uses JavaScript DOM replacement instead of loadHTMLString. Captures window.scrollY before swap, restores after. No visible flash or scroll jump. Falls back to full reload if JS replacement fails. 3. No unnecessary reloads — coordinator tracks lastHTML. Only loads if content actually changed. First article open = full page load (lastHTML is nil). Content upgrade = DOM swap (lastHTML exists, new content is different). 4. Clean separation — isUpgrade flag distinguishes first load from content upgrade. First load uses loadHTMLString (needs full <html> document). Upgrade uses innerHTML replacement (preserves scroll, CSS, page state). 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%