mirror of
https://github.com/logseq/logseq.git
synced 2026-05-15 16:32:21 +00:00
78 lines
4.2 KiB
Markdown
78 lines
4.2 KiB
Markdown
# Logseq CLI Default Paths Move Plan
|
|
|
|
Goal: Move the default `--data-dir` location to `~/logseq/cli-graphs` and the default `cli.edn` location to `~/logseq/cli.edn`, keeping logseq-cli and db-worker-node consistent.
|
|
|
|
Architecture: logseq-cli resolves defaults in `logseq.cli.config` and `logseq.cli.data-dir`, then hands `data-dir` into `logseq.cli.server` which spawns and manages db-worker-node. db-worker-node itself also resolves `data-dir` for logs, locks, and SQLite storage via `frontend.worker.platform.node` and `frontend.worker.db-worker-node-lock`.
|
|
|
|
Tech Stack: ClojureScript, Node.js fs/path, logseq-cli, db-worker-node.
|
|
|
|
## Problem statement
|
|
|
|
Defaults currently live under `~/.logseq/`, but CLI data is not the same as desktop app data and should live under `~/logseq/` for better discoverability and separation. We need to update the defaults in both logseq-cli and db-worker-node, and update docs/help text to match.
|
|
|
|
## Current behavior summary
|
|
|
|
- logseq-cli uses `~/logseq/cli-graphs` as the default data dir.
|
|
- db-worker-node help text and internal resolution also default to `~/logseq/cli-graphs`.
|
|
- logseq-cli defaults config path to `~/logseq/cli.edn`.
|
|
- Docs reference `~/logseq/cli.edn` and `~/logseq/cli-graphs`.
|
|
|
|
## Requirements
|
|
|
|
- Default `data-dir` becomes `~/logseq/cli-graphs` everywhere it is derived.
|
|
- Default config path becomes `~/logseq/cli.edn`.
|
|
- `--data-dir` and `--config` flags continue to override defaults.
|
|
- `LOGSEQ_CLI_DATA_DIR` and `LOGSEQ_CLI_CONFIG` (if present) continue to override defaults.
|
|
- Help text and docs must match the new defaults.
|
|
|
|
## Non-goals
|
|
|
|
- Do not migrate existing data automatically.
|
|
- Do not change CLI flags, env var names, or db-worker-node storage layout.
|
|
- Do not change runtime behavior beyond the default locations.
|
|
|
|
## Design decisions
|
|
|
|
- Keep default paths defined in a single place per subsystem (CLI vs db-worker-node), but ensure they resolve to the same new location.
|
|
- Do not auto-detect the old location as a fallback to avoid surprises; users can pass `--data-dir` / `--config` explicitly if needed.
|
|
- Document the change and provide a brief migration note in CLI docs.
|
|
|
|
## Implementation plan
|
|
|
|
### 1) Update default `data-dir` constants and resolution
|
|
|
|
- `src/main/logseq/cli/data_dir.cljs`
|
|
- Change `default-data-dir` from `~/logseq/cli-graphs` to `~/logseq/cli-graphs`.
|
|
- `src/main/logseq/cli/server.cljs`
|
|
- Update `resolve-data-dir` default to `~/logseq/cli-graphs` (keeps server defaults aligned when config is absent).
|
|
- `src/main/frontend/worker/db_worker_node_lock.cljs`
|
|
- Update `resolve-data-dir` default to `~/logseq/cli-graphs`.
|
|
- `src/main/frontend/worker/platform/node.cljs`
|
|
- Update `node-platform` default for `data-dir` to `~/logseq/cli-graphs`.
|
|
- `src/main/frontend/worker/db_worker_node.cljs`
|
|
- Update the `--data-dir` help text default to `~/logseq/cli-graphs`.
|
|
|
|
### 2) Update default config path for CLI
|
|
|
|
- `src/main/logseq/cli/config.cljs`
|
|
- Change `config-path` default from `~/logseq/cli.edn` to `~/logseq/cli.edn`.
|
|
- Update any inline default map (`resolve-config` default options) to match if present.
|
|
|
|
### 3) Update docs and internal references
|
|
|
|
- `docs/cli/logseq-cli.md`
|
|
- Replace references to `~/logseq/cli.edn` and `~/logseq/cli-graphs` with the new paths.
|
|
- Add a short migration note: existing data/config can be used by passing `--data-dir` / `--config`.
|
|
- `docs/agent-guide/*.md`
|
|
- Update any references to the old defaults (notably `docs/agent-guide/002-logseq-cli-subcommands.md`, `docs/agent-guide/003-db-worker-node-cli-orchestration.md`, `docs/agent-guide/012-logseq-cli-graph-storage.md`, `docs/agent-guide/019-logseq-cli-data-dir-permissions.md`, and `docs/agent-guide/task--db-worker-nodejs-compatible.md`).
|
|
|
|
### 4) Tests
|
|
|
|
- Unit tests likely unaffected, but adjust any tests or snapshots that assert default path strings (search for `~/logseq/cli-graphs` or `~/logseq/cli.edn` in tests).
|
|
- If tests assert CLI help output or default config path, update expected strings accordingly.
|
|
|
|
## Notes
|
|
|
|
- Do not add a one-time warning for the old `~/logseq/cli-graphs` location. If a config is needed, prefer `cli.edn` under the selected `data-dir`.
|
|
- Do not add any fallback or compatibility for `~/logseq/cli.edn`. The old location is ignored.
|