WayfinderAK bfb027fcd2
Some checks failed
android-apk / debug-apk (push) Has been cancelled
Initialize Android NTP app framework
2026-07-09 15:44:22 -08:00

2.3 KiB

Phase Plan

NTP-P0 — Repository framework and delivery workflow

Goal: initialize the project like the phase-gated Second Brain workflow.

Deliverables:

  • Android Kotlin/Compose skeleton.
  • Room storage model draft.
  • Raw UDP NTP client draft.
  • Gitea Actions debug APK workflow.
  • Project docs, hard rules, and validation target.

Gate:

  • make validate-structure passes.
  • Repo pushes to Gitea.

NTP-P1 — NTP probe correctness

Goal: make the raw UDP NTP client reliable and testable.

Deliverables:

  • Unit tests for packet timestamp parsing/encoding and warning mapping.
  • Probe result model with all required NTP fields.
  • Error handling for DNS failure, timeout, malformed packets, and unreachable hosts.

Gate:

  • Unit tests pass.
  • Manual test against known public NTP servers succeeds.

NTP-P2 — Saved servers and dashboard MVP

Goal: provide a useful saved server list and one-tap comparison dashboard.

Deliverables:

  • Add/edit/delete servers.
  • Default server seed only on first run.
  • Latest result per server visible on dashboard.
  • Sort by latency, offset, stratum, reachability, health score.
  • Best candidate calculation.

Gate:

  • Debug APK builds.
  • Manual emulator/device smoke test passes.

NTP-P3 — Continuous testing and disagreement detection

Goal: support polling intervals and peer-group comparison.

Deliverables:

  • Continuous mode at 1s, 5s, 10s, 30s.
  • Offset median and threshold outlier warnings.
  • Reference ID change warning.
  • Short history retention policy.

Gate:

  • Continuous mode stops cleanly when disabled/backgrounded.
  • Battery/network behavior reviewed.

NTP-P4 — Profiles and export

Goal: make the app practical for home/customer troubleshooting.

Deliverables:

  • Profile CRUD and server assignment.
  • Export/share current results and history as text/CSV.
  • Import server list design for later CSV/YAML.

Gate:

  • Export contains no hidden telemetry or private app metadata.
  • Profile switching works on device.

NTP-P5 — UX polish and release prep

Goal: prepare signed release builds.

Deliverables:

  • Dark/light mode polish.
  • Empty/error/loading states.
  • Signed release build workflow using Gitea secrets.
  • Release checklist.
  • Open Android Date & Time settings action if local clock offset warning is present.

Gate:

  • Lint/tests/build pass.
  • Permission and privacy review passes.