From 67c0cafb6315d930f67a3a816eb08e390e876b20 Mon Sep 17 00:00:00 2001 From: Brummel Date: Sat, 2 May 2026 12:27:03 +0200 Subject: [PATCH] docs: update wearos doc anchors after workspace split Replace stale references in 17 Kotlin files: - doctate-client-core::* -> doctate-desktop::* - doctate-client-core/src/* -> clients/desktop/src/* - doctate-common/src/* -> common/src/* The doctate-common:: crate path stays valid (crate name unchanged). PendingStoreTest.kt is in src/test/, so the test mirror is also updated. Verification: - grep for "doctate-client-core" / "doctate-common/src/" in clients/wearos/ returns 0 hits. - gradlew :app:testDebugUnitTest BUILD SUCCESSFUL (23s) -- also retroactively confirms stage-2's directory move did not break any Gradle relative-path assumptions. - cargo clippy --all-targets -- -D warnings clean in both server/ and clients/desktop/ workspaces. This concludes the four-stage server-vs-clients build-world split: - stage 1 (39cc666): dissolve doctate-client-core - stage 2 (0c66fc6): rename to common/, clients/desktop, clients/wearos - stage 3 (7b4fe87): split into standalone workspaces - stage 4 (this): update wearos anchors docs/projektplan.md to be updated separately. --- .../src/main/java/com/doctate/watch/audio/PendingCleanup.kt | 2 +- .../app/src/main/java/com/doctate/watch/audio/PendingStore.kt | 2 +- .../src/main/java/com/doctate/watch/audio/PendingUpload.kt | 2 +- .../app/src/main/java/com/doctate/watch/domain/CaseEntry.kt | 2 +- .../app/src/main/java/com/doctate/watch/domain/CaseMarker.kt | 2 +- .../app/src/main/java/com/doctate/watch/domain/CaseStore.kt | 2 +- .../src/main/java/com/doctate/watch/domain/OnelinerState.kt | 2 +- .../src/main/java/com/doctate/watch/domain/OnelinersJson.kt | 2 +- .../src/main/java/com/doctate/watch/domain/OnelinersWire.kt | 2 +- .../src/main/java/com/doctate/watch/domain/StartupCleanup.kt | 2 +- .../main/java/com/doctate/watch/net/OnelinerOverrideClient.kt | 2 +- .../src/main/java/com/doctate/watch/net/OnelinersClient.kt | 2 +- .../app/src/main/java/com/doctate/watch/net/SnapshotCache.kt | 2 +- .../app/src/main/java/com/doctate/watch/net/UploadClient.kt | 4 ++-- .../app/src/main/java/com/doctate/watch/net/UploadResult.kt | 2 +- .../app/src/main/java/com/doctate/watch/sync/SyncState.kt | 2 +- .../src/main/java/com/doctate/watch/sync/SyncWorkerLoop.kt | 2 +- 17 files changed, 18 insertions(+), 18 deletions(-) diff --git a/clients/wearos/app/src/main/java/com/doctate/watch/audio/PendingCleanup.kt b/clients/wearos/app/src/main/java/com/doctate/watch/audio/PendingCleanup.kt index f4d83dd..2b6b7fa 100644 --- a/clients/wearos/app/src/main/java/com/doctate/watch/audio/PendingCleanup.kt +++ b/clients/wearos/app/src/main/java/com/doctate/watch/audio/PendingCleanup.kt @@ -5,7 +5,7 @@ import java.io.File /** * Reap orphan artefacts in [pendingDir]. Mirrors - * `doctate-client-core::pending_cleanup::cleanup_orphan_audio`. + * `doctate-desktop::pending_cleanup::cleanup_orphan_audio`. * * "Orphan" = an `.m4a` without sidecar (or vice versa) older than * [ageCutoffMs]. Atomic-write leftovers (`.tmp` files) bypass the cutoff diff --git a/clients/wearos/app/src/main/java/com/doctate/watch/audio/PendingStore.kt b/clients/wearos/app/src/main/java/com/doctate/watch/audio/PendingStore.kt index 01b4db2..7c74f1e 100644 --- a/clients/wearos/app/src/main/java/com/doctate/watch/audio/PendingStore.kt +++ b/clients/wearos/app/src/main/java/com/doctate/watch/audio/PendingStore.kt @@ -14,7 +14,7 @@ import org.json.JSONObject * [AudioRecorder] directly into [dir]; the sidecar is written here, atomic * tmp+rename so a crash mid-write cannot leave a partial file. * - * Mirrors `doctate-client-core::upload` exactly (sidecar shape, scan rules, + * Mirrors `doctate-desktop::upload` exactly (sidecar shape, scan rules, * orphan handling). Wire-compatible with the desktop client. */ class PendingStore(private val dir: File) { diff --git a/clients/wearos/app/src/main/java/com/doctate/watch/audio/PendingUpload.kt b/clients/wearos/app/src/main/java/com/doctate/watch/audio/PendingUpload.kt index f7d177d..4a8bc79 100644 --- a/clients/wearos/app/src/main/java/com/doctate/watch/audio/PendingUpload.kt +++ b/clients/wearos/app/src/main/java/com/doctate/watch/audio/PendingUpload.kt @@ -4,7 +4,7 @@ import java.io.File /** * One recording waiting to be uploaded. Mirrors - * `doctate-client-core::PendingUpload` (Rust). + * `doctate-desktop::PendingUpload` (Rust). * * The [file] path is not persisted in the sidecar JSON — it's recovered * from the sidecar's on-disk location, so the pair stays valid if the diff --git a/clients/wearos/app/src/main/java/com/doctate/watch/domain/CaseEntry.kt b/clients/wearos/app/src/main/java/com/doctate/watch/domain/CaseEntry.kt index ee0b233..a22e000 100644 --- a/clients/wearos/app/src/main/java/com/doctate/watch/domain/CaseEntry.kt +++ b/clients/wearos/app/src/main/java/com/doctate/watch/domain/CaseEntry.kt @@ -2,7 +2,7 @@ package com.doctate.watch.domain /** * Per-case record held client-side. Mirrors the essentials of - * `doctate-client-core::CaseEntry` (Rust). + * `doctate-desktop::CaseEntry` (Rust). * * `oneliner == null` means no state has been observed yet (fresh case); * the UI renders a placeholder ("…"). `OnelinerState.Manual` marks a diff --git a/clients/wearos/app/src/main/java/com/doctate/watch/domain/CaseMarker.kt b/clients/wearos/app/src/main/java/com/doctate/watch/domain/CaseMarker.kt index a0e8f9f..ab60986 100644 --- a/clients/wearos/app/src/main/java/com/doctate/watch/domain/CaseMarker.kt +++ b/clients/wearos/app/src/main/java/com/doctate/watch/domain/CaseMarker.kt @@ -5,7 +5,7 @@ import java.time.Instant /** * On-disk representation of a single case. Wire-format identical to - * `doctate-client-core::CaseMarker` (Rust) — same field names (snake_case), + * `doctate-desktop::CaseMarker` (Rust) — same field names (snake_case), * same RFC3339 timestamps, same internally-tagged OnelinerState. A marker * file written by either client should round-trip through the other. * diff --git a/clients/wearos/app/src/main/java/com/doctate/watch/domain/CaseStore.kt b/clients/wearos/app/src/main/java/com/doctate/watch/domain/CaseStore.kt index e3e4d89..5c489f4 100644 --- a/clients/wearos/app/src/main/java/com/doctate/watch/domain/CaseStore.kt +++ b/clients/wearos/app/src/main/java/com/doctate/watch/domain/CaseStore.kt @@ -4,7 +4,7 @@ import kotlinx.coroutines.flow.StateFlow /** * Per-case marker store. Single source of truth for the case list shown in - * Activity, Tile and Complication. Mirrors `doctate-client-core::CaseStore` + * Activity, Tile and Complication. Mirrors `doctate-desktop::CaseStore` * (Rust) — the asymmetric merge/reconcile design is the load-bearing piece: * * - [mergeServerSnapshot] only adds/updates. `/api/oneliners` is a sliding diff --git a/clients/wearos/app/src/main/java/com/doctate/watch/domain/OnelinerState.kt b/clients/wearos/app/src/main/java/com/doctate/watch/domain/OnelinerState.kt index af8fc50..3eb09f0 100644 --- a/clients/wearos/app/src/main/java/com/doctate/watch/domain/OnelinerState.kt +++ b/clients/wearos/app/src/main/java/com/doctate/watch/domain/OnelinerState.kt @@ -2,7 +2,7 @@ package com.doctate.watch.domain /** * Outcome of the LLM oneliner generation for a single case. Mirrors - * `doctate-common/src/oneliners.rs::OnelinerState` (Rust). Internally-tagged + * `common/src/oneliners.rs::OnelinerState` (Rust). Internally-tagged * JSON: `{"kind":"ready", ...}`. The variants are disjoint on purpose so the * UI can distinguish "LLM said nothing medical" (Empty) from "LLM call * failed" (Error) from "doctor overrode it" (Manual). diff --git a/clients/wearos/app/src/main/java/com/doctate/watch/domain/OnelinersJson.kt b/clients/wearos/app/src/main/java/com/doctate/watch/domain/OnelinersJson.kt index 91e895d..8cb9e29 100644 --- a/clients/wearos/app/src/main/java/com/doctate/watch/domain/OnelinersJson.kt +++ b/clients/wearos/app/src/main/java/com/doctate/watch/domain/OnelinersJson.kt @@ -5,7 +5,7 @@ import org.json.JSONObject /** * JSON ↔ Kotlin DTO marshallers for the `/api/oneliners` wire format. - * Server-side source of truth: `doctate-common/src/oneliners.rs`. Field + * Server-side source of truth: `common/src/oneliners.rs`. Field * names are snake_case to match the Rust serde output. * * Lives in `domain` (not `net`) because the parsed shape — including the diff --git a/clients/wearos/app/src/main/java/com/doctate/watch/domain/OnelinersWire.kt b/clients/wearos/app/src/main/java/com/doctate/watch/domain/OnelinersWire.kt index 43a5200..d5cde65 100644 --- a/clients/wearos/app/src/main/java/com/doctate/watch/domain/OnelinersWire.kt +++ b/clients/wearos/app/src/main/java/com/doctate/watch/domain/OnelinersWire.kt @@ -2,7 +2,7 @@ package com.doctate.watch.domain /** * Wire-format DTOs for `GET /api/oneliners`. Mirror - * `doctate-common/src/oneliners.rs::OnelinersResponse` and `OnelinerEntry` + * `common/src/oneliners.rs::OnelinersResponse` and `OnelinerEntry` * exactly; the `OnelinersClient` (Phase 6) parses JSON into these. * * Timestamps stay RFC3339 strings — lexicographic comparison on the Zulu diff --git a/clients/wearos/app/src/main/java/com/doctate/watch/domain/StartupCleanup.kt b/clients/wearos/app/src/main/java/com/doctate/watch/domain/StartupCleanup.kt index 0137d3d..ee0fc13 100644 --- a/clients/wearos/app/src/main/java/com/doctate/watch/domain/StartupCleanup.kt +++ b/clients/wearos/app/src/main/java/com/doctate/watch/domain/StartupCleanup.kt @@ -5,7 +5,7 @@ import com.doctate.watch.audio.PendingCleanup import java.io.File /** - * One-shot startup cleanup. Mirrors `doctate-client-core::startup`. + * One-shot startup cleanup. Mirrors `doctate-desktop::startup`. * * Two retention horizons: 72 h for synced markers (non-sensitive UUIDs + * oneliners), 24 h for orphan audio in the pending queue (sensitive). The diff --git a/clients/wearos/app/src/main/java/com/doctate/watch/net/OnelinerOverrideClient.kt b/clients/wearos/app/src/main/java/com/doctate/watch/net/OnelinerOverrideClient.kt index 4574b57..24b88ee 100644 --- a/clients/wearos/app/src/main/java/com/doctate/watch/net/OnelinerOverrideClient.kt +++ b/clients/wearos/app/src/main/java/com/doctate/watch/net/OnelinerOverrideClient.kt @@ -15,7 +15,7 @@ import org.json.JSONObject /** * `PUT /api/cases/{case_id}/oneliner` — push a doctor's manual override * to the server. Mirrors `OnelinerOverrideRequest` from - * `doctate-common/src/oneliners.rs` (just `{text: string}`); the server + * `common/src/oneliners.rs` (just `{text: string}`); the server * timestamps it server-side as `OnelinerState.Manual` and persists * `oneliner.json` next to the audio. * diff --git a/clients/wearos/app/src/main/java/com/doctate/watch/net/OnelinersClient.kt b/clients/wearos/app/src/main/java/com/doctate/watch/net/OnelinersClient.kt index 5a34fe8..1620747 100644 --- a/clients/wearos/app/src/main/java/com/doctate/watch/net/OnelinersClient.kt +++ b/clients/wearos/app/src/main/java/com/doctate/watch/net/OnelinersClient.kt @@ -9,7 +9,7 @@ import okhttp3.Request /** * Conditional-GET client for `/api/oneliners`. Wire format mirrors - * `doctate-client-core::server_sync::poll_once`: + * `doctate-desktop::server_sync::poll_once`: * * - Always sends `X-API-Key`. * - If [poll] receives a non-null `etag`, sends `If-None-Match: `. diff --git a/clients/wearos/app/src/main/java/com/doctate/watch/net/SnapshotCache.kt b/clients/wearos/app/src/main/java/com/doctate/watch/net/SnapshotCache.kt index afefff6..94ea58f 100644 --- a/clients/wearos/app/src/main/java/com/doctate/watch/net/SnapshotCache.kt +++ b/clients/wearos/app/src/main/java/com/doctate/watch/net/SnapshotCache.kt @@ -15,7 +15,7 @@ import org.json.JSONObject * before any network round-trip — the user never sees a blank list flash * just because the service hasn't polled yet. * - * Mirrors `doctate-client-core::snapshot_cache`. + * Mirrors `doctate-desktop::snapshot_cache`. */ data class CachedSnapshot( val etag: String, diff --git a/clients/wearos/app/src/main/java/com/doctate/watch/net/UploadClient.kt b/clients/wearos/app/src/main/java/com/doctate/watch/net/UploadClient.kt index 3d6a5c6..389e2df 100644 --- a/clients/wearos/app/src/main/java/com/doctate/watch/net/UploadClient.kt +++ b/clients/wearos/app/src/main/java/com/doctate/watch/net/UploadClient.kt @@ -14,7 +14,7 @@ import java.io.IOException /** * POST a recorded audio file to the Doctate server. Wire format mirrors - * doctate-common/src/constants.rs and doctate-client-core/src/server_sync.rs:344-399. + * common/src/constants.rs and clients/desktop/src/server_sync.rs:344-399. * If the server contract changes, both this client and server/tests/upload_test.rs * fail independently — that coupling is intentional. */ @@ -66,7 +66,7 @@ class UploadClient( } companion object { - // Wire-protocol constants. Source of truth: doctate-common/src/constants.rs:1-14. + // Wire-protocol constants. Source of truth: common/src/constants.rs:1-14. const val API_KEY_HEADER = "X-API-Key" const val UPLOAD_PATH = "/api/upload" const val FIELD_CASE_ID = "case_id" diff --git a/clients/wearos/app/src/main/java/com/doctate/watch/net/UploadResult.kt b/clients/wearos/app/src/main/java/com/doctate/watch/net/UploadResult.kt index 59e7d4e..2fbd35c 100644 --- a/clients/wearos/app/src/main/java/com/doctate/watch/net/UploadResult.kt +++ b/clients/wearos/app/src/main/java/com/doctate/watch/net/UploadResult.kt @@ -2,7 +2,7 @@ package com.doctate.watch.net /** * Outcome of [UploadClient.upload]. Mirrors UploadOutcome in - * doctate-client-core/src/server_sync.rs (Succeeded / Transient / Terminal). + * clients/desktop/src/server_sync.rs (Succeeded / Transient / Terminal). */ sealed interface UploadResult { data class Success(val caseId: String, val recordedAt: String, val status: String) : UploadResult diff --git a/clients/wearos/app/src/main/java/com/doctate/watch/sync/SyncState.kt b/clients/wearos/app/src/main/java/com/doctate/watch/sync/SyncState.kt index 6540a64..33c6b12 100644 --- a/clients/wearos/app/src/main/java/com/doctate/watch/sync/SyncState.kt +++ b/clients/wearos/app/src/main/java/com/doctate/watch/sync/SyncState.kt @@ -3,7 +3,7 @@ package com.doctate.watch.sync /** * Snapshot of what the sync worker is currently doing, surfaced to the UI * (Tile / List / Detail) so it can render the cloud indicator. Mirrors - * `WorkerSnapshot` in `doctate-client-core::server_sync`. + * `WorkerSnapshot` in `doctate-desktop::server_sync`. * * This is the authoritative view — never trust the queue length you'd * compute by listing the directory yourself, because the worker can be diff --git a/clients/wearos/app/src/main/java/com/doctate/watch/sync/SyncWorkerLoop.kt b/clients/wearos/app/src/main/java/com/doctate/watch/sync/SyncWorkerLoop.kt index a26ffb5..28f86d4 100644 --- a/clients/wearos/app/src/main/java/com/doctate/watch/sync/SyncWorkerLoop.kt +++ b/clients/wearos/app/src/main/java/com/doctate/watch/sync/SyncWorkerLoop.kt @@ -24,7 +24,7 @@ import java.time.Instant /** * Pure upload + poll worker, testable on the JVM. Mirrors the loop in - * `doctate-client-core::server_sync::run` — uploads have priority over + * `doctate-desktop::server_sync::run` — uploads have priority over * polling. * * The worker exposes [runOnce] for direct test invocation and [run] for