feat: v0.0.1 - Groq provider, timezone, journal context, test connection, task logging

Added:
- Groq AI provider (free, fast with llama-3.3-70b-versatile)
- Timezone setting (22 timezones)
- Journal context: include previous journals (3/7/14/30 days)
- Test connection button for AI providers
- Per-provider settings (API key, model, base URL remembered)
- Detailed task logging (full prompts and responses)
- Tasks page with expandable details
- Progress modal with steps and AI output details

Fixed:
- Groq API endpoint (https://api.groq.com/openai/v1/chat/completions)
- Ollama baseUrl leaking to other providers
- Database schema references
- Proper Prisma migrations (data-safe)

Changed:
- Default AI: OpenAI → Groq
- Project renamed: TotalRecall → DearDiary
- Strict anti-hallucination prompt
- Docker uses prisma migrate deploy (non-destructive)
This commit is contained in:
lotherk
2026-03-26 21:56:29 +00:00
parent 37871271cc
commit 5c217853de
27 changed files with 1026 additions and 260 deletions

View File

@@ -1,6 +1,6 @@
# Android App
Native Android app using Kotlin and Jetpack Compose that connects to the same TotalRecall API.
Native Android app using Kotlin and Jetpack Compose that connects to the same DearDiary API.
## Requirements
@@ -49,7 +49,7 @@ buildConfigField("String", "API_BASE_URL", "\"http://your-server:3000/api/v1/\""
```
android/
├── app/src/main/java/com/totalrecall/
├── app/src/main/java/com/deardiary/
│ ├── api/ # API client
│ ├── model/ # Data models
│ ├── repository/ # Repository pattern

View File

@@ -9,14 +9,14 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.ui.Modifier
import com.deardiary.ui.AppNavigation
import com.deardiary.ui.TotalRecallTheme
import com.deardiary.ui.DearDiaryTheme
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContent {
TotalRecallTheme {
DearDiaryTheme {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background

View File

@@ -8,7 +8,7 @@ import androidx.datastore.preferences.core.stringPreferencesKey
import androidx.datastore.preferences.preferencesDataStore
import com.deardiary.api.*
private val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "totalrecall")
private val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "deardiary")
class Repository(context: Context, private val baseUrl: String) {
private val api = ApiClient(baseUrl)

View File

@@ -18,7 +18,7 @@ private val DarkColorScheme = darkColorScheme(
)
@Composable
fun TotalRecallTheme(
fun DearDiaryTheme(
content: @Composable () -> Unit
) {
MaterialTheme(

View File

@@ -36,7 +36,7 @@ fun AuthScreen(
verticalArrangement = Arrangement.Center
) {
Text(
text = "TotalRecall",
text = "DearDiary",
style = MaterialTheme.typography.headlineLarge,
color = MaterialTheme.colorScheme.primary
)

View File

@@ -14,5 +14,5 @@ dependencyResolutionManagement {
}
}
rootProject.name = "TotalRecall"
rootProject.name = "DearDiary"
include(":app")