docs: Update comprehensive documentation with AI features, health checks, and architecture improvements

- Document automatic token verification on startup and note:// prefix for Markdown notes
- Add extensive AI capabilities section (Gemini integration, auto-tagging, content classification, multi-model fallback)
- Document link health monitoring system with dead link detection and exclusion features
- Add file sharing support (Markdown/text files) and deep links documentation
- Update technology
This commit is contained in:
2026-02-10 21:15:30 -05:00
parent c8a9e6653b
commit ec0931134c
39 changed files with 4717 additions and 308 deletions
+3
View File
@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
</manifest>
@@ -0,0 +1,54 @@
package com.shaarit.benchmark
import androidx.benchmark.macro.junit4.BaselineProfileRule
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.LargeTest
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
/**
* Generates Baseline Profiles for ShaarIt.
*
* Baseline Profiles pre-compile critical user journeys (cold start, navigation, scroll)
* using AOT compilation, avoiding JIT compilation at runtime.
*
* Typical gain: 30-50% reduction in cold start time for Compose apps.
*
* To generate the profile, run:
* ./gradlew :benchmark:pixel6Api31BenchmarkAndroidTest -Pandroid.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile
*
* Then copy the generated baseline-prof.txt to app/src/main/baseline-prof.txt
*/
@RunWith(AndroidJUnit4::class)
@LargeTest
class BaselineProfileGenerator {
@get:Rule
val rule = BaselineProfileRule()
@Test
fun generateProfile() {
rule.collect(
packageName = "com.shaarit",
includeInStartupProfile = true
) {
// Cold start — launch the main activity
startActivityAndWait()
// Wait for the feed to load
device.waitForIdle()
// Scroll the feed to capture scroll-related code paths
val feedList = device.findObject(
androidx.test.uiautomator.By.scrollable(true)
)
feedList?.let {
it.scroll(androidx.test.uiautomator.Direction.DOWN, 2.0f)
device.waitForIdle()
it.scroll(androidx.test.uiautomator.Direction.UP, 2.0f)
device.waitForIdle()
}
}
}
}