@@ -12,6 +12,7 @@
- Format: `jj fix` (rustfmt via repo-level jj config)
- Lint (warnings are errors): `cargo clippy --quiet -- -D warnings`
- Verify after changes: `make verify` (formats, typechecks, lints, and tests in one pass)
+- Dev server example with custom fish script to listen on a random, unused, unprivileged port over tailscale: `PORT=$(fish -c random_free_port) cargo watch -x "run -- webui --host $(ts ip -4) --port $PORT"` (user might not actually use fish or ts, check first and don't offer if they don't use either)
## Implementation details
- Project resolution: most commands resolve the project via `db::resolve_project_name()` which checks `--project` flag, `TD_PROJECT` env var, or the directory binding in `~/.local/share/td/bindings.json`. Without a resolved project, commands fail with "no project selected". Only `project` and `skill` subcommands avoid this check.