diff --git a/.gitignore b/.gitignore index 9670664..1be2f11 100644 --- a/.gitignore +++ b/.gitignore @@ -68,3 +68,10 @@ workflow/ screenshots/ *.zip *.gz +*.tar.gz +docs.tar.gz + +# Build reports and caches +build/reports/ +.gradle/nb-cache/ +android/.gradle/ diff --git a/README.md b/README.md index 916f4f0..7d30877 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # Daily Notification Plugin **Author**: Matthew Raymer -**Version**: 2.2.0 +**Version**: 1.0.11 (see `package.json` for source of truth) **Created**: 2025-09-22 09:22:32 UTC -**Last Updated**: 2025-10-08 06:02:45 UTC +**Last Updated**: 2025-12-23 UTC ## Overview diff --git a/docs/FEEDBACK-RESPONSE-PLAN.md b/docs/FEEDBACK-RESPONSE-PLAN.md new file mode 100644 index 0000000..be4a878 --- /dev/null +++ b/docs/FEEDBACK-RESPONSE-PLAN.md @@ -0,0 +1,117 @@ +# ChatGPT Feedback Response Plan + +**Purpose:** Action plan to address feedback from ChatGPT code review +**Owner:** Development Team +**Last Updated:** 2025-12-23 +**Status:** active + +--- + +## Priority 1: Quick Wins (High ROI, Low Risk) + +### 1.1 Repo Hygiene ✅ IN PROGRESS +- [x] Check what build artifacts are tracked in git +- [ ] Remove tracked build artifacts from git +- [ ] Strengthen `.gitignore` (add `*.tar.gz`, `build/reports/`, etc.) +- [ ] Verify `package.json` `files` field excludes build artifacts +- [ ] Clean up any nested archives + +### 1.2 Version Unification ✅ IN PROGRESS +- [ ] Update `README.md` version from 2.2.0 → 1.0.11 +- [ ] Update `src/definitions.ts` version from 2.0.0 → 1.0.11 +- [ ] Add CI check script to verify version consistency +- [ ] Document version policy: `package.json` is source of truth + +--- + +## Priority 2: Structural Improvements (Medium ROI, Medium Risk) + +### 2.1 Native Plugin Refactoring +- [ ] Analyze `DailyNotificationPlugin.kt` (~2,782 lines) - extract services +- [ ] Analyze `DailyNotificationPlugin.swift` (~2,047 lines) - extract services +- [ ] Create service extraction plan: + - `SchedulerService` + - `PermissionService` + - `Power/ExactAlarmService` + - `ReactivationService` + - `RollingWindowService` + - `Storage/StateRepository` + - `FetcherBridge` +- [ ] Implement refactoring in small, mergeable batches + +### 2.2 TODO Classification +- [ ] Audit all TODOs/FIXMEs/HACKs (found 34 instances) +- [ ] Classify into: + - **Must ship** (correctness, rate-limits, TTL, scheduling) + - **Nice-to-have** (perf metrics, stats, diagnostics) + - **Future** (Phase 2) +- [ ] Create issues for "must ship" items +- [ ] Move "Phase 2" items behind feature flags or to planning docs + +--- + +## Priority 3: CI/CD Infrastructure (High ROI, Low Risk) + +### 3.1 CI Workflows +- [ ] Create `.github/workflows/ci.yml`: + - Node/TS: lint, typecheck, unit tests, build, `npm pack` check + - Android: `./gradlew test` + `lint` + `assembleDebug` + - iOS: `xcodebuild test` (macOS runner) +- [ ] Add merge gates on CI passing +- [ ] Document CI setup in `ci/README.md` + +### 3.2 Test Coverage +- [ ] Identify critical paths needing tests: + - Backoff policy correctness + - Idempotency key behavior + - Watermark monotonicity + - TTL-at-fire logic + - Rolling window / rate-limit counters + - Permission flows (Android 13+, exact alarm, battery optimization) + +--- + +## Priority 4: Packaging & Workspace (Medium ROI, Low Risk) + +### 4.1 Workspace Package Dist +- [ ] Check if `packages/polling-contracts/dist/` is committed +- [ ] If committed, remove from git +- [ ] Add `prepack` script to build subpackage before publish +- [ ] Update `package.json` `files` to control publishing + +--- + +## Priority 5: Documentation (Low ROI, Low Risk) + +### 5.1 Documentation Consolidation +- [ ] Update `README.md` with clear entry points: + - Install + - Minimal usage example + - Platform setup (Android/iOS) + - Troubleshooting link + - Architecture link +- [ ] Add Compatibility Matrix: + - Capacitor versions supported + - Android minSdk/targetSdk + - iOS min version + - Exact alarm behavior notes per Android version +- [ ] Add Behavioral Contracts section: + - Guaranteed behaviors (monotonic watermark, idempotency, TTL) + - Best-effort behaviors (delivery in Doze, background fetch timing) + +--- + +## Execution Order + +1. **Week 1**: Quick wins (Repo hygiene, Version unification) +2. **Week 2**: CI/CD infrastructure +3. **Week 3-4**: Native plugin refactoring (in batches) +4. **Week 5**: TODO classification and cleanup +5. **Week 6**: Documentation improvements + +--- + +**See also:** +- [ChatGPT Feedback Package](./progress/05-CHATGPT-FEEDBACK-PACKAGE.md) — Original feedback +- [System Invariants](../SYSTEM_INVARIANTS.md) — Enforced invariants + diff --git a/src/definitions.ts b/src/definitions.ts index 513e135..920a8e8 100644 --- a/src/definitions.ts +++ b/src/definitions.ts @@ -5,7 +5,7 @@ * Aligned with Android implementation and test requirements * * @author Matthew Raymer - * @version 2.0.0 + * @version 1.0.11 (see package.json for source of truth) */ // Import SPI types from content-fetcher.ts