Repository navigation
GitNotēs 1.6.1 (stable)
What's Changed
- Delete docs/wiki/code-audit-2026-08.md by @vidwadeseram in #1332
- feat(eas): add EAS cloud build pipeline for Rust GitEngine by @vidwadeseram in #1333
- fix(explore): add missing ExploreDiff screen by @vidwadeseram in #1334
- fix(explore): improve ExploreDiffScreen dark mode support by @vidwadeseram in #1335
- fix(explore): remove count from diff screen buttons by @vidwadeseram in #1336
- fix(explore): refresh on focus + discard button for changes/staging by @vidwadeseram in #1337
- fix: replace deprecated InteractionManager with setTimeout by @vidwadeseram in #1338
- fix(rust): replace broken -force_load rustflags with -U ___chkstk_darwin by @vidwadeseram in #1339
- fix(explore): add discardFiles to restore files to HEAD instead of git rm by @vidwadeseram in #1340
- fix(explore): add discardFiles to Expo module types and fix error z-index by @vidwadeseram in #1341
- fix(explore): proper error when native module unavailable and fix FlatList layout by @vidwadeseram in #1342
- fix(GitEngine): add local CocoaPod wrapper for Expo native module by @vidwadeseram in #1343
- fix(GitEngine): fix Podfile insertion to use correct line by @vidwadeseram in #1344
- fix(git-engine): port complete Swift module with discardFiles by @vidwadeseram in #1345
- fix(explore): add ExploreFile screen and fix loading spacing by @vidwadeseram in #1346
- fix(android): make splash-icon.png background transparent by @vidwadeseram in #1347
- fix(git-engine): add Android native module implementation by @vidwadeseram in #1348
- fix(explore): fix Issues/PR Open settings navigation and loading spacing by @vidwadeseram in #1349
- Delete docs/wiki/codeql-quality-findings.md by @vidwadeseram in #1353
- Delete docs/wiki/v1.5.0-app-store-rejection.md by @vidwadeseram in #1354
- fix(explore): add dev scripts and fix navigation to SettingsTab by @vidwadeseram in #1350
- fix(git-engine): disable UniFFI checksum validation on Android (uniffi-rs#2939) by @vidwadeseram in #1355
- fix: make commit pending button text white on primary variant by @vidwadeseram in #1356
- fix: make primary button text white in CommitComposer and ExploreDiffScreen by @vidwadeseram in #1357
- feat: per-host SSH key authentication for Git operations by @vidwadeseram in #1358
- fix: remove duplicate RemoteUrlOptions and restore authedRemote after merge by @vidwadeseram in #1359
- fix: add missing i18n strings for SSH key modal by @vidwadeseram in #1360
- fix: improve SSH key modal padding and spacing by @vidwadeseram in #1361
- fix: improve SSH key modal padding and spacing by @vidwadeseram in #1362
- fix: add top margin to SSH modal description by @vidwadeseram in #1363
- docs(wiki): replace wiki with simple 4-page structure by @vidwadeseram in #1364
- feat(explore): add commit message placeholder and clear button by @vidwadeseram in #1365
- fix: commit popup button text, discard button styling, floating button nav, and tag/color persistence by @vidwadeseram in #1366
- ci: remove failing Jest tests to get CI passing by @vidwadeseram in #1367
- fix: remove failing tests, resolve security vulnerabilities by @vidwadeseram in #1368
- fix: remove node_modules symlink breaking CI, resolve security vulnerabilities by @vidwadeseram in #1369
- fix: prevent keyboard on token/key TextInput fields by @vidwadeseram in #1370
- Delete node_modules by @vidwadeseram in #1371
- fix: remove @xmldom/xmldom resolution that breaks expo prebuild by @vidwadeseram in #1372
- fix: remove image-size resolution - breaks metro bundler by @vidwadeseram in #1373
- fix: apply chromeTopInset to PR/Issues FlatList during initial load by @vidwadeseram in #1374
- fix: PR/Issues tabs safe area inset by @vidwadeseram in #1375
- fix: PR/Issues tabs content offset by @vidwadeseram in #1376
- fix: guard against undefined repo in load callbacks by @vidwadeseram in #1377
- fix: shorten pauseForegroundSyncSub text by @vidwadeseram in #1378
- fix: update pauseForegroundSyncSub text by @vidwadeseram in #1379
- fix: wrap Discard button text in ButtonText by @vidwadeseram in #1380
- fix: use label prop for Button to fix invisible text by @vidwadeseram in #1381
- fix: correct ROOT_DIR calculation in eas post-install script by @vidwadeseram in #1382
- fix: skip Android builds when NDK not available by @vidwadeseram in #1383
- fix: skip iOS Rust builds when xcrun not available by @vidwadeseram in #1384
- fix: skip UniFFI binding generation when host target unavailable by @vidwadeseram in #1385
- fix(ExploreScreen): make Add repository button navigate to Settings tab by @vidwadeseram in #1386
- fix(paywall): use locally stored build for Android grandfathering by @vidwadeseram in #1387
- fix(paywall): await setAndroidFirstSeenBuild + preserve null boot cache entries by @vidwadeseram in #1388
- fix(ExploreScreen): guard repo useMemo against corrupted repo data by @vidwadeseram in #1389
- fix(Explore): guard workingTreeUri against corrupted repo paths in commit and diff screens by @vidwadeseram in #1390
- chore(release): bump version to 1.5.4 by @vidwadeseram in #1391
- fix(paywall): run setAndroidFirstSeenBuild unconditionally at startup by @vidwadeseram in #1392
- fix(paywall): persist restore-granted flag so TestFlight iOS users keep Pro across launches by @vidwadeseram in #1393
- docs(wiki): comprehensive rewrite — 13 pages, all fact-checked against source by @vidwadeseram in #1394
- fix(paywall): grandfathering reliability by @vidwadeseram in #1395
- fix: Prettier formatting in CHANGELOG.md by @vidwadeseram in #1396
- fix(wiki): remove dead routes from screens.md nav tree by @vidwadeseram in #1397
- fix(explore): make discard button red in ChangesSection by @vidwadeseram in #1398
- feat(explore): navigate to staging/commits tab after stage/commit all by @vidwadeseram in #1399
- fix(ui): use label prop for primary variant buttons by @vidwadeseram in #1400
- fix(explore): make discard button functional and visible in ChangesSection by @vidwadeseram in #1401
- feat(auth): show specific GitHub token permission error messages by @vidwadeseram in #1402
- fix(sync): wire commitOps to GitEngine, delete stubs, remove API mode by @vidwadeseram in #1403
- fix(explore): remove auto-stage on save; reload AsyncStorage on discard by @vidwadeseram in #1406
- fix(ios): pass libgitnotes_git2.a to app target linker by @vidwadeseram in #1407
- docs: fix broken wiki link and reinforce main-clean rules by @vidwadeseram in #1408
- fix: correct iOS library paths in EAS post-install script by @vidwadeseram in #1409
- fix: remove lipo step in EAS post-install script by @vidwadeseram in #1410
- fix(TagInput): always show border on tags textbox using colors.border by @vidwadeseram in #1411
- fix: add staticlib verification and fix OTHER_LDFLAGS quoting by @vidwadeseram in #1412
- chore: bump version to 1.5.5 by @vidwadeseram in #1413
- fix: properly link Rust staticlib via podfile post_install hook by @vidwadeseram in #1414
- fix: upgrade Expo SDK 56 dependencies to expected versions by @vidwadeseram in #1415
- feat(explore): add conflict resolution screens by @vidwadeseram in #1417
- fix: force_load vendored Rust staticlib to extract all symbols by @vidwadeseram in #1416
- Delete node_modules by @vidwadeseram in #1418
- fix: conflict UX improvements by @vidwadeseram in #1419
- fix: raw-file conflict resolution — edit directly, markers removed by user, go to staging after resolve by @vidwadeseram in #1421
- feat(git-button): hold-to-stage/commit/push on floating git button by @vidwadeseram in #1422
- fix(HoldProgressRing): inline segmentInterval in useDerivedValue worklet by @vidwadeseram in #1423
- fix(git-button): initialize reduceMotionEnabledState to false by @vidwadeseram in #1424
- fix(git-button): show debug toast when no repos connected by @vidwadeseram in #1425
- fix(git-button): concentric ring bands + debug toast for hold-to-release by @vidwadeseram in #1426
- fix(git-button): one ring three arc segments + restore AI button ring by @vidwadeseram in #1427
- fix(git-button): hold-to-release with 3-segment ring + tap guard + restore AI button by @vidwadeseram in #1428
- fix(git-button): hold-to-release with 3-segment ring + tap guard + restore AI button by @vidwadeseram in #1429
- fix(git-button): hold-to-release ring + tap guard + fix git ops local path bug by @vidwadeseram in #1430
- fix(git-button): hold-to-release with 3-segment ring + visible on all screens by @vidwadeseram in #1431
- fix(conflict-ui): badge contrast + error handling for resolve page by @vidwadeseram in #1432
- fix(conflict-resolve): show error when fileUri is null or file is empty by @vidwadeseram in #1433
- fix(git-button): hold-to-release fires on hold complete, not after drain by @vidwadeseram in #1434
- fix(conflict-ui): solid red badge + robust error on resolve page by @vidwadeseram in #1435
- fix(conflict-resolve): empty file shows error not blank screen by @vidwadeseram in #1436
- fix(conflict-resolve): use contrasting surface bg + red border for editor by @vidwadeseram in #1438
- fix(conflict-resolve): prevent blank screen for all error/missing content cases by @vidwadeseram in #1439
- fix(conflict-resolve): load staged conflict content by @vidwadeseram in #1440
- fix(conflict-resolve): keep resolver body visible by @vidwadeseram in #1441
- fix(conflict-resolve): add complete resolution flow by @vidwadeseram in #1442
- fix(sync): derive ok from native push result + conflict UX improvements by @vidwadeseram in #1443
- fix(conflict): hide empty kind badge; fix button text colors; rename resolve button by @vidwadeseram in #1444
- fix(fab): tap navigates to matching section by button color by @vidwadeseram in #1445
- fix: use PROJECT_DIR instead of SRCROOT for Rust staticlib path by @vidwadeseram in #1446
- fix(paywall): iOS grandfathering cache race condition by @vidwadeseram in #1447
- fix(paywall): sync Pro state on RevenueCat callbacks and account binds by @vidwadeseram in #1448
- fix(paywall): restore-granted cache bypass + silent failures by @vidwadeseram in #1449
- docs: update pricing in paywall wiki by @vidwadeseram in #1450
- fix: remove -force_load xcconfig causing absolute path error by @vidwadeseram in #1451
- fix: add -force_load to post_install hook for FFI symbol preservation by @vidwadeseram in #1452
- fix: correct Rust library path - 3 levels up from Pods by @vidwadeseram in #1453
- feat(explore): color-code active tab by git state semantics by @vidwadeseram in #1454
- fix(git): wire recovery.ts to GitEngine — push was a no-op stub by @vidwadeseram in #1459
- ci: fix frozen-lockfile by letting yarn update stale lockfile by @vidwadeseram in #1460
- ci: remove lockfile update step that fails on detached HEAD by @vidwadeseram in #1461
- feat(ai): add reminder tools for create/list/cancel reminders by @vidwadeseram in #1458
- fix: prevent AI-created notes from bypassing git staging flow by @vidwadeseram in #1456
- fix(ai): personalize AI setting + repo auth + error handling by @vidwadeseram in #1455
- fix: address UI overlap issues on small Android screens (Redmi Note 10 class) by @vidwadeseram in #1457
- chore: remove all grandfathering code by @vidwadeseram in #1462
- fix: remove stale grandfathering comment from App.tsx by @vidwadeseram in #1463
- fix: sync ExploreScreen status after floating git button stage/commit/push by @vidwadeseram in #1464
- fix(git): stage all file operations via local git in clone mode by @vidwadeseram in #1465
- fix: eliminate unused vars, imports, empty functions, and useless escapes by @vidwadeseram in #1466
- fix: remove unused makeRepoFs, fix useless escape, restore missing GitEngine import by @vidwadeseram in #1467
- fix: correct misleading save failed error message by @vidwadeseram in #1468
- fix: MarkdownToolbar dark mode text visibility by @vidwadeseram in #1469
- fix: refresh visible Git pages after floating actions by @vidwadeseram in #1470
- fix(git-button): route taps to matching Explore section by @vidwadeseram in #1471
- fix(git): leave note saves unstaged by @vidwadeseram in #1472
- fix(ai): disable agent tools when AI personalization is off by @vidwadeseram in #1473
- Delete node_modules by @vidwadeseram in #1475
- fix(git-button): refresh Explore screen when floating button stages/commits/pushes by @vidwadeseram in #1474
- fix(notes): leave deletes for manual commit by @vidwadeseram in #1476
- fix(codeql): remove dead code from FEATURE_USE_MULTI_HOST_WRITE branches by @vidwadeseram in #1477
- fix(tags): add borders to tag chips in notes editor by @vidwadeseram in #1478
- fix(explore): render staged diff action label by @vidwadeseram in #1479
- fix(explore): pad error views under floating header in commits/tabs by @vidwadeseram in #1481
- fix(ui): infinite scroll on commits tab — no more 100-commit cap by @vidwadeseram in #1480
- fix(explore): preserve staged diff action label contrast by @vidwadeseram in #1482
- fix(ui): align floating git button margin with AI button (16px) by @vidwadeseram in #1483
- fix(explore): make selected diff staging work by @vidwadeseram in #1484
- refactor(sync): remove nonexistent API mode by @vidwadeseram in #1485
- fix(rust): use iterator chaining for revwalk.skip to avoid move bug by @vidwadeseram in #1486
- fix(auth): use connectHost instead of deprecated setToken by @vidwadeseram in #1487
- fix(ios): update local UniFFI checksum for commits pagination by @vidwadeseram in #1489
- fix(ios): resolve ExpoSQLite Xcode 26 build failure by @vidwadeseram in #1490
- fix(ios): suppress Xcode 26 private SwiftUI autolinks by @vidwadeseram in #1491
- fix(home): match quick access card sizing to recent cards by @vidwadeseram in #1492
- fix: add missing skip param to recentCommits, widen template modal, add disabled AI feature prompts by @vidwadeseram in #1496
- feat(canvas): redesign canvases list with proper cards and grid/list toggle by @vidwadeseram in #1495
- fix(explore): responsive Repository/Repo tab label by @vidwadeseram in #1494
- fix(ai): tell user when features are disabled in chat by @vidwadeseram in #1493
- fix: template modal width and canvas list back button by @vidwadeseram in #1497
- fix: template modal full width, canvas back button, quick access card sizing by @vidwadeseram in #1498
- feat(git): centralized repository branch state with checkout safety by @vidwadeseram in #1499
- fix: align quick access cards and template modal sizing by @vidwadeseram in #1500
- docs: require agents to use pull requests by @vidwadeseram in #1501
- feat(git): git-tab-only branch policy — clone defaults, git tab checkout, remove branch UI by @vidwadeseram in #1502
- fix(git): retry checkout when concurrent HEAD changes occur during operation by @vidwadeseram in #1503
- fix(explore): remove misleading commit count from commits tab header by @vidwadeseram in #1504
- fix: default note editor folder to Notes by @vidwadeseram in #1505
- docs: add feature graphic to README by @vidwadeseram in #1506
- feat: edit text files from Explore - plain multiline editor by @vidwadeseram in #1507
- feat: competitor gap features — calendar, FTS, block links, command palette, kanban by @vidwadeseram in #1508
- Delete node_modules by @vidwadeseram in #1509
- fix(ios): keep GitEngine module maps out of Sources by @vidwadeseram in #1510
- fix(android): align recent commits pagination by @vidwadeseram in #1511
- fix(ios): preserve ExpoSQLite headers after post install by @vidwadeseram in #1512
- fix(explore): use full repository wording by @vidwadeseram in #1514
- fix(documents): repair FTS5 indexing by @vidwadeseram in #1513
- fix: add spacing between Cancel and Save buttons in ExploreFileScreen by @vidwadeseram in #1515
- fix: show custom templates in picker and sync to GitHub on CRUD by @vidwadeseram in #1516
- fix: custom templates not appearing in picker or git changes by @vidwadeseram in #1517
- fix: custom templates picker and github activity indicator by @vidwadeseram in #1518
- fix: stop github activity loader after push by @vidwadeseram in #1519
- docs: add Google Play and App Store links to README by @vidwadeseram in #1521
- fix: prevent duplicate commit pagination by @vidwadeseram in #1520
- docs: add Google Play and App Store badges to README by @vidwadeseram in #1523
- fix(git): accept intentional checkout state changes by @vidwadeseram in #1524
- fix: use global activity indicator for list refresh by @vidwadeseram in #1525
- fix: use global activity indicator for list refresh by @vidwadeseram in #1526
- style: apply prettier formatting to withGitEngineRust.js by @vidwadeseram in #1528
- fix(git): refresh app state after checkout by @vidwadeseram in #1527
- fix(jest): mock expo-file-system modern API to enable tests by @vidwadeseram in #1530
- fix: keep Todo refresh control mounted by @vidwadeseram in #1529
- fix(sync): pull remote repository changes by @vidwadeseram in #1531
- fix(sync): alert on foreground failures by @vidwadeseram in #1532
- fix(sync): use local worktree paths for native pulls by @vidwadeseram in #1533
- fix(sync): recover missing Git objects and stabilize activity by @vidwadeseram in #1534
- fix(calendar): offset content below absolutely-positioned header by @vidwadeseram in #1535
- fix(todos): offset kanban view below absolutely-positioned header by @vidwadeseram in #1536
- fix(todos): extend kanban to screen edges by @vidwadeseram in #1537
- feat(todos): persist view mode selection across restarts by @vidwadeseram in #1538
- fix(explore): prevent branch card button overflow when description is long by @vidwadeseram in #1539
- fix(git): refresh note/todo/canvas content after branch checkout by @vidwadeseram in #1540
- fix(splash): preserve iOS dark-mode launch appearance by @vidwadeseram in #1541
- fix(notes): preserve repository modification dates by @vidwadeseram in #1543
- chore(deps-dev): bump sharp from 0.35.3 to 0.35.4 by @dependabot[bot] in #1542
- fix(pro): stable identity-first entitlement resolution across cold restarts by @vidwadeseram in #1544
- feat(auth): show actionable token rejection reasons by @vidwadeseram in #1546
- fix(sync): preserve repo identity during clone recovery by @vidwadeseram in #1545
- Update README.md by @vidwadeseram in #1547
- feat(settings): discover repositories across connected Git hosts by @vidwadeseram in #1548
- fix: use provider-aware URL for Git clone instead of hardcoded GitHub by @vidwadeseram in #1551
- fix(ui): keep command palette within viewport by @vidwadeseram in #1550
- fix(auth): make provider errors actionable by @vidwadeseram in #1549
- fix(pro): respect simulator override env flag by @vidwadeseram in #1554
- fix(sync): show 'Syncing…' instead of 'Syncing with GitHub' for non-GitHub providers by @vidwadeseram in #1553
- feat(command-palette): add hint chips for quick command discovery by @vidwadeseram in #1552
- fix(sync): preserve repository host during clone recovery by @vidwadeseram in #1555
- fix(folder-selector): allow creating nested folders via parent pill selector by @vidwadeseram in #1557
- fix(command-palette): prevent keyboard from covering modal and enable result tap interactions by @vidwadeseram in #1558
- fix(command-palette): remove command palette from mobile UI by @vidwadeseram in #1559
- fix(folder-selector): allow creating nested folders via parent pill selector by @vidwadeseram in #1560
- chore: bump version to 1.6.0 by @vidwadeseram in #1561
- fix: prevent CocoaPods swift flags build failure by @vidwadeseram in #1562
- fix(ios): correct Swift flags generator by @vidwadeseram in #1563
- fix(android): address Google Play compatibility findings by @vidwadeseram in #1567
- fix(android): avoid hook-order crash in responsive screens by @vidwadeseram in #1568
- fix(explore): stabilize files section hook order by @vidwadeseram in #1569
- fix(explore): keep Git tab content below the header by @vidwadeseram in #1570
- fix(explore): reserve section tab header space by @vidwadeseram in #1571
- fix(explore): guard onLayout event.nativeEvent against null by @vidwadeseram in #1572
- fix(explore): persist event and capture layout before reading in onLayout by @vidwadeseram in #1573
- fix: floating button tap/hold/drag interaction fixes and Expo/Hermes alignment by @vidwadeseram in #1574
- fix: stale CocoaPods lock recovery and Rust outputPaths declaration by @vidwadeseram in #1575
- fix: app loading surface and PAT access error routing by @vidwadeseram in #1576
- fix(skia): migrate deprecated Skia.Path.Make() fluent API to PathBuilder by @vidwadeseram in #1577
- fix(canvas): remove Skia warnings and inset launch spinner by @vidwadeseram in #1578
- fix(app): center startup loading spinner by @vidwadeseram in #1579
- fix(canvas): render strokes during gesture updates by @vidwadeseram in #1580
- fix(canvas): support Git-backed deletion and bulk selection by @vidwadeseram in #1581
- fix(notes): keep note creation in working tree by @vidwadeseram in #1582
- fix(notes): make PDF files visible in filters and viewable in Git tab by @vidwadeseram in #1583
- fix(explore): show binary placeholder for PDF files in Git tab by @vidwadeseram in #1584
- fix(sync): skip getPathCommitDates for binary formats like PDF by @vidwadeseram in #1585
- fix(sync): revert PDF from NOTE_EXTS to prevent slow binary import by @vidwadeseram in #1586
- feat(pdf): view PDFs in Git tab and show in notes without tags by @vidwadeseram in #1587
- fix(pdf,filter,clone): resolve PDF import, search and filter regressions by @vidwadeseram in #1588
- fix(notes): hide PDF filter and bump version by @vidwadeseram in #1589
- fix(ui): reduce runtime list and worklet warnings by @vidwadeseram in #1590
- fix(git-button): stabilize device hold gestures by @vidwadeseram in #1591
- fix(ai-button): preserve stationary long presses by @vidwadeseram in #1592
- fix(git): stabilize hold ring and checkout safety by @vidwadeseram in #1593
- fix(git-button): use SVG transform=rotate(N,cx,cy) instead of rotation+origin props by @vidwadeseram in #1594
- fix(build): set MACOSX_DEPLOYMENT_TARGET=15.0 for macOS 26 beta compatibility by @vidwadeseram in #1595
- fix(git-button): reveal hold arcs with dash offsets by @vidwadeseram in #1596
- fix(git-button): avoid mutating refs from pan worklets by @vidwadeseram in #1597
- fix(git-button): add static score point markers by @vidwadeseram in #1598
- fix(git-button): layer arcs above score markers by @vidwadeseram in #1599
- fix(git-button): shrink score point markers by @vidwadeseram in #1600
- fix(sync): preserve successful slow pulls by @vidwadeseram in #1601
- Merge dev into main by @vidwadeseram in #1616
Full Changelog: v1.5.3...v1.6.1