Commit Graph
6 Commits
Author SHA1 Message Date
Krishna KumarandClaude Sonnet 4.6 ac2f9cf85d Add in-app browser with reader mode
CI / build-and-deploy (push) Successful in 22s
Tapping a bookmark now opens an in-app WKWebView instead of bouncing to
Safari. Reader mode injects JS to extract article content and rerender
with clean serif typography and dark-mode support. Bottom toolbar has
back/forward, reader toggle, share, and open-in-Safari escape hatch.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 12:43:33 -05:00
Krishna KumarandClaude Sonnet 4.6 7d1b53bac6 Seed edit form tags from effective tags (real + AI fallback)
CI / build-and-deploy (push) Successful in 24s
The list row shows effectiveTags which merges real linkding tagNames with
AI-enriched aiTags. If a bookmark has only AI tags, the edit form was
appearing empty because it only seeded from tagNames. Now falls back to
aiTags when tagNames is empty.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 12:33:24 -05:00
Krishna KumarandClaude Sonnet 4.6 22cde6d2d7 Add Gitea CI workflow with IPA distribution
CI / build-and-deploy (push) Successful in 16s
On every push to swift/master: compile-checks against the simulator
(no signing required) then builds a development IPA and deploys it to
the shared OTA server at krishnas-mac-studio.tail37d544.ts.net:8443.

Modelled on 1ai's ci.yaml — runs on the local macos act runner so the
keychain is live and automatic signing works without any cert setup.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 12:05:55 -05:00
Krishna KumarandClaude Sonnet 4.6 bbda33ad33 Add IPA build and deploy script for shared distribution server
Builds a development IPA via xcodebuild (with xcodegen pre-pass) and
copies it to the shared Tailscale distribution server at
https://krishnas-mac-studio.tail37d544.ts.net:8443 — same server and
builds directory used by 1ai.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 11:58:45 -05:00
Krishna KumarandClaude Sonnet 4.6 1b40f50aab Add edit bookmark, offline cache, and unread filter
- Edit bookmark: full PATCH via swipe action or long-press context menu;
  EditBookmarkView covers URL, title, description, tags, and unread toggle
- Offline cache: bookmarks persisted to ApplicationSupport JSON and shown
  instantly on launch; cache is per-server, skipped when unread filter is on
- Unread filter: toolbar toggle sends ?unread=true to the API; title updates
  to "Unread"; no stale-cache flash when toggling
- Extract normalizedURL and parsedTags into String+Helpers, removing three
  copies of URL normalization and two of tag parsing

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 11:51:54 -05:00
Krishna KumarandClaude Sonnet 4.6 b7ef5c2215 Replace Flutter app with native SwiftUI rewrite (iOS 26)
Complete ground-up rewrite in SwiftUI targeting iOS 26. Drops the Flutter/Dart
codebase entirely in favour of a lean native app with no third-party dependencies.

Features shipped:
- Bookmark list with pagination, pull-to-refresh, swipe delete/archive
- Add bookmark form + iOS share extension (zero-tap save from any app)
- Tags tab — all tags sorted by count, tap to browse filtered bookmarks
- Native search tab (Tab role: .search) with instant client-side filtering
- AI enrichment via OpenRouter (google/gemini-2.0-flash-lite-001): auto-summary
  and tag generation, semantic search, smart collections
- Settings: linkding server config, OpenRouter API key
- App Groups for credential sharing between main app and share extension
- Swift 6 strict concurrency throughout (@Observable, @MainActor)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 08:33:01 -05:00