1
0
mirror of https://github.com/avinal/nikki.git synced 2026-07-03 21:40:09 +05:30
Commit Graph

5 Commits

Author SHA1 Message Date
avinal d2be80bc7d Add CI/CD workflows and release signing config
Build workflow: runs tests + assembles debug APK on pull requests.
Release workflow: builds signed APK and uploads to GitHub release.
Signing config reads keystore from env vars (set by CI secrets).
Keystore files excluded from git.

Signed-off-by: Avinal Kumar <avinal.xlvii@gmail.com>
Co-Authored-By: Claude Opus 4.6 (1M context)
2026-05-22 19:05:40 +05:30
avinal d02edde30e Add README, task format docs, fix archived memos API
- README.md: introduction, features, build/install, tech stack,
  disclaimer, acknowledgements, logo at top
- TASK_FORMAT.md: full task syntax reference with examples,
  validation rules, typo detection, notification behavior
- Fix archived memos: use state query param instead of CEL filter
- LOGO.md: remove triangle variant, keep circle only
- logo-circle.svg tracked for README rendering

Signed-off-by: Avinal Kumar <avinal.xlvii@gmail.com>
Co-Authored-By: Claude Opus 4.6 (1M context)
2026-05-22 18:47:31 +05:30
avinal 91b6a479a4 Add parser doctor, offline queue, tag inheritance, logo, MIT license
Parser doctor:
- validateContent() with error/warning severity levels
- Errors: invalid date, invalid priority, reminder without due,
  invalid reminder unit
- Warnings: time without date, past date, multiple metadata,
  typo detection with correction suggestions
- 21 new tests in ParserDoctorTest

Tag inheritance:
- extractTasks() accepts memoTags parameter
- Tasks without #tags inherit memo-level tags

Offline queue:
- PendingSyncEntity + PendingSyncDao for queued edits
- MemoRepository queues failed API calls, drains on next sync
- Sync status banner: "synced N min ago" / "offline · N pending"

UI:
- Parser doctor banner in tasks tab with inline highlighting
- Error/warning dots on task rows
- Pivot headers with absolute positioning and measured widths
- Logo in settings about section (Canvas-drawn circle variant)

Other:
- MIT license
- Logo design spec (LOGO.md)
- Concentric circle logo: pink circle, black+teal 47° annular wedge
- .gitignore updated for dev artifacts

144 tests passing.

Co-Authored-By: Claude Opus 4.6 (1M context)

Signed-off-by: Avinal Kumar <avinal.xlvii@gmail.com>
2026-05-22 16:40:58 +05:30
avinal 099ff25ed3 Fix warnings, update deps, Metro-style task detail, comment counts
Warnings fixed:
- Removed unused imports (FieldMask, UpdateMemoRequest, LocalUriHandler,
  LocalPlatformContext, Composable in Color.kt)
- Removed unused Android color resources (old Material purple/teal)
- Replaced proguard-rules.pro with clean Compose/KMP config
- Fixed RelationDto to match actual API (memo/relatedMemo are objects)

Dependencies bumped:
- Ktor 3.4.3 → 3.5.0, Activity Compose 1.10.1 → 1.13.0
- Core KTX 1.16.0 → 1.18.0, SQLite 2.5.1 → 2.6.2
- WorkManager 2.11.1 → 2.11.2, JUnit 1.1.5 → 1.3.0, Espresso 3.5.1 → 3.7.0

Features:
- TaskDetailSheet converted to Metro AlertDialog style (no Material chips)
- MemoDetailScreen: edit button, created/updated timestamps at top
- Comment count shown on MemoCard header (computed from COMMENT relations)
- Explorer tag table: combined columns for memo count + task count per tag

Co-Authored-By: Claude Opus 4.6 (1M context)

Signed-off-by: Avinal Kumar <avinal.xlvii@gmail.com>
2026-05-19 19:04:02 +05:30
avinal 8dd6c10320 Initialize Compose Multiplatform project with AGP 9
Set up two-module structure for AGP 9 compatibility:
- composeApp: KMP shared library (com.android.kotlin.multiplatform.library)
- androidApp: Thin Android app shell (com.android.application)

Configure all dependencies in version catalog: CMP 1.11.0, Kotlin 2.3.21,
Ktor 3.4.3, Room 2.8.4, Coil 3.4.0, kotlinx-serialization/datetime/coroutines,
AndroidX Navigation 2.9.2, Lifecycle 2.10.0, DataStore 1.2.1, WorkManager 2.11.1.

Co-Authored-By: Claude Opus 4.6 (1M context)

Signed-off-by: Avinal Kumar <avinal.xlvii@gmail.com>
2026-05-19 17:01:51 +05:30