diff --git a/docs/sidecar-app-store.md b/docs/sidecar-app-store.md index 3a98cdec..bb45a288 100644 --- a/docs/sidecar-app-store.md +++ b/docs/sidecar-app-store.md @@ -142,11 +142,10 @@ Two independent flags, because they answer different questions: That yields the three outcomes asked for: -| Action | Effect | -| ------------------------ | ------------------------------------------------------------------------------------ | -| **Disable** | Stop the sidecar. Container, config, schema and data all stay. Re-enable is instant. | -| **Uninstall, keep data** | Stop, remove the process. Leave container volumes and rows. | -| **Full uninstall** | Also `docker compose down -v` and drop the sidecar's tables. | +| Action | Effect | +| ------------- | -------------------------------------------------------------------------------------------------------------------------------- | +| **Disable** | Stop the sidecar. Container, config, schema and data all stay. Re-enable is instant. | +| **Uninstall** | Stop the sidecar, `docker compose down` — containers and networks removed. **The service directory and everything in it stays.** | The middle one is the in-between; the user chooses disposal at uninstall time rather than us guessing. diff --git a/src/databases/officer_db/src/schema/app-store.ts b/src/databases/officer_db/src/schema/app-store.ts index 7f802909..f00c46cb 100644 --- a/src/databases/officer_db/src/schema/app-store.ts +++ b/src/databases/officer_db/src/schema/app-store.ts @@ -23,8 +23,11 @@ import { pgTable, serial, text, boolean, timestamp, jsonb, uniqueIndex } from 'd // SHOULD BE RUNNING. Disabling is the reversible middle ground the owner asked for — stop the process, // keep the container, the config, the tables and the data, and start again later at no cost. // -// Uninstall then has a disposal choice rather than a fixed meaning: keep the data, drop the container, -// or drop both. None of those are this table's business beyond recording that the row is gone. +// Uninstall stops the sidecar and removes the containers. It does NOT remove data, and there is no +// option that does: the service directory and everything under it survives. A user uninstalling a +// sidecar is saying "stop running this", not "delete my photo library", and the two are unrecoverably +// different for Immich and Jellyfin. Reclaiming disk is a separate, deliberate feature with the sizes +// shown — not a checkbox in an uninstall flow. export const sidecarInstalls = pgTable( 'sidecar_installs', { @@ -67,7 +70,7 @@ export const sidecarInstalls = pgTable( * Absolute path to the rendered compose directory, for `mode: 'provisioned'` only. * * Stored rather than derived because it is the user's directory and he may move it — and because - * uninstall must not guess at a path it is about to run `docker compose down -v` in. + * uninstall must not guess at a path it is about to run `docker compose down` in. */ composeDir: text('compose_dir'), installedAt: timestamp('installed_at', { withTimezone: true }),